diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1bee4afa1ab..62343131d2d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,10 +1,29 @@ diff --git a/.github/workflows/ci_builds.yml b/.github/workflows/ci_builds.yml deleted file mode 100644 index b3bb83fa850..00000000000 --- a/.github/workflows/ci_builds.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: CI Builds - -permissions: - contents: read - -on: - push: - branches: [master, develop] - workflow_dispatch: - inputs: - branch: - type: choice - description: 'Branch to build' - options: [master, develop] - -concurrency: ci_build-${{ github.event.inputs.branch || github.ref_name }} - -jobs: - ci_builds: - if: github.repository == 'qmk/qmk_firmware' - name: "CI Build" - runs-on: self-hosted - timeout-minutes: 1380 - - strategy: - fail-fast: false - matrix: - keymap: [default, via] - - container: ghcr.io/qmk/qmk_cli - - steps: - - name: Disable safe.directory check - run : git config --global --add safe.directory '*' - - - uses: actions/checkout@v3 - with: - submodules: recursive - ref: ${{ github.event.inputs.branch || github.ref }} - - - name: Install dependencies - run: pip3 install -r requirements.txt - - - name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }}) - run: | - export NCPUS=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) - qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes || touch .failed - # Generate the step summary markdown - ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true - # Truncate to a maximum of 1MB to deal with GitHub workflow limit - truncate --size='<960K' $GITHUB_STEP_SUMMARY || true - # Exit with failure if the compilation stage failed - [ ! -f .failed ] || exit 1 - - - name: 'Upload artifacts' - uses: actions/upload-artifact@v3 - if: always() - with: - name: artifacts-${{ github.event.inputs.branch || github.ref_name }}-${{ matrix.keymap }} - if-no-files-found: ignore - path: | - *.bin - *.hex - *.uf2 - .build/failed.* - - - name: 'CI Discord Notification' - if: always() - working-directory: util/ci/ - env: - DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }} - run: | - python3 -m pip install -r requirements.txt - python3 ./discord-results.py --branch ${{ github.event.inputs.branch || github.ref_name }} --keymap ${{ matrix.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml deleted file mode 100644 index a2b4ef2b934..00000000000 --- a/.github/workflows/regen.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: PR Regenerate Files - -permissions: - contents: read - -on: - pull_request: - paths: - - 'data/constants/**' - - 'lib/python/**' - -jobs: - regen: - runs-on: ubuntu-latest - - container: ghcr.io/qmk/qmk_cli - - steps: - - name: Disable safe.directory check - run : git config --global --add safe.directory '*' - - - uses: actions/checkout@v3 - - - name: Run qmk generators - run: | - util/regen.sh - git diff - - - name: Fail when regeneration required - run: | - git diff - for file in $(git diff --name-only); do - echo "File '${file}' Requires Regeneration" - echo "::error file=${file}::Requires Regeneration" - done - test -z "$(git diff --name-only)" diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml deleted file mode 100644 index 7394925a0de..00000000000 --- a/.github/workflows/regen_push.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Regenerate Files - -permissions: - contents: write - -on: - push: - branches: - - master - - develop - -jobs: - regen: - runs-on: ubuntu-latest - - container: ghcr.io/qmk/qmk_cli - - steps: - - name: Disable safe.directory check - run : git config --global --add safe.directory '*' - - - uses: actions/checkout@v3 - - - name: Run qmk generators - run: | - util/regen.sh - git diff - - - uses: rlespinasse/github-slug-action@v3.x - - - name: Become QMK Bot - run: | - git config user.name 'QMK Bot' - git config user.email 'hello@qmk.fm' - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 - if: ${{ github.repository == 'qmk/qmk_firmware'}} - with: - token: ${{ secrets.QMK_BOT_TOKEN }} - delete-branch: true - branch: bugfix/regen_${{ env.GITHUB_REF_SLUG }} - author: QMK Bot - committer: QMK Bot - commit-message: Regenerate Files - title: '[CI] Regenerate Files' diff --git a/.gitignore b/.gitignore index 728b94eb2c5..1af1f10746e 100644 --- a/.gitignore +++ b/.gitignore @@ -96,7 +96,7 @@ secrets.tar # Python things __pycache__ .python-version -.venv/ +.venv # Prerequisites for updating ChibiOS /util/fmpp* diff --git a/Makefile b/Makefile index c77eadf97d5..9f2e4636a4b 100644 --- a/Makefile +++ b/Makefile @@ -328,7 +328,7 @@ define PARSE_TEST ifeq ($$(TEST_NAME),all) MATCHED_TESTS := $$(TEST_LIST) else - MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring $$(TEST_NAME), $$(notdir $$(TEST))), $$(TEST),)) + MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring x$$(TEST_NAME)x, x$$(notdir $$(TEST))x), $$(TEST),)) endif $$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(TEST_TARGET)))) endef diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk index 964ba773d48..85ee0898ec2 100644 --- a/builddefs/build_full_test.mk +++ b/builddefs/build_full_test.mk @@ -17,7 +17,6 @@ $(TEST)_INC := \ tests/test_common/common_config.h $(TEST)_SRC := \ - $(TMK_COMMON_SRC) \ $(QUANTUM_SRC) \ $(SRC) \ $(QUANTUM_PATH)/keymap_introspection.c \ @@ -31,7 +30,7 @@ $(TEST)_SRC := \ tests/test_common/test_logger.cpp \ $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp)) -$(TEST)_DEFS := $(TMK_COMMON_DEFS) $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\"" +$(TEST)_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 f08288aca92..ecaac564f8a 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -27,7 +27,6 @@ QMK_BIN ?= qmk # Set the filename for the final firmware binary KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD)) TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP) -KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE) ifeq ($(strip $(DUMP_CI_METADATA)),yes) $(info CI Metadata: KEYBOARD=$(KEYBOARD)) @@ -44,7 +43,7 @@ endif # Object files and generated keymap directory # To put object files in current directory, use a dot (.), do NOT make # this an empty or blank macro! -KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET) +INTERMEDIATE_OUTPUT := $(BUILD_DIR)/obj_$(TARGET) ifdef SKIP_VERSION OPT_DEFS += -DSKIP_VERSION @@ -60,8 +59,8 @@ VERSION_H_FLAGS += --skip-git endif # Generate the board's version.h file. -$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(KEYMAP_OUTPUT)/src/version.h) -$(shell python3 util/build_id.py >> $(KEYMAP_OUTPUT)/src/version.h) +$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h) +$(shell python3 util/build_id.py >> $(INTERMEDIATE_OUTPUT)/src/version.h) # Determine which subfolders exist. KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD) @@ -122,7 +121,7 @@ MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) # Pull in rules from info.json -INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_rules.mk) +INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk) include $(INFO_RULES_MK) # Check for keymap.json first, so we can regenerate keymap.c @@ -162,28 +161,28 @@ endif # Have we found a keymap.json? ifneq ("$(wildcard $(KEYMAP_JSON))", "") - KEYMAP_C := $(KEYMAP_OUTPUT)/src/keymap.c - KEYMAP_H := $(KEYMAP_OUTPUT)/src/config.h + KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c + KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h # Load the keymap-level rules.mk if exists -include $(KEYMAP_PATH)/rules.mk # Load any rules.mk content from keymap.json - INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(KEYMAP_OUTPUT)/src/rules.mk $(KEYMAP_JSON)) + INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON)) include $(INFO_RULES_MK) # Add rules to generate the keymap files - indentation here is important -$(KEYMAP_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) +$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)) @$(BUILD_CMD) -$(KEYMAP_OUTPUT)/src/config.h: $(KEYMAP_JSON) +$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-config-h --quiet --output $(KEYMAP_H) $(KEYMAP_JSON)) @$(BUILD_CMD) -generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c +generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/keymap.c endif @@ -324,34 +323,34 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json endif -CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h -KEYBOARD_SRC += $(KEYBOARD_OUTPUT)/src/default_keyboard.c +CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h +KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c -$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES) +$(INTERMEDIATE_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h) + $(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_config.h) @$(BUILD_CMD) -$(KEYBOARD_OUTPUT)/src/default_keyboard.c: $(INFO_JSON_FILES) +$(INTERMEDIATE_OUTPUT)/src/default_keyboard.c: $(INFO_JSON_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-keyboard-c --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.c) + $(eval CMD=$(QMK_BIN) generate-keyboard-c --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c) @$(BUILD_CMD) -$(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES) +$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --include $(FOUND_KEYBOARD_H) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h) + $(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --include $(FOUND_KEYBOARD_H) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.h) @$(BUILD_CMD) -generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.c $(KEYBOARD_OUTPUT)/src/default_keyboard.h +generated-files: $(INTERMEDIATE_OUTPUT)/src/info_config.h $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c $(INTERMEDIATE_OUTPUT)/src/default_keyboard.h -generated-files: $(KEYMAP_OUTPUT)/src/info_deps.d +generated-files: $(INTERMEDIATE_OUTPUT)/src/info_deps.d -$(KEYMAP_OUTPUT)/src/info_deps.d: +$(INTERMEDIATE_OUTPUT)/src/info_deps.d: @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-make-dependencies -kb $(KEYBOARD) -km $(KEYMAP) -o $(KEYMAP_OUTPUT)/src/info_deps.d) + $(eval CMD=$(QMK_BIN) generate-make-dependencies -kb $(KEYBOARD) -km $(KEYMAP) -o $(INTERMEDIATE_OUTPUT)/src/info_deps.d) @$(BUILD_CMD) --include $(KEYMAP_OUTPUT)/src/info_deps.d +-include $(INTERMEDIATE_OUTPUT)/src/info_deps.d .INTERMEDIATE : generated-files @@ -424,8 +423,7 @@ VPATH += $(KEYMAP_PATH) VPATH += $(USER_PATH) VPATH += $(KEYBOARD_PATHS) VPATH += $(COMMON_VPATH) -VPATH += $(KEYBOARD_OUTPUT)/src -VPATH += $(KEYMAP_OUTPUT)/src +VPATH += $(INTERMEDIATE_OUTPUT)/src include $(BUILDDEFS_PATH)/common_features.mk include $(BUILDDEFS_PATH)/generic_features.mk @@ -434,19 +432,17 @@ include $(PLATFORM_PATH)/common.mk SRC += $(patsubst %.c,%.clib,$(LIB_SRC)) SRC += $(patsubst %.c,%.clib,$(QUANTUM_LIB_SRC)) -SRC += $(TMK_COMMON_SRC) -OPT_DEFS += $(TMK_COMMON_DEFS) -EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS) -include $(PLATFORM_PATH)/$(PLATFORM_KEY)/bootloader.mk include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk -include $(PLATFORM_PATH)/$(PLATFORM_KEY)/flash.mk ifneq ($(strip $(PROTOCOL)),) - include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk +PROTOCOL_KEY = $(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')) else - include $(TMK_PATH)/protocol/$(PLATFORM_KEY).mk +PROTOCOL_KEY = $(PLATFORM_KEY) endif +include $(TMK_PATH)/protocol/$(PROTOCOL_KEY)/$(PROTOCOL_KEY).mk # Setup definitions based on the selected MCU $(eval $(call add_qmk_prefix_defs,MCU_ORIG,MCU)) @@ -472,17 +468,14 @@ PROJECT_CONFIG := $(CONFIG_H) CONFIG_H += $(POST_CONFIG_H) ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H) -OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) -$(KEYMAP_OUTPUT)_SRC := $(SRC) -$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) \ --DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(KEYBOARD_OUTPUT)/src/default_keyboard.h\" \ --DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" -$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) -$(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H) -$(KEYBOARD_OUTPUT)_SRC := $(PLATFORM_SRC) -$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) -$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) -$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG) +OUTPUTS := $(INTERMEDIATE_OUTPUT) +$(INTERMEDIATE_OUTPUT)_SRC := $(SRC) $(PLATFORM_SRC) +$(INTERMEDIATE_OUTPUT)_DEFS := $(OPT_DEFS) \ + -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h\" \ + -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \ + $(PROJECT_DEFS) +$(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(PROJECT_INC) +$(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(PROJECT_CONFIG) # Default target. all: build check-size diff --git a/builddefs/build_vial.mk b/builddefs/build_vial.mk new file mode 100644 index 00000000000..ce31d295625 --- /dev/null +++ b/builddefs/build_vial.mk @@ -0,0 +1,36 @@ +# Copyright 2023 Ilya Zhuravlev +# SPDX-License-Identifier: GPL-2.0-or-later + +QMK_SETTINGS ?= yes +TAP_DANCE_ENABLE ?= yes +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + OPT_DEFS += -DTAPPING_TERM_PER_KEY +endif +COMBO_ENABLE ?= yes +KEY_OVERRIDE_ENABLE ?= yes +SRC += $(QUANTUM_DIR)/vial.c +OPT_DEFS += -DVIAL_ENABLE -DNO_DEBUG -DSERIAL_NUMBER=\"vial:f64c2b3c\" + +ifeq ($(strip $(VIAL_INSECURE)), yes) + OPT_DEFS += -DVIAL_INSECURE +endif + +ifeq ($(strip $(VIALRGB_ENABLE)), yes) + SRC += $(QUANTUM_DIR)/vialrgb.c + OPT_DEFS += -DVIALRGB_ENABLE +endif + +ifeq ($(strip $(QMK_SETTINGS)), yes) + AUTO_SHIFT_ENABLE := yes + SRC += $(QUANTUM_DIR)/qmk_settings.c + OPT_DEFS += -DQMK_SETTINGS \ + -DAUTO_SHIFT_NO_SETUP -DAUTO_SHIFT_REPEAT_PER_KEY -DAUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY \ + -DPERMISSIVE_HOLD_PER_KEY -DHOLD_ON_OTHER_KEY_PRESS_PER_KEY -DTAPPING_FORCE_HOLD_PER_KEY -DRETRO_TAPPING_PER_KEY \ + -DCOMBO_TERM_PER_COMBO +endif + +# Generate Vial layout definition header from JSON +$(QUANTUM_DIR)/vial.c: $(INTERMEDIATE_OUTPUT)/src/vial_generated_keyboard_definition.h + +$(INTERMEDIATE_OUTPUT)/src/vial_generated_keyboard_definition.h: $(KEYMAP_PATH)/vial.json + python3 util/vial_generate_definition.py $(KEYMAP_PATH)/vial.json $(INTERMEDIATE_OUTPUT)/src/vial_generated_keyboard_definition.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 4988637b10f..8446f4250a6 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -317,14 +317,10 @@ ifneq ($(strip $(FLASH_DRIVER)), none) endif RGBLIGHT_ENABLE ?= no -VALID_RGBLIGHT_TYPES := WS2812 APA102 custom - -ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes) - RGBLIGHT_DRIVER ?= custom -endif +VALID_RGBLIGHT_TYPES := ws2812 apa102 custom ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) - RGBLIGHT_DRIVER ?= WS2812 + RGBLIGHT_DRIVER ?= ws2812 ifeq ($(filter $(RGBLIGHT_DRIVER),$(VALID_RGBLIGHT_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid RGBLIGHT_DRIVER,RGBLIGHT_DRIVER="$(RGBLIGHT_DRIVER)" is not a valid RGB type) @@ -338,11 +334,11 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) RGB_KEYCODES_ENABLE := yes endif - ifeq ($(strip $(RGBLIGHT_DRIVER)), WS2812) + ifeq ($(strip $(RGBLIGHT_DRIVER)), ws2812) WS2812_DRIVER_REQUIRED := yes endif - ifeq ($(strip $(RGBLIGHT_DRIVER)), APA102) + ifeq ($(strip $(RGBLIGHT_DRIVER)), apa102) APA102_DRIVER_REQUIRED := yes endif @@ -352,8 +348,8 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) endif LED_MATRIX_ENABLE ?= no -VALID_LED_MATRIX_TYPES := IS31FL3731 IS31FL3742A IS31FL3743A IS31FL3745 IS31FL3746A CKLED2001 custom -# TODO: IS31FL3733 IS31FL3737 IS31FL3741 +VALID_LED_MATRIX_TYPES := is31fl3731 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom +# TODO: is31fl3733 is31fl3737 is31fl3741 ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),) @@ -367,48 +363,49 @@ endif COMMON_VPATH += $(QUANTUM_DIR)/led_matrix COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners + POST_CONFIG_H += $(QUANTUM_DIR)/led_matrix/post_config.h SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c SRC += $(LIB_PATH)/lib8tion/lib8tion.c CIE1931_CURVE := yes - ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3731) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3731) OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3731-simple.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3742A) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a) OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3743A) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a) OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3745) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745) OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3746A) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a) OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), CKLED2001) + ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001) OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led SRC += ckled2001-simple.c @@ -419,7 +416,7 @@ endif RGB_MATRIX_ENABLE ?= no -VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3736 IS31FL3737 IS31FL3741 IS31FL3742A IS31FL3743A IS31FL3745 IS31FL3746A CKLED2001 WS2812 custom +VALID_RGB_MATRIX_TYPES := aw20216 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type) @@ -432,6 +429,7 @@ endif COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners + POST_CONFIG_H += $(QUANTUM_DIR)/rgb_matrix/post_config.h SRC += $(QUANTUM_DIR)/color.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c @@ -439,89 +437,89 @@ endif CIE1931_CURVE := yes RGB_KEYCODES_ENABLE := yes - ifeq ($(strip $(RGB_MATRIX_DRIVER)), AW20216) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216) OPT_DEFS += -DAW20216 -DSTM32_SPI -DHAL_USE_SPI=TRUE COMMON_VPATH += $(DRIVER_PATH)/led SRC += aw20216.c QUANTUM_LIB_SRC += spi_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3731) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3731) OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3731.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3733) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3733) OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3736) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3736) OPT_DEFS += -DIS31FL3736 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3736.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3737) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3737) OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3737.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3741) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3741) OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3741.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3742A) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a) OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3743A) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a) OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3745) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745) OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3746A) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a) OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), CKLED2001) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001) OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led SRC += ckled2001.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), WS2812) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), ws2812) OPT_DEFS += -DWS2812 WS2812_DRIVER_REQUIRED := yes endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), APA102) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), apa102) OPT_DEFS += -DAPA102 APA102_DRIVER_REQUIRED := yes endif @@ -565,18 +563,18 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) endif COMMON_VPATH += $(QUANTUM_DIR)/backlight + COMMON_VPATH += $(DRIVER_PATH)/backlight SRC += $(QUANTUM_DIR)/backlight/backlight.c SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c OPT_DEFS += -DBACKLIGHT_ENABLE - ifeq ($(strip $(BACKLIGHT_DRIVER)), custom) - OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER - else + ifneq ($(strip $(BACKLIGHT_DRIVER)), custom) SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c - ifeq ($(strip $(BACKLIGHT_DRIVER)), pwm) - SRC += $(QUANTUM_DIR)/backlight/backlight_$(PLATFORM_KEY).c + + ifeq ($(strip $(BACKLIGHT_DRIVER)), software) + SRC += $(DRIVER_PATH)/backlight/backlight_software.c else - SRC += $(QUANTUM_DIR)/backlight/backlight_$(strip $(BACKLIGHT_DRIVER)).c + SRC += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/backlight_$(strip $(BACKLIGHT_DRIVER)).c endif endif endif @@ -629,39 +627,7 @@ ifeq ($(strip $(VIA_ENABLE)), yes) endif ifeq ($(strip $(VIAL_ENABLE)), yes) - QMK_SETTINGS ?= yes - TAP_DANCE_ENABLE ?= yes - ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) - OPT_DEFS += -DTAPPING_TERM_PER_KEY - endif - COMBO_ENABLE ?= yes - KEY_OVERRIDE_ENABLE ?= yes - SRC += $(QUANTUM_DIR)/vial.c - EXTRAINCDIRS += $(KEYMAP_OUTPUT) - OPT_DEFS += -DVIAL_ENABLE -DNO_DEBUG -DSERIAL_NUMBER=\"vial:f64c2b3c\" - -$(QUANTUM_DIR)/vial.c: $(KEYMAP_OUTPUT)/vial_generated_keyboard_definition.h - -$(KEYMAP_OUTPUT)/vial_generated_keyboard_definition.h: $(KEYMAP_PATH)/vial.json - python3 util/vial_generate_definition.py $(KEYMAP_PATH)/vial.json $(KEYMAP_OUTPUT)/vial_generated_keyboard_definition.h -endif - -ifeq ($(strip $(VIAL_INSECURE)), yes) - OPT_DEFS += -DVIAL_INSECURE -endif - -ifeq ($(strip $(VIALRGB_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/vialrgb.c - OPT_DEFS += -DVIALRGB_ENABLE -endif - -ifeq ($(strip $(QMK_SETTINGS)), yes) - AUTO_SHIFT_ENABLE := yes - SRC += $(QUANTUM_DIR)/qmk_settings.c - OPT_DEFS += -DQMK_SETTINGS \ - -DAUTO_SHIFT_NO_SETUP -DAUTO_SHIFT_REPEAT_PER_KEY -DAUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY \ - -DPERMISSIVE_HOLD_PER_KEY -DHOLD_ON_OTHER_KEY_PRESS_PER_KEY -DTAPPING_FORCE_HOLD_PER_KEY -DRETRO_TAPPING_PER_KEY \ - -DCOMBO_TERM_PER_COMBO + include $(BUILDDEFS_PATH)/build_vial.mk endif VALID_MAGIC_TYPES := yes @@ -757,18 +723,23 @@ ifeq ($(strip $(FNV_ENABLE)), yes) SRC += qmk_fnv_type_validation.c hash_32a.c hash_64a.c endif +VALID_HAPTIC_DRIVER_TYPES := drv2605l solenoid ifeq ($(strip $(HAPTIC_ENABLE)),yes) - COMMON_VPATH += $(DRIVER_PATH)/haptic + ifeq ($(filter $(HAPTIC_DRIVER),$(VALID_HAPTIC_DRIVER_TYPES)),) + $(call CATASTROPHIC_ERROR,Invalid HAPTIC_DRIVER,HAPTIC_DRIVER="$(HAPTIC_DRIVER)" is not a valid Haptic driver) + else + COMMON_VPATH += $(DRIVER_PATH)/haptic - ifneq ($(filter DRV2605L, $(HAPTIC_DRIVER)), ) - SRC += DRV2605L.c - QUANTUM_LIB_SRC += i2c_master.c - OPT_DEFS += -DDRV2605L - endif + ifeq ($(strip $(HAPTIC_DRIVER)), drv2605l) + SRC += drv2605l.c + QUANTUM_LIB_SRC += i2c_master.c + OPT_DEFS += -DHAPTIC_DRV2605L + endif - ifneq ($(filter SOLENOID, $(HAPTIC_DRIVER)), ) - SRC += solenoid.c - OPT_DEFS += -DSOLENOID_ENABLE + ifeq ($(strip $(HAPTIC_DRIVER)), solenoid) + SRC += solenoid.c + OPT_DEFS += -DHAPTIC_SOLENOID + endif endif endif @@ -778,8 +749,8 @@ ifeq ($(strip $(HD44780_ENABLE)), yes) SRC += hd44780.c endif -VALID_OLED_DRIVER_TYPES := SSD1306 custom -OLED_DRIVER ?= SSD1306 +VALID_OLED_DRIVER_TYPES := custom ssd1306 +OLED_DRIVER ?= ssd1306 VALID_OLED_TRANSPORT_TYPES := i2c spi custom OLED_TRANSPORT ?= i2c ifeq ($(strip $(OLED_ENABLE)), yes) @@ -817,13 +788,15 @@ endif ifeq ($(strip $(UCIS_ENABLE)), yes) OPT_DEFS += -DUCIS_ENABLE UNICODE_COMMON := yes - SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c + SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c \ + $(QUANTUM_DIR)/unicode/ucis.c endif ifeq ($(strip $(UNICODEMAP_ENABLE)), yes) OPT_DEFS += -DUNICODEMAP_ENABLE UNICODE_COMMON := yes - SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c + SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c \ + $(QUANTUM_DIR)/unicode/unicodemap.c endif ifeq ($(strip $(UNICODE_ENABLE)), yes) @@ -934,7 +907,7 @@ ifeq ($(strip $(USBPD_ENABLE)), yes) endif BLUETOOTH_ENABLE ?= no -VALID_BLUETOOTH_DRIVER_TYPES := BluefruitLE RN42 custom +VALID_BLUETOOTH_DRIVER_TYPES := bluefruit_le custom rn42 ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) ifeq ($(filter $(strip $(BLUETOOTH_DRIVER)),$(VALID_BLUETOOTH_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid BLUETOOTH_DRIVER,BLUETOOTH_DRIVER="$(BLUETOOTH_DRIVER)" is not a valid Bluetooth driver type) @@ -944,7 +917,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) COMMON_VPATH += $(DRIVER_PATH)/bluetooth SRC += outputselect.c - ifeq ($(strip $(BLUETOOTH_DRIVER)), BluefruitLE) + ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp @@ -952,7 +925,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) QUANTUM_LIB_SRC += spi_master.c endif - ifeq ($(strip $(BLUETOOTH_DRIVER)), RN42) + ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42) OPT_DEFS += -DBLUETOOTH_RN42 -DHAL_USE_SERIAL=TRUE SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/rn42.c diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index 4d3af6737d9..41651a2cbf2 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -176,7 +176,7 @@ MOVE_DEP = mv -f $(patsubst %.o,%.td,$@) $(patsubst %.o,%.d,$@) # For a ChibiOS build, ensure that the board files have the hook overrides injected define BOARDSRC_INJECT_HOOKS -$(KEYBOARD_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): INIT_HOOK_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h +$(INTERMEDIATE_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): INIT_HOOK_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h endef $(foreach LOBJ, $(BOARDSRC), $(eval $(call BOARDSRC_INJECT_HOOKS,$(LOBJ)))) diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk index 8bcc02083bc..563d0898803 100644 --- a/builddefs/show_options.mk +++ b/builddefs/show_options.mk @@ -17,7 +17,7 @@ HARDWARE_OPTION_NAMES = \ BACKLIGHT_ENABLE \ BACKLIGHT_DRIVER \ RGBLIGHT_ENABLE \ - RGBLIGHT_CUSTOM_DRIVER \ + RGBLIGHT_DRIVER \ RGB_MATRIX_ENABLE \ RGB_MATRIX_DRIVER \ CIE1931_CURVE \ @@ -60,7 +60,6 @@ OTHER_OPTION_NAMES = \ ENCODER_ENABLE_CUSTOM \ GERMAN_ENABLE \ HAPTIC_ENABLE \ - HHKB_RN42_ENABLE \ ISSI_ENABLE \ KEYLOGGER_ENABLE \ LCD_BACKLIGHT_ENABLE \ diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index e53d90da39b..ab9a4a0e452 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -64,13 +64,12 @@ // LED Matrix "LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"}, - "LED_MATRIX_HUE_STEP": {"info_key": "led_matrix.hue_steps", "value_type": "int"}, "LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"}, - "LED_MATRIX_SAT_STEP": {"info_key": "led_matrix.sat_steps", "value_type": "int"}, "LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "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_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"}, + "LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false}, // LUFA Bootloader "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, @@ -109,6 +108,7 @@ "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_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, + "RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false}, // RGBLight "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"}, @@ -117,6 +117,7 @@ "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"}, + "RGBLIGHT_LED_MAP": {"info_key": "rgblight.led_map", "value_type": "array.int"}, "RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"}, "RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"}, "RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"}, diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index bf8ec05cb2c..07191551da8 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -35,6 +35,7 @@ "PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"}, "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"}, "RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"}, + "RGBLIGHT_DRIVER": {"info_key": "rgblight.driver"}, "SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"}, "SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"}, "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false}, diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index a656288a8fb..60c5deaad5e 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1,13 +1,9 @@ { // Format for each entry: // "": { - // "target": "", - // "layouts": { - // "": "" - // } + // "target": "" // } // - // Both target and layouts are optional. "2_milk": { "target": "spaceman/2_milk" }, @@ -140,21 +136,6 @@ "daisy": { "target": "ktec/daisy" }, - "doro67/multi": { - "layouts": { - "LAYOUT_ansi": "LAYOUT_65_ansi_blocker" - } - }, - "doro67/regular": { - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - } - }, - "doro67/rgb": { - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - } - }, "drakon": { "target": "jagdpietr/drakon" }, @@ -212,6 +193,12 @@ "gmmk/pro/iso": { "target": "gmmk/pro/rev1/iso" }, + "handwired/dactyl_manuform/3x5_3": { + "target": "handwired/dactyl_minidox" + }, + "handwired/dactyl_manuform/6x6_kinesis": { + "target": "handwired/dactyl_kinesis" + }, "handwired/ferris": { "target": "ferris/0_1" }, @@ -221,6 +208,21 @@ "handwired/p1800fl": { "target": "team0110/p1800fl" }, + "handwired/jscotto/scotto9": { + "target": "handwired/scottokeebs/scotto9" + }, + "handwired/jscotto/scotto36": { + "target": "handwired/scottokeebs/scotto36" + }, + "handwired/jscotto/scotto40": { + "target": "handwired/scottokeebs/scotto40" + }, + "handwired/jscotto/scottocmd": { + "target": "handwired/scottokeebs/scottocmd" + }, + "handwired/jscotto/scottostarter": { + "target": "handwired/scottokeebs/scottostarter" + }, "helix/pico/sc/back": { "target": "helix/pico/sc" }, @@ -264,10 +266,7 @@ "target": "keyhive/honeycomb" }, "idb_60": { - "target": "idb/idb_60", - "layouts": { - "LAYOUT": "LAYOUT_all" - } + "target": "idb/idb_60" }, "idobo": { "target": "idobao/id75" @@ -288,23 +287,20 @@ "target": "jones/v03_1" }, "kamigakushi": { - "target": "jaykeeb/kamigakushi", - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker_tsangan" - } + "target": "jaykeeb/kamigakushi" }, "katana60": { "target": "rominronin/katana60/rev1" }, "kbdfans/kbd67mkiirgb": { - "target": "kbdfans/kbd67/mkiirgb", - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - } + "target": "kbdfans/kbd67/mkiirgb" }, "kbdfans/kbd67/mkiirgb": { "target": "kbdfans/kbd67/mkiirgb/v1" }, + "keebio/chocopad": { + "target": "keebio/chocopad/rev1" + }, "keebio/dsp40": { "target": "keebio/dsp40/rev1" }, @@ -443,11 +439,6 @@ "mschwingen/modelm": { "target": "ibm/model_m/mschwingen" }, - "noxary/268_2": { - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - } - }, "oddball": { "target": "oddball/v1" }, @@ -472,11 +463,6 @@ "peiorisboards/ixora": { "target": "coarse/ixora" }, - "percent/canoe": { - "layouts": { - "LAYOUT_iso": "LAYOUT_65_iso_blocker" - } - }, "plaid": { "target": "dm9records/plaid" }, @@ -489,21 +475,6 @@ "polilla": { "target": "polilla/rev1" }, - "preonic/rev1": { - "layouts": { - "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12" - } - }, - "preonic/rev2": { - "layouts": { - "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12" - } - }, - "preonic/rev3": { - "layouts": { - "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12" - } - }, "primekb/prime_l": { "target": "primekb/prime_l/v1" }, @@ -595,10 +566,7 @@ "target": "underscore33/rev1" }, "vinta": { - "target": "coarse/vinta", - "layouts": { - "LAYOUT_67_ansi": "LAYOUT_65_ansi_blocker" - } + "target": "coarse/vinta" }, "wasdat": { "target": "maartenwut/wasdat" @@ -868,6 +836,9 @@ "hecomi/alpha": { "target": "takashiski/hecomi/alpha" }, + "hfdkb/keyboard_sw/k83":{ + "target": "inland/kb83" + }, "hid_liber": { "target": "bpiphany/hid_liber" }, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 73309e582fd..3765bf25ba5 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -71,6 +71,8 @@ "STM32F446", "STM32G431", "STM32G474", + "STM32H723", + "STM32H733", "STM32L412", "STM32L422", "STM32L432", @@ -146,7 +148,7 @@ "properties": { "driver": { "type": "string", - "enum": ["BluefruitLE", "RN42", "custom"] + "enum": ["bluefruit_le", "custom", "rn42"] } } }, @@ -175,6 +177,7 @@ "type": "string", "enum": [ "vibl", + "apm32-dfu", "atmel-dfu", "bootloadhid", "caterina", @@ -381,8 +384,6 @@ }, "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"}, "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "split_count": { @@ -476,6 +477,10 @@ } }, "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "driver": { + "type": "string", + "enum": ["apa102", "custom", "ws2812"] + }, "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "layers": { "type": "object", @@ -492,6 +497,11 @@ } }, "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_map": { + "type": "array", + "minItems": 2, + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} + }, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "pin": { "$ref": "qmk.definitions.v1#/mcu_pin", diff --git a/docs/ChangeLog/20230827.md b/docs/ChangeLog/20230827.md new file mode 100644 index 00000000000..12093d889f3 --- /dev/null +++ b/docs/ChangeLog/20230827.md @@ -0,0 +1,305 @@ +# QMK Breaking Changes - 2023 Aug 27 Changelog + +## Notable Changes :id=notable-changes + +As per last few breaking changes cycles, there have been _a lot_ of behind-the-scenes changes, mainly around migration of configurables into `info.json` files, cleanup of `info.json` files, additional layout definitions for keyboards, adding support for general community layouts to keyboards, as well as addressing technical debt. + +One thing to note for this release -- `qmk/qmk_firmware` is no longer accepting PRs for keymaps other than for manufacturer-supported keymaps. User keymap workflow has been documented [here](https://docs.qmk.fm/#/newbs) for several years. This change is to progressively reduce the maintenance burden on the project, and to allow us to focus on the core features of QMK. + +Existing user keymaps and userspace areas will likely be relocated/removed in the future -- non-building keymaps and userspace will be first targets, likely during the new breaking changes cycle. We will provide more information on Discord regarding this initiative as it becomes available. + +### RGB Matrix optimizations ([#21134](https://github.com/qmk/qmk_firmware/pull/21134), [#21135](https://github.com/qmk/qmk_firmware/pull/21135)) :id=rgb-matrix-optimizations + +Most RGB Matrix implementations now check whether or not RGB LED data has changed and skip transmission if it hasn't. This was measured to improve scan frequency in cases of static or infrequently-changing colors. + +### Audio optimizations ([#21496](https://github.com/qmk/qmk_firmware/pull/21496), [#21498](https://github.com/qmk/qmk_firmware/pull/21498)) + +Some audio code relating to "notes" used `double` datatypes, which are implemented in software floating-point for most ARM microcontrollers. This has been changed to use `float` datatypes instead, which are implemented in hardware floating-point on most ARM microcontrollers. This change increases performance as well as reduces the firmware size by significant number of bytes. + +AVR sees minimal (if any) benefit -- `double` was interpreted as `float` on AVR anyway. + +## Changes Requiring User Action :id=changes-requiring-user-action + +### Updated Keyboard Codebases :id=updated-keyboard-codebases + +| Old Keyboard Name | New Keyboard Name | +|---------------------------------------|-------------------------------------| +| capsunlocked/cu80/v2_ansi/base | capsunlocked/cu80/v2/ansi | +| capsunlocked/cu80/v2_iso/base | capsunlocked/cu80/v2/iso | +| handwired/dactyl_manuform/3x5_3 | handwired/dactyl_minidox | +| handwired/dactyl_manuform/6x6_kinesis | handwired/dactyl_kinesis | +| handwired/jscotto/scotto36 | handwired/scottokeebs/scotto36 | +| handwired/jscotto/scotto40 | handwired/scottokeebs/scotto40 | +| handwired/jscotto/scotto9 | handwired/scottokeebs/scotto9 | +| handwired/jscotto/scottocmd | handwired/scottokeebs/scottocmd | +| handwired/jscotto/scottostarter | handwired/scottokeebs/scottostarter | +| hfdkb/keyboard_sw/k83 | inland/kb83 | +| idb_60 | idb/idb_60 | +| kamigakushi | jaykeeb/kamigakushi | +| kbdfans/kbd67mkiirgb | kbdfans/kbd67/mkiirgb | +| modelh | ibm/model_m/modelh | +| vinta | coarse/vinta | + +### Remove encoder in-matrix workaround code ([#20389](https://github.com/qmk/qmk_firmware/pull/20389)) :id=remove-encoder-in-matrix-workaround-code + +Some keyboards "hacked" encoder support into spare slots in the key matrix in order to interoperate with VIA. This workaround is no longer necessary, and the code has been removed. If you have a keyboard that uses this workaround, you will need to update your keymap to use the new [Encoder Map](feature_encoders.md#encoder-map) API instead. + +### Unicodemap keycodes rename ([#21092](https://github.com/qmk/qmk_firmware/pull/21092)) :id=unicodemap-keycodes-rename + +The Unicodemap keycodes have been renamed: + +| Old | New | +|-----------|-----------| +| `X(i)` | `UM(i)` | +| `XP(i,j)` | `UP(i,j)` | + +### Remove old OLED API code ([#21651](https://github.com/qmk/qmk_firmware/pull/21651)) :id=remove-old-oled-api-code + +Old OLED code using `ssd1306.c` `ssd1306.h`, and `SSD1306OLED` and other similar files have been consolidated to use the standard OLED driver. External user keymaps will need to be updated to use the standard OLED driver accordingly. + +### Driver naming consolidation ([#21551](https://github.com/qmk/qmk_firmware/pull/21551), [#21558](https://github.com/qmk/qmk_firmware/pull/21558), [#21580](https://github.com/qmk/qmk_firmware/pull/21580), [#21594](https://github.com/qmk/qmk_firmware/pull/21594), [#21624](https://github.com/qmk/qmk_firmware/pull/21624), [#21710](https://github.com/qmk/qmk_firmware/pull/21710)) :id=driver-naming-consolidation + +In most circumstances this won't affect users -- only keyboard designers with currently-unmerged boards. The only users affected are people who have modified existing keyboards in order to add/modify haptics, lighting, or bluetooth -- and only if the base keyboard did not configure them already. Driver naming has been modified to be lowercase. + +RGBLight (`RGBLIGHT_DRIVER` / `rgblight.driver`): + +| Old | New | +|--------|--------| +| `WS2812` | `ws2812` | +| `APA102` | `apa102` | + +LED Matrix (`LED_MATRIX_DRIVER` / `led_matrix.driver`): + +| Old | New | +|-------------|-------------| +| `IS31FL3731` | `is31fl3731` | +| `IS31FL3742A` | `is31fl3742a` | +| `IS31FL3743A` | `is31fl3743a` | +| `IS31FL3745` | `is31fl3745` | +| `IS31FL3746A` | `is31fl3746a` | +| `CKLED2001` | `ckled2001` | + +RGB Matrix (`RGB_MATRIX_DRIVER` / `rgb_matrix.driver`): + +| Old | New | +|-------------|-------------| +| `AW20216` | `aw20216` | +| `IS31FL3731` | `is31fl3731` | +| `IS31FL3733` | `is31fl3733` | +| `IS31FL3736` | `is31fl3736` | +| `IS31FL3737` | `is31fl3737` | +| `IS31FL3741` | `is31fl3741` | +| `IS31FL3742A` | `is31fl3742a` | +| `IS31FL3743A` | `is31fl3743a` | +| `IS31FL3745` | `is31fl3745` | +| `IS31FL3746A` | `is31fl3746a` | +| `CKLED2001` | `ckled2001` | +| `WS2812` | `ws2812` | + +OLED (`OLED_DRIVER`): + +| Old | New | +|---------|---------| +| `SSD1306` | `ssd1306` | + +Haptic (`HAPTIC_DRIVER`): + +| Old | New | +|----------|----------| +| `DRV2605L` | `drv2605l` | +| `SOLENOID` | `solenoid` | + +Bluetooth (`BLUETOOTH_DRIVER` / `bluetooth.driver`): + +| Old | New | +|-------------|--------------| +| `BluefruitLE` | `bluefruit_le` | +| `RN42` | `rn42` | + +## Full changelist :id=full-changelist + +Core: +* On-each-release tap dance function ([#20255](https://github.com/qmk/qmk_firmware/pull/20255)) +* Send a dummy keycode to neutralize flashing modifiers in retro tap and key overrides ([#20992](https://github.com/qmk/qmk_firmware/pull/20992)) +* Adds a way to separate tab from AUTO_SHIFT_SPECIAL. ([#20996](https://github.com/qmk/qmk_firmware/pull/20996)) +* [Enhancement] More info on `apply_autocorrect` ([#21056](https://github.com/qmk/qmk_firmware/pull/21056)) +* Remove quantum/keymap.h ([#21086](https://github.com/qmk/qmk_firmware/pull/21086)) +* Unicodemap keycodes rename ([#21092](https://github.com/qmk/qmk_firmware/pull/21092)) +* Merge upstream uf2conv.py changes ([#21107](https://github.com/qmk/qmk_firmware/pull/21107)) +* Add a dynamic_macro_stop_recording(void) function. ([#21108](https://github.com/qmk/qmk_firmware/pull/21108)) +* platforms: chibios: wait: only define the frequency ([#21115](https://github.com/qmk/qmk_firmware/pull/21115)) +* [Enhancement] Decouple autocorrect logic ([#21116](https://github.com/qmk/qmk_firmware/pull/21116)) +* Optimisation - Add RGB LED colour set check in drivers ([#21134](https://github.com/qmk/qmk_firmware/pull/21134)) +* RGB matrix ws2812 update ([#21135](https://github.com/qmk/qmk_firmware/pull/21135)) +* Pixel rain: Refactor the rain light decision operator ([#21139](https://github.com/qmk/qmk_firmware/pull/21139)) +* Use unsigned integer for kinetic speed ([#21151](https://github.com/qmk/qmk_firmware/pull/21151)) +* Reset `matrix_need_update` properly in eager debouncing algorithms ([#21154](https://github.com/qmk/qmk_firmware/pull/21154)) +* Refactor kinetic mouse key feature ([#21164](https://github.com/qmk/qmk_firmware/pull/21164)) +* RGB Matrix limit basic indicators to the last render ([#21169](https://github.com/qmk/qmk_firmware/pull/21169)) +* dynamic keymap: Rely on introspection to handle OOB access. ([#21247](https://github.com/qmk/qmk_firmware/pull/21247)) +* add VIA support for LED Matrix ([#21281](https://github.com/qmk/qmk_firmware/pull/21281)) +* Refactor times inverse of sqrt 2 calculation ([#21293](https://github.com/qmk/qmk_firmware/pull/21293)) +* Move protocol makefiles into their respective folders ([#21332](https://github.com/qmk/qmk_firmware/pull/21332)) +* Remove use of __flash within LED drivers ([#21343](https://github.com/qmk/qmk_firmware/pull/21343)) +* STM32H723 support ([#21352](https://github.com/qmk/qmk_firmware/pull/21352)) +* Remove CORTEX_ENABLE_WFI_IDLE from keyboards. ([#21353](https://github.com/qmk/qmk_firmware/pull/21353)) +* Get rid of `USB_LED_KANA` and `USB_LED_COMPOSE` ([#21366](https://github.com/qmk/qmk_firmware/pull/21366)) +* Minor board clean-up after #19780 ([#21391](https://github.com/qmk/qmk_firmware/pull/21391)) +* Get rid of `USB_LED_SCROLL_LOCK` ([#21405](https://github.com/qmk/qmk_firmware/pull/21405)) +* Get rid of `USB_LED_NUM_LOCK` ([#21424](https://github.com/qmk/qmk_firmware/pull/21424)) +* Simplify audio_duration_to_ms() and audio_ms_to_duration(), reduce firmware size by a few bytes. ([#21427](https://github.com/qmk/qmk_firmware/pull/21427)) +* Allow key override to respect weak mods caused by caps word ([#21434](https://github.com/qmk/qmk_firmware/pull/21434)) +* Get rid of `USB_LED_CAPS_LOCK` ([#21436](https://github.com/qmk/qmk_firmware/pull/21436)) +* tmk_core: remove direct `quantum.h` includes ([#21465](https://github.com/qmk/qmk_firmware/pull/21465)) +* bootmagic mods covering the case when swapped mods are pressed at the same time (#21320) ([#21472](https://github.com/qmk/qmk_firmware/pull/21472)) +* drivers: remove direct `quantum.h` includes ([#21473](https://github.com/qmk/qmk_firmware/pull/21473)) +* debounce: remove direct `quantum.h` includes ([#21480](https://github.com/qmk/qmk_firmware/pull/21480)) +* keymap_extras: remove direct `quantum.h` includes ([#21485](https://github.com/qmk/qmk_firmware/pull/21485)) +* process_keycode: remove direct `quantum.h` includes ([#21486](https://github.com/qmk/qmk_firmware/pull/21486)) +* Add MOUSEKEY_WHEEL_DELTA documentation ([#21493](https://github.com/qmk/qmk_firmware/pull/21493)) +* Reduce needless precision in audio note frequency calculation ([#21496](https://github.com/qmk/qmk_firmware/pull/21496)) +* Remove needless precision in additive DAC sample generation ([#21498](https://github.com/qmk/qmk_firmware/pull/21498)) +* quantum: remove direct `quantum.h` includes ([#21507](https://github.com/qmk/qmk_firmware/pull/21507)) +* process_combo: restore wait.h header ([#21514](https://github.com/qmk/qmk_firmware/pull/21514)) +* Eliminate `TMK_COMMON_*` in makefiles ([#21517](https://github.com/qmk/qmk_firmware/pull/21517)) +* backlight: split AVR PWM and timer drivers ([#21540](https://github.com/qmk/qmk_firmware/pull/21540)) +* haptic: naming cleanups ([#21551](https://github.com/qmk/qmk_firmware/pull/21551)) +* rgblight: driver selection cleanups ([#21558](https://github.com/qmk/qmk_firmware/pull/21558)) +* LED Matrix: driver naming cleanups ([#21580](https://github.com/qmk/qmk_firmware/pull/21580)) +* Unify MIDI note calculation with the audio feature (from #21496) ([#21588](https://github.com/qmk/qmk_firmware/pull/21588)) +* Allow the user to select a single tone for the additive DAC ([#21591](https://github.com/qmk/qmk_firmware/pull/21591)) +* RGB Matrix: driver naming cleanups ([#21594](https://github.com/qmk/qmk_firmware/pull/21594)) +* Raw HID: documentation improvements ([#21596](https://github.com/qmk/qmk_firmware/pull/21596)) +* Unicode: move keycode aliases to a separate header ([#21613](https://github.com/qmk/qmk_firmware/pull/21613)) +* Bluetooth: driver naming cleanups ([#21624](https://github.com/qmk/qmk_firmware/pull/21624)) +* Remove old OLED API code ([#21651](https://github.com/qmk/qmk_firmware/pull/21651)) +* haptic: further naming cleanups ([#21682](https://github.com/qmk/qmk_firmware/pull/21682)) +* Simplfy RGB/LED matrix effect logic ([#21703](https://github.com/qmk/qmk_firmware/pull/21703)) +* OLED: driver naming cleanups ([#21710](https://github.com/qmk/qmk_firmware/pull/21710)) + +CLI: +* Add *_MATRIX_LED_COUNT generation/validation ([#19515](https://github.com/qmk/qmk_firmware/pull/19515)) +* Revert "Add *_MATRIX_LED_COUNT generation/validation" ([#21109](https://github.com/qmk/qmk_firmware/pull/21109)) +* Add *_MATRIX_LED_COUNT generation ([#21110](https://github.com/qmk/qmk_firmware/pull/21110)) +* feat, docs: WB32 flashing ([#21217](https://github.com/qmk/qmk_firmware/pull/21217)) +* Improve error messages when layout key matrix row/col is OOB ([#21640](https://github.com/qmk/qmk_firmware/pull/21640)) + +Submodule updates: +* Update ChibiOS-Contrib ([#21553](https://github.com/qmk/qmk_firmware/pull/21553)) + +Keyboards: +* Add support for Rastersoft MiniTKL ([#20230](https://github.com/qmk/qmk_firmware/pull/20230)) +* Remove encoder in-matrix workaround code ([#20389](https://github.com/qmk/qmk_firmware/pull/20389)) +* Revamp `dactyl_manuform` readme.md ([#20395](https://github.com/qmk/qmk_firmware/pull/20395)) +* added hackpad keyboard ([#20402](https://github.com/qmk/qmk_firmware/pull/20402)) +* Add `handwired/dactyl_cc` keyboard ([#20517](https://github.com/qmk/qmk_firmware/pull/20517)) +* Add Mino Plus Hotswap ([#20534](https://github.com/qmk/qmk_firmware/pull/20534)) +* Move kb83 keyboard. ([#20761](https://github.com/qmk/qmk_firmware/pull/20761)) +* Rename `dactyl_manuform` variant `3x5_3` ([#21015](https://github.com/qmk/qmk_firmware/pull/21015)) +* Update `k34` layout to `split_3x5_2` ([#21046](https://github.com/qmk/qmk_firmware/pull/21046)) +* giabalanai keymaps: transpose added ([#21054](https://github.com/qmk/qmk_firmware/pull/21054)) +* Move `RGBLIGHT_SLEEP` to data driven ([#21072](https://github.com/qmk/qmk_firmware/pull/21072)) +* update layouts of `dactyl_manuform/4x5_5` ([#21094](https://github.com/qmk/qmk_firmware/pull/21094)) +* Move `RGBLIGHT_LED_MAP` to data driven ([#21095](https://github.com/qmk/qmk_firmware/pull/21095)) +* Move `RGBLED_SPLIT` to data driven ([#21113](https://github.com/qmk/qmk_firmware/pull/21113)) +* Update `dactyl_promicro` readme ([#21144](https://github.com/qmk/qmk_firmware/pull/21144)) +* Delete jscotto directory ([#21157](https://github.com/qmk/qmk_firmware/pull/21157)) +* correct and modernise `dactyl_manuform/6x7` variant ([#21176](https://github.com/qmk/qmk_firmware/pull/21176)) +* Move `RGBLIGHT_SPLIT` to data driven ([#21190](https://github.com/qmk/qmk_firmware/pull/21190)) +* Minor amendment to `bcat` userspace to prevent build failure ([#21205](https://github.com/qmk/qmk_firmware/pull/21205)) +* FJLabs Swordfish Layout Macro Refactor ([#21234](https://github.com/qmk/qmk_firmware/pull/21234)) +* Add skyloong/Dt40 keyboard ([#21237](https://github.com/qmk/qmk_firmware/pull/21237)) +* `dactyl_manuform/6x7` correction ([#21240](https://github.com/qmk/qmk_firmware/pull/21240)) +* Amend `ryanbaekr` boards by pin definitions ([#21248](https://github.com/qmk/qmk_firmware/pull/21248)) +* EC Pro X JIS Layout Touch-Up ([#21260](https://github.com/qmk/qmk_firmware/pull/21260)) +* Eason Aeroboard Refactor ([#21271](https://github.com/qmk/qmk_firmware/pull/21271)) +* Move `RGBLED_NUM` to data driven ([#21278](https://github.com/qmk/qmk_firmware/pull/21278)) +* Remove default `TAPPING_TERM` from keyboard config.h ([#21284](https://github.com/qmk/qmk_firmware/pull/21284)) +* Move `RGBLIGHT_HUE/SAT/VAL_STEP` to data driven ([#21292](https://github.com/qmk/qmk_firmware/pull/21292)) +* Move `TAPPING_TERM` to data driven ([#21296](https://github.com/qmk/qmk_firmware/pull/21296)) +* Modernize, correct, and uniform `dactyl_manuform` variant `5x6_68` ([#21299](https://github.com/qmk/qmk_firmware/pull/21299)) +* rename and modernise `dactyl_manuform/6x6_kinesis` ([#21302](https://github.com/qmk/qmk_firmware/pull/21302)) +* ProtoTypist PT-60 Refactor ([#21322](https://github.com/qmk/qmk_firmware/pull/21322)) +* ProtoTypist PT-80 Refactor ([#21325](https://github.com/qmk/qmk_firmware/pull/21325)) +* add jels60v2 support ([#21337](https://github.com/qmk/qmk_firmware/pull/21337)) +* Move `RGB_MATRIX_HUE/SAT/VAL/SPD_STEP` to data driven ([#21354](https://github.com/qmk/qmk_firmware/pull/21354)) +* Move `TAPPING_TOGGLE` to data driven ([#21360](https://github.com/qmk/qmk_firmware/pull/21360)) +* Move `TAP_CODE_DELAY` to data driven ([#21363](https://github.com/qmk/qmk_firmware/pull/21363)) +* gmmk/pro: Turn off RGB when suspended ([#21370](https://github.com/qmk/qmk_firmware/pull/21370)) +* Move miscellaneous defines to data driven ([#21382](https://github.com/qmk/qmk_firmware/pull/21382)) +* kyria: remove `LAYOUT_stack` ([#21384](https://github.com/qmk/qmk_firmware/pull/21384)) +* Reduce `keebio/bamfk1:via` firmware size ([#21432](https://github.com/qmk/qmk_firmware/pull/21432)) +* Refactor `capsunlocked/cu80/v2` ([#21454](https://github.com/qmk/qmk_firmware/pull/21454)) +* Mechlovin Zed65 rev1 Develop Touch-Up ([#21476](https://github.com/qmk/qmk_firmware/pull/21476)) +* Add PW88 keyboard ([#21482](https://github.com/qmk/qmk_firmware/pull/21482)) +* Prepare ymdk/ymd75 for rev4 ([#21484](https://github.com/qmk/qmk_firmware/pull/21484)) +* Move `DEBOUNCE_TYPE` to data driven ([#21489](https://github.com/qmk/qmk_firmware/pull/21489)) +* aleblazer/zodiark:via: Disable two RGB effects ([#21495](https://github.com/qmk/qmk_firmware/pull/21495)) +* Spruce up `dactyl_lightcycle` and `dactyl_maximus` layouts ([#21519](https://github.com/qmk/qmk_firmware/pull/21519)) +* Amend layout and matrix positions for `dactyl_cc` ([#21523](https://github.com/qmk/qmk_firmware/pull/21523)) +* moved model h controller under ibm/model_m ([#21526](https://github.com/qmk/qmk_firmware/pull/21526)) +* tominabox1/le_chiffre refactor pt 1 ([#21567](https://github.com/qmk/qmk_firmware/pull/21567)) +* Update ERA65 PCB ([#21592](https://github.com/qmk/qmk_firmware/pull/21592)) +* Update `usb.`* for dactyl_cc ([#21612](https://github.com/qmk/qmk_firmware/pull/21612)) +* Kintwin controller for kinesis keyboard, split layout ([#21614](https://github.com/qmk/qmk_firmware/pull/21614)) +* Add STM32f3 Discovery onekey ([#21625](https://github.com/qmk/qmk_firmware/pull/21625)) +* Automata02 Alisaie Develop Touch-Up ([#21630](https://github.com/qmk/qmk_firmware/pull/21630)) +* Move RGBLight animations to data driven ([#21635](https://github.com/qmk/qmk_firmware/pull/21635)) +* Refactoring entirely Caticorn PCB ([#21644](https://github.com/qmk/qmk_firmware/pull/21644)) +* AMJKeyboard AMJ84 Develop Touch-Up ([#21645](https://github.com/qmk/qmk_firmware/pull/21645)) +* Remove layout aliases from keyboard_aliases.hjson ([#21658](https://github.com/qmk/qmk_firmware/pull/21658)) +* kikoslab/kl90: Remove invalid config option ([#21708](https://github.com/qmk/qmk_firmware/pull/21708)) +* Remove more legacy config.h options ([#21709](https://github.com/qmk/qmk_firmware/pull/21709)) +* add willoucom/keypad ([#21714](https://github.com/qmk/qmk_firmware/pull/21714)) +* Tidy up encoder in matrix references ([#21718](https://github.com/qmk/qmk_firmware/pull/21718)) +* Add city42 ([#21727](https://github.com/qmk/qmk_firmware/pull/21727)) +* feat: add squigglybob splitkb kyria rev2 keymap ([#21751](https://github.com/qmk/qmk_firmware/pull/21751)) +* Align SENSE75 with recent Drop additions ([#21757](https://github.com/qmk/qmk_firmware/pull/21757)) + +Keyboard fixes: +* fix `scheikled` keymap for `dactyl_manuform/4x6` ([#21206](https://github.com/qmk/qmk_firmware/pull/21206)) +* Fixup `dekunukem/duckypad` ([#21298](https://github.com/qmk/qmk_firmware/pull/21298)) +* Fixup `nightly_boards/n40_o` ([#21307](https://github.com/qmk/qmk_firmware/pull/21307)) +* Fix `rate/pistachio_pro:via` ([#21339](https://github.com/qmk/qmk_firmware/pull/21339)) +* Fix encoder map declarations ([#21435](https://github.com/qmk/qmk_firmware/pull/21435)) +* jones/v1: fix layout offset and disable audio on via keymap ([#21468](https://github.com/qmk/qmk_firmware/pull/21468)) +* Fix backlight support for some boards ([#21554](https://github.com/qmk/qmk_firmware/pull/21554)) +* kinesis: remove stacked split layouts ([#21569](https://github.com/qmk/qmk_firmware/pull/21569)) +* Fix layout offsets for a handful of boards ([#21636](https://github.com/qmk/qmk_firmware/pull/21636)) +* doio/kb38: fix layout ([#21704](https://github.com/qmk/qmk_firmware/pull/21704)) +* Fix drop/shift/v2 compilation ([#21800](https://github.com/qmk/qmk_firmware/pull/21800)) +* Fix keyboards with old RGB driver names ([#21815](https://github.com/qmk/qmk_firmware/pull/21815)) +* Fix keyboards with old RGB driver names ([#21817](https://github.com/qmk/qmk_firmware/pull/21817)) + +Others: +* Rework info.json reference ([#21324](https://github.com/qmk/qmk_firmware/pull/21324)) +* Enable auto-merge of develop to riot ([#21389](https://github.com/qmk/qmk_firmware/pull/21389)) + +Bugs: +* Fix non-functional S3 wakeup / resume from suspense ([#19780](https://github.com/qmk/qmk_firmware/pull/19780)) +* [Bugfix] Check `NULL` pointers on QP ([#20481](https://github.com/qmk/qmk_firmware/pull/20481)) +* Fix PS2_MOUSE_INVERT_BUTTONS ([#20646](https://github.com/qmk/qmk_firmware/pull/20646)) +* Fix backlight sync on suspend_power_down for split keyboards ([#21079](https://github.com/qmk/qmk_firmware/pull/21079)) +* Consolidate `KEYBOARD_OUTPUT`+`KEYMAP_OUTPUT`=>`INTERMEDIATE_OUTPUT` ([#21272](https://github.com/qmk/qmk_firmware/pull/21272)) +* Chibios USB: Take into account if host wants remote wakeup or not ([#21287](https://github.com/qmk/qmk_firmware/pull/21287)) +* Fix anchor IDs for some API references ([#21345](https://github.com/qmk/qmk_firmware/pull/21345)) +* Pixel fractal: Set minimum middle column value ([#21365](https://github.com/qmk/qmk_firmware/pull/21365)) +* Fix ili9xxx inversion opcode entry ([#21422](https://github.com/qmk/qmk_firmware/pull/21422)) +* Relocate backlight drivers ([#21444](https://github.com/qmk/qmk_firmware/pull/21444)) +* Fixup STM32-DFU ([#21447](https://github.com/qmk/qmk_firmware/pull/21447)) +* keycode aliases: work around ChibiOS ch.h include guard ([#21497](https://github.com/qmk/qmk_firmware/pull/21497)) +* Fix compilation error when Split Watchdog enabled ([#21543](https://github.com/qmk/qmk_firmware/pull/21543)) +* Revert " Fix compilation error when Split Watchdog enabled" ([#21572](https://github.com/qmk/qmk_firmware/pull/21572)) +* quantum.h: clean up process_keycode includes ([#21579](https://github.com/qmk/qmk_firmware/pull/21579)) +* Fix stuck note with square wave in additive DAC ([#21589](https://github.com/qmk/qmk_firmware/pull/21589)) +* [Fix] USB HID tests compliance ([#21626](https://github.com/qmk/qmk_firmware/pull/21626)) +* Fix Dynamic Macro Compilation for avr-gcc 5.4.0 + Linux ([#21653](https://github.com/qmk/qmk_firmware/pull/21653)) +* Unicode, Unicodemap and UCIS refactor ([#21659](https://github.com/qmk/qmk_firmware/pull/21659)) +* Audio: Don't play the first note of zero-note melodies ([#21661](https://github.com/qmk/qmk_firmware/pull/21661)) +* Fix mouse-key spamming empty reports ([#21663](https://github.com/qmk/qmk_firmware/pull/21663)) +* Restore usb suspend wakeup delay ([#21676](https://github.com/qmk/qmk_firmware/pull/21676)) +* Fix compilation error for APA on ChibiOS ([#21773](https://github.com/qmk/qmk_firmware/pull/21773)) +* fix: restore rgb matrix indicators to jellybean_raindrops animation ([#21792](https://github.com/qmk/qmk_firmware/pull/21792)) +* Remove `led_matrix.hue_steps` and `led_matrix.sat_steps` from schema ([#21827](https://github.com/qmk/qmk_firmware/pull/21827)) +* Revert changes to ChibiOS Suspend Code ([#21830](https://github.com/qmk/qmk_firmware/pull/21830)) +* Add "apm32-dfu" in keyboard.jsonschema ([#21842](https://github.com/qmk/qmk_firmware/pull/21842)) diff --git a/docs/_summary.md b/docs/_summary.md index 8b7959c2b34..d7dbd38c988 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -139,7 +139,7 @@ * Breaking Changes * [Overview](breaking_changes.md) * [My Pull Request Was Flagged](breaking_changes_instructions.md) - * [Most Recent ChangeLog](ChangeLog/20230528.md "QMK v0.21.0 - 2023 May 28") + * [Most Recent ChangeLog](ChangeLog/20230827.md "QMK v0.22.0 - 2023 Aug 27") * [Past Breaking Changes](breaking_changes_history.md) * C Development diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index e660182c328..fdf6ccef9c7 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch ## What has been included in past Breaking Changes? +* [2023 Aug 27](ChangeLog/20230827.md) * [2023 May 28](ChangeLog/20230528.md) * [2023 Feb 26](ChangeLog/20230226.md) -* [2022 Nov 26](ChangeLog/20221126.md) * [Older Breaking Changes](breaking_changes_history.md) ## When is the next Breaking Change? -The next Breaking Change is scheduled for August 27, 2023. +The next Breaking Change is scheduled for November 26, 2023. ### Important Dates -* 2023 May 28 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* 2023 Jul 30 - `develop` closed to new PRs. -* 2023 Jul 30 - Call for testers. -* 2023 Aug 13 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* 2023 Aug 20 - `develop` is locked, only critical bugfix PRs merged. -* 2023 Aug 25 - `master` is locked, no PRs merged. -* 2023 Aug 27 - Merge `develop` to `master`. -* 2023 Aug 27 - `master` is unlocked. PRs can be merged again. +* 2023 Aug 27 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. +* 2023 Oct 29 - `develop` closed to new PRs. +* 2023 Oct 29 - Call for testers. +* 2023 Nov 5 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes +* 2023 Nov 19 - `develop` is locked, only critical bugfix PRs merged. +* 2023 Nov 23 - `master` is locked, no PRs merged. +* 2023 Nov 26 - Merge `develop` to `master`. +* 2023 Nov 26 - `master` is unlocked. PRs can be merged again. ## What changes will be included? @@ -48,7 +48,7 @@ Criteria for acceptance: Strongly suggested: -* The PR has a ChangeLog file describing the changes under `/docs/Changelog/20230827`. +* The PR has a ChangeLog file describing the changes under `/docs/Changelog/20231126`. * This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PRs ID. * One strong recommendation that the ChangeLog document matches the PR description on GitHub, so as to ensure traceability. @@ -119,6 +119,7 @@ This happens immediately after the previous `develop` branch is merged to `maste * `git commit -m 'Branch point for Breaking Change'` * `git tag breakpoint___
` * `git push upstream breakpoint___
` + * `git push upstream develop` * All submodules under `lib` now need to be checked against their QMK-based forks: * `git submodule foreach git log -n1` diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md index 79f2899d2cf..deb3dfb9900 100644 --- a/docs/breaking_changes_history.md +++ b/docs/breaking_changes_history.md @@ -2,6 +2,7 @@ This page links to all previous changelogs from the QMK Breaking Changes process. +* [2023 Aug 27](ChangeLog/20230827.md) - version 0.22.0 * [2023 May 28](ChangeLog/20230528.md) - version 0.21.0 * [2023 Feb 26](ChangeLog/20230226.md) - version 0.20.0 * [2022 Nov 26](ChangeLog/20221126.md) - version 0.19.0 diff --git a/docs/coding_conventions_c.md b/docs/coding_conventions_c.md index 3f44da713d4..32f6de7ff75 100644 --- a/docs/coding_conventions_c.md +++ b/docs/coding_conventions_c.md @@ -8,8 +8,8 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely * Closing Brace: Lined up with the first character of the statement that opens the block * Else If: Place the closing brace at the beginning of the line and the next opening brace at the end of the same line. * Optional Braces: Always include optional braces. - * Good: if (condition) { return false; } - * Bad: if (condition) return false; + * Good: `if (condition) { return false; }` + * Bad: `if (condition) return false;` * We encourage use of C style comments: `/* */` * Think of them as a story describing the feature * Use them liberally to explain why particular decisions were made. diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md index cc9c0b7f92a..197033f78b5 100644 --- a/docs/compatible_microcontrollers.md +++ b/docs/compatible_microcontrollers.md @@ -43,6 +43,8 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s * [STM32F446](https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html) * [STM32G431](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x1.html) * [STM32G474](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x4.html) + * [STM32H723](https://www.st.com/en/microcontrollers-microprocessors/stm32h723-733.html) + * [STM32H733](https://www.st.com/en/microcontrollers-microprocessors/stm32h723-733.html) * [STM32L412](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html) * [STM32L422](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html) * [STM32L432](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html) diff --git a/docs/config_options.md b/docs/config_options.md index 4698260118f..8119b9e356f 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -439,7 +439,7 @@ Use these to enable or disable building certain features. The more you have enab * `UNICODE_ENABLE` * Unicode * `BLUETOOTH_ENABLE` - * Current options are BluefruitLE, RN42 + * Current options are bluefruit_le, rn42 * `SPLIT_KEYBOARD` * Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common * `CUSTOM_MATRIX` diff --git a/docs/contributing.md b/docs/contributing.md index bb46add7892..e94a6376098 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -36,7 +36,7 @@ If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/iss Never made an open source contribution before? Wondering how contributions work in QMK? Here's a quick rundown! 0. Sign up for a [GitHub](https://github.com) account. -1. Put together a keymap to contribute, [find an issue](https://github.com/qmk/qmk_firmware/issues) you are interested in addressing, or [a feature](https://github.com/qmk/qmk_firmware/issues?q=is%3Aopen+is%3Aissue+label%3Afeature) you would like to add. +1. [Find an issue](https://github.com/qmk/qmk_firmware/issues) you are interested in addressing, or [a feature](https://github.com/qmk/qmk_firmware/issues?q=is%3Aopen+is%3Aissue+label%3Afeature) you would like to add. 2. Fork the repository associated with the issue to your GitHub account. This means that you will have a copy of the repository under `your-GitHub-username/qmk_firmware`. 3. Clone the repository to your local machine using `git clone https://github.com/github-username/repository-name.git`. 4. If you're working on a new feature consider opening an issue to talk with us about the work you're about to undertake. @@ -63,10 +63,11 @@ Most of our style is pretty easy to pick up on. If you are familiar with either We have a few different types of changes in QMK, each requiring a different level of rigor. We'd like you to keep the following guidelines in mind no matter what type of change you're making. +* **Before you contribute:** Please make sure your fork is up to date with the upstream `qmk_firmware` repo. This will help minimize CI failures that may not occur for you when compiling locally. * Separate PRs into logical units. For example, do not submit one PR covering two separate features, instead submit a separate PR for each feature. * Check for unnecessary whitespace with `git diff --check` before committing. * Make sure your code change actually compiles. - * Keymaps: Make sure that `make keyboard:your_new_keymap` does not return any errors. + * Keymaps: Make sure that `make keyboard:keymap` does not return any errors. * Keyboards: Make sure that `make keyboard:all` does not return any errors. * Core: Make sure that `make all` does not return any errors. * Make sure commit messages are understandable on their own. You should put a short description (no more than 70 characters) on the first line, the second line should be empty, and on the 3rd and later lines you should describe your commit in detail, if required. Example: @@ -113,16 +114,6 @@ or if you only have Python 3 installed: and navigating to `http://localhost:8936/`. -## Keymaps - -Most first-time QMK contributors start with their personal keymaps. We try to keep keymap standards pretty casual (keymaps, after all, reflect the personality of their creators) but we do ask that you follow these guidelines to make it easier for others to discover and learn from your keymap. - -* Write a `readme.md` using [the template](documentation_templates.md). -* All Keymap PRs are squashed, so if you care about how your commits are squashed you should do it yourself -* Do not lump features in with keymap PRs. Submit the feature first and then a second PR for the keymap. -* Do not include `Makefile`s in your keymap folder (they're no longer used) -* Update copyrights in file headers (look for `%YOUR_NAME%`) - ## Keyboards Keyboards are the raison d'être for QMK. Some keyboards are community maintained, while others are maintained by the people responsible for making a particular keyboard. The `readme.md` should tell you who maintains a particular keyboard. If you have questions relating to a particular keyboard you can [Open An Issue](https://github.com/qmk/qmk_firmware/issues) and tag the maintainer in your question. @@ -130,7 +121,7 @@ Keyboards are the raison d'être for QMK. Some keyboards are community maintaine We also ask that you follow these guidelines: * Write a `readme.md` using [the template](documentation_templates.md). -* Keep the number of commits reasonable or we will squash your PR +* Include a `default` keymap that provides a clean slate for users to start with when creating their own keymaps. * Do not lump core features in with new keyboards. Submit the feature first and then submit a separate PR for the keyboard. * Name `.c`/`.h` file after the immediate parent folder, eg `/keyboards///.[ch]` * Do not include `Makefile`s in your keyboard folder (they're no longer used) diff --git a/docs/data_driven_config.md b/docs/data_driven_config.md index ba287f5688e..b288f9901a8 100644 --- a/docs/data_driven_config.md +++ b/docs/data_driven_config.md @@ -79,8 +79,8 @@ If you are not sure how to edit this file or are not comfortable with Python [op The final piece of the puzzle is providing your new option to the build system. This is done by generating two files: -* `.build/obj_/src/info_config.h` -* `.build/obj_/src/rules.mk` +* `.build/obj__/src/info_config.h` +* `.build/obj__/src/rules.mk` These two files are generated by the code here: diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md index 1719807e268..6241cbaeb15 100644 --- a/docs/feature_auto_shift.md +++ b/docs/feature_auto_shift.md @@ -133,7 +133,17 @@ groups in the below fallback switch. ### NO_AUTO_SHIFT_SPECIAL (simple define) Do not Auto Shift special keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>, -and /? +/?, and the KC_TAB. + +### NO_AUTO_SHIFT_TAB (simple define) + +Do not Auto Shift KC_TAB but leave Auto Shift enabled for the other special +characters. + +### NO_AUTO_SHIFT_SYMBOLS (simple define) + +Do not Auto Shift symbol keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>, +and /?. ### NO_AUTO_SHIFT_NUMERIC (simple define) @@ -143,9 +153,13 @@ Do not Auto Shift numeric keys, zero through nine. Do not Auto Shift alpha characters, which include A through Z. +### AUTO_SHIFT_ENTER (simple define) + +Auto Shift the enter key. + ### Auto Shift Per Key -There are functions that allows you to determine which keys shold be autoshifted, much like the tap-hold keys. +There are functions that allows you to determine which keys should be autoshifted, much like the tap-hold keys. The first of these, used to simply add a key to Auto Shift, is `get_custom_auto_shifted_key`: @@ -172,9 +186,15 @@ bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { case KC_1 ... KC_0: # endif # ifndef NO_AUTO_SHIFT_SPECIAL +# ifndef NO_AUTO_SHIFT_TAB case KC_TAB: - case KC_MINUS ... KC_SLASH: - case KC_NONUS_BACKSLASH: +# endif +# ifndef NO_AUTO_SHIFT_SYMBOLS + case AUTO_SHIFT_SYMBOLS: +# endif +# endif +# ifdef AUTO_SHIFT_ENTER + case KC_ENT: # endif return true; } @@ -192,6 +212,25 @@ Enables keyrepeat. Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded. + +### AUTO_SHIFT_ALPHA (predefined key group) + +A predefined group of keys representing A through Z. + +### AUTO_SHIFT_NUMERIC (predefined key group) + +A predefined group of keys representing 0 through 9. Note, these are defined as +1 through 0 since that is the order they normally appear in. + +### AUTO_SHIFT_SYMBOLS (predefined key group) + +A predefined group of keys representing symbolic characters which include -\_, =+, [{, ]}, ;:, '", ,<, .>, +and /?. + +### AUTO_SHIFT_SPECIAL (predefined key group) + +A predefined group of keys that combines AUTO_SHIFT_SYMBOLS and KC_TAB. + ## Custom Shifted Values Especially on small keyboards, the default shifted value for many keys is not diff --git a/docs/feature_autocorrect.md b/docs/feature_autocorrect.md index 9f80c93f827..3a0a49095c6 100644 --- a/docs/feature_autocorrect.md +++ b/docs/feature_autocorrect.md @@ -198,7 +198,9 @@ bool process_autocorrect_user(uint16_t *keycode, keyrecord_t *record, uint8_t *t ### Apply Autocorrect -Additionally, `apply_autocorrect(uint8_t backspaces, const char *str)` allows for users to add additional handling to the autocorrection, or replace the functionality entirely. This passes on the number of backspaces needed to replace the words, as well as the replacement string (partial word, not the full word). +Additionally, `apply_autocorrect(uint8_t backspaces, const char *str, char *typo, char *correct)` allows for users to add additional handling to the autocorrection, or replace the functionality entirely. This passes on the number of backspaces needed to replace the words, as well as the replacement string (partial word, not the full word), and the typo and corrected strings (complete words). + +?> Due to the way code works (no notion of words, just a stream of letters), the `typo` and `correct` strings are a best bet and could be "wrong". For example you may get `wordtpyo` & `wordtypo` instead of the expected `tpyo` & `typo`. #### Apply Autocorrect Example @@ -209,7 +211,7 @@ This following example will play a sound when a typo is autocorrected and execut float autocorrect_song[][2] = SONG(TERMINAL_SOUND); #endif -bool apply_autocorrect(uint8_t backspaces, const char *str) { +bool apply_autocorrect(uint8_t backspaces, const char *str, char *typo, char *correct) { #ifdef AUDIO_ENABLE PLAY_SONG(autocorrect_song); #endif @@ -223,14 +225,17 @@ bool apply_autocorrect(uint8_t backspaces, const char *str) { ?> In this callback function, `return false` will stop the normal processing of autocorrect, which requires manually handling of removing the "bad" characters and typing the new characters. -!> ***IMPORTANT***: `str` is a pointer to `PROGMEM` data for the autocorrection. If you return false, and want to send the string, this needs to use `send_string_P` and not `send_string` or `SEND_STRING`. +!> ***IMPORTANT***: `str` is a pointer to `PROGMEM` data for the autocorrection. If you return false, and want to send the string, this needs to use `send_string_P` and not `send_string` nor `SEND_STRING`. You can also use `apply_autocorrect` to detect and display the event but allow internal code to execute the autocorrection with `return true`: ```c -bool apply_autocorrect(uint8_t backspaces, const char *str) { +bool apply_autocorrect(uint8_t backspaces, const char *str, char *typo, char *correct) { #ifdef OLED_ENABLE oled_write_P(PSTR("Auto-corrected"), false); +#endif +#ifdef CONSOLE_ENABLE + printf("'%s' was corrected to '%s'\n", typo, correct); #endif return true; } diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md index 24057c608f8..d032c33f18a 100644 --- a/docs/feature_backlight.md +++ b/docs/feature_backlight.md @@ -1,12 +1,12 @@ # Backlighting :id=backlighting -Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard. +Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB Underglow](feature_rgblight.md) and [RGB Matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard. QMK is able to control the brightness of these LEDs by switching them on and off rapidly in a certain ratio, a technique known as *Pulse Width Modulation*, or PWM. By altering the duty cycle of the PWM signal, it creates the illusion of dimming. -The MCU can only supply so much current to its GPIO pins. Instead of powering the backlight directly from the MCU, the backlight pin is connected to a transistor or MOSFET that switches the power to the LEDs. +## Usage :id=usage -Most keyboards have backlighting enabled by default if they support it, but if it is not working for you, check that your `rules.mk` includes the following: +Most keyboards have backlighting enabled by default if they support it, but if it is not working for you (or you have added support), check that your `rules.mk` includes the following: ```make BACKLIGHT_ENABLE = yes @@ -14,57 +14,23 @@ BACKLIGHT_ENABLE = yes ## Keycodes :id=keycodes -Once enabled, the following keycodes below can be used to change the backlight level. +|Key |Aliases |Description | +|-------------------------------|---------|-----------------------------------| +|`QK_BACKLIGHT_TOGGLE` |`BL_TOGG`|Turn the backlight on or off | +|`QK_BACKLIGHT_STEP` |`BL_STEP`|Cycle through backlight levels | +|`QK_BACKLIGHT_ON` |`BL_ON` |Set the backlight to max brightness| +|`QK_BACKLIGHT_OFF` |`BL_OFF` |Turn the backlight off | +|`QK_BACKLIGHT_UP` |`BL_UP` |Increase the backlight level | +|`QK_BACKLIGHT_DOWN` |`BL_DOWN`|Decrease the backlight level | +|`QK_BACKLIGHT_TOGGLE_BREATHING`|`BL_BRTG`|Toggle backlight breathing | -| Key | Aliases | Description | -|---------------------------------|-----------|-------------------------------------| -| `QK_BACKLIGHT_TOGGLE` | `BL_TOGG` | Turn the backlight on or off | -| `QK_BACKLIGHT_STEP` | `BL_STEP` | Cycle through backlight levels | -| `QK_BACKLIGHT_ON` | `BL_ON` | Set the backlight to max brightness | -| `QK_BACKLIGHT_OFF` | `BL_OFF` | Turn the backlight off | -| `QK_BACKLIGHT_UP` | `BL_UP` | Increase the backlight level | -| `QK_BACKLIGHT_DOWN` | `BL_DOWN` | Decrease the backlight level | -| `QK_BACKLIGHT_TOGGLE_BREATHING` | `BL_BRTG` | Toggle backlight breathing | +## Basic Configuration :id=basic-configuration -## Functions :id=functions - -These functions can be used to change the backlighting in custom code: - -|Function |Description | -|------------------------|--------------------------------------------| -|`backlight_toggle()` |Turn the backlight on or off | -|`backlight_enable()` |Turn the backlight on | -|`backlight_disable()` |Turn the backlight off | -|`backlight_step()` |Cycle through backlight levels | -|`backlight_increase()` |Increase the backlight level | -|`backlight_decrease()` |Decrease the backlight level | -|`backlight_level(x)` |Sets the backlight level to specified level | -|`get_backlight_level()` |Return the current backlight level | -|`is_backlight_enabled()`|Return whether the backlight is currently on| - -If backlight breathing is enabled (see below), the following functions are also available: - -|Function |Description | -|---------------------|--------------------------------------| -|`breathing_toggle()` |Turn the backlight breathing on or off| -|`breathing_enable()` |Turns on backlight breathing | -|`breathing_disable()`|Turns off backlight breathing | - -## Configuration :id=configuration - -To select which driver to use, configure your `rules.mk` with the following: - -```make -BACKLIGHT_DRIVER = software -``` - -Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help on individual drivers. - -To configure the backlighting, `#define` these in your `config.h`: +Add the following to your `config.h`: |Define |Default |Description | |-----------------------------|------------------|-----------------------------------------------------------------------------------------------------------------| -|`BACKLIGHT_PIN` |*Not defined* |The pin that controls the LED(s) | +|`BACKLIGHT_PIN` |*Not defined* |The pin that controls the LEDs | |`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) | |`BACKLIGHT_CAPS_LOCK` |*Not defined* |Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) | |`BACKLIGHT_BREATHING` |*Not defined* |Enable backlight breathing, if supported | @@ -76,24 +42,88 @@ To configure the backlighting, `#define` these in your `config.h`: Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`. -### Backlight On State :id=backlight-on-state +### "On" State :id=on-state Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*. Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead. -This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define. +To configure the "on" state of the backlight circuit, add the following to your `config.h`: + +```c +#define BACKLIGHT_ON_STATE 0 +``` + +### Multiple Backlight Pins :id=multiple-backlight-pins + +Most keyboards have only one backlight pin which controls all backlight LEDs (especially if the backlight is connected to a hardware PWM pin). +The `timer` and `software` drivers allow you to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle. + +This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight. + +To configure multiple backlight pins, add something like this to your `config.h`, instead of `BACKLIGHT_PIN`: + +```c +#define BACKLIGHT_PINS { F5, B2 } +``` + +## Driver Configuration :id=driver-configuration + +Backlight driver selection is configured in `rules.mk`. Valid drivers are `pwm` (default), `timer`, `software`, or `custom`. See below for information on individual drivers. -### AVR Driver :id=avr-driver +### PWM Driver :id=pwm-driver -The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be: +This is the default backlight driver, which leverages the hardware PWM output capability of the microcontroller. ```make BACKLIGHT_DRIVER = pwm ``` -#### Caveats :id=avr-caveats +### Timer Driver :id=timer-driver + +This driver is similar to the PWM driver, but instead of directly configuring the pin to output a PWM signal, an interrupt handler is attached to the timer to turn the pin on and off as appropriate. + +```make +BACKLIGHT_DRIVER = timer +``` + +### Software Driver :id=software-driver + +In this mode, PWM is "emulated" while running other keyboard tasks. It offers maximum hardware compatibility without extra platform configuration. However, breathing is not supported, and the backlight can flicker when the keyboard is busy. + +```make +BACKLIGHT_DRIVER = software +``` + +### Custom Driver :id=custom-driver + +If none of the above drivers apply to your board (for example, you are using a separate IC to control the backlight), you can implement a custom backlight driver using a simple API. + +```make +BACKLIGHT_DRIVER = custom +``` + +```c +void backlight_init_ports(void) { + // Optional - runs on startup + // Usually you want to configure pins here +} +void backlight_set(uint8_t level) { + // Optional - runs on level change + // Usually you want to respond to the new value +} + +void backlight_task(void) { + // Optional - runs periodically + // Note that this is called in the main keyboard loop, + // so long running actions here can cause performance issues +} +``` + +## AVR Configuration :id=avr-configuration + +### PWM Driver :id=avr-pwm-driver -On AVR boards, QMK automatically decides which driver to use according to the following table: +The following table describes the supported pins for the PWM driver. Only cells marked with a timer number are capable of hardware PWM output; any others must use the `timer` driver. |Backlight Pin|AT90USB64/128|AT90USB162|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P| |-------------|-------------|----------|-------------|-------------|---------|-----------| @@ -108,113 +138,169 @@ On AVR boards, QMK automatically decides which driver to use according to the fo |`D4` | | | | |Timer 1 | | |`D5` | | | | |Timer 1 | | -All other pins will use timer-assisted software PWM: +### Timer Driver :id=avr-timer-driver -|Audio Pin|Audio Timer|Software PWM Timer| -|---------|-----------|------------------| -|`C4` |Timer 3 |Timer 1 | -|`C5` |Timer 3 |Timer 1 | -|`C6` |Timer 3 |Timer 1 | -|`B5` |Timer 1 |Timer 3 | -|`B6` |Timer 1 |Timer 3 | -|`B7` |Timer 1 |Timer 3 | +Any GPIO pin can be used with this driver. The following table describes the supported timers: -When both timers are in use for Audio, the backlight PWM cannot use a hardware timer, and will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision. +|AT90USB64/128|AT90USB162|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P| +|-------------|----------|-------------|-------------|---------|-----------| +|Timers 1 & 3 |Timer 1 |Timers 1 & 3 |Timer 1 |Timer 1 |Timer 1 | -#### Hardware PWM Implementation :id=hardware-pwm-implementation +The following `#define`s apply only to the `timer` driver: -When using the supported pins for backlighting, QMK will use a hardware timer configured to output a PWM signal. This timer will count up to `ICRx` (by default `0xFFFF`) before resetting to 0. -The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the backlight pin will go low, and is pulled high again when the counter resets. -In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus the brightness, where `0x0000` is completely off and `0xFFFF` is completely on. +|Define |Default|Description | +|-----------------------|-------|----------------| +|`BACKLIGHT_PWM_TIMER` |`1` |The timer to use| -The breathing effect is achieved by registering an interrupt handler for `TIMER1_OVF_vect` that is called whenever the counter resets, roughly 244 times per second. -In this handler, the value of an incrementing counter is mapped onto a precomputed brightness curve. To turn off breathing, the interrupt handler is simply disabled, and the brightness reset to the level stored in EEPROM. +Note that the choice of timer may conflict with the [Audio](feature_audio.md) feature. -#### Timer Assisted PWM Implementation :id=timer-assisted-implementation +## ChibiOS/ARM Configuration :id=arm-configuration -When `BACKLIGHT_PIN` is not set to a hardware backlight pin, QMK will use a hardware timer configured to trigger software interrupts. This time will count up to `ICRx` (by default `0xFFFF`) before resetting to 0. -When resetting to 0, the CPU will fire an OVF (overflow) interrupt that will turn the LEDs on, starting the duty cycle. -The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the CPU will fire a Compare Output match interrupt, which will turn the LEDs off. -In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus the brightness, where `0x0000` is completely off and `0xFFFF` is completely on. +### PWM Driver :id=arm-pwm-driver -The breathing effect is the same as in the hardware PWM implementation. +Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like: -### ARM Driver :id=arm-configuration +`halconf.h`: +```c +#define HAL_USE_PWM TRUE +``` +`mcuconf.h`: +```c +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE +``` -While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be: +The following `#define`s apply only to the `pwm` driver: -```make -BACKLIGHT_DRIVER = pwm +|Define |Default |Description | +|-----------------------|--------|-----------------------------------| +|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use | +|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use | +|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use| + +Refer to the ST datasheet for your particular MCU to determine these values. For example, these defaults are set up for pin `B8` on a Proton-C (STM32F303) using `TIM4_CH3` on AF2. Unless you are designing your own keyboard, you generally should not need to change them. + +### Timer Driver :id=arm-timer-driver + +Depending on the ChibiOS board configuration, you may need to enable general-purpose timers at the keyboard level. For STM32, this would look like: + +`halconf.h`: +```c +#define HAL_USE_GPT TRUE +``` +`mcuconf.h`: +```c +#undef STM32_GPT_USE_TIM15 +#define STM32_GPT_USE_TIM15 TRUE ``` -#### ChibiOS Configuration :id=arm-configuration +The following `#define`s apply only to the `timer` driver: -The following `#define`s apply only to ARM-based keyboards: +|Define |Default |Description | +|----------------------|--------|----------------| +|`BACKLIGHT_GPT_DRIVER`|`GPTD15`|The timer to use| -|Define |Default|Description | -|-----------------------|-------|-----------------------------------| -|`BACKLIGHT_PWM_DRIVER` |`PWMD4`|The PWM driver to use | -|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use | -|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use| +## Example Schematic -See the ST datasheet for your particular MCU to determine these values. Unless you are designing your own keyboard, you generally should not need to change them. +Since the MCU can only supply so much current to its GPIO pins, instead of powering the backlight directly from the MCU, the backlight pin is connected to a transistor or MOSFET that switches the power to the LEDs. -#### Caveats :id=arm-caveats +In this typical example, the backlight LEDs are all connected in parallel towards an N-channel MOSFET. Its gate pin is wired to one of the microcontroller's GPIO pins through a 470Ω resistor to avoid ringing. +A pulldown resistor is also placed between the gate pin and ground to keep it at a defined state when it is not otherwise being driven by the MCU. +The values of these resistors are not critical - see [this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) for more information. -Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration. +![Backlight example circuit](https://i.imgur.com/BmAvoUC.png) -### Software PWM Driver :id=software-pwm-driver +## API :id=api -In this mode, PWM is "emulated" while running other keyboard tasks. It offers maximum hardware compatibility without extra platform configuration. The tradeoff is the backlight might jitter when the keyboard is busy. To enable, add this to your `rules.mk`: +### `void backlight_toggle(void)` :id=api-backlight-toggle -```make -BACKLIGHT_DRIVER = software -``` +Toggle the backlight on or off. -#### Multiple Backlight Pins :id=multiple-backlight-pins +--- -Most keyboards have only one backlight pin which controls all backlight LEDs (especially if the backlight is connected to a hardware PWM pin). -In software PWM, it is possible to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle. +### `void backlight_enable(void)` :id=api-backlight-enable -This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight. +Turn the backlight on. -To activate multiple backlight pins, add something like this to your `config.h`, instead of `BACKLIGHT_PIN`: +--- -```c -#define BACKLIGHT_PINS { F5, B2 } -``` +### `void backlight_disable(void)` :id=api-backlight-disable -### Custom Driver :id=custom-driver +Turn the backlight off. -If none of the above drivers apply to your board (for example, you are using a separate IC to control the backlight), you can implement a custom backlight driver using this simple API provided by QMK. To enable, add this to your `rules.mk`: +--- -```make -BACKLIGHT_DRIVER = custom -``` +### `void backlight_step(void)` :id=api-backlight-step -Then implement any of these hooks: +Cycle through backlight levels. -```c -void backlight_init_ports(void) { - // Optional - runs on startup - // Usually you want to configure pins here -} -void backlight_set(uint8_t level) { - // Optional - runs on level change - // Usually you want to respond to the new value -} +--- -void backlight_task(void) { - // Optional - runs periodically - // Note that this is called in the main keyboard loop, - // so long running actions here can cause performance issues -} -``` +### `void backlight_increase(void)` :id=api-backlight-increase -## Example Schematic +Increase the backlight level. -In this typical example, the backlight LEDs are all connected in parallel towards an N-channel MOSFET. Its gate pin is wired to one of the microcontroller's GPIO pins through a 470Ω resistor to avoid ringing. -A pulldown resistor is also placed between the gate pin and ground to keep it at a defined state when it is not otherwise being driven by the MCU. -The values of these resistors are not critical - see [this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) for more information. +--- -![Backlight example circuit](https://i.imgur.com/BmAvoUC.png) +### `void backlight_decrease(void)` :id=api-backlight-decrease + +Decrease the backlight level. + +--- + +### `void backlight_level(uint8_t level)` :id=api-backlight-level + +Set the backlight level. + +#### Arguments :id=api-backlight-level-arguments + + - `uint8_t level` + The level to set, from 0 to `BACKLIGHT_LEVELS`. + +--- + +### `uint8_t get_backlight_level(void)` :id=api-get-backlight-level + +Get the current backlight level. + +#### Return Value :id=api-get-backlight-level-return + +The current backlight level, from 0 to `BACKLIGHT_LEVELS`. + +--- + +### `bool is_backlight_enabled(void)` :id=api-is-backlight-enabled + +Get the current backlight state. + +#### Return Value :id=api-is-backlight-enabled-return + +`true` if the backlight is enabled. + +--- + +### `void backlight_toggle_breathing(void)` :id=api-backlight-toggle-breathing + +Toggle backlight breathing on or off. + +--- + +### `void backlight_enable_breathing(void)` :id=api-backlight-enable-breathing + +Turn backlight breathing on. + +--- + +### `void backlight_disable_breathing(void)` :id=api-backlight-disable-breathing + +Turn backlight breathing off. + +--- + +### `bool is_backlight_breathing(void)` :id=api-is-backlight-breathing + +Get the current backlight breathing state. + +#### Return Value :id=api-is-backlight-breathing-return + +`true` if backlight breathing is enabled. diff --git a/docs/feature_bluetooth.md b/docs/feature_bluetooth.md index f7ded84d867..5fac06fba75 100644 --- a/docs/feature_bluetooth.md +++ b/docs/feature_bluetooth.md @@ -4,10 +4,10 @@ Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input. -|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip| -|----------------------------------------------------------------|--------------------|---------------|--------------------------------|--------------| -|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = RN42` |RN-42 | -|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = BluefruitLE`|nRF51822 | +|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip| +|----------------------------------------------------------------|--------------------|---------------|---------------------------------|--------------| +|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = rn42` |RN-42 | +|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = bluefruit_le`|nRF51822 | Not Supported Yet but possible: * [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514) @@ -32,7 +32,7 @@ Add the following to your `rules.mk`: ```make BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE # or RN42 +BLUETOOTH_DRIVER = bluefruit_le # or rn42 ``` ## Bluetooth Keycodes diff --git a/docs/feature_haptic_feedback.md b/docs/feature_haptic_feedback.md index b456bad736f..68145edd6cc 100644 --- a/docs/feature_haptic_feedback.md +++ b/docs/feature_haptic_feedback.md @@ -4,11 +4,12 @@ The following options are currently available for haptic feedback in `rules.mk`: -``` +```make HAPTIC_ENABLE = yes -HAPTIC_DRIVER += DRV2605L -HAPTIC_DRIVER += SOLENOID +HAPTIC_DRIVER = drv2605l +# or +HAPTIC_DRIVER = solenoid ``` The following `config.h` settings are available for all types of haptic feedback: @@ -92,30 +93,30 @@ This driver supports 2 different feedback motors. Set the following in your `con Eccentric Rotating Mass vibration motors (ERM) is motor with a off-set weight attached so when drive signal is attached, the off-set weight spins and causes a sinusoidal wave that translate into vibrations. -``` -#define FB_ERM_LRA 0 -#define FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +```c +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* Please refer to your datasheet for the optimal setting for your specific motor. */ -#define RATED_VOLTAGE 3 -#define V_PEAK 5 +#define DRV2605L_RATED_VOLTAGE 3 +#define DRV2605L_V_PEAK 5 ``` ##### LRA Linear resonant actuators (LRA, also know as a linear vibrator) works different from a ERM. A LRA has a weight and magnet suspended by springs and a voice coil. When the drive signal is applied, the weight would be vibrate on a single axis (side to side or up and down). Since the weight is attached to a spring, there is a resonance effect at a specific frequency. This frequency is where the LRA will operate the most efficiently. Refer to the motor's datasheet for the recommanded range for this frequency. -``` -#define FB_ERM_LRA 1 -#define FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +```c +#define DRV2605L_FB_ERM_LRA 1 +#define DRV2605L_FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* Please refer to your datasheet for the optimal setting for your specific motor. */ -#define RATED_VOLTAGE 2 -#define V_PEAK 2.8 -#define V_RMS 2.0 -#define V_PEAK 2.1 -#define F_LRA 205 /* resonance freq */ +#define DRV2605L_RATED_VOLTAGE 2 +#define DRV2605L_V_PEAK 2.8 +#define DRV2605L_V_RMS 2.0 +#define DRV2605L_V_PEAK 2.1 +#define DRV2605L_F_LRA 205 /* resonance freq */ ``` #### DRV2605L waveform library @@ -170,13 +171,13 @@ List of waveform sequences from the datasheet: | 42 | lg_dblclick_med_80 | 84 | transition_rampup_med_smooth1 | | | ### Optional DRV2605L defines -``` -#define DRV_GREETING *sequence name or number* +```c +#define DRV2605L_GREETING *sequence name or number* ``` If haptic feedback is enabled, the keyboard will vibrate to a specific sequence during startup. That can be selected using the following define: -``` -#define DRV_MODE_DEFAULT *sequence name or number* +```c +#define DRV2605L_DEFAULT_MODE *sequence name or number* ``` This will set what sequence `HF_RST` will set as the active mode. If not defined, mode will be set to 1 when `HF_RST` is pressed. diff --git a/docs/feature_hd44780.md b/docs/feature_hd44780.md index 4ade640baae..dcbd656bbee 100644 --- a/docs/feature_hd44780.md +++ b/docs/feature_hd44780.md @@ -1,6 +1,6 @@ -# HD44780 LCD Driver +# HD44780 LCD Driver :id=hd44780-lcd-driver -## Supported Hardware +## Supported Hardware :id=supported-hardware LCD modules using [HD44780U](https://www.sparkfun.com/datasheets/LCD/HD44780.pdf) IC or equivalent, communicating in 4-bit mode. @@ -11,7 +11,7 @@ LCD modules using [HD44780U](https://www.sparkfun.com/datasheets/LCD/HD44780.pdf To run these modules at 3.3V, an additional MAX660 voltage converter IC must be soldered on, along with two 10µF capacitors. See [this page](https://www.codrey.com/electronic-circuits/hack-your-16x2-lcd/) for more details. -## Usage +## Usage :id=usage Add the following to your `rules.mk`: @@ -19,7 +19,7 @@ Add the following to your `rules.mk`: HD44780_ENABLE = yes ``` -## Basic Configuration +## Basic Configuration :id=basic-configuration Add the following to your `config.h`: @@ -33,9 +33,9 @@ Add the following to your `config.h`: |`HD44780_DISPLAY_LINES`|`2` |The number of visible lines on the display | |`HD44780_WRAP_LINES` |*Not defined* |If defined, input characters will wrap to the next line | -## Examples +## Examples :id=examples -### Hello World +### Hello World :id=example-hello-world Add the following to your `keymap.c`: @@ -46,7 +46,7 @@ void keyboard_post_init_user(void) { } ``` -### Custom Character Definition +### Custom Character Definition :id=example-custom-character Up to eight custom characters can be defined. This data is stored in the Character Generator RAM (CGRAM), and is not persistent across power cycles. @@ -77,15 +77,15 @@ void keyboard_post_init_user(void) { } ``` -## API +## API :id=api -### `void hd44780_init(bool cursor, bool blink)` +### `void hd44780_init(bool cursor, bool blink)` :id=api-hd44780-init Initialize the display. This function should be called only once, before any of the other functions can be called. -#### Arguments +#### Arguments :id=api-hd44780-init-arguments - `bool cursor` Whether to show the cursor. @@ -94,7 +94,7 @@ This function should be called only once, before any of the other functions can --- -### `void hd44780_clear(void)` +### `void hd44780_clear(void)` :id=api-hd44780-clear Clear the display. @@ -102,7 +102,7 @@ This function is called on init. --- -### `void hd44780_home(void)` +### `void hd44780_home(void)` :id=api-hd44780-home Move the cursor to the home position. @@ -110,13 +110,13 @@ This function is called on init. --- -### `void hd44780_on(bool cursor, bool blink)` +### `void hd44780_on(bool cursor, bool blink)` :id=api-hd44780-on Turn the display on, and/or set the cursor properties. This function is called on init. -#### Arguments +#### Arguments :id=api-hd44780-on-arguments - `bool cursor` Whether to show the cursor. @@ -125,17 +125,17 @@ This function is called on init. --- -### `void hd44780_off(void)` +### `void hd44780_off(void)` :id=api-hd44780-off Turn the display off. --- -### `void hd44780_set_cursor(uint8_t col, uint8_t line)` +### `void hd44780_set_cursor(uint8_t col, uint8_t line)` :id=api-hd44780-set-cursor Move the cursor to the specified position on the display. -#### Arguments +#### Arguments :id=api-hd44780-set-cursor-arguments - `uint8_t col` The column number to move to, from 0 to 15 on 16x2 displays. @@ -144,48 +144,48 @@ Move the cursor to the specified position on the display. --- -### `void hd44780_putc(char c)` +### `void hd44780_putc(char c)` :id=api-hd44780-putc Print a character to the display. The newline character `\n` will move the cursor to the start of the next line. The exact character shown may depend on the ROM code of your particular display - refer to the datasheet for the full character set. -#### Arguments +#### Arguments :id=api-hd44780-putc-arguments - `char c` The character to print. --- -### `void hd44780_puts(const char *s)` +### `void hd44780_puts(const char *s)` :id=api-hd44780-puts Print a string of characters to the display. -#### Arguments +#### Arguments :id=api-hd44780-puts-arguments - `const char *s` The string to print. --- -### `void hd44780_puts_P(const char *s)` +### `void hd44780_puts_P(const char *s)` :id=api-hd44780-puts-p Print a string of characters from PROGMEM to the display. On ARM devices, this function is simply an alias of `hd44780_puts()`. -#### Arguments +#### Arguments :id=api-hd44780-puts-p-arguments - `const char *s` The PROGMEM string to print (ie. `PSTR("Hello")`). --- -### `void hd44780_define_char(uint8_t index, uint8_t *data)` +### `void hd44780_define_char(uint8_t index, uint8_t *data)` :id=api-hd44780-define-char Define a custom character. -#### Arguments +#### Arguments :id=api-hd44780-define-char-arguments - `uint8_t index` The index of the custom character to define, from 0 to 7. @@ -194,13 +194,13 @@ Define a custom character. --- -### `void hd44780_define_char_P(uint8_t index, const uint8_t *data)` +### `void hd44780_define_char_P(uint8_t index, const uint8_t *data)` :id=api-hd44780-define-char-p Define a custom character from PROGMEM. On ARM devices, this function is simply an alias of `hd44780_define_char()`. -#### Arguments +#### Arguments :id=api-hd44780-define-char-p-arguments - `uint8_t index` The index of the custom character to define, from 0 to 7. @@ -209,21 +209,21 @@ On ARM devices, this function is simply an alias of `hd44780_define_char()`. --- -### `bool hd44780_busy(void)` +### `bool hd44780_busy(void)` :id=api-hd44780-busy Indicates whether the display is currently processing, and cannot accept instructions. -#### Return Value +#### Return Value :id=api-hd44780-busy-arguments `true` if the display is busy. --- -### `void hd44780_write(uint8_t data, bool isData)` +### `void hd44780_write(uint8_t data, bool isData)` :id=api-hd44780-write Write a byte to the display. -#### Arguments +#### Arguments :id=api-hd44780-write-arguments - `uint8_t data` The byte to send to the display. @@ -232,67 +232,67 @@ Write a byte to the display. --- -### `uint8_t hd44780_read(bool isData)` +### `uint8_t hd44780_read(bool isData)` :id=api-hd44780-read Read a byte from the display. -#### Arguments +#### Arguments :id=api-hd44780-read-arguments - `bool isData` Whether to read the current cursor position, or the character at the cursor. -#### Return Value +#### Return Value :id=api-hd44780-read-return If `isData` is `true`, the returned byte will be the character at the current DDRAM address. Otherwise, it will be the current DDRAM address and the busy flag. --- -### `void hd44780_command(uint8_t command)` +### `void hd44780_command(uint8_t command)` :id=api-hd44780-command Send a command to the display. Refer to the datasheet and `hd44780.h` for the valid commands and defines. This function waits for the display to clear the busy flag before sending the command. -#### Arguments +#### Arguments :id=api-hd44780-command-arguments - `uint8_t command` The command to send. --- -### `void hd44780_data(uint8_t data)` +### `void hd44780_data(uint8_t data)` :id=api-hd44780-data Send a byte of data to the display. This function waits for the display to clear the busy flag before sending the data. -#### Arguments +#### Arguments :id=api-hd44780-data-arguments - `uint8_t data` The byte of data to send. --- -### `void hd44780_set_cgram_address(uint8_t address)` +### `void hd44780_set_cgram_address(uint8_t address)` :id=api-hd44780-set-cgram-address Set the CGRAM address. This function is used when defining custom characters. -#### Arguments +#### Arguments :id=api-hd44780-set-cgram-address-arguments - `uint8_t address` The CGRAM address to move to, from `0x00` to `0x3F`. --- -### `void hd44780_set_ddram_address(uint8_t address)` +### `void hd44780_set_ddram_address(uint8_t address)` :id=api-hd44780-set-ddram-address Set the DDRAM address. This function is used when printing characters to the display, and setting the cursor. -#### Arguments +#### Arguments :id=api-hd44780-set-ddram-address-arguments - `uint8_t address` The DDRAM address to move to, from `0x00` to `0x7F`. diff --git a/docs/feature_key_overrides.md b/docs/feature_key_overrides.md index 608eb001e4b..ec7efd4c017 100644 --- a/docs/feature_key_overrides.md +++ b/docs/feature_key_overrides.md @@ -225,3 +225,30 @@ The duration of the key repeat delay is controlled with the `KEY_OVERRIDE_REPEAT ## Difference to Combos :id=difference-to-combos Note that key overrides are very different from [combos](https://docs.qmk.fm/#/feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interacton with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable. + +## Solution to the problem of flashing modifiers :id=neutralize-flashing-modifiers + +If the programs you use bind an action to taps of modifier keys (e.g. tapping left GUI to bring up the applications menu or tapping left Alt to focus the menu bar), you may find that using key overrides with suppressed mods falsely triggers those actions. To counteract this, you can define a `DUMMY_MOD_NEUTRALIZER_KEYCODE` in `config.h` that will get sent in between the register and unregister events of a suppressed modifier. That way, the programs on your computer will no longer interpret the mod suppression induced by key overrides as a lone tap of a modifier key and will thus not falsely trigger the undesired action. + +Naturally, for this technique to be effective, you must choose a `DUMMY_MOD_NEUTRALIZER_KEYCODE` for which no keyboard shortcuts are bound to. Recommended values are: `KC_RIGHT_CTRL` or `KC_F18`. +Please note that `DUMMY_MOD_NEUTRALIZER_KEYCODE` must be a basic, unmodified, HID keycode so values like `KC_NO`, `KC_TRANSPARENT` or `KC_PIPE` aka `S(KC_BACKSLASH)` are not permitted. + +By default, only left Alt and left GUI are neutralized. If you want to change the list of applicable modifier masks, use the following in your `config.h`: + +```c +#define MODS_TO_NEUTRALIZE { , , ... } +``` + +Examples: + +```c +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_RIGHT_CTRL + +// Neutralize left alt and left GUI (Default value) +#define MODS_TO_NEUTRALIZE { MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI) } + +// Neutralize left alt, left GUI, right GUI and left Control+Shift +#define MODS_TO_NEUTRALIZE { MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI), MOD_BIT(KC_RIGHT_GUI), MOD_BIT(KC_LEFT_CTRL)|MOD_BIT(KC_LEFT_SHIFT) } +``` + +!> Do not use `MOD_xxx` constants like `MOD_LSFT` or `MOD_RALT`, since they're 5-bit packed bit-arrays while `MODS_TO_NEUTRALIZE` expects a list of 8-bit packed bit-arrays. Use `MOD_BIT()` or `MOD_MASK_xxx` instead. diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 8503603ffef..e57642071f4 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -64,7 +64,7 @@ There are a number of functions (and variables) related to how you can use or ma | `layer_move(layer)` | Turns specified layer on, and all other layers off. | | `layer_on(layer)` | Turns specified layer on, leaves all other layers in existing state. | | `layer_off(layer)` | Turns specified layer off, leaves all other layers in existing state. | -| `layer_invert(layer)` | Interverts/toggles the state of the specified layer | +| `layer_invert(layer)` | Inverts/toggles the state of the specified layer | | `layer_or(layer_mask)` | Turns on layers based on matching bits between specifed layer and existing layer state. | | `layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing layer state. | | `layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing layer state. | @@ -155,7 +155,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint8_t current_layer = get_highest_layer(layer_state); // Check if we are within the range, if not quit - if (curent_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) { + if (current_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) { return false; } diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index bc86099f1ff..fd56a457258 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -12,7 +12,7 @@ There is basic support for addressable LED matrix lighting with the I2C IS31FL37 ```make LED_MATRIX_ENABLE = yes -LED_MATRIX_DRIVER = IS31FL3731 +LED_MATRIX_DRIVER = is31fl3731 ``` You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: @@ -139,7 +139,7 @@ Currently only 4 drivers are supported, but it would be trivial to support for m Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led __flash g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address @@ -158,7 +158,7 @@ Eg `#define ISSI_MANUAL_SCALING 3` Then Define the array listing all the LEDs you want to override in your `.c`: ```c -const is31_led __flash g_is31_scaling[ISSI_MANUAL_SCALING] = { +const is31_led PROGMEM g_is31_scaling[ISSI_MANUAL_SCALING] = { * LED Index * | Scaling * | | */ @@ -247,7 +247,6 @@ enum led_matrix_effects { LED_MATRIX_CYCLE_UP_DOWN, // Full gradient scrolling top to bottom LED_MATRIX_CYCLE_OUT_IN, // Full gradient scrolling out to in LED_MATRIX_DUAL_BEACON, // Full gradient spinning around center of keyboard -#if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES) LED_MATRIX_SOLID_REACTIVE_SIMPLE, // Pulses keys hit then fades out LED_MATRIX_SOLID_REACTIVE_WIDE // Value pulses near a single key hit then fades out LED_MATRIX_SOLID_REACTIVE_MULTIWIDE // Value pulses near multiple key hits then fades out @@ -257,7 +256,6 @@ enum led_matrix_effects { LED_MATRIX_SOLID_REACTIVE_MULTINEXUS // Value pulses away on the same column and row of multiple key hits then fades out LED_MATRIX_SOLID_SPLASH, // Value pulses away from a single key hit then fades out LED_MATRIX_SOLID_MULTISPLASH, // Value pulses away from multiple key hits then fades out -#endif LED_MATRIX_WAVE_LEFT_RIGHT // Sine wave scrolling from left to right LED_MATRIX_WAVE_UP_DOWN // Sine wave scrolling from up to down LED_MATRIX_EFFECT_MAX @@ -281,8 +279,6 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi |`#define ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT` |Enables `LED_MATRIX_WAVE_LEFT_RIGHT` | |`#define ENABLE_LED_MATRIX_WAVE_UP_DOWN` |Enables `LED_MATRIX_WAVE_UP_DOWN` | -?> These modes don't require any additional defines. - |Reactive Defines |Description | |-------------------------------------------------------|----------------------------------------------| |`#define ENABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE` |Enables `LED_MATRIX_SOLID_REACTIVE_SIMPLE` | @@ -295,7 +291,7 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi |`#define ENABLE_LED_MATRIX_SOLID_SPLASH` |Enables `LED_MATRIX_SOLID_SPLASH` | |`#define ENABLE_LED_MATRIX_SOLID_MULTISPLASH` |Enables `LED_MATRIX_SOLID_MULTISPLASH` | -?> These modes also require the `LED_MATRIX_KEYPRESSES` or `LED_MATRIX_KEYRELEASES` define to be available. +?> These modes introduce additional logic that can increase firmware size. ## Custom LED Matrix Effects :id=custom-led-matrix-effects @@ -361,9 +357,7 @@ For inspiration and examples, check out the built-in effects under `quantum/led_ ## Additional `config.h` Options :id=additional-configh-options ```c -#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_MATRIX_KEYRELEASES // reactive effects respond to keyreleases (instead of keypresses) #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) @@ -373,7 +367,7 @@ For inspiration and examples, check out the built-in effects under `quantum/led_ #define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define LED_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set #define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. - // If LED_MATRIX_KEYPRESSES or LED_MATRIX_KEYRELEASES is enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR + // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR ``` ## EEPROM storage :id=eeprom-storage @@ -433,7 +427,7 @@ The EEPROM for it is currently shared with the RGB Matrix system (it's generally ### Indicators :id=indicators -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: +If you want to set custom indicators, such as an LED for Caps Lock, or layer indication, then you can use the `led_matrix_indicators_kb` function on the keyboard level source file, or `led_matrix_indicators_user` function in the user `keymap.c`. ```c bool led_matrix_indicators_kb(void) { if (!led_matrix_indicators_user()) { diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 08310555fb7..c7d6c1a918a 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -27,7 +27,7 @@ You can define up to 32 macros in a `keymap.json` file, as used by [Configurator ], [ {"action":"tap", "keycodes": ["F1"]}, - {"action":"delay", "duration": "1000"}, + {"action":"delay", "duration": 1000}, {"action":"tap", "keycodes": ["PGDN"]} ] ], diff --git a/docs/feature_mouse_keys.md b/docs/feature_mouse_keys.md index eed4f4f4aaa..42448325c9f 100644 --- a/docs/feature_mouse_keys.md +++ b/docs/feature_mouse_keys.md @@ -67,6 +67,7 @@ This is the default mode. You can adjust the cursor and scrolling acceleration u |`MOUSEKEY_TIME_TO_MAX` |30 |Time until maximum cursor speed is reached | |`MOUSEKEY_WHEEL_DELAY` |10 |Delay between pressing a wheel key and wheel movement | |`MOUSEKEY_WHEEL_INTERVAL` |80 |Time between wheel movements | +|`MOUSEKEY_WHEEL_DELTA` |1 |Wheel movement step size | |`MOUSEKEY_WHEEL_MAX_SPEED` |8 |Maximum number of scroll steps per scroll action | |`MOUSEKEY_WHEEL_TIME_TO_MAX`|40 |Time until maximum scroll speed is reached | @@ -101,7 +102,7 @@ This is an extension of the accelerated mode. The kinetic mode uses a quadratic Tips: * The smoothness of the cursor movement depends on the `MOUSEKEY_INTERVAL` setting. The shorter the interval is set the smoother the movement will be. Setting the value too low makes the cursor unresponsive. Lower settings are possible if the micro processor is fast enough. For example: At an interval of `8` milliseconds, `125` movements per second will be initiated. With a base speed of `1000` each movement will move the cursor by `8` pixels. -* Mouse wheel movements are implemented differently from cursor movements. While it's okay for the cursor to move multiple pixels at once for the mouse wheel this would lead to jerky movements. Instead, the mouse wheel operates at step size `2`. Setting mouse wheel speed is done by adjusting the number of wheel movements per second. +* Mouse wheel movements are implemented differently from cursor movements. While it's okay for the cursor to move multiple pixels at once for the mouse wheel this would lead to jerky movements. Instead, the mouse wheel operates at step size `1`. Setting mouse wheel speed is done by adjusting the number of wheel movements per second. ### Constant mode diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md index a62294b23a6..f3769742f84 100644 --- a/docs/feature_oled_driver.md +++ b/docs/feature_oled_driver.md @@ -29,17 +29,17 @@ OLED_ENABLE = yes |OLED Driver |Supported Device | |-------------------|------------------------------------| -|SSD1306 (default) |For both SSD1306, SH1106, and SH1107| +|`ssd1306` (default)|For both SSD1306, SH1106, and SH1107| e.g. ```make -OLED_DRIVER = SSD1306 +OLED_DRIVER = ssd1306 ``` |OLED Transport | | |---------------|------------------------------------------------| -|i2c (default) | Uses I2C for communication with the OLED panel | -|spi | Uses SPI for communication with the OLED panel | +|`i2c` (default)| Uses I2C for communication with the OLED panel | +|`spi` | Uses SPI for communication with the OLED panel | e.g. ```make diff --git a/docs/feature_rawhid.md b/docs/feature_rawhid.md index 558a23a80fb..094dd21c7e9 100644 --- a/docs/feature_rawhid.md +++ b/docs/feature_rawhid.md @@ -1,69 +1,156 @@ -# Raw HID +# Raw HID :id=raw-hid -Raw HID allows for bidirectional communication between QMK and the host computer over an HID interface. This has many potential use cases, such as switching keymaps on the fly or changing RGB LED colors and modes. +The Raw HID feature allows for bidirectional communication between QMK and the host computer over an HID interface. This has many potential use cases, such as switching keymaps on the fly or sending useful metrics like CPU/RAM usage. -There are two main components to getting raw HID working with your keyboard. +In order to communicate with the keyboard using this feature, you will need to write a program that runs on the host. As such, some basic programming skills are required - more if you intend to implement complex behaviour. -## Keyboard firmware +## Usage :id=usage -The implementation is fairly straightforward for the firmware. -In your `rules.mk` add: +Add the following to your `rules.mk`: ```make RAW_ENABLE = yes ``` -In your `keymap.c` include `"raw_hid.h"` and implement the following: +## Basic Configuration :id=basic-configuration + +By default, the HID Usage Page and Usage ID for the Raw HID interface are `0xFF60` and `0x61`. However, they can be changed if necessary by adding the following to your `config.h`: + +|Define |Default |Description | +|----------------|--------|---------------------------------------| +|`RAW_USAGE_PAGE`|`0xFF60`|The usage page of the Raw HID interface| +|`RAW_USAGE_ID` |`0x61` |The usage ID of the Raw HID interface | + +## Sending Data to the Keyboard :id=sending-data-to-the-keyboard + +To send data to the keyboard, you must first find a library for communicating with HID devices in the programming language of your choice. Here are some examples: + +* **Node.js:** [node-hid](https://github.com/node-hid/node-hid) +* **C/C++:** [hidapi](https://github.com/libusb/hidapi) +* **Java:** [purejavahidapi](https://github.com/nyholku/purejavahidapi) and [hid4java](https://github.com/gary-rowe/hid4java) +* **Python:** [pyhidapi](https://pypi.org/project/hid/) + +Please refer to these libraries' own documentation for instructions on usage. Remember to close the device once you are finished with it! + +Next, you will need to know the USB Vendor and Product IDs of the device. These can easily be found by looking at your keyboard's `info.json`, under the `usb` object (alternatively, you can also use Device Manager on Windows, System Information on macOS, or `lsusb` on Linux). For example, the Vendor ID for the Planck Rev 6 is `0x03A8`, and the Product ID is `0xA4F9`. + +It's also a good idea to narrow down the list of potential HID devices the library may give you by filtering on the usage page and usage ID, to avoid accidentally opening the interface on the same device for the keyboard, or mouse, or media keys, etc. + +Once you are able to open the HID device and send reports to it, it's time to handle them on the keyboard side. Implement the following function in your `keymap.c` and start coding: ```c void raw_hid_receive(uint8_t *data, uint8_t length) { - // Your code goes here. data is the packet received from host. + // Your code goes here + // `data` is a pointer to the buffer containing the received HID report + // `length` is the length of the report - always `RAW_EPSIZE` } ``` -The `"raw_hid.h"` header also declares `void raw_hid_send(uint8_t *data, uint8_t length);` which allows sending packets from keyboard to host. As an example, it can also be used for debugging when building your host application by returning all data back to the host. +!> Because the HID specification does not support variable length reports, all reports in both directions must be exactly `RAW_EPSIZE` (currently 32) bytes long, regardless of actual payload length. However, variable length payloads can potentially be implemented on top of this by creating your own data structure that may span multiple reports. + +## Receiving Data from the Keyboard :id=receiving-data-from-the-keyboard + +If you need the keyboard to send data back to the host, simply call the `raw_hid_send()` function. It requires two arguments - a pointer to a 32-byte buffer containing the data you wish to send, and the length (which should always be `RAW_EPSIZE`). + +The received report can then be handled in whichever way your HID library provides. + +## Simple Example :id=simple-example + +The following example reads the first byte of the received report from the host, and if it is an ASCII "A", responds with "B". `memset()` is used to fill the response buffer (which could still contain the previous response) with null bytes. ```c void raw_hid_receive(uint8_t *data, uint8_t length) { - raw_hid_send(data, length); + uint8_t response[length]; + memset(response, 0, length); + response[0] = 'B'; + + if(data[0] == 'A') { + raw_hid_send(response, length); + } } ``` -These two functions send and receive packets of length `RAW_EPSIZE` bytes to and from the host (32 on LUFA/ChibiOS/V-USB, 64 on ATSAM). +On the host side (here we are using Python and the `pyhidapi` library), the HID device is opened by enumerating the interfaces on the USB device, then filtering on the usage page and usage ID. Then, a report containing a single ASCII "A" (hex `0x41`) is constructed and sent. + +For demonstration purposes, the manufacturer and product strings of the device, along with the request and response, are also printed. + +```python +import sys +import hid + +vendor_id = 0x4335 +product_id = 0x0002 + +usage_page = 0xFF60 +usage = 0x61 +report_length = 32 + +def get_raw_hid_interface(): + device_interfaces = hid.enumerate(vendor_id, product_id) + raw_hid_interfaces = [i for i in device_interfaces if i['usage_page'] == usage_page and i['usage'] == usage] + + if len(raw_hid_interfaces) == 0: + return None -Make sure to flash raw enabled firmware before proceeding with working on the host side. + interface = hid.Device(path=raw_hid_interfaces[0]['path']) -## Host (Windows/macOS/Linux) + print(f"Manufacturer: {interface.manufacturer}") + print(f"Product: {interface.product}") -This is the more complicated part as it will require some digging. + return interface -To connect your host computer to your keyboard with raw HID you need four pieces of information about your keyboard: +def send_raw_report(data): + interface = get_raw_hid_interface() -1. Vendor ID -2. Product ID -3. Usage Page -4. Usage + if interface is None: + print("No device found") + sys.exit(1) + + request_data = [0x00] * (report_length + 1) # First byte is Report ID + request_data[1:len(data) + 1] = data + request_report = bytes(request_data) + + print("Request:") + print(request_report) + + try: + interface.write(request_report) + + response_report = interface.read(report_length, timeout=1000) + + print("Response:") + print(response_report) + finally: + interface.close() + +if __name__ == '__main__': + send_raw_report([ + 0x41 + ]) +``` -The first two can easily be found in your keyboard's `config.h` in the keyboard's main directory under `VENDOR_ID` and `PRODUCT_ID`. +## API :id=api -The final two can be overridden in your keyboard's `config.h` in the keyboard's main directory by redefining the values: `#define RAW_USAGE_PAGE 0xFF60` and `#define RAW_USAGE_ID 0x61`. +### `void raw_hid_receive(uint8_t *data, uint8_t length)` :id=api-raw-hid-receive -By default, **Usage Page** is `0xFF60` and **Usage** is `0x61`. +Callback, invoked when a raw HID report has been received from the host. -### Building your host +#### Arguments :id=api-raw-hid-receive-arguments -You can build your host using any language that has an available HID implementation library if you don't wish to make your own. The ones we know of for popular languages are: + - `uint8_t *data` + A pointer to the received data. Always 32 bytes in length. + - `uint8_t length` + The length of the buffer. Always 32. -* Node: [node-hid](https://github.com/node-hid/node-hid). -* C: [hidapi](https://github.com/libusb/hidapi). -* Java: [purejavahidapi](https://github.com/nyholku/purejavahidapi) and [hid4java](https://github.com/gary-rowe/hid4java). -* Python: [pyhidapi](https://pypi.org/project/hid/). +--- -This is not an exhaustive cross-platform list but should get you started. There are no special requirements for using raw HID so any HID library should work. +### `void raw_hid_send(uint8_t *data, uint8_t length)` :id=api-raw-hid-send -Now that you have all four pieces of information required to open HID interface to your keyboard. All you need to do is use your library's available functions to open the device with its ID parameters. +Send an HID report. -Note that Vendor ID and Product ID are not actually required to open the device. They are used only to filter to a specific device out of the many HID devices you have plugged in. Many libraries will give you the option to open the device using Product Name or Manufacturer Name instead, `node-hid` being a prime example. This will create issues for devices with builtin USB Hub or any extra HID interfaces where you will have multiple interfaces with the same name or from the same manufacturer. The Vendor ID together with Product ID create a unique designation to a single interface and will not exhibit this problem. Therefore, even if your library doesn't require you to, it is best to use them to avoid issues. -Unlike Vendor ID and Product ID though, Usage Page and Usage are necessary for successful communication. +#### Arguments :id=api-raw-hid-send-arguments -It should go without saying that regardless of the library you're using, you should always make sure to close the interface when finished. Depending on the operating system and your particular environment there may be issues connecting to it again afterwards with another client or another instance of the same client if it's not explicitly closed. + - `uint8_t *data` + A pointer to the data to send. Must always be 32 bytes in length. + - `uint8_t length` + The length of the buffer. Must always be 32. diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 75f07b5e64c..44899d70d9d 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -12,7 +12,7 @@ There is basic support for addressable RGB matrix lighting with the I2C IS31FL37 ```make RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = IS31FL3731 +RGB_MATRIX_DRIVER = is31fl3731 ``` You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: @@ -76,7 +76,7 @@ There is basic support for addressable RGB matrix lighting with the I2C IS31FL37 ```make RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = IS31FL3733 +RGB_MATRIX_DRIVER = is31fl3733 ``` You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: @@ -162,7 +162,7 @@ There is basic support for addressable RGB matrix lighting with the I2C IS31FL37 ```make RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = IS31FL3736 +RGB_MATRIX_DRIVER = is31fl3736 ``` You can use between 1 and 4 IS31FL3736 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard. @@ -238,7 +238,7 @@ There is basic support for addressable RGB matrix lighting with the I2C IS31FL37 ```make RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = IS31FL3737 +RGB_MATRIX_DRIVER = is31fl3737 ``` You can use between 1 and 4 IS31FL3737 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard. @@ -386,7 +386,7 @@ Currently only 4 drivers are supported, but it would be trivial to support for m Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led __flash g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -406,7 +406,7 @@ Eg `#define ISSI_MANUAL_SCALING 3` Then Define the array listing all the LEDs you want to override in your `.c`: ```c -const is31_led __flash g_is31_scaling[ISSI_MANUAL_SCALING] = { +const is31_led PROGMEM g_is31_scaling[ISSI_MANUAL_SCALING] = { * LED Index * | R scaling * | | G scaling @@ -428,7 +428,7 @@ There is basic support for addressable RGB matrix lighting with a WS2811/WS2812{ ```make RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 ``` Configure the hardware via your `config.h`: @@ -450,7 +450,7 @@ There is basic support for APA102 based addressable LED strands. To enable it, a ```make RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = APA102 +RGB_MATRIX_DRIVER = apa102 ``` Configure the hardware via your `config.h`: @@ -470,7 +470,7 @@ There is basic support for addressable RGB matrix lighting with the SPI AW20216 ```make RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = AW20216 +RGB_MATRIX_DRIVER = aw20216 ``` You can use up to 2 AW20216 IC's. Do not specify `DRIVER__xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: @@ -650,11 +650,8 @@ enum rgb_matrix_effects { RGB_MATRIX_PIXEL_FRACTAL, // Single hue fractal filled keys pulsing horizontally out to edges RGB_MATRIX_PIXEL_FLOW, // Pulsing RGB flow along LED wiring with random hues RGB_MATRIX_PIXEL_RAIN, // Randomly light keys with random hues -#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) RGB_MATRIX_TYPING_HEATMAP, // How hot is your WPM! RGB_MATRIX_DIGITAL_RAIN, // That famous computer simulation -#endif -#if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) RGB_MATRIX_SOLID_REACTIVE_SIMPLE, // Pulses keys hit to hue & value then fades value out RGB_MATRIX_SOLID_REACTIVE, // Static single hue, pulses keys hit to shifted hue then fades to current hue RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out @@ -667,7 +664,6 @@ enum rgb_matrix_effects { RGB_MATRIX_MULTISPLASH, // Full gradient & value pulse away from multiple key hits then fades value out RGB_MATRIX_SOLID_SPLASH, // Hue & value pulse away from a single key hit then fades value out RGB_MATRIX_SOLID_MULTISPLASH, // Hue & value pulse away from multiple key hits then fades value out -#endif RGB_MATRIX_EFFECT_MAX }; ``` @@ -707,14 +703,12 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi |`#define ENABLE_RGB_MATRIX_PIXEL_FLOW` |Enables `RGB_MATRIX_PIXEL_FLOW` | |`#define ENABLE_RGB_MATRIX_PIXEL_RAIN` |Enables `RGB_MATRIX_PIXEL_RAIN` | -?> These modes don't require any additional defines. - |Framebuffer Defines |Description | |------------------------------------------------------|----------------------------------------------| |`#define ENABLE_RGB_MATRIX_TYPING_HEATMAP` |Enables `RGB_MATRIX_TYPING_HEATMAP` | |`#define ENABLE_RGB_MATRIX_DIGITAL_RAIN` |Enables `RGB_MATRIX_DIGITAL_RAIN` | -?> These modes also require the `RGB_MATRIX_FRAMEBUFFER_EFFECTS` define to be available. +?> These modes introduce additional logic that can increase firmware size. |Reactive Defines |Description | |------------------------------------------------------|----------------------------------------------| @@ -731,7 +725,7 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi |`#define ENABLE_RGB_MATRIX_SOLID_SPLASH` |Enables `RGB_MATRIX_SOLID_SPLASH` | |`#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH` |Enables `RGB_MATRIX_SOLID_MULTISPLASH` | -?> These modes also require the `RGB_MATRIX_KEYPRESSES` or `RGB_MATRIX_KEYRELEASES` define to be available. +?> These modes introduce additional logic that can increase firmware size. ### RGB Matrix Effect Typing Heatmap :id=rgb-matrix-effect-typing-heatmap @@ -872,9 +866,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master ## Additional `config.h` Options :id=additional-configh-options ```c -#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_MATRIX_KEYRELEASES // reactive effects respond to keyreleases (instead of keypresses) #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) @@ -887,7 +879,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master #define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set #define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature) #define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. - // If RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR + // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR #define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards ``` @@ -964,7 +956,7 @@ The EEPROM for it is currently shared with the LED Matrix system (it's generally ### Indicators :id=indicators -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: +If you want to set custom indicators, such as an LED for Caps Lock, or layer indication, then you can use the `rgb_matrix_indicators_kb` function on the keyboard level source file, or `rgb_matrix_indicators_user` function in the user `keymap.c`. ```c bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 5131658ae15..39b7e6a6f1e 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -28,7 +28,7 @@ For APA102 LEDs, add the following to your `rules.mk`: ```make RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = APA102 +RGBLIGHT_DRIVER = apa102 ``` At minimum you must define the data pin your LED strip is connected to, and the number of LEDs in the strip, in your `config.h`. For APA102 LEDs, you must also define the clock pin. If your keyboard has onboard RGB LEDs, and you are simply creating a keymap, you usually won't need to modify these. @@ -90,7 +90,7 @@ Your RGB lighting can be configured by placing these `#define`s in your `config. |Define |Default |Description | |---------------------------|----------------------------|---------------------------------------------------------------------------------------------------------------------------| -|`RGBLIGHT_HUE_STEP` |`10` |The number of steps to cycle through the hue by | +|`RGBLIGHT_HUE_STEP` |`8` |The number of steps to cycle through the hue by | |`RGBLIGHT_SAT_STEP` |`17` |The number of steps to increment the saturation by | |`RGBLIGHT_VAL_STEP` |`17` |The number of steps to increment the brightness by | |`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level | @@ -524,37 +524,6 @@ By defining `RGBLIGHT_LED_MAP` as in the example below, you can specify the LED ``` simple mapped -For keyboards that use the RGB LEDs as a backlight for each key, you can also define it as in the example below. - -```c -// config.h - -#define RGBLED_NUM 30 - -/* RGB LED Conversion macro from physical array to electric array */ -#define LED_LAYOUT( \ - L00, L01, L02, L03, L04, L05, \ - L10, L11, L12, L13, L14, L15, \ - L20, L21, L22, L23, L24, L25, \ - L30, L31, L32, L33, L34, L35, \ - L40, L41, L42, L43, L44, L45 ) \ - { \ - L05, L04, L03, L02, L01, L00, \ - L10, L11, L12, L13, L14, L15, \ - L25, L24, L23, L22, L21, L20, \ - L30, L31, L32, L33, L34, L35, \ - L46, L45, L44, L43, L42, L41 \ - } - -/* RGB LED logical order map */ -/* Top->Bottom, Right->Left */ -#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 25, 20, 15, 10, 5, 0, \ - 26, 21, 16, 11, 6, 1, \ - 27, 22, 17, 12, 7, 2, \ - 28, 23, 18, 13, 8, 3, \ - 29, 24, 19, 14, 9, 4 ) - ``` ## Clipping Range diff --git a/docs/feature_send_string.md b/docs/feature_send_string.md index 67df0224e93..7d3f3ba32a1 100644 --- a/docs/feature_send_string.md +++ b/docs/feature_send_string.md @@ -1,4 +1,4 @@ -# Send String +# Send String :id=send-string The Send String API is part of QMK's macro system. It allows for sequences of keystrokes to be sent automatically. @@ -6,7 +6,7 @@ The full ASCII character set is supported, along with all of the keycodes in the ?> Unicode characters are **not** supported with this API -- see the [Unicode](feature_unicode.md) feature instead. -## Usage +## Usage :id=usage Send String is enabled by default, so there is usually no need for any special setup. However, if it is disabled, add the following to your `rules.mk`: @@ -14,7 +14,7 @@ Send String is enabled by default, so there is usually no need for any special s SEND_STRING_ENABLE = yes ``` -## Basic Configuration +## Basic Configuration :id=basic-configuration Add the following to your `config.h`: @@ -23,7 +23,7 @@ Add the following to your `config.h`: |`SENDSTRING_BELL`|*Not defined* |If the [Audio](feature_audio.md) feature is enabled, the `\a` character (ASCII `BEL`) will beep the speaker.| |`BELL_SOUND` |`TERMINAL_SOUND`|The song to play when the `\a` character is encountered. By default, this is an eighth note of C5. | -## Keycodes +## Keycodes :id=keycodes The Send String functions accept C string literals, but specific keycodes can be injected with the below macros. All of the keycodes in the [Basic Keycode range](keycodes_basic.md) are supported (as these are the only ones that will actually be sent to the host), but with an `X_` prefix instead of `KC_`. @@ -44,13 +44,13 @@ The following characters are also mapped to their respective keycodes for conven |`\t` |`\x1B`|`TAB`|`KC_TAB` | | |`\x7F`|`DEL`|`KC_DELETE` | -### Language Support +### Language Support :id=language-support By default, Send String assumes your OS keyboard layout is set to US ANSI. If you are using a different keyboard layout, you can [override the lookup tables used to convert ASCII characters to keystrokes](reference_keymap_extras.md#sendstring-support). -## Examples +## Examples :id=examples -### Hello World +### Hello World :id=example-hello-world A simple custom keycode which types out "Hello, world!" and the Enter key when pressed. @@ -70,7 +70,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } ``` -### Keycode Injection +### Keycode Injection :id=example-keycode-injection This example types out opening and closing curly braces, then taps the left arrow key to move the cursor between the two. @@ -84,26 +84,26 @@ This example types Ctrl+A, then Ctrl+C, without releasing Ctrl. SEND_STRING(SS_LCTL("ac")); ``` -## API +## API :id=api -### `void send_string(const char *string)` +### `void send_string(const char *string)` :id=api-send-string Type out a string of ASCII characters. This function simply calls `send_string_with_delay(string, 0)`. -#### Arguments +#### Arguments :id=api-send-string-arguments - `const char *string` The string to type out. --- -### `void send_string_with_delay(const char *string, uint8_t interval)` +### `void send_string_with_delay(const char *string, uint8_t interval)` :id=api-send-string-with-delay Type out a string of ASCII characters, with a delay between each character. -#### Arguments +#### Arguments :id=api-send-string-with-delay-arguments - `const char *string` The string to type out. @@ -112,26 +112,26 @@ Type out a string of ASCII characters, with a delay between each character. --- -### `void send_string_P(const char *string)` +### `void send_string_P(const char *string)` :id=api-send-string-p Type out a PROGMEM string of ASCII characters. On ARM devices, this function is simply an alias for `send_string_with_delay(string, 0)`. -#### Arguments +#### Arguments :id=api-send-string-p-arguments - `const char *string` The string to type out. --- -### `void send_string_with_delay_P(const char *string, uint8_t interval)` +### `void send_string_with_delay_P(const char *string, uint8_t interval)` :id=api-send-string-with-delay-p Type out a PROGMEM string of ASCII characters, with a delay between each character. On ARM devices, this function is simply an alias for `send_string_with_delay(string, interval)`. -#### Arguments +#### Arguments :id=api-send-string-with-delay-p-arguments - `const char *string` The string to type out. @@ -140,76 +140,76 @@ On ARM devices, this function is simply an alias for `send_string_with_delay(str --- -### `void send_char(char ascii_code)` +### `void send_char(char ascii_code)` :id=api-send-char Type out an ASCII character. -#### Arguments +#### Arguments :id=api-send-char-arguments - `char ascii_code` The character to type. --- -### `void send_dword(uint32_t number)` +### `void send_dword(uint32_t number)` :id=api-send-dword Type out an eight digit (unsigned 32-bit) hexadecimal value. The format is `[0-9a-f]{8}`, eg. `00000000` through `ffffffff`. -#### Arguments +#### Arguments :id=api-send-dword-arguments - `uint32_t number` The value to type, from 0 to 4,294,967,295. --- -### `void send_word(uint16_t number)` +### `void send_word(uint16_t number)` :id=api-send-word Type out a four digit (unsigned 16-bit) hexadecimal value. The format is `[0-9a-f]{4}`, eg. `0000` through `ffff`. -#### Arguments +#### Arguments :id=api-send-word-arguments - `uint16_t number` The value to type, from 0 to 65,535. --- -### `void send_byte(uint8_t number)` +### `void send_byte(uint8_t number)` :id=api-send-bytes Type out a two digit (8-bit) hexadecimal value. The format is `[0-9a-f]{2}`, eg. `00` through `ff`. -#### Arguments +#### Arguments :id=api-send-byte-arguments - `uint8_t number` The value to type, from 0 to 255. --- -### `void send_nibble(uint8_t number)` +### `void send_nibble(uint8_t number)` :id=api-send-nibble Type out a single hexadecimal digit. The format is `[0-9a-f]{1}`, eg. `0` through `f`. -#### Arguments +#### Arguments :id=api-send-nibble-arguments - `uint8_t number` The value to type, from 0 to 15. --- -### `void tap_random_base64(void)` +### `void tap_random_base64(void)` :id=api-tap-random-base64 Type a pseudorandom character from the set `A-Z`, `a-z`, `0-9`, `+` and `/`. --- -### `SEND_STRING(string)` +### `SEND_STRING(string)` :id=api-send-string-macro Shortcut macro for `send_string_with_delay_P(PSTR(string), 0)`. @@ -217,7 +217,7 @@ On ARM devices, this define evaluates to `send_string_with_delay(string, 0)`. --- -### `SEND_STRING_DELAY(string, interval)` +### `SEND_STRING_DELAY(string, interval)` :id=api-send-string-delay-macro Shortcut macro for `send_string_with_delay_P(PSTR(string), interval)`. diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index b7d8a5528fb..42ea2339623 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -28,7 +28,7 @@ After this, you'll want to use the `tap_dance_actions` array to specify what act * `ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer)`: Sends the `kc` keycode when tapped once, or toggles the state of `layer`. (this functions like the `TG` layer keycode). * `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action. * `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function when the dance action finishes (like the previous option), and the last function when the tap dance action resets. - +* `ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(on_each_tap_fn, on_each_release_fn, on_dance_finished_fn, on_dance_reset_fn)`: This macro is identical to `ACTION_TAP_DANCE_FN_ADVANCED` with the addition of `on_each_release_fn` which is invoked every time the key for the tap dance is released. It is worth noting that `on_each_release_fn` will still be called even when the key is released after the dance finishes (e.g. if the key is released after being pressed and held for longer than the `TAPPING_TERM`). The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. diff --git a/docs/feature_unicode.md b/docs/feature_unicode.md index 455596dab5e..341084f9260 100644 --- a/docs/feature_unicode.md +++ b/docs/feature_unicode.md @@ -1,48 +1,77 @@ -# Unicode Support +# Unicode :id=unicode -Unicode characters can be input straight from your keyboard! There are some limitations, however. +With a little help from your OS, practically any Unicode character can be input using your keyboard. -In order to enable Unicode support on your keyboard, you will need to do the following: +## Caveats :id=caveats -1. Choose one of three supported Unicode implementations: [Basic Unicode](#basic-unicode), [Unicode Map](#unicode-map), [UCIS](#ucis). -2. Find which [input mode](#input-modes) is the best match for your operating system and setup. -3. [Set](#setting-the-input-mode) the appropriate input mode (or modes) in your configuration. -4. Add Unicode keycodes to your keymap. +There are some limitations to this feature. Because there is no "standard" method of Unicode input across all operating systems, each of them require their own setup process on both the host *and* in the firmware, which may involve installation of additional software. This also means Unicode input will not "just work" when the keyboard is plugged into another device. +## Usage :id=usage -## 1. Methods :id=methods +The core Unicode API can be used purely programmatically. However, there are also additional subsystems which build on top of it and come with keycodes to make things easier. See below for more details. -QMK supports three different methods for enabling Unicode input and adding Unicode characters to your keymap. Each has its pros and cons in terms of flexibility and ease of use. Choose the one that best fits your use case. +Add the following to your keymap's `rules.mk`: -The Basic method should be enough for most users. However, if you need a wider range of supported characters (including emoji, rare symbols etc.), you should use Unicode Map. +```make +UNICODE_COMMON = yes +``` + +## Basic Configuration :id=basic-configuration + +Add the following to your `config.h`: + +|Define |Default |Description | +|------------------------|------------------|--------------------------------------------------------------------------------| +|`UNICODE_KEY_MAC` |`KC_LEFT_ALT` |The key to hold when beginning a Unicode sequence with the macOS input mode | +|`UNICODE_KEY_LNX` |`LCTL(LSFT(KC_U))`|The key to tap when beginning a Unicode sequence with the Linux input mode | +|`UNICODE_KEY_WINC` |`KC_RIGHT_ALT` |The key to hold when beginning a Unicode sequence with the WinCompose input mode| +|`UNICODE_SELECTED_MODES`|`-1` |A comma separated list of input modes for cycling through | +|`UNICODE_CYCLE_PERSIST` |`true` |Whether to persist the current Unicode input mode to EEPROM | +|`UNICODE_TYPE_DELAY` |`10` |The amount of time to wait, in milliseconds, between Unicode sequence keystrokes| + +### Audio Feedback :id=audio-feedback -
+If you have the [Audio](feature_audio.md) feature enabled on your board, you can configure it to play sounds when the input mode is changed. -### 1.1. Basic Unicode :id=basic-unicode +Add the following to your `config.h`: -The easiest to use method, albeit somewhat limited. It stores Unicode characters as keycodes in the keymap itself, so it only supports code points up to `0x7FFF`. This covers characters for most modern languages (including East Asian), as well as symbols, but it doesn't cover emoji. +|Define |Default|Description | +|-------------------|-------|-----------------------------------------------------------| +|`UNICODE_SONG_MAC` |*n/a* |The song to play when the macOS input mode is selected | +|`UNICODE_SONG_LNX` |*n/a* |The song to play when the Linux input mode is selected | +|`UNICODE_SONG_BSD` |*n/a* |The song to play when the BSD input mode is selected | +|`UNICODE_SONG_WIN` |*n/a* |The song to play when the Windows input mode is selected | +|`UNICODE_SONG_WINC`|*n/a* |The song to play when the WinCompose input mode is selected| -Add the following to your `rules.mk`: +## Input Subsystems :id=input-subsystems + +Each of these subsystems have their own pros and cons in terms of flexibility and ease of use. Choose the one that best fits your needs. + + + +### ** Basic ** + +This is the easiest to use, albeit somewhat limited. It supports code points up to `U+7FFF`, which covers characters for most modern languages (including East Asian), as well as many symbols, but does not include emoji. + +To enable Basic Unicode, add the following to your `rules.mk`: ```make UNICODE_ENABLE = yes ``` -Then add `UC(c)` keycodes to your keymap, where _c_ is the code point of the desired character (preferably in hexadecimal, up to 4 digits long). For example, `UC(0x40B)` will output [Ћ](https://unicode-table.com/en/040B/), and `UC(0x30C4)` will output [ツ](https://unicode-table.com/en/30C4). - -
+You can then add `UC(c)` keycodes to your keymap, where *c* is the code point of the desired character (in hexadecimal - the `U+` prefix will not work). For example, `UC(0x40B)` will output [Ћ](https://unicode-table.com/en/040B/), and `UC(0x30C4)` will output [ツ](https://unicode-table.com/en/30C4). -### 1.2. Unicode Map :id=unicode-map +### ** Unicode Map ** -In addition to standard character ranges, this method also covers emoji, ancient scripts, rare symbols etc. In fact, all possible code points (up to `0x10FFFF`) are supported. Here, Unicode characters are stored in a separate mapping table. You need to maintain a `unicode_map` array in your keymap file, which may contain at most 16384 entries. +Unicode Map supports all possible code points (up to `U+10FFFF`). Here, the code points are stored in a separate mapping table (which may contain at most 16,384 entries), instead of directly in the keymap. -Add the following to your `rules.mk`: +To enable Unicode Map, add the following to your `rules.mk`: ```make UNICODEMAP_ENABLE = yes ``` -Then add `X(i)` keycodes to your keymap, where _i_ is the desired character's index in the mapping table. This can be a numeric value, but it's recommended to keep the indices in an enum and access them by name. +Then, you will need to create a mapping table in your `keymap.c`, and (optionally) an enum for naming the array indices, like so: ```c enum unicode_names { @@ -51,242 +80,373 @@ enum unicode_names { SNEK }; -const uint32_t unicode_map[] PROGMEM = { +const uint32_t PROGMEM unicode_map[] = { [BANG] = 0x203D, // ‽ [IRONY] = 0x2E2E, // ⸮ [SNEK] = 0x1F40D, // 🐍 }; ``` -Then you can use `X(BANG)`, `X(SNEK)` etc. in your keymap. +Finally, add `UM(i)` keycodes to your keymap, where *i* is an index into the `unicode_map[]` array. If you defined the enum above, you can use those names instead, for example `UM(BANG)` or `UM(SNEK)`. -#### Lower and Upper Case +#### Lower and Upper Case Pairs :id=unicodemap-pairs -Characters often come in lower and upper case pairs, such as å and Å. To make inputting these characters easier, you can use `XP(i, j)` in your keymap, where _i_ and _j_ are the mapping table indices of the lower and upper case character, respectively. If you're holding down Shift or have Caps Lock turned on when you press the key, the second (upper case) character will be inserted; otherwise, the first (lower case) version will appear. +Some writing systems have lowercase and uppercase variants of each character, such as å and Å. To make inputting these characters easier, you can use the `UP(i, j)` keycode in your keymap, where *i* and *j* are the mapping table indices of the lowercase and uppercase characters, respectively. If you're holding down Shift or have Caps Lock turned on when you press the key, the uppercase character will be inserted; otherwise, the lowercase character will be inserted. -This is most useful when creating a keymap for an international layout with special characters. Instead of having to put the lower and upper case versions of a character on separate keys, you can have them both on the same key by using `XP()`. This helps blend Unicode keys in with regular alphas. +```c +const uint32_t PROGMEM unicode_map[] = { + [AE_LOWER] = 0x00E6, // æ + [AE_UPPER] = 0x00C6, // Æ +}; +``` -Due to keycode size constraints, _i_ and _j_ can each only refer to one of the first 128 characters in your `unicode_map`. In other words, 0 ≤ _i_ ≤ 127 and 0 ≤ _j_ ≤ 127. This is enough for most use cases, but if you'd like to customize the index calculation, you can override the [`unicodemap_index()`](https://github.com/qmk/qmk_firmware/blob/71f640d47ee12c862c798e1f56392853c7b1c1a8/quantum/process_keycode/process_unicodemap.c#L36) function. This also allows you to, say, check Ctrl instead of Shift/Caps. +This is most useful when creating a keymap for an international layout with special characters. Instead of having to put the lower and upper case versions of a character on separate keys, you can have them both on the same key. This helps blend Unicode keys in with regular keycodes. -
+Due to keycode size constraints, *i* and *j* can each only refer to one of the first 128 characters in your `unicode_map`. In other words, 0 ≤ *i* ≤ 127 and 0 ≤ *j* ≤ 127. -### 1.3. UCIS :id=ucis +### ** UCIS ** -This method also supports all possible code points. As with the Unicode Map method, you need to maintain a mapping table in your keymap file. However, there are no built-in keycodes for this feature — you have to create a custom keycode or function that invokes this functionality. +As with Unicode Map, the UCIS method also supports all possible code points, and requires the use of a mapping table. However, it works much differently - Unicode characters are input by replacing a typed mnemonic. -Add the following to your `rules.mk`: +To enable UCIS, add the following to your keymap's `rules.mk`: ```make UCIS_ENABLE = yes ``` -Then define a table like this in your keymap file: +Then, create a mapping table in your `keymap.c`: ```c const ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE( UCIS_SYM("poop", 0x1F4A9), // 💩 UCIS_SYM("rofl", 0x1F923), // 🤣 - UCIS_SYM("cuba", 0x1F1E8, 0x1F1FA), // 🇨🇺 + UCIS_SYM("ukr", 0x1F1FA, 0x1F1E6), // 🇺🇦 UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0) // ಠ_ಠ ); ``` -By default, each table entry may be up to 3 code points long. This number can be changed by adding `#define UCIS_MAX_CODE_POINTS n` to your `config.h` file. +By default, each table entry may be up to three code points long. This can be changed by adding `#define UCIS_MAX_CODE_POINTS n` to your keymap's `config.h`. -To use UCIS input, call `ucis_start()`. Then, type the mnemonic for the character (such as "rofl") and hit Space, Enter or Esc. QMK should erase the "rofl" text and insert the laughing emoji. +To invoke UCIS input, the `ucis_start()` function must first be called (for example, in a custom "Unicode" keycode). Then, type the mnemonic for the mapping table entry (such as "rofl"), and hit Space or Enter. The "rofl" text will be backspaced and the emoji inserted. -#### Customization + -There are several functions that you can define in your keymap to customize the functionality of this feature. +## Input Modes :id=input-modes -* `void ucis_start_user(void)` – This runs when you call the "start" function, and can be used to provide feedback. By default, it types out a keyboard emoji. -* `void ucis_success(uint8_t symbol_index)` – This runs when the input has matched something and has completed. By default, it doesn't do anything. -* `void ucis_symbol_fallback (void)` – This runs when the input doesn't match anything. By default, it falls back to trying that input as a Unicode code. +Unicode input works by typing a sequence of characters, similar to a macro. However, since this sequence depends on your OS, you will need to prepare both your host machine and QMK to recognise and send the correct Unicode input sequences respectively. -You can find the default implementations of these functions in [`process_ucis.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_ucis.c). +To set the list of enabled input modes, add the `UNICODE_SELECTED_MODES` define to your keymap's `config.h`, for example: +```c +#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX +// or +#define UNICODE_SELECTED_MODES UNICODE_MODE_MAC, UNICODE_MODE_WINCOMPOSE +``` -## 2. Input Modes :id=input-modes +These modes can then be cycled through using the `UC_NEXT` and `UC_PREV` keycodes. You can also switch to any input mode, even if it is not specified in `UNICODE_SELECTED_MODES`, using their respective keycodes. -Unicode input in QMK works by inputting a sequence of characters to the OS, sort of like a macro. Unfortunately, the way this is done differs for each platform. Specifically, each platform requires a different combination of keys to trigger Unicode input. Therefore, a corresponding input mode has to be set in QMK. +If your keyboard has working EEPROM, it will remember the last used input mode and continue using it on the next power up. This can be disabled by defining `UNICODE_CYCLE_PERSIST` to `false`. -The following input modes are available: + -* **`UNICODE_MODE_MACOS`**: macOS built-in Unicode hex input. Supports code points up to `0x10FFFF` (all possible code points). +### ** macOS ** - To enable, go to _System Preferences > Keyboard > Input Sources_, add _Unicode Hex Input_ to the list (it's under _Other_), then activate it from the input dropdown in the Menu Bar. - By default, this mode uses the left Option key (`KC_LALT`) for Unicode input, but this can be changed by defining [`UNICODE_KEY_MAC`](#input-key-configuration) with a different keycode. +**Mode Name:** `UNICODE_MODE_MAC` - !> Using the _Unicode Hex Input_ input source may disable some Option-based shortcuts, such as Option+Left and Option+Right. +macOS has built-in support for Unicode input as its own input source. It supports all possible code points by way of surrogate pairs for code points above `U+FFFF`. -* **`UNICODE_MODE_LINUX`**: Linux built-in IBus Unicode input. Supports code points up to `0x10FFFF` (all possible code points). +To enable, go to **System Preferences → Keyboard → Input Sources**, then add Unicode Hex Input to the list (under Other), and activate it from the input dropdown in the menu bar. Note that this may disable some Option-based shortcuts such as Option+Left and Option+Right. - Enabled by default and works almost anywhere on IBus-enabled distros. Without IBus, this mode works under GTK apps, but rarely anywhere else. - By default, this mode uses Ctrl+Shift+U (`LCTL(LSFT(KC_U))`) to start Unicode input, but this can be changed by defining [`UNICODE_KEY_LNX`](#input-key-configuration) with a different keycode. This might be required for IBus versions ≥1.5.15, where Ctrl+Shift+U behavior is consolidated into Ctrl+Shift+E. +### ** Linux (IBus) ** - Users who wish support in non-GTK apps without IBus may need to resort to a more indirect method, such as creating a custom keyboard layout ([more on this method](#custom-linux-layout)). +**Mode Name:** `UNICODE_MODE_LINUX` -* **`UNICODE_MODE_WINDOWS`**: _(not recommended)_ Windows built-in hex numpad Unicode input. Supports code points up to `0xFFFF`. +For Linux distros with IBus, Unicode input is enabled by default, supports all possible code points, and works almost anywhere. Without IBus, it works under GTK apps, but rarely anywhere else. - To enable, create a registry key under `HKEY_CURRENT_USER\Control Panel\Input Method` of type `REG_SZ` called `EnableHexNumpad` and set its value to `1`. This can be done from the Command Prompt by running `reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1` with administrator privileges. Reboot afterwards. - This mode is not recommended because of reliability and compatibility issues; use the `UNICODE_MODE_WINCOMPOSE` mode instead. +Users who would like support in non-GTK apps without IBus may need to resort to a more indirect method, such as creating a custom keyboard layout. -* **`UNICODE_MODE_BSD`**: _(non implemented)_ Unicode input under BSD. Not implemented at this time. If you're a BSD user and want to help add support for it, please [open an issue on GitHub](https://github.com/qmk/qmk_firmware/issues). +### ** Windows (WinCompose) ** -* **`UNICODE_MODE_WINCOMPOSE`**: Windows Unicode input using [WinCompose](https://github.com/samhocevar/wincompose). As of v0.9.0, supports code points up to `0x10FFFF` (all possible code points). +**Mode Name:** `UNICODE_MODE_WINCOMPOSE` - To enable, install the [latest release](https://github.com/samhocevar/wincompose/releases/latest). Once installed, WinCompose will automatically run on startup. This mode works reliably under all version of Windows supported by the app. - By default, this mode uses right Alt (`KC_RALT`) as the Compose key, but this can be changed in the WinCompose settings and by defining [`UNICODE_KEY_WINC`](#input-key-configuration) with a different keycode. +This mode requires a third-party tool called [WinCompose](https://github.com/samhocevar/wincompose). It supports all possible code points, and is the recommended input mode for Windows. +To enable, install the [latest release from GitHub](https://github.com/samhocevar/wincompose/releases/latest). Once installed, it will automatically run on startup. This works reliably under all versions of Windows supported by WinCompose. -## 3. Setting the Input Mode :id=setting-the-input-mode +### ** Windows (HexNumpad) ** -To set your desired input mode, add the following define to your `config.h`: +**Mode Name:** `UNICODE_MODE_WINDOWS` -```c -#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX -``` +!> This input mode is *not* the "Alt code" system. Alt codes are not Unicode; they instead follow [the Windows-1252 character set](https://en.wikipedia.org/wiki/Alt_code). -This example sets the board's default input mode to `UNICODE_MODE_LINUX`. You can replace this with `UNICODE_MODE_MACOS`, `UNICODE_MODE_WINCOMPOSE`, or any of the other modes listed [above](#input-modes). The board will automatically use the selected mode on startup, unless you manually switch to another mode (see [below](#keycodes)). +This is Windows' built-in hex numpad Unicode input mode. It only supports code points up to `U+FFFF`, and is not recommended due to reliability and compatibility issues. -You can also select multiple input modes, which allows you to easily cycle through them using the `UC_NEXT`/`UC_PREV` keycodes. +To enable, run the following as an administrator, then reboot: -```c -#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX, UNICODE_MODE_WINCOMPOSE +``` +reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1 ``` -Note that the values are separated by commas. The board will remember the last used input mode and will continue using it on next power-up. You can disable this and force it to always start with the first mode in the list by adding `#define UNICODE_CYCLE_PERSIST false` to your `config.h`. +### ** Emacs ** -#### Keycodes +**Mode Name:** `UNICODE_MODE_EMACS` -You can switch the input mode at any time by using the following keycodes. Adding these to your keymap allows you to quickly switch to a specific input mode, including modes not listed in `UNICODE_SELECTED_MODES`. +Emacs supports code point input with the `insert-char` command. -|Keycode |Alias |Input Mode |Description | -|----------------------------|---------|-------------------------|-----------------------------------------------------------------------------| -|`QK_UNICODE_MODE_NEXT` |`UC_NEXT`|Next in list |Cycle through selected modes, reverse direction when Shift is held | -|`QK_UNICODE_MODE_PREVIOUS` |`UC_PREV`|Prev in list |Cycle through selected modes in reverse, forward direction when Shift is held| -|`QK_UNICODE_MODE_MACOS` |`UC_MAC` |`UNICODE_MODE_MACOS` |Switch to macOS input | -|`QK_UNICODE_MODE_LINUX` |`UC_LINX`|`UNICODE_MODE_LINUX` |Switch to Linux input | -|`QK_UNICODE_MODE_WINDOWS` |`UC_WIN` |`UNICODE_MODE_WINDOWS` |Switch to Windows input | -|`QK_UNICODE_MODE_BSD` |`UC_BSD` |`UNICODE_MODE_BSD` |Switch to BSD input _(not implemented)_ | -|`QK_UNICODE_MODE_WINCOMPOSE`|`UC_WINC`|`UNICODE_MODE_WINCOMPOSE`|Switch to Windows input using WinCompose | -|`QK_UNICODE_MODE_EMACS` |`UC_EMAC`|`UNICODE_MODE_EMACS` |Switch to emacs (`C-x-8 RET`) | +### ** BSD ** -You can also switch the input mode by calling `set_unicode_input_mode(x)` in your code, where _x_ is one of the above input mode constants (e.g. `UNICODE_MODE_LINUX`). +**Mode Name:** `UNICODE_MODE_BSD` -?> Using `UNICODE_SELECTED_MODES` is preferable to calling `set_unicode_input_mode()` in `matrix_init_user()` or similar functions, since it's better integrated into the Unicode system and has the added benefit of avoiding unnecessary writes to EEPROM. +Not currently implemented. If you're a BSD user and want to contribute support for this input mode, please [feel free](contributing.md)! -#### Audio Feedback + -If you have the [Audio feature](feature_audio.md) enabled on the board, you can set melodies to be played when you press the above keys. That way you can have some audio feedback when switching input modes. +## Keycodes :id=keycodes -For instance, you can add these definitions to your `config.h` file: +|Key |Aliases |Description | +|----------------------------|---------|----------------------------------------------------------------| +|`UC(c)` | |Send Unicode code point `c`, up to `0x7FFF` | +|`UM(i)` | |Send Unicode code point at index `i` in `unicode_map` | +|`UP(i, j)` | |Send Unicode code point at index `i`, or `j` if Shift/Caps is on| +|`QK_UNICODE_MODE_NEXT` |`UC_NEXT`|Cycle through selected input modes | +|`QK_UNICODE_MODE_PREVIOUS` |`UC_PREV`|Cycle through selected input modes in reverse | +|`QK_UNICODE_MODE_MACOS` |`UC_MAC` |Switch to macOS input | +|`QK_UNICODE_MODE_LINUX` |`UC_LINX`|Switch to Linux input | +|`QK_UNICODE_MODE_WINDOWS` |`UC_WIN` |Switch to Windows input | +|`QK_UNICODE_MODE_BSD` |`UC_BSD` |Switch to BSD input (not implemented) | +|`QK_UNICODE_MODE_WINCOMPOSE`|`UC_WINC`|Switch to Windows input using WinCompose | +|`QK_UNICODE_MODE_EMACS` |`UC_EMAC`|Switch to emacs (`C-x-8 RET`) | -```c -#define UNICODE_SONG_MAC AUDIO_ON_SOUND -#define UNICODE_SONG_LNX UNICODE_LINUX -#define UNICODE_SONG_BSD TERMINAL_SOUND -#define UNICODE_SONG_WIN UNICODE_WINDOWS -#define UNICODE_SONG_WINC UNICODE_WINDOWS -``` +## API :id=api +### `uint8_t get_unicode_input_mode(void)` :id=api-get-unicode-input-mode -## Additional Customization +Get the current Unicode input mode. -Because Unicode is a large and versatile feature, there are a number of options you can customize to make it work better on your system. +#### Return Value :id=api-get-unicode-input-mode-return-value -### Start and Finish Input Functions +The currently active Unicode input mode. -The functions for starting and finishing Unicode input on your platform can be overridden locally. Possible uses include customizing input mode behavior if you don't use the default keys, or adding extra visual/audio feedback to Unicode input. +--- -* `void unicode_input_start(void)` – This sends the initial sequence that tells your platform to enter Unicode input mode. For example, it holds the left Alt key followed by Num+ on Windows, and presses the `UNICODE_KEY_LNX` combination (default: Ctrl+Shift+U) on Linux. -* `void unicode_input_finish(void)` – This is called to exit Unicode input mode, for example by pressing Space or releasing the Alt key. +### `void set_unicode_input_mode(uint8_t mode)` :id=api-set-unicode-input-mode -You can find the default implementations of these functions in [`process_unicode_common.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_unicode_common.c). +Set the Unicode input mode. -### Input Mode Callbacks +#### Arguments :id=api-set-unicode-input-mode-arguments -There are callbacks functions available that are called whenever the unicode input mode changes. The new input mode is passed to the function. + - `uint8_t mode` + The input mode to set. -|Callback |Description | -|---------------------------------------------------|-----------------------------------------------------| -| `unicode_input_mode_set_kb(uint8_t input_mode)` | Callback for unicode input mode set, for keyboard. | -| `unicode_input_mode_set_user(uint8_t input_mode)` | Callback for unicode input mode set, for users. | +--- -This feature can be used, for instance, to implement LED indicators for the current unicode input mode. +### `void unicode_input_mode_step(void)` : id=api-unicode-input-mode-step -### Input Key Configuration +Change to the next Unicode input mode. -You can customize the keys used to trigger Unicode input for macOS, Linux and WinCompose by adding corresponding defines to your `config.h`. The default values match the platforms' default settings, so you shouldn't need to change this unless Unicode input isn't working, or you want to use a different key (e.g. in order to free up left or right Alt). +--- -|Define |Type |Default |Example | -|------------------|----------|------------------|-------------------------------------------| -|`UNICODE_KEY_MAC` |`uint8_t` |`KC_LALT` |`#define UNICODE_KEY_MAC KC_RALT` | -|`UNICODE_KEY_LNX` |`uint16_t`|`LCTL(LSFT(KC_U))`|`#define UNICODE_KEY_LNX LCTL(LSFT(KC_E))`| -|`UNICODE_KEY_WINC`|`uint8_t` |`KC_RALT` |`#define UNICODE_KEY_WINC KC_RGUI` | +### `void unicode_input_mode_step_reverse(void)` : id=api-unicode-input-mode-step-reverse +Change to the previous Unicode input mode. -## Sending Unicode Strings +--- -QMK provides several functions that allow you to send Unicode input to the host programmatically: +### `void unicode_input_mode_set_user(uint8_t input_mode)` :id=api-unicode-input-mode-set-user -### `send_unicode_string()` +User-level callback, invoked when the input mode is changed. -This function is much like `send_string()`, but it allows you to input UTF-8 characters directly. It supports all code points, provided the selected input mode also supports it. Make sure your `keymap.c` file is formatted using UTF-8 encoding. +#### Arguments :id=api-unicode-input-mode-set-user-arguments -```c -send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); -``` + - `uint8_t input_mode` + The new input mode. -Example uses include sending Unicode strings when a key is pressed, as described in [Macros](feature_macros.md). +--- -## Additional Language Support +### `void unicode_input_mode_set_kb(uint8_t input_mode)` :id=api-unicode-input-mode-set-kb -In `quantum/keymap_extras`, you'll see various language files — these work the same way as the ones for alternative layouts such as Colemak or BÉPO. When you include one of these language headers, you gain access to keycodes specific to that language / national layout. Such keycodes are defined by a 2-letter country/language code, followed by an underscore and a 4-letter abbreviation of the character to which the key corresponds. For example, including `keymap_french.h` and using `FR_UGRV` in your keymap will output `ù` when typed on a system with a native French AZERTY layout. +Keyboard-level callback, invoked when the input mode is changed. -If the primary system layout you use on your machine is different from US ANSI, using these language-specific keycodes can help your QMK keymaps better match what will actually be output on the screen. However, keep in mind that these keycodes are just aliases for the corresponding default US keycodes under the hood, and that the HID protocol used by keyboards is itself inherently based on US ANSI. +#### Arguments :id=api-unicode-input-mode-set-kb-arguments + - `uint8_t input_mode` + The new input mode. -## International Characters on Windows +--- -### AutoHotkey +### `void unicode_input_start(void)` :id=api-unicode-input-start -The method does not require Unicode support in the keyboard itself but instead depends on [AutoHotkey](https://autohotkey.com) running in the background. +Begin the Unicode input sequence. The exact behavior depends on the currently selected input mode: -First you need to select a modifier combination that is not in use by any of your programs. -Ctrl+Alt+Win is not used very widely and should therefore be perfect for this. -There is a macro defined for a mod-tab combo `LCAG_T`. -Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. -This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key. + - **macOS**: Hold `UNICODE_KEY_MAC` + - **Linux**: Tap `UNICODE_KEY_LNX` + - **WinCompose**: Tap `UNICODE_KEY_WINC`, then U + - **HexNumpad**: Hold Left Alt, then tap Numpad + + - **Emacs**: Tap Ctrl+X, then 8, then Enter -In the default script of AutoHotkey you can define custom hotkeys. +This function is weakly defined, and can be overridden in user code. - <^ { [ r, R, U1F923 ] }; -``` + - **macOS**: Release `UNICODE_KEY_MAC` + - **Linux**: Tap Escape + - **WinCompose**: Tap Escape + - **HexNumpad**: Release Left Alt + - **Emacs**: Tap Ctrl+G + +This function is weakly defined, and can be overridden in user code. + +--- + +### `void register_unicode(uint32_t code_point)` :id=api-register-unicode + +Input a single Unicode character. A surrogate pair will be sent if required by the input mode. + +#### Arguments :id=api-register-unicode-arguments + + - `uint32_t code_point` + The code point of the character to send. + +--- + +### `void send_unicode_string(const char *str)` :id=api-send-unicode-string + +Send a string containing Unicode characters. + +#### Arguments :id=api-send-unicode-string-arguments + + - `const char *str` + The string to send. + +--- + +### `uint8_t unicodemap_index(uint16_t keycode)` :id=api-unicodemap-index + +Get the index into the `unicode_map` array for the given keycode, respecting shift state for pair keycodes. + +#### Arguments :id=api-unicodemap-index-arguments + + - `uint16_t keycode` + The Unicode Map keycode to get the index of. + +#### Return Value :id=api-unicodemap-index-return-value + +An index into the `unicode_map` array. + +--- + +### `uint32_t unicodemap_get_code_point(uint8_t index)` :id=api-unicodemap-get-code-point + +Get the code point for the given index in the `unicode_map` array. + +#### Arguments :id=unicodemap-get-code-point-arguments + + - `uint8_t index` + The index into the `unicode_map` array. + +#### Return Value :id=unicodemap-get-code-point-return-value + +A Unicode code point value. + +--- + +### `void register_unicodemap(uint8_t index)` :id=api-register-unicodemap + +Send the code point for the given index in the `unicode_map` array. + +#### Arguments :id=api-register-unicodemap-arguments + + - `uint8_t index` + The index into the `unicode_map` array. + +--- + +### `void ucis_start(void)` :id=api-ucis-start + +Begin the input sequence. + +--- + +### `bool ucis_active(void)` :id=api-ucis-active + +Whether UCIS is currently active. + +#### Return Value :id=api-ucis-active-return-value + +`true` if UCIS is active. + +--- + +### `uint8_t ucis_count(void)` :id=api-ucis-count + +Get the number of characters in the input sequence buffer. + +#### Return Value :id=api-ucis-count-return-value + +The current input sequence buffer length. + +--- + +### `bool ucis_add(uint16_t keycode)` :id=api-ucis-add + +Add the given keycode to the input sequence buffer. + +#### Arguments :id=api-ucis-add-arguments + + - `uint16_t keycode` + The keycode to add. Must be between `KC_A` and `KC_Z`, or `KC_1` and `KC_0`. + +#### Return Value :id=api-ucis-add-return-value + +`true` if the keycode was added. + +--- + +### `bool ucis_remove_last(void)` :id=api-ucis-remove-last + +Remove the last character from the input sequence buffer. + +#### Return Value :id=api-ucis-remove-last + +`true` if the sequence was not empty. + +--- + +### `void ucis_finish(void)` :id=api-ucis-finish + +Mark the input sequence as complete, and attempt to match. + +--- + +### `void ucis_cancel(void)` :id=api-ucis-cancel + +Cancel the input sequence. + +--- + +### `void register_ucis(void)` :id=api-register-ucis -Save the file and run the command `setxkbmap us` to reload the layout. +Send the code point(s) for the given UCIS index. -You can define one custom character for key defined in the layout, and another if you populate the fourth layer. Additional layers up to 8th are also possible. +#### Arguments :id=api-register-ucis-arguments -This method is specific to the computer on which you set the custom layout. The custom keys will be available only when Xorg is running. To avoid accidents, you should always reload the layout using `setxkbmap`, otherwise an invalid layout could prevent you from logging into your system, locking you out. + - `uint8_t index` + The index into the UCIS symbol table. diff --git a/docs/flashing.md b/docs/flashing.md index 443fa3123e1..113d90ca38f 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -322,6 +322,29 @@ Flashing sequence: 3. Flash a .bin file 4. Reset the device into application mode (may be done automatically) +## WB32 DFU + +Some keyboards produced for several commercial brands (GMMK, Akko, MonsGeek, Inland) use this bootloader. The `wb32-dfu-updater` utility is bundled with [QMK MSYS](https://msys.qmk.fm/) and [Glorious's build of QMK Toolbox](https://www.gloriousgaming.com/blogs/guides-resources/gmmk-2-qmk-installation-guide). If neither of these flashing methods is available for your OS, you will likely need to [compile the CLI version from source](https://github.com/WestberryTech/wb32-dfu-updater). + +The `info.json` setting for this bootloader is `wb32-dfu`. + +Compatible flashers: + +* [Glorious's build of QMK Toolbox](https://www.gloriousgaming.com/blogs/guides-resources/gmmk-2-qmk-installation-guide) (recommended GUI) +* [wb32-dfu-updater_cli](https://github.com/WestberryTech/wb32-dfu-updater) / `:flash` target in QMK (recommended command line) + ``` + wb32-dfu-updater_cli -t -s 0x8000000 -D + ``` + +Flashing sequence: + +1. Enter the bootloader using any of the following methods: + * Tap the `QK_BOOT` keycode + * Press the `RESET` button on the PCB +2. Wait for the OS to detect the device +3. Flash a .bin file +4. Reset the device into application mode (may be done automatically) + ## tinyuf2 Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on F303/F401/F411. diff --git a/docs/getting_started_make_guide.md b/docs/getting_started_make_guide.md index 1a7e276098a..3d98e4602b4 100644 --- a/docs/getting_started_make_guide.md +++ b/docs/getting_started_make_guide.md @@ -109,7 +109,7 @@ This allows you to send Unicode characters using `UC()` in your keym `UNICODEMAP_ENABLE` -This allows you to send Unicode characters using `X()` in your keymap. You will need to maintain a mapping table in your keymap file. All possible code points (up to `0x10FFFF`) are supported. +This allows you to send Unicode characters using `UM()` in your keymap. You will need to maintain a mapping table in your keymap file. All possible code points (up to `0x10FFFF`) are supported. `UCIS_ENABLE` diff --git a/docs/i2c_driver.md b/docs/i2c_driver.md index f4e6c6619e6..92b666b5e34 100644 --- a/docs/i2c_driver.md +++ b/docs/i2c_driver.md @@ -72,7 +72,7 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas The following configuration values depend on the specific MCU in use. -### I2Cv1 :id=i2cv1 +### I2Cv1 :id=arm-configuration-i2cv1 * STM32F1xx * STM32F2xx @@ -88,7 +88,7 @@ See [this page](https://www.playembedded.org/blog/stm32-i2c-chibios/#7_I2Cv1_con |`I2C1_CLOCK_SPEED` |`100000` | |`I2C1_DUTY_CYCLE` |`STD_DUTY_CYCLE`| -### I2Cv2 :id=i2cv2 +### I2Cv2 :id=arm-configuration-i2cv2 * STM32F0xx * STM32F3xx @@ -105,9 +105,9 @@ See [this page](https://www.playembedded.org/blog/stm32-i2c-chibios/#8_I2Cv2_I2C |`I2C1_TIMINGR_SCLH` |`38U` | |`I2C1_TIMINGR_SCLL` |`129U` | -## Functions :id=functions +## API :id=api -### `void i2c_init(void)` +### `void i2c_init(void)` :id=api-i2c-init Initialize the I2C driver. This function must be called only once, before any of the below functions can be called. @@ -126,28 +126,28 @@ void i2c_init(void) { --- -### `i2c_status_t i2c_start(uint8_t address, uint16_t timeout)` +### `i2c_status_t i2c_start(uint8_t address, uint16_t timeout)` :id=api-i2c-start Start an I2C transaction. -#### Arguments +#### Arguments :id=api-i2c-start-arguments - `uint8_t address` The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically). - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value :id=api-i2c-start-return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. --- -### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` +### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` :id=api-i2c-transmit Send multiple bytes to the selected I2C device. -#### Arguments +#### Arguments :id=api-i2c-transmit-arguments - `uint8_t address` The 7-bit I2C address of the device. @@ -158,17 +158,17 @@ Send multiple bytes to the selected I2C device. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value :id=api-i2c-transmit-return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. --- -### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` +### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-receive Receive multiple bytes from the selected I2C device. -#### Arguments +#### Arguments :id=api-i2c-receive-arguments - `uint8_t address` The 7-bit I2C address of the device. @@ -179,17 +179,17 @@ Receive multiple bytes from the selected I2C device. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value :id=api-i2c-receive-return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. --- -### `i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` +### `i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-writereg Writes to a register with an 8-bit address on the I2C device. -#### Arguments +#### Arguments :id=api-i2c-writereg-arguments - `uint8_t devaddr` The 7-bit I2C address of the device. @@ -202,17 +202,17 @@ Writes to a register with an 8-bit address on the I2C device. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value :id=api-i2c-writereg-return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. --- -### `i2c_status_t i2c_writeReg16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` +### `i2c_status_t i2c_writeReg16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-writereg16 Writes to a register with a 16-bit address (big endian) on the I2C device. -#### Arguments +#### Arguments :id=api-i2c-writereg16-arguments - `uint8_t devaddr` The 7-bit I2C address of the device. @@ -225,17 +225,17 @@ Writes to a register with a 16-bit address (big endian) on the I2C device. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value :id=api-i2c-writereg16-return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. --- -### `i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` +### `i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-readreg Reads from a register with an 8-bit address on the I2C device. -#### Arguments +#### Arguments :id=api-i2c-readreg-arguments - `uint8_t devaddr` The 7-bit I2C address of the device. @@ -246,7 +246,7 @@ Reads from a register with an 8-bit address on the I2C device. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value :id=api-i2c-readreg-return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. @@ -256,7 +256,7 @@ Reads from a register with an 8-bit address on the I2C device. Reads from a register with a 16-bit address (big endian) on the I2C device. -#### Arguments +#### Arguments :id=api-i2c-readreg16-arguments - `uint8_t devaddr` The 7-bit I2C address of the device. @@ -267,12 +267,12 @@ Reads from a register with a 16-bit address (big endian) on the I2C device. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value :id=api-i2c-readreg16-return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. --- -### `i2c_status_t i2c_stop(void)` +### `i2c_status_t i2c_stop(void)` :id=api-i2c-stop Stop the current I2C transaction. diff --git a/docs/ja/data_driven_config.md b/docs/ja/data_driven_config.md index bc8f4d24a54..6296173b66a 100644 --- a/docs/ja/data_driven_config.md +++ b/docs/ja/data_driven_config.md @@ -109,8 +109,8 @@ QMK が完全な `info.json` を生成するときはいつでも、`config.h` パズルの最後のピースは、ビルドシステムに新しいオプションを提供することです。 これは、2つのファイルを生成することによって行われます。 -* `.build/obj_/src/info_config.h` -* `.build/obj_/src/rules.mk` +* `.build/obj__/src/info_config.h` +* `.build/obj__/src/rules.mk` この2つのファイルは、次のコードによって生成されます。 diff --git a/docs/keycodes.md b/docs/keycodes.md index e5b6246af79..65762234a44 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -848,8 +848,8 @@ See also: [Unicode Support](feature_unicode.md) |Key |Aliases |Description | |----------------------------|---------|----------------------------------------------------------------| |`UC(c)` | |Send Unicode code point `c`, up to `0x7FFF` | -|`X(i)` | |Send Unicode code point at index `i` in `unicode_map` | -|`XP(i, j)` | |Send Unicode code point at index `i`, or `j` if Shift/Caps is on| +|`UM(i)` | |Send Unicode code point at index `i` in `unicode_map` | +|`UP(i, j)` | |Send Unicode code point at index `i`, or `j` if Shift/Caps is on| |`QK_UNICODE_MODE_NEXT` |`UC_NEXT`|Cycle through selected input modes | |`QK_UNICODE_MODE_PREVIOUS` |`UC_PREV`|Cycle through selected input modes in reverse | |`QK_UNICODE_MODE_MACOS` |`UC_MAC` |Switch to macOS input | diff --git a/docs/newbs_building_firmware_configurator.md b/docs/newbs_building_firmware_configurator.md index eae0cef2c28..20256e5f28f 100644 --- a/docs/newbs_building_firmware_configurator.md +++ b/docs/newbs_building_firmware_configurator.md @@ -4,6 +4,8 @@ The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files. +It should be noted that Configurator cannot produce firmwares for keyboards using a different controller than they were designed for, i.e. an RP2040 controller on a board designed for pro micro. You will have to use the command line [converters](https://docs.qmk.fm/#/feature_converters?id=supported-converters) for this. + Watch the [Video Tutorial](https://www.youtube.com/watch?v=-imgglzDMdY). Many people find that is enough information to start programming their own keyboard. The QMK Configurator works best with Chrome or Firefox. diff --git a/docs/newbs_building_firmware_workflow.md b/docs/newbs_building_firmware_workflow.md index 51ce3049013..e0cfdc77dfa 100644 --- a/docs/newbs_building_firmware_workflow.md +++ b/docs/newbs_building_firmware_workflow.md @@ -85,6 +85,8 @@ Visit the [QMK Configurator](https://config.qmk.fm/#/) to create a keymap file: 3. Customise the key layout according to your preference. 4. Select download next to **KEYMAP.JSON** and save the JSON file into the `~/qmk_keymap/` folder. +!> **Important:** Make sure that the GitHub username you use in step 2 is correct. If it is not, the build process will fail to locate your files in the right folder. + ### Add a GitHub Action workflow Open the file `~/qmk_keymap/.github/workflows/build.yml` with your favorite [text editor](newbs_learn_more_resources.md#text-editor-resources), paste the following workflow content, and save it: diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md index 549ffcb2be6..c5ba897e17a 100644 --- a/docs/newbs_flashing.md +++ b/docs/newbs_flashing.md @@ -15,7 +15,7 @@ Different keyboards have different ways to enter this special mode. If your PCB * Press the physical `RESET` button, usually located on the underside of the PCB * Locate header pins on the PCB labeled `RESET` and `GND`, and short them together while plugging your PCB in -If you've attempted all of the above to no avail, and the main chip on the board says `STM32` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along! +If you've attempted all of the above to no avail, and the main chip on the board says `STM32` or `RP2-B1` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along! Otherwise, you should see a message in yellow, similar to this in QMK Toolbox: @@ -31,6 +31,8 @@ The simplest way to flash your keyboard will be with the [QMK Toolbox](https://g However, the Toolbox is currently only available for Windows and macOS. If you're using Linux (or just wish to flash the firmware from the command line), skip to the [Flash your Keyboard from the Command Line](#flash-your-keyboard-from-the-command-line) section. +?> QMK Toolbox is not necessary for flashing [RP2040 devices](https://docs.qmk.fm/#/flashing?id=raspberry-pi-rp2040-uf2). + ### Load the File into QMK Toolbox Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory. diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index b0d28d89d16..a16207f267b 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -120,7 +120,7 @@ NOTE: remember to follow the instructions printed at the end of installation (us ### ** Windows ** -After installing QMK you can set it up with this command: +Open QMK MSYS and run the following command: qmk setup @@ -128,7 +128,7 @@ In most situations you will want to answer `y` to all of the prompts. ### ** macOS ** -After installing QMK you can set it up with this command: +Open Terminal and run the following command: qmk setup @@ -136,7 +136,7 @@ In most situations you will want to answer `y` to all of the prompts. ### ** Linux/WSL ** -After installing QMK you can set it up with this command: +Open your preferred terminal app and run the following command: qmk setup @@ -150,7 +150,7 @@ Luckily, the fix is easy. Run this as your user: `echo 'PATH="$HOME/.local/bin:$ ### ** FreeBSD ** -After installing QMK you can set it up with this command: +Open your preferred terminal app and run the following command: qmk setup diff --git a/docs/other_vscode.md b/docs/other_vscode.md index 83ae6e6ed06..49d5035b08e 100644 --- a/docs/other_vscode.md +++ b/docs/other_vscode.md @@ -96,7 +96,7 @@ There are a number of extensions that you may want to install: * [clangd](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) - _[Optional]_ - This is the language server for C/C++ that VS Code uses. It provides IntelliSense and other features. * [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) - _[Optional]_ - Helps to keep the code to the QMK Coding Conventions. * [GitHub Markdown Preview](https://marketplace.visualstudio.com/items?itemName=bierner.github-markdown-preview) - _[Optional]_ - Makes the markdown preview in VS Code more like GitHub's. -* [VS Live Share Extension Pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack) - _[Optional]_ - This extension allows somebody else to access your workspace (or you to access somebody else's workspace) and help out. This is great if you're having issues and need some help from somebody. +* [VS Live Share Extension Pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) - _[Optional]_ - This extension allows somebody else to access your workspace (or you to access somebody else's workspace) and help out. This is great if you're having issues and need some help from somebody. Restart once you've installed any extensions. diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 65584a95381..c98504c8c0c 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -11,7 +11,6 @@ If there are any inconsistencies with these recommendations, you're best off [cr - if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](newbs_git_using_your_master_branch.md) page after merging -- (end of this document will contain the contents of the message) - PRs should contain the smallest amount of modifications required for a single change to the codebase - multiple keyboards at the same time is not acceptable - - exception: keymaps for a single user targeting multiple keyboards and/or userspace is acceptable - **the smaller the PR, the higher likelihood of a quicker review, higher likelihood of quicker merge, and less chance of conflicts** - newly-added directories and filenames must be lowercase - the lowercase requirement may be relaxed if upstream sources originally had uppercase characters (e.g. LUFA, ChibiOS, or imported files from other repositories etc.) @@ -40,9 +39,11 @@ If there are any inconsistencies with these recommendations, you're best off [cr ## Keymap PRs +Note that personal keymap submissions will no longer be accepted. This section applies to manufacturer-supported keymaps. + - `#include QMK_KEYBOARD_H` preferred to including specific board files - prefer layer `enum`s to `#define`s -- require custom keycode `enum`s to `#define`s, first entry must have ` = SAFE_RANGE` +- custom keycode `enum`s must have first entry `= SAFE_RANGE` - terminating backslash (`\`) in lines of LAYOUT macro parameters is superfluous and should be removed - some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap @@ -132,6 +133,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - if using `MO(1)` and `MO(2)` keycodes together to access a third layer, the [Tri Layer](https://docs.qmk.fm/#/feature_tri_layer) feature should be used, rather than manually implementing this using `layer_on/off()` and `update_tri_layer()` functions in the keymap's `process_record_user()`. - default (and via) keymaps should be "pristine" - bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap + - what does pristine mean? no custom keycodes. no advanced features like tap dance or macros. basic mod taps and home row mods would be acceptable where their use is necessary - standard layouts preferred in these keymaps, if possible - should use [encoder map feature](https://docs.qmk.fm/#/feature_encoders?id=encoder-map), rather than `encoder_update_user()` - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via` diff --git a/docs/qmk_custom_dark.css b/docs/qmk_custom_dark.css index 35498fbd863..ffa5539922a 100644 --- a/docs/qmk_custom_dark.css +++ b/docs/qmk_custom_dark.css @@ -2,9 +2,13 @@ background-color: #555; } -.markdown-section p.tip, .markdown-section tr:nth-child(2n) { - background-color:#444; + background-color:#444; +} + +.markdown-section p.tip { + background-color:#555; + color:#FFF; } .markdown-section tr { @@ -16,7 +20,7 @@ } .markdown-section p.tip code { - background-color: #555; + background-color: #333; color: #fff; } diff --git a/docs/quantum_keycodes.md b/docs/quantum_keycodes.md index bc68cbc9221..a41681ac85f 100644 --- a/docs/quantum_keycodes.md +++ b/docs/quantum_keycodes.md @@ -15,3 +15,5 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are |`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory) | |`QK_MAKE` | |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held. Puts keyboard into bootloader mode if shift & control are held | |`QK_REBOOT` |`QK_RBT` |Resets the keyboard. Does not load the bootloader | + +!> Note: `QK_MAKE` requires `#define ENABLE_COMPILE_KEYCODE` in your config.h to function. diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md index 317a9d9f1a2..5e399183f8b 100644 --- a/docs/quantum_painter.md +++ b/docs/quantum_painter.md @@ -40,7 +40,7 @@ Supported devices: | `QUANTUM_PAINTER_NUM_FONTS` | `4` | The maximum number of fonts that can be loaded at any one time. | | `QUANTUM_PAINTER_CONCURRENT_ANIMATIONS` | `4` | The maximum number of animations that can be executed at the same time. | | `QUANTUM_PAINTER_LOAD_FONTS_TO_RAM` | `FALSE` | Whether or not fonts should be loaded to RAM. Relevant for fonts stored in off-chip persistent storage, such as external flash. | -| `QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE` | `32` | The limit of the amount of pixel data that can be transmitted in one transaction to the display. Higher values require more RAM on the MCU. | +| `QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE` | `1024` | The limit of the amount of pixel data that can be transmitted in one transaction to the display. Higher values require more RAM on the MCU. | | `QUANTUM_PAINTER_SUPPORTS_256_PALETTE` | `FALSE` | If 256-color palettes are supported. Requires significantly more RAM on the MCU. | | `QUANTUM_PAINTER_SUPPORTS_NATIVE_COLORS` | `FALSE` | If native color range is supported. Requires significantly more RAM on the MCU. | | `QUANTUM_PAINTER_DEBUG` | _unset_ | Prints out significant amounts of debugging information to CONSOLE output. Significant performance degradation, use only for debugging. | diff --git a/docs/reference_glossary.md b/docs/reference_glossary.md index ace6b5f330b..31855606be7 100644 --- a/docs/reference_glossary.md +++ b/docs/reference_glossary.md @@ -113,7 +113,7 @@ A modifier that acts as if it is held down until another key is released, so you A low cost AVR development board. Clones of this device are often found on ebay very inexpensively (under $5) but people often struggle with flashing their pro micros. ## Pull Request -A request to submit code to QMK. We encourage all users to submit Pull Requests for their personal keymaps. +A request to submit code to QMK. We encourage all users to submit Pull Requests for bugfixes and new features. ## QWERTY The standard English keyboard layout, and often a shortcut for other language's standard layouts. Named for the first 6 letters on the keyboard. diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index b5c9b3be996..91581afc73b 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -1,369 +1,691 @@ -# `info.json` +# `info.json` Reference :id=info-json-reference 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. Its key/value pairs are ruled by the [`data/schemas/keyboard.jsonschema`](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema) file. To learn more about the why and how of the schema file see the [Data Driven Configuration](https://docs.qmk.fm/#/data_driven_config) page. -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%. +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 information common to all Clueboard products, such as `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` contains more specific information about Clueboard 66%. -## `info.json` Format +## General Metadata :id=general-metadata -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. - * Example: `Clueboard 66%` -* `manufacturer` - * A free-form text string describing the keyboard's manufacturer. - * Example: `Clueboard` -* `url` - * A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard. - * Example: `https://clueboard.co` -* `maintainer` +* `keyboard_name` (Required) + * A free-form text string describing the keyboard. This will be used as the USB product string. Can include Unicode characters, escaped to ASCII eg. `\u03A8` (Ψ). + * Example: `"Clueboard 66%"` +* `maintainer` (Required) * 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. -* `debounce` - * The amount of time in milliseconds to wait for debounce to happen. - * Default: `5` -* `diode_direction` - * The direction diodes face. See [`DIRECT_PINS` in the hardware configuration](https://docs.qmk.fm/#/config_options?id=hardware-options) for more details. -* `layout_aliases` - * A dictionary containing layout aliases. The key is the alias and the value is a layout in `layouts` it maps to. -* `layouts` - * Physical Layout representations. See the [Layout Format](#layout-format) section for more detail. -* `matrix_pins` - * 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. - - -?> For all the available keys and their allowed values refer back to the [`data/schemas/keyboard.jsonschema`](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema) file. - -## Layout Format - -Within our `info.json` file the `layouts` portion of the dictionary contains several nested dictionaries. The outer layer consists of QMK layout macros, for example `LAYOUT_ansi` or `LAYOUT_iso`. - -* `layout` - * A list of Key Dictionaries describing the physical layout. See the next section for more details. - -### Key Dictionary Format - -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. - -* `x` - * **Required**. The absolute position of the key in the horizontal axis, in Key Units. -* `y` - * **Required**. The absolute position of the key in the vertical axis, in Key Units. -* `w` - * The width of the key, in Key Units. - * Default: `1` -* `h` - * The height of the key, in Key Units. - * Default: `1` -* `label` - * What to name this position in the matrix. This should usually correspond to the keycode for the first layer of the default keymap. -* `matrix` - * A two item list describing the row and column location for this key. - * Example: `[0, 4]` - -## Matrix Pins - -Currently QMK supports connecting switches either directly to GPIO pins or via a switch matrix. At this time you can not combine these, they are mutually exclusive. - -### Switch Matrix - -Most keyboards use a switch matrix to connect keyswitches to the MCU. You can define your pin columns and rows to configure your switch matrix. When defining switch matrices you should also define your `diode_direction`. - -Example: - -```json -{ - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["F4", "E6", "B1", "D2"], - "rows": ["B0", "D3", "D5", "D4", "D6"] - } -} -``` - -### Direct Pins - -Direct pins are when you connect one side of the switch to GND and the other side to a GPIO pin on your MCU. No diode is required, but there is a 1:1 mapping between switches and pins. - -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 -{ - "matrix_pins": { - "direct": [ - ["A10", "A9"], - ["A0", "B8"], - [null, "B11"], - ["B9", "A8"], - ["A7", "B1"], - [null, "B2"] - ] + * Example: `"skullydazed"` +* `manufacturer` (Required) + * A free-form text string describing the keyboard's manufacturer. This will be used as the USB manufacturer string. Can include Unicode characters, escaped to ASCII eg. `\u03A8` (Ψ). + * Example: `"Clueboard"` +* `url` (Required) + * A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard. + * Example: `"https://clueboard.co"` +* `bootloader_instructions` + * Instructions for putting the keyboard into a mode that allows for firmware flashing. + * Example: `"Press the button marked RESET on the back of the PCB"` +* `tags` + * A list of tags describing the keyboard. + * Example: `["ortho", "split", "rgb"]` + +## Hardware Configuration :id=hardware-configuration + +* `board` + * Override the default ChibiOS board name (ARM-based keyboards only). + * Example: `"BLACKPILL_STM32_F411"` +* `bootloader` + * The bootloader in use on the keyboard. Required if `development_board` is not specified. +* `development_board` + * The microcontroller development board, if applicable. + * Example: `"promicro"` +* `pin_compatible` + * The form factor of the development board, if applicable. Must be one of `elite_c`, `promicro`. +* `processor` + * The microcontroller in use on the keyboard. Required if `development_board` is not specified. + +## Firmware Configuration :id=firmware-configuration + +* `build` + * `debounce_type` + * The debounce algorithm to use. Must be one of `asym_eager_defer_pk`, `custom`, `sym_defer_g`, `sym_defer_pk`, `sym_defer_pr`, `sym_eager_pk`, `sym_eager_pr`. + * `firmware_format` + * The format of the final output binary. Must be one of `bin`, `hex`, `uf2`. + * `lto` + * Enable Link-Time Optimization. + * Default: `false` +* `features` + * A dictionary of features to enable or disable. + * Example: + ```json + { + "rgb_matrix": true, + "rgblight": false } -} -``` + ``` +* `qmk` + * `tap_capslock_delay` + * The delay between keydown and keyup for Caps Lock tap events in milliseconds. + * Default: `80` (80 ms) + * `tap_keycode_delay` + * The delay between keydown and keyup for tap events in milliseconds. + * Default: `0` (no delay) +* `tapping` + * `hold_on_other_key_press` + * Default: `false` + * `hold_on_other_key_press_per_key` + * Default: `false` + * `permissive_hold` + * Default: `false` + * `permissive_hold_per_key` + * Default: `false` + * `retro` + * Default: `false` + * `retro_per_key` + * Default: `false` + * `term` + * Default: `200` (200 ms) + * `term_per_key` + * Default: `false` + * `toggle` + * Default: `5` + +## APA102 :id=apa102 + +Configures the APA102 driver. + +* `apa102` + * `clock_pin` (Required) + * The GPIO pin connected to `CI` on the first LED in the chain. + * `data_pin` (Required) + * The GPIO pin connected to `DI` on the first LED in the chain. + * `default_brightness` + * The initial global brightness level (independent of the RGB data), from 0 to 31. + * Default: `31` + +## Audio :id=audio + +Configures the [Audio](feature_audio.md) feature. + +* `audio` + * `macro_beep` + * Play a short beep for `\a` (ASCII `BEL`) characters in Send String macros. + * Default: `false` + * `pins` (Required) + * The GPIO pin(s) connected to the speaker(s). + * `voices` + * Use multiple audio voices. + * Default: `false` + +## Backlight :id=backlight + +Configures the [Backlight](feature_backlight.md) feature. + +* `backlight` + * `as_caps_lock` + * Use the backlight as a Caps Lock indicator. + * Default: `false` + * `breathing` + * Whether backlight breathing is enabled. + * Default: `false` + * `breathing_period` + * The length of one backlight breathing cycle in seconds. + * Default: `6` (6 seconds) + * `driver` + * The driver to use. Must be one of `custom`, `pwm`, `software`, `timer`. + * Default: `"pwm"` + * `levels` + * The number of brightness levels (excluding off), from 1 to 31. + * Default: `3` + * `max_brightness` + * The maximum PWM value which brightness is scaled to, from 0 to 255. + * Default: `255` + * `on_state` + * The logical GPIO state required to turn the LEDs on. + * Default: `1` (on = high) + * `pin` + * The GPIO pin connected to the backlight circuit. + * `pins` + * A list of GPIO pins connected to the backlight LEDs (`software` and `timer` drivers only). + +## Bluetooth :id=bluetooth + +Configures the [Bluetooth](feature_bluetooth.md) feature. + +* `bluetooth` + * `driver` + * The driver to use. Must be one of `custom`, `bluefruit_le`, `rn42`. + +## Bootmagic :id=bootmagic + +Configures the [Bootmagic](feature_bootmagic.md) feature. + +* `bootmagic` + * `enabled` + * Enables the Bootmagic feature. + * Default: `false` + * `matrix` + * The matrix position of the key to check during startup. This should generally be set to the (physically) top left key. + * Default: `[0, 0]` + +## Caps Word :id=caps-word + +Configures the [Caps Word](feature_caps_word.md) feature. + +* `caps_word` + * `both_shifts_turns_on` + * Activate Caps Word by pressing both Shift keys. + * Default: `false` + * `double_tap_shift_turns_on` + * Activate Caps Word by pressing Left Shift twice. + * Default: `false` + * `enabled` + * Enables the Caps Word feature. + * Default: `false` + * `idle_timeout` + * The amount of time before Caps Word automatically deactivates in milliseconds. + * Default: `5000` (5 seconds) + * `invert_on_shift` + * Invert shift state instead of deactivating Caps Word when Shift is pressed. + * Default: `false` + +## Combo :id=combo + +Configures the [Combo](feature_combo.md) feature. + +* `combo` + * `term` + * The amount of time to recognize a combo in milliseconds. + * Default: `50` (50 ms) + +## EEPROM :id=eeprom + +Configures the [EEPROM](eeprom_driver.md) driver. + +* `eeprom` + * `driver` + * The EEPROM backend to use. Must be one of `custom`, `i2c`, `legacy_stm32_flash`, `spi`, `transient`, `vendor`, `wear_leveling`. + * Default: `"vendor"` + +## Encoder :id=encoder + +Configures the [Encoder](feature_encoders.md) feature. + +* `encoder` + * `rotary` + * A list of encoder objects. + * `pin_a` (Required) + * The GPIO pin connected to the encoder's `A` pin. + * `pin_b` (Required) + * The GPIO pin connected to the encoder's `B` pin. + * `resolution` + * The number of edge transitions on both pins required to register an input. + * Default: `4` + +## Indicators :id=indicators + +Configures the [LED Indicators](feature_led_indicators.md) feature. + +* `indicators` + * `caps_lock` + * The GPIO pin connected to the Caps Lock LED. + * `compose` + * The GPIO pin connected to the Compose LED. + * `kana` + * The GPIO pin connected to the Kana LED. + * `num_lock` + * The GPIO pin connected to the Num Lock LED. + * `on_state` + * The logical GPIO state required to turn the LEDs on. + * Default: `1` (on = high) + * `scroll_lock` + * The GPIO pin connected to the Scroll Lock LED. + +## Layouts :id=layouts + +The `layouts` portion of the dictionary contains several nested dictionaries. The outer layer consists of QMK layout names, for example `LAYOUT_60_ansi` or `LAYOUT_60_iso`. -### Additional Options +Each key dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Data format for [Keyboard Layout Editor](https://keyboard-layout-editor.com), you will find many of the concepts the same. Key names and layout choices are reused wherever possible, but unlike KLE each key is stateless, inheriting no properties from the keys that came before it. -* `input_pressed_state` - * This configures state of the GPIO pins when the key is pressed - `1` for high, `0` for low - * Default: `0` - -Example: - -```json - "matrix_pins": { - "input_pressed_state": 1, -}, -``` - -## Non-RGB LED Lighting - -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 +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. -Enable by setting +The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize info.json layout data (such as `qmk info -l` and the QMK Configurator) should display this key as expected. -```json - "features": { - "backlight": true - } -``` - -* `breathing` - * Enable backlight breathing, if supported -* `breathing_period` - * The length of one backlight “breath” in seconds -* `levels` - * The number of brightness levels (maximum 31, excluding off) -* `max_brightness` - * The maximum duty cycle of the backlight LED(s) (0-255) -* `pin` - * The pin that controls the backlight LED(s) -* `pins` - * Array of pins that controls the backlight LED(s) (See [Multiple Backlight Pins](feature_backlight.md#multiple-backlight-pins)) -* `on_state` - * The state of the indicator pins when the LED is "on" - `1` for high, `0` for low - * Default: `1` - -Example: - -```json -{ - "backlight": { - "breathing": true, - "breathing_period": 5, - "levels": 15, - "pin": "B7" - } -} -``` - -### LED Indicators - -Used for indicating Num Lock, Caps Lock, and Scroll Lock. May be soldered in-switch or in a dedicated area. - -* `num_lock` - * The pin that controls the `Num Lock` LED -* `caps_lock` - * 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: - -```json -{ - "indicators": { - "num_lock": "B6", - "caps_lock": "D2", - "scroll_lock": "A3" +* `community_layouts` + * A list of community layouts supported by the keyboard. + * Example: `["60_ansi", "60_iso"]` +* `layout_aliases` + * A mapping of layout aliases to layout definitions. + * Example: + ```json + { + "LAYOUT_ansi": "LAYOUT_60_ansi", + "LAYOUT_iso": "LAYOUT_60_iso" } -} - -``` - -## RGB Lighting - -This section controls the legacy WS2812 support in QMK. This should not be confused with the RGB Matrix feature, which can be used to control both WS2812 and ISSI RGB LEDs. - -The following items can be set. Not every value is required. - -* `led_count` - * The number of LEDs in your strip -* `pin` - * The GPIO pin that your LED strip is connected to -* `animations` - * A dictionary that lists enabled and disabled animations. See [RGB Light Animations](#rgb_light_animations) below. -* `sleep` - * Set to `true` to enable lighting during host sleep -* `split` - * 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` - * What the maximum brightness (value) level is (0-255) -* `hue_steps` - * How many steps of adjustment to have for hue -* `saturation_steps` - * How many steps of adjustment to have for saturation -* `brightness_steps` - * How many steps of adjustment to have for brightness (value) - -Example: - -```json -{ - "rgblight": { - "led_count": 4, - "pin": "F6", - "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, - "animations": { - "knight": true, - "rainbow_swirl": true + ``` +* `layouts` + * A dictionary of layouts supported by the keyboard. + * `LAYOUT_` + * `layout` + * A list of key dictionaries comprising the layout. Each key dictionary contains: + * `matrix` (Required) + * The matrix position for the key. + * Example: `[0, 4]` (row 0, column 4) + * `x` (Required) + * The absolute position of the key in the horizontal axis, in key units. + * `y` (Required) + * The absolute position of the key in the vertical axis, in key units. + * `h` + * The height of the key, in key units. + * Default: `1` (1u) + * `label` + * What to name the key. This is *not* a key assignment as in the keymap, but should usually correspond to the keycode for the first layer of the default keymap. + * Example: `"Escape"` + * `r` + * The rotation angle in degrees. Currently not implemented. + * `rx` + * The absolute X position of the rotation axis. Currently not implemented. + * `ry` + * The absolute Y position of the rotation axis. Currently not implemented. + * `w` + * The width of the key, in key units. + * Default: `1` (1u) + * Example: `{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}` + +## Leader Key :id=leader-key + +Configures the [Leader Key](feature_leader_key.md) feature. + +* `leader_key` + * `timing` + * Reset the `timeout` on each keypress. + * Default: `false` + * `strict_processing` + * Do not extract the tap keycodes from Layer-Tap and Mod-Tap key events. + * Default: `false` + * `timeout` + * The amount of time to complete a leader sequence in milliseconds. + * Default: `300` (300 ms) + +## LED Matrix :id=led-matrix + +Configures the [LED Matrix](feature_led_matrix.md) feature. + +* `led_matrix` + * `animations` + * A dictionary of effects to enable or disable. Effects which are absent default to `false`. + * Example: + ```json + { + "alpha_mods": true, + "breathing": true, + "cycle_left_right": false } - } -} -``` - -### RGBLight Animations - -The following animations can be enabled: - -|Key |Description | -|-----------------|--------------------------------------| -|`alternating` |Enable alternating animation mode. | -|`breathing` |Enable breathing animation mode. | -|`christmas` |Enable christmas animation mode. | -|`knight` |Enable knight animation mode. | -|`rainbow_mood` |Enable rainbow mood animation mode. | -|`rainbow_swirl` |Enable rainbow swirl animation mode. | -|`rgb_test` |Enable RGB test animation mode. | -|`snake` |Enable snake animation mode. | -|`static_gradient`|Enable static gradient mode. | -|`twinkle` |Enable twinkle animation mode. | - -## USB - -Every USB keyboard needs to have its USB parameters defined. At a minimum you need to set the Vendor ID, Product ID, and device version. - -Example: - -```json -{ - "usb": { - "vid": "0xC1ED", - "pid": "0x23B0", - "device_version": "1.0.0" - } -} -``` - -The device version is a BCD (binary coded decimal) value, in the format `MMmr`, so the below value would look like `0x0100` in the generated code. This also means the maximum valid values for each part are `99.9.9`, despite it being a hexadecimal value under the hood. - -## Encoders + ``` + * `center_point` + * The centroid (geometric center) of the LEDs. Used for certain effects. + * Default: `[112, 32]` + * `driver` (Required) + * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3731`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. + * `layout` (Required) + * List of LED configuration dictionaries. Each dictionary contains: + * `flags` (Required) + * A bitfield of flags describing the type of LED. + * `x` (Required) + * The position of the LED in the horizontal axis, from 0 to 224. + * `y` (Required) + * The position of the LED in the vertical axis, from 0 to 64. + * `matrix` + * The key matrix position associated with the LED. + * Example: `[0, 2]` + * Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}` + * `max_brightness` + * The maximum value which brightness is scaled to, from 0 to 255. + * Default: `255` + * `speed_steps` + * The number of speed adjustment steps. + * Default: `16` + * `split_count` + * For split keyboards, the number of LEDs on each half. + * Example: `[16, 16]` + * `timeout` + * The LED activity timeout in milliseconds. + * Default: `0` (no timeout) + * `val_steps` + * The number of brightness adjustment steps. + * Default: `8` + +## Matrix :id=matrix -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` - * __Required__. A pad definition -* `pin_b` - * __Required__. B pad definition -* `resolution` - * How many pulses the encoder registers between each detent - -Examples: - -```json -{ - "encoder": { - "rotary": [ - { "pin_a": "B5", "pin_b": "A2" } - ] - } -} -``` - -```json -{ - "encoder": { - "rotary": [ - { "pin_a": "B5", "pin_b": "A2", "resolution": 4 } - { "pin_a": "B6", "pin_b": "A3", "resolution": 2 } +* `debounce` + * The debounce time in milliseconds. + * Default: `5` (5 ms) +* `diode_direction` + * Which way the diodes are "pointing". Unused for `matrix_pins.direct`. Must be one of `COL2ROW`, `ROW2COL`. +* `matrix_pins` + * `cols` + * A list of GPIO pins connected to the matrix columns. + * Example: `["A0", "A1", "A2"]` + * `custom` + * Whether to use a custom matrix scanning implementation. + * Default: `false` + * `custom_lite` + * Whether to use a "lite" custom matrix scanning implementation. + * Default: `false` + * `direct` + * A 2-dimensional list of GPIO pins connected to each keyswitch, forming the "matrix" rows and columns. + * Example: + ```json + [ + ["A0", "A1", "A2"], + ["B0", "B1", "B2"], + ["C0", "C1", "C2"] ] - } -} -``` - -## Secure - -The following options can be configured: - -|Key |Description | -|------------------|---------------------------------------------------------------------------------| -|`unlock_sequence` | Timeout for the user to perform the configured unlock sequence - `0` to disable | -|`unlock_timeout` | Timeout while unlocked before returning to locked - `0` to disable | -|`idle_timeout` | Array of matrix locations describing a sequential sequence of keypresses | - -Example: - -```json -{ - "secure": { - "unlock_sequence": [ [0,0], [0,1] ], - "unlock_timeout": 5000, - "idle_timeout": 60000 - } -} -``` - -## Bootmagic - -This section configures [Bootmagic Lite](feature_bootmagic.md) support. + ``` + * `ghost` + * Whether the matrix has no anti-ghosting diodes. + * Default: `false` + * `input_pressed_state` + * The logical GPIO state of the input pins when a key is pressed. + * Default: `0` (pressed = low) + * `io_delay` + * The amount of time to wait between row/col selection and col/row pin reading, in microseconds. + * Default: `30` (30 µs) + * `rows` + * A list of GPIO pins connected to the matrix rows. + * Example: `["B0", "B1", "B2"]` + +## Mouse Keys :id=mouse-keys + +Configures the [Mouse Keys](feature_mouse_keys.md) feature. + +* `mouse_key` + * `delay` + * `enabled` + * Enables the Mouse Keys feature. + * Default: `false` + * `interval` + * `max_speed` + * `time_to_max` + * `wheel_delay` + +## One Shot :id=one-shot + +Configures [One Shot keys](one_shot_keys.md). + +* `oneshot` + * `tap_toggle` + * The number of times to tap the key in order to hold it. + * `timeout` + * The amount of time before the key is released in milliseconds. + +## PS/2 :id=ps2 + +Configures the [PS/2](feature_ps2_mouse.md) feature. + +* `ps2` + * `clock_pin` + * The GPIO pin connected to `CLK` on the PS/2 device. + * `data_pin` + * The GPIO pin connected to `DATA` on the PS/2 device. + * `driver` + * The PS/2 driver to use. Must be one of `busywait`, `interrupt`, `usart`, `vendor`. + * Default: `"busywait"` + * `enabled` + * Enable the PS/2 feature. + * Default: `false` + * `mouse_enabled` + * Enable the PS/2 mouse handling. + * Default: `false` + +## QMK LUFA Bootloader :id=qmk-lufa-bootloader + +* `qmk_lufa_bootloader` + * `esc_input` (Required) + * The GPIO pin connected to the designated "exit bootloader" key's row (if `COL2ROW`). + * `esc_output` (Required) + * The GPIO pin connected to the designated "exit bootloader" key's column (if `COL2ROW`). + * `led` + * The GPIO pin connected to an LED to flash. + * `speaker` + * The GPIO pin connected to a speaker to click (can also be used for a second LED). + +## RGBLight :id=rgblight + +Configures the [RGB Lighting](feature_rgblight.md) feature. -The following options can be configured: - -|Key |Description | -|---------|-----------------------------------------------------------------------------| -|`matrix` | A two item list describing the row and column location for the trigger key. | +* `rgblight` + * `led_count` (Required) + * The number of LEDs in the chain. + * `animations` + * A dictionary of effects to enable or disable. Effects which are absent default to `false`. + * Example: + ```json + { + "breathing": true, + "rainbow_mood": true, + "snake": false + } + ``` + * `brightness_steps` + * The number of brightness adjustment steps. + * Default: `17` + * `driver` + * The driver to use. Must be one of `apa102`, `custom`, `ws2812`. + * Default: `"ws2812"` + * `hue_steps` + * The number of hue adjustment steps. + * Default: `8` + * `layers` + * `blink` + * Enable layer blinking API. + * Default: `false` + * `enabled` + * Enable RGB Lighting Layers. + * Default: `false` + * `max` + * The maximum layer count, from 1 to 32. + * Default: `8` + * `led_map` + * Remap LED indices. + * Example: `[4, 3, 2, 1, 0]` + * `max_brightness` + * The maximum value which the HSV "V" component is scaled to, from 0 to 255. + * Default: `255` + * `rgbw` + * Enable RGBW LEDs. + * Default: `false` + * `saturation_steps` + * The number of saturation adjustment steps. + * Default: `17` + * `sleep` + * Turn off the LEDs when the host goes to sleep. + * Default: `false` + * `split` + * Enable synchronization between split halves. + * Default: `false` + * `split_count` + * When `rgblight.split` is enabled, the number of LEDs on each half. + * Example: `[10, 10]` + +## RGB Matrix :id=rgb-matrix + +Configures the [RGB Matrix](feature_rgb_matrix.md) feature. + +* `rgb_matrix` + * `animations` + * A dictionary of effects to enable or disable. Effects which are absent default to `false`. + * Example: + ```json + { + "alpha_mods": true, + "breathing": true, + "cycle_left_right": false + } + ``` + * `center_point` + * The centroid (geometric center) of the LEDs. Used for certain effects. + * Default: `[112, 32]` + * `driver` (Required) + * The driver to use. Must be one of `aw20216`, `ckled2001`, `custom`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `ws2812`. + * `hue_steps` + * The number of hue adjustment steps. + * Default: `8` + * `layout` (Required) + * List of LED configuration dictionaries. Each dictionary contains: + * `flags` (Required) + * A bitfield of flags describing the type of LED. + * `x` (Required) + * The position of the LED in the horizontal axis, from 0 to 224. + * `y` (Required) + * The position of the LED in the vertical axis, from 0 to 64. + * `matrix` + * The key matrix position associated with the LED. + * Example: `[0, 2]` + * Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}` + * `max_brightness` + * The maximum value which the HSV "V" component is scaled to, from 0 to 255. + * Default: `255` + * `sat_steps` + * The number of saturation adjustment steps. + * Default: `16` + * `speed_steps` + * The number of speed adjustment steps. + * Default: `16` + * `split_count` + * For split keyboards, the number of LEDs on each half. + * Example: `[16, 16]` + * `timeout` + * The LED activity timeout in milliseconds. + * Default: `0` (no timeout) + * `val_steps` + * The number of brightness adjustment steps. + * Default: `16` + +## Secure :id=secure + +Configures the [Secure](feature_secure.md) feature. + +* `secure` + * `enabled` + * Enable the Secure feature. + * Default: `false` + * `idle_timeout` + * Timeout while unlocked before returning to the locked state. Set to `0` to disable. + * Default: `60000` (1 minute) + * `unlock_sequence` + * A list of up to five matrix locations comprising the "unlock sequence". + * Example: `[[0, 0], [0, 1], [4, 3]]` + * `unlock_timeout` + * Timeout for the user to perform the unlock sequence. Set to `0` to disable. + * Default: `5000` (5 seconds) + +## Split Keyboard :id=split-keyboard + +Configures the [Split Keyboard](feature_split_keyboard.md) feature. -Example: +* `split` + * `bootmagic` + * `matrix` + * See [Bootmagic](#bootmagic) config. + * `enabled` + * Enable the Split Keyboard feature. + * Default: `false` + * `encoder` + * `right` + * `rotary` + * See [Encoder](#encoder) config. + * `matrix_pins` + * `right` + * See [Matrix](#matrix) config. + * `soft_serial_pin` + * The GPIO pin to use (`serial` transport protocol only). + * `soft_serial_speed` + * The protocol speed, from `0` to `5` (`serial` transport protocol only). + * Default: `1` + * `transport` + * `protocol` + * The split transport protocol to use. Must be one of `custom`, `i2c`, `serial`, `serial_usart`. + * `sync_matrix_state` + * Mirror the main/primary half's matrix state to the secondary half. + * Default: `false` + * `sync_modifiers` + * Mirror the modifier state to the secondary half. + * Default: `false` + * `watchdog` + * Reboot the secondary half if it loses connection. + * Default: `false` + * `watchdog_timeout` + * The amount of time to wait for communication from the primary half in milliseconds. + * `usb_detect` + * `enabled` + * Detect USB connection when determining split half roles. + * `polling_interval` + * The polling frequency in milliseconds. + * Default: `10` (10 ms) + * `timeout` + * The amount of time to wait for a USB connection in milliseconds. + * Default: `2000` (2 seconds) + +## Stenography :id=stenography + +Configures the [Stenography](feature_stenography.md) feature. + +* `stenography` + * `enabled` + * Enable the Stenography feature. + * Default: `false` + * `protocol` + * The Steno protocol to use. Must be one of `all`, `geminipr`, `txbolt`. + * Default: `"all"` + +## USB :id=usb -```json -{ - "bootmagic": { - "enabled": true, - "matrix": [0, 0] - }, -} -``` +* `usb` + * `device_version` (Required) + * A BCD version number in the format `MM.m.r` (up to `99.9.9`). + * Example: `"1.0.0"` + * `pid` (Required) + * The USB product ID as a four-digit hexadecimal number. + * Example: `"0x23B0"` + * `vid` (Required) + * The USB vendor ID as a four-digit hexadecimal number. + * Example: `"0xC1ED"` + * `force_nkro` + * Force NKRO to be active. + * Default: `false` + * `max_power` + * The maximum current draw the host should expect from the device. This does not control the actual current usage. + * Default: `500` (500 mA) + * `no_startup_check` + * Disable USB suspend check after keyboard startup. + * Default: `false` + * `polling_interval` + * The frequency at which the host should poll the keyboard for reports. + * Default: `1` (1 ms/1000 Hz) + * `shared_endpoint` + * `keyboard` + * Send keyboard reports through the "shared" USB endpoint. + * Default: `false` + * `mouse` + * Send mouse reports through the "shared" USB endpoint. + * Default: `true` + * `suspend_wakeup_delay` + * The amount of time to wait after sending a wakeup packet, in milliseconds. + * Default: `0` (disabled) + * `wait_for` + * Force the keyboard to wait for USB enumeration before starting up. + * Default: `false` + +## WS2812 :id=ws2812 + +Configures the [WS2812](ws2812_driver.md) driver. + +* `ws2812` + * `driver` + * The driver to use. Must be one of `bitbang`, `custom`, `i2c`, `pwm`, `spi`, `vendor`. + * Default: `"bitbang"` + * `pin` (Required) + * The GPIO pin connected to `DI` on the first LED in the chain (`bitbang`, `pwm`, `spi` and `vendor` drivers only). + * `i2c_address` + * The I²C address of the WS2812 controller (`i2c` driver only). + * Default: `"0xB0"` + * `i2c_timeout` + * The I²C timeout in milliseconds (`i2c` driver only). + * Default: `100` (100 ms) diff --git a/docs/spi_driver.md b/docs/spi_driver.md index a27a3a13d08..c1c6831e737 100644 --- a/docs/spi_driver.md +++ b/docs/spi_driver.md @@ -1,8 +1,8 @@ -# SPI Master Driver +# SPI Master Driver :id=spi-master-driver The SPI Master drivers used in QMK have a set of common functions to allow portability between MCUs. -## AVR Configuration +## AVR Configuration :id=avr-configuration No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` pins of your SPI devices to the matching pins on the MCU: @@ -16,7 +16,7 @@ No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` p You may use more than one slave select pin, not just the `SS` pin. This is useful when you have multiple devices connected and need to communicate with them individually. `SPI_SS_PIN` can be passed to `spi_start()` to refer to `SS`. -## ChibiOS/ARM Configuration +## ChibiOS/ARM Configuration :id=arm-configuration You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc. @@ -49,19 +49,19 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas As per the AVR configuration, you may choose any other standard GPIO as a slave select pin, which should be supplied to `spi_start()`. -## Functions +## API :id=api -### `void spi_init(void)` +### `void spi_init(void)` :id=api-spi-init Initialize the SPI driver. This function must be called only once, before any of the below functions can be called. --- -### `bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor)` +### `bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor)` :id=api-spi-start Start an SPI transaction. -#### Arguments +#### Arguments :id=api-spi-start-arguments - `pin_t slavePin` The QMK pin to assert as the slave select pin, eg. `B4`. @@ -80,71 +80,71 @@ Start an SPI transaction. - `uint16_t divisor` The SPI clock divisor, will be rounded up to the nearest power of two. This number can be calculated by dividing the MCU's clock speed by the desired SPI clock speed. For example, an MCU running at 8 MHz wanting to talk to an SPI device at 4 MHz would set the divisor to `2`. -#### Return Value +#### Return Value :id=api-spi-start-return `false` if the supplied parameters are invalid or the SPI peripheral is already in use, or `true`. --- -### `spi_status_t spi_write(uint8_t data)` +### `spi_status_t spi_write(uint8_t data)` :id=api-spi-write Write a byte to the selected SPI device. -#### Arguments +#### Arguments :id=api-spi-write-arguments - `uint8_t data` The byte to write. -#### Return Value +#### Return Value :id=api-spi-write-return `SPI_STATUS_TIMEOUT` if the timeout period elapses, or `SPI_STATUS_SUCCESS`. --- -### `spi_status_t spi_read(void)` +### `spi_status_t spi_read(void)` :id=api-spi-read Read a byte from the selected SPI device. -#### Return Value +#### Return Value :id=api-spi-read-return `SPI_STATUS_TIMEOUT` if the timeout period elapses, or the byte read from the device. --- -### `spi_status_t spi_transmit(const uint8_t *data, uint16_t length)` +### `spi_status_t spi_transmit(const uint8_t *data, uint16_t length)` :id=api-spi-transmit Send multiple bytes to the selected SPI device. -#### Arguments +#### Arguments :id=api-spi-transmit-arguments - `const uint8_t *data` A pointer to the data to write from. - `uint16_t length` The number of bytes to write. Take care not to overrun the length of `data`. -#### Return Value +#### Return Value :id=api-spi-transmit-return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. --- -### `spi_status_t spi_receive(uint8_t *data, uint16_t length)` +### `spi_status_t spi_receive(uint8_t *data, uint16_t length)` :id=api-spi-receive Receive multiple bytes from the selected SPI device. -#### Arguments +#### Arguments :id=api-spi-receive-arguments - `uint8_t *data` A pointer to the buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. -#### Return Value +#### Return Value :id=api-spi-receive-return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. --- -### `void spi_stop(void)` +### `void spi_stop(void)` :id=api-spi-stop End the current SPI transaction. This will deassert the slave select pin and reset the endianness, mode and divisor configured by `spi_start()`. diff --git a/docs/squeezing_avr.md b/docs/squeezing_avr.md index ce9e43cdaea..b437901bdb1 100644 --- a/docs/squeezing_avr.md +++ b/docs/squeezing_avr.md @@ -27,8 +27,7 @@ SPACE_CADET_ENABLE = no GRAVE_ESC_ENABLE = no MAGIC_ENABLE = no ``` -These features are enabled by default, but may not be needed. Double check to make sure, though. -Largest in size is "magic" -- the QMK magic keycodes -- which control things like NKRO toggling, GUI and ALT/CTRL swapping, etc. Disabling it will disable those functions. +These features are enabled by default, but they may not be needed. Double check to make sure. The [Magic Keycodes](keycodes_magic.md) are the largest and control things like NKRO toggling, GUI and ALT/CTRL swapping, etc. Disabling them will disable those functions. See [Magic Functions](#magic-functions) for disabling related functions. If you use `sprintf` or `snprintf` functions you can save around ~400 Bytes by enabling this option. ```make @@ -75,7 +74,7 @@ MUSIC_ENABLE = no There are also some options for layers, that can reduce the firmware size. All of these settings are for your `config.h`. -You can limit the number of layers that the firmware uses -- if you're using less than 8 layers in total: +You can limit the number of layers that the firmware uses -- if you're using up to 8 layers in total: ```c #define LAYER_STATE_8BIT ``` @@ -88,6 +87,21 @@ Or if you're not using layers at all, you can outright remove the functionality #define NO_ACTION_LAYER ``` +## Magic Functions + +There are two `__attribute__ ((weak))` placeholder functions available to customize magic keycodes. If you are not using that feature to swap keycodes, such as backslash with backspace, add the following to your `keymap.c` or user space code: +```c +uint16_t keycode_config(uint16_t keycode) { + return keycode; +} +``` +Likewise, if you are not using magic keycodes to swap modifiers, such as Control with GUI, add the following to your `keymap.c` or user space code: +```c +uint8_t mod_config(uint8_t mod) { + return mod; +} +``` +Both of them will overwrite the placeholder functions with a simple return statement to reduce firmware size. ## OLED tweaks diff --git a/docs/tap_hold.md b/docs/tap_hold.md index c50acdb84d8..094a10753a1 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -460,6 +460,31 @@ bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { } ``` +If the programs you use bind an action to taps of modifier keys (e.g. tapping left GUI to bring up the applications menu or tapping left Alt to focus the menu bar), you may find that using retro-tapping falsely triggers those actions. To counteract this, you can define a `DUMMY_MOD_NEUTRALIZER_KEYCODE` in `config.h` that will get sent in between the register and unregister events of a held mod-tap key. That way, the programs on your computer will no longer interpret the mod suppression induced by retro-tapping as a lone tap of a modifier key and will thus not falsely trigger the undesired action. + +Naturally, for this technique to be effective, you must choose a `DUMMY_MOD_NEUTRALIZER_KEYCODE` for which no keyboard shortcuts are bound to. Recommended values are: `KC_RIGHT_CTRL` or `KC_F18`. +Please note that `DUMMY_MOD_NEUTRALIZER_KEYCODE` must be a basic, unmodified, HID keycode so values like `KC_NO`, `KC_TRANSPARENT` or `KC_PIPE` aka `S(KC_BACKSLASH)` are not permitted. + +By default, only left Alt and left GUI are neutralized. If you want to change the list of applicable modifier masks, use the following in your `config.h`: + +```c +#define MODS_TO_NEUTRALIZE { , , ... } +``` + +Examples: + +```c +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_RIGHT_CTRL + +// Neutralize left alt and left GUI (Default value) +#define MODS_TO_NEUTRALIZE { MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI) } + +// Neutralize left alt, left GUI, right GUI and left Control+Shift +#define MODS_TO_NEUTRALIZE { MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI), MOD_BIT(KC_RIGHT_GUI), MOD_BIT(KC_LEFT_CTRL)|MOD_BIT(KC_LEFT_SHIFT) } +``` + +!> Do not use `MOD_xxx` constants like `MOD_LSFT` or `MOD_RALT`, since they're 5-bit packed bit-arrays while `MODS_TO_NEUTRALIZE` expects a list of 8-bit packed bit-arrays. Use `MOD_BIT()` or `MOD_MASK_xxx` instead. + ### Retro Shift [Auto Shift,](feature_auto_shift.md) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](feature_auto_shift.md#retro-shift) for more information. diff --git a/docs/uart_driver.md b/docs/uart_driver.md index 340b6481892..a44f2c28d99 100644 --- a/docs/uart_driver.md +++ b/docs/uart_driver.md @@ -1,10 +1,10 @@ -# UART Driver +# UART Driver :id=uart-driver The UART drivers used in QMK have a set of common functions to allow portability between MCUs. Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future. -## AVR Configuration +## AVR Configuration :id=avr-configuration No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU: @@ -16,7 +16,7 @@ No special setup is required - just connect the `RX` and `TX` pins of your UART |ATmega32A |`D1`|`D0`|*n/a*|*n/a*| |ATmega328/P |`D1`|`D0`|*n/a*|*n/a*| -## ChibiOS/ARM Configuration +## ChibiOS/ARM Configuration :id=arm-configuration You'll need to determine which pins can be used for UART -- as an example, STM32 parts generally have multiple UART peripherals, labeled USART1, USART2, USART3 etc. @@ -47,45 +47,45 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas |`#define SD1_RTS_PIN` |The pin to use for RTS |`A12` | |`#define SD1_RTS_PAL_MODE`|The alternate function mode for RTS |`7` | -## Functions +## API :id=api -### `void uart_init(uint32_t baud)` +### `void uart_init(uint32_t baud)` :id=api-uart-init Initialize the UART driver. This function must be called only once, before any of the below functions can be called. -#### Arguments +#### Arguments :id=api-uart-init-arguments - `uint32_t baud` The baud rate to transmit and receive at. This may depend on the device you are communicating with. Common values are 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200. --- -### `void uart_write(uint8_t data)` +### `void uart_write(uint8_t data)` :id=api-uart-write Transmit a single byte. -#### Arguments +#### Arguments :id=api-uart-write-arguments - `uint8_t data` The byte to write. --- -### `uint8_t uart_read(void)` +### `uint8_t uart_read(void)` :id=api-uart-read Receive a single byte. -#### Return Value +#### Return Value :id=api-uart-read-return The byte read from the receive buffer. This function will block if the buffer is empty (ie. no data to read). --- -### `void uart_transmit(const uint8_t *data, uint16_t length)` +### `void uart_transmit(const uint8_t *data, uint16_t length)` :id=api-uart-transmit Transmit multiple bytes. -#### Arguments +#### Arguments :id=api-uart-transmit-arguments - `const uint8_t *data` A pointer to the data to write from. @@ -94,11 +94,11 @@ Transmit multiple bytes. --- -### `void uart_receive(char *data, uint16_t length)` +### `void uart_receive(char *data, uint16_t length)` :id=api-uart-receive Receive multiple bytes. -#### Arguments +#### Arguments :id=api-uart-receive-arguments - `uint8_t *data` A pointer to the buffer to read into. @@ -107,10 +107,10 @@ Receive multiple bytes. --- -### `bool uart_available(void)` +### `bool uart_available(void)` :id=api-uart-available Return whether the receive buffer contains data. Call this function to determine if `uart_read()` will return data immediately. -#### Return Value +#### Return Value :id=api-uart-available-return `true` if the receive buffer length is non-zero. diff --git a/quantum/backlight/backlight_software.c b/drivers/backlight/backlight_software.c similarity index 98% rename from quantum/backlight/backlight_software.c rename to drivers/backlight/backlight_software.c index 27ccbd2c9ff..f2af3e918e5 100644 --- a/quantum/backlight/backlight_software.c +++ b/drivers/backlight/backlight_software.c @@ -1,6 +1,6 @@ -#include "quantum.h" #include "backlight.h" #include "backlight_driver_common.h" +#include "util.h" #ifdef BACKLIGHT_BREATHING # error "Backlight breathing is not available for software PWM. Please disable." diff --git a/drivers/haptic/DRV2605L.c b/drivers/haptic/DRV2605L.c deleted file mode 100644 index 5a1d2ca0afb..00000000000 --- a/drivers/haptic/DRV2605L.c +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright 2018 ishtob - * Driver for DRV2605L written for 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 . - */ -#include "DRV2605L.h" -#include "print.h" -#include -#include -#include - -uint8_t DRV2605L_transfer_buffer[2]; -uint8_t DRV2605L_read_register; - -void DRV_write(uint8_t drv_register, uint8_t settings) { - DRV2605L_transfer_buffer[0] = drv_register; - DRV2605L_transfer_buffer[1] = settings; - i2c_transmit(DRV2605L_BASE_ADDRESS << 1, DRV2605L_transfer_buffer, 2, 100); -} - -uint8_t DRV_read(uint8_t regaddress) { - i2c_readReg(DRV2605L_BASE_ADDRESS << 1, regaddress, &DRV2605L_read_register, 1, 100); - - return DRV2605L_read_register; -} - -void DRV_init(void) { - i2c_init(); - /* 0x07 sets DRV2605 into calibration mode */ - DRV_write(DRV_MODE, 0x07); - - // DRV_write(DRV_FEEDBACK_CTRL,0xB6); - -#if FB_ERM_LRA == 0 - /* ERM settings */ - DRV_write(DRV_RATED_VOLT, (RATED_VOLTAGE / 21.33) * 1000); -# if ERM_OPEN_LOOP == 0 - DRV_write(DRV_OVERDRIVE_CLAMP_VOLT, (((V_PEAK * (DRIVE_TIME + BLANKING_TIME + IDISS_TIME)) / 0.02133) / (DRIVE_TIME - 0.0003))); -# elif ERM_OPEN_LOOP == 1 - DRV_write(DRV_OVERDRIVE_CLAMP_VOLT, (V_PEAK / 0.02196)); -# endif -#elif FB_ERM_LRA == 1 - DRV_write(DRV_RATED_VOLT, ((V_RMS * sqrt(1 - ((4 * ((150 + (SAMPLE_TIME * 50)) * 0.000001)) + 0.0003) * F_LRA) / 0.02071))); -# if LRA_OPEN_LOOP == 0 - DRV_write(DRV_OVERDRIVE_CLAMP_VOLT, ((V_PEAK / sqrt(1 - (F_LRA * 0.0008)) / 0.02133))); -# elif LRA_OPEN_LOOP == 1 - DRV_write(DRV_OVERDRIVE_CLAMP_VOLT, (V_PEAK / 0.02196)); -# endif -#endif - - DRVREG_FBR FB_SET; - FB_SET.Bits.ERM_LRA = FB_ERM_LRA; - FB_SET.Bits.BRAKE_FACTOR = FB_BRAKEFACTOR; - FB_SET.Bits.LOOP_GAIN = FB_LOOPGAIN; - FB_SET.Bits.BEMF_GAIN = 0; /* auto-calibration populates this field*/ - DRV_write(DRV_FEEDBACK_CTRL, (uint8_t)FB_SET.Byte); - DRVREG_CTRL1 C1_SET; - C1_SET.Bits.C1_DRIVE_TIME = DRIVE_TIME; - C1_SET.Bits.C1_AC_COUPLE = AC_COUPLE; - C1_SET.Bits.C1_STARTUP_BOOST = STARTUP_BOOST; - DRV_write(DRV_CTRL_1, (uint8_t)C1_SET.Byte); - DRVREG_CTRL2 C2_SET; - C2_SET.Bits.C2_BIDIR_INPUT = BIDIR_INPUT; - C2_SET.Bits.C2_BRAKE_STAB = BRAKE_STAB; - C2_SET.Bits.C2_SAMPLE_TIME = SAMPLE_TIME; - C2_SET.Bits.C2_BLANKING_TIME = BLANKING_TIME; - C2_SET.Bits.C2_IDISS_TIME = IDISS_TIME; - DRV_write(DRV_CTRL_2, (uint8_t)C2_SET.Byte); - DRVREG_CTRL3 C3_SET; - C3_SET.Bits.C3_LRA_OPEN_LOOP = LRA_OPEN_LOOP; - C3_SET.Bits.C3_N_PWM_ANALOG = N_PWM_ANALOG; - C3_SET.Bits.C3_LRA_DRIVE_MODE = LRA_DRIVE_MODE; - C3_SET.Bits.C3_DATA_FORMAT_RTO = DATA_FORMAT_RTO; - C3_SET.Bits.C3_SUPPLY_COMP_DIS = SUPPLY_COMP_DIS; - C3_SET.Bits.C3_ERM_OPEN_LOOP = ERM_OPEN_LOOP; - C3_SET.Bits.C3_NG_THRESH = NG_THRESH; - DRV_write(DRV_CTRL_3, (uint8_t)C3_SET.Byte); - DRVREG_CTRL4 C4_SET; - C4_SET.Bits.C4_ZC_DET_TIME = ZC_DET_TIME; - C4_SET.Bits.C4_AUTO_CAL_TIME = AUTO_CAL_TIME; - DRV_write(DRV_CTRL_4, (uint8_t)C4_SET.Byte); - DRV_write(DRV_LIB_SELECTION, LIB_SELECTION); - - DRV_write(DRV_GO, 0x01); - - /* 0x00 sets DRV2605 out of standby and to use internal trigger - * 0x01 sets DRV2605 out of standby and to use external trigger */ - DRV_write(DRV_MODE, 0x00); - - // Play greeting sequence - DRV_write(DRV_GO, 0x00); - DRV_write(DRV_WAVEFORM_SEQ_1, DRV_GREETING); - DRV_write(DRV_GO, 0x01); -} - -void DRV_rtp_init(void) { - DRV_write(DRV_GO, 0x00); - DRV_write(DRV_RTP_INPUT, 20); // 20 is the lowest value I've found where haptics can still be felt. - DRV_write(DRV_MODE, 0x05); - DRV_write(DRV_GO, 0x01); -} - -void DRV_amplitude(uint8_t amplitude) { - DRV_write(DRV_RTP_INPUT, amplitude); -} - -void DRV_pulse(uint8_t sequence) { - DRV_write(DRV_GO, 0x00); - DRV_write(DRV_WAVEFORM_SEQ_1, sequence); - DRV_write(DRV_GO, 0x01); -} diff --git a/drivers/haptic/DRV2605L.h b/drivers/haptic/DRV2605L.h deleted file mode 100644 index 8b8eae38b8e..00000000000 --- a/drivers/haptic/DRV2605L.h +++ /dev/null @@ -1,406 +0,0 @@ -/* Copyright 2018 ishtob - * Driver for DRV2605L written for QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once -#include "i2c_master.h" - -/* Initialization settings - - * Feedback Control Settings */ -#ifndef FB_ERM_LRA -# define FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ -#endif -#ifndef FB_BRAKEFACTOR -# define FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#endif -#ifndef FB_LOOPGAIN -# define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ -#endif - -/* LRA specific settings */ -#if FB_ERM_LRA == 1 -# ifndef V_RMS -# define V_RMS 2.0 -# endif -# ifndef V_PEAK -# define V_PEAK 2.1 -# endif -# ifndef F_LRA -# define F_LRA 205 -# endif -# ifndef RATED_VOLTAGE -# define RATED_VOLTAGE 2 /* 2v as safe range in case device voltage is not set */ -# endif -#endif - -#ifndef RATED_VOLTAGE -# define RATED_VOLTAGE 2 /* 2v as safe range in case device voltage is not set */ -#endif -#ifndef V_PEAK -# define V_PEAK 2.8 -#endif - -/* Library Selection */ -#ifndef LIB_SELECTION -# if FB_ERM_LRA == 1 -# define LIB_SELECTION 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ -# else -# define LIB_SELECTION 1 -# endif -#endif - -#ifndef DRV_GREETING -# define DRV_GREETING alert_750ms -#endif -#ifndef DRV_MODE_DEFAULT -# define DRV_MODE_DEFAULT strong_click1 -#endif - -/* Control 1 register settings */ -#ifndef DRIVE_TIME -# define DRIVE_TIME 25 -#endif -#ifndef AC_COUPLE -# define AC_COUPLE 0 -#endif -#ifndef STARTUP_BOOST -# define STARTUP_BOOST 1 -#endif - -/* Control 2 Settings */ -#ifndef BIDIR_INPUT -# define BIDIR_INPUT 1 -#endif -#ifndef BRAKE_STAB -# define BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ -#endif -#ifndef SAMPLE_TIME -# define SAMPLE_TIME 3 -#endif -#ifndef BLANKING_TIME -# define BLANKING_TIME 1 -#endif -#ifndef IDISS_TIME -# define IDISS_TIME 1 -#endif - -/* Control 3 settings */ -#ifndef NG_THRESH -# define NG_THRESH 2 -#endif -#ifndef ERM_OPEN_LOOP -# define ERM_OPEN_LOOP 1 -#endif -#ifndef SUPPLY_COMP_DIS -# define SUPPLY_COMP_DIS 0 -#endif -#ifndef DATA_FORMAT_RTO -# define DATA_FORMAT_RTO 0 -#endif -#ifndef LRA_DRIVE_MODE -# define LRA_DRIVE_MODE 0 -#endif -#ifndef N_PWM_ANALOG -# define N_PWM_ANALOG 0 -#endif -#ifndef LRA_OPEN_LOOP -# define LRA_OPEN_LOOP 0 -#endif - -/* Control 4 settings */ -#ifndef ZC_DET_TIME -# define ZC_DET_TIME 0 -#endif -#ifndef AUTO_CAL_TIME -# define AUTO_CAL_TIME 3 -#endif - -/* register defines -------------------------------------------------------- */ -#define DRV2605L_BASE_ADDRESS 0x5A /* DRV2605L Base address */ -#define DRV_STATUS 0x00 -#define DRV_MODE 0x01 -#define DRV_RTP_INPUT 0x02 -#define DRV_LIB_SELECTION 0x03 -#define DRV_WAVEFORM_SEQ_1 0x04 -#define DRV_WAVEFORM_SEQ_2 0x05 -#define DRV_WAVEFORM_SEQ_3 0x06 -#define DRV_WAVEFORM_SEQ_4 0x07 -#define DRV_WAVEFORM_SEQ_5 0x08 -#define DRV_WAVEFORM_SEQ_6 0x09 -#define DRV_WAVEFORM_SEQ_7 0x0A -#define DRV_WAVEFORM_SEQ_8 0x0B -#define DRV_GO 0x0C -#define DRV_OVERDRIVE_TIME_OFFSET 0x0D -#define DRV_SUSTAIN_TIME_OFFSET_P 0x0E -#define DRV_SUSTAIN_TIME_OFFSET_N 0x0F -#define DRV_BRAKE_TIME_OFFSET 0x10 -#define DRV_AUDIO_2_VIBE_CTRL 0x11 -#define DRV_AUDIO_2_VIBE_MIN_IN 0x12 -#define DRV_AUDIO_2_VIBE_MAX_IN 0x13 -#define DRV_AUDIO_2_VIBE_MIN_OUTDRV 0x14 -#define DRV_AUDIO_2_VIBE_MAX_OUTDRV 0x15 -#define DRV_RATED_VOLT 0x16 -#define DRV_OVERDRIVE_CLAMP_VOLT 0x17 -#define DRV_AUTO_CALIB_COMP_RESULT 0x18 -#define DRV_AUTO_CALIB_BEMF_RESULT 0x19 -#define DRV_FEEDBACK_CTRL 0x1A -#define DRV_CTRL_1 0x1B -#define DRV_CTRL_2 0x1C -#define DRV_CTRL_3 0x1D -#define DRV_CTRL_4 0x1E -#define DRV_CTRL_5 0x1F -#define DRV_OPEN_LOOP_PERIOD 0x20 -#define DRV_VBAT_VOLT_MONITOR 0x21 -#define DRV_LRA_RESONANCE_PERIOD 0x22 - -void DRV_init(void); -void DRV_write(const uint8_t drv_register, const uint8_t settings); -uint8_t DRV_read(const uint8_t regaddress); -void DRV_rtp_init(void); -void DRV_amplitude(const uint8_t amplitude); -void DRV_pulse(const uint8_t sequence); - -typedef enum DRV_EFFECT { - clear_sequence = 0, - strong_click = 1, - strong_click_60 = 2, - strong_click_30 = 3, - sharp_click = 4, - sharp_click_60 = 5, - sharp_click_30 = 6, - soft_bump = 7, - soft_bump_60 = 8, - soft_bump_30 = 9, - dbl_click = 10, - dbl_click_60 = 11, - trp_click = 12, - soft_fuzz = 13, - strong_buzz = 14, - alert_750ms = 15, - alert_1000ms = 16, - strong_click1 = 17, - strong_click2_80 = 18, - strong_click3_60 = 19, - strong_click4_30 = 20, - medium_click1 = 21, - medium_click2_80 = 22, - medium_click3_60 = 23, - sharp_tick1 = 24, - sharp_tick2_80 = 25, - sharp_tick3_60 = 26, - sh_dblclick_str = 27, - sh_dblclick_str_80 = 28, - sh_dblclick_str_60 = 29, - sh_dblclick_str_30 = 30, - sh_dblclick_med = 31, - sh_dblclick_med_80 = 32, - sh_dblclick_med_60 = 33, - sh_dblsharp_tick = 34, - sh_dblsharp_tick_80 = 35, - sh_dblsharp_tick_60 = 36, - lg_dblclick_str = 37, - lg_dblclick_str_80 = 38, - lg_dblclick_str_60 = 39, - lg_dblclick_str_30 = 40, - lg_dblclick_med = 41, - lg_dblclick_med_80 = 42, - lg_dblclick_med_60 = 43, - lg_dblsharp_tick = 44, - lg_dblsharp_tick_80 = 45, - lg_dblsharp_tick_60 = 46, - buzz = 47, - buzz_80 = 48, - buzz_60 = 49, - buzz_40 = 50, - buzz_20 = 51, - pulsing_strong = 52, - pulsing_strong_80 = 53, - pulsing_medium = 54, - pulsing_medium_80 = 55, - pulsing_sharp = 56, - pulsing_sharp_80 = 57, - transition_click = 58, - transition_click_80 = 59, - transition_click_60 = 60, - transition_click_40 = 61, - transition_click_20 = 62, - transition_click_10 = 63, - transition_hum = 64, - transition_hum_80 = 65, - transition_hum_60 = 66, - transition_hum_40 = 67, - transition_hum_20 = 68, - transition_hum_10 = 69, - transition_rampdown_long_smooth1 = 70, - transition_rampdown_long_smooth2 = 71, - transition_rampdown_med_smooth1 = 72, - transition_rampdown_med_smooth2 = 73, - transition_rampdown_short_smooth1 = 74, - transition_rampdown_short_smooth2 = 75, - transition_rampdown_long_sharp1 = 76, - transition_rampdown_long_sharp2 = 77, - transition_rampdown_med_sharp1 = 78, - transition_rampdown_med_sharp2 = 79, - transition_rampdown_short_sharp1 = 80, - transition_rampdown_short_sharp2 = 81, - transition_rampup_long_smooth1 = 82, - transition_rampup_long_smooth2 = 83, - transition_rampup_med_smooth1 = 84, - transition_rampup_med_smooth2 = 85, - transition_rampup_short_smooth1 = 86, - transition_rampup_short_smooth2 = 87, - transition_rampup_long_sharp1 = 88, - transition_rampup_long_sharp2 = 89, - transition_rampup_med_sharp1 = 90, - transition_rampup_med_sharp2 = 91, - transition_rampup_short_sharp1 = 92, - transition_rampup_short_sharp2 = 93, - transition_rampdown_long_smooth1_50 = 94, - transition_rampdown_long_smooth2_50 = 95, - transition_rampdown_med_smooth1_50 = 96, - transition_rampdown_med_smooth2_50 = 97, - transition_rampdown_short_smooth1_50 = 98, - transition_rampdown_short_smooth2_50 = 99, - transition_rampdown_long_sharp1_50 = 100, - transition_rampdown_long_sharp2_50 = 101, - transition_rampdown_med_sharp1_50 = 102, - transition_rampdown_med_sharp2_50 = 103, - transition_rampdown_short_sharp1_50 = 104, - transition_rampdown_short_sharp2_50 = 105, - transition_rampup_long_smooth1_50 = 106, - transition_rampup_long_smooth2_50 = 107, - transition_rampup_med_smooth1_50 = 108, - transition_rampup_med_smooth2_50 = 109, - transition_rampup_short_smooth1_50 = 110, - transition_rampup_short_smooth2_50 = 111, - transition_rampup_long_sharp1_50 = 112, - transition_rampup_long_sharp2_50 = 113, - transition_rampup_med_sharp1_50 = 114, - transition_rampup_med_sharp2_50 = 115, - transition_rampup_short_sharp1_50 = 116, - transition_rampup_short_sharp2_50 = 117, - long_buzz_for_programmatic_stopping = 118, - smooth_hum1_50 = 119, - smooth_hum2_40 = 120, - smooth_hum3_30 = 121, - smooth_hum4_20 = 122, - smooth_hum5_10 = 123, - drv_effect_max = 124, -} DRV_EFFECT; - -/* Register bit array unions */ - -typedef union DRVREG_STATUS { /* register 0x00 */ - uint8_t Byte; - struct { - uint8_t OC_DETECT : 1; /* set to 1 when overcurrent event is detected */ - uint8_t OVER_TEMP : 1; /* set to 1 when device exceeds temp threshold */ - uint8_t FB_STS : 1; /* set to 1 when feedback controller has timed out */ - /* auto-calibration routine and diagnostic result - * result | auto-calibation | diagnostic | - * 0 | passed | actuator func normal | - * 1 | failed | actuator func fault* | - * * actuator is not present or is shorted, timing out, or giving out–of-range back-EMF */ - uint8_t DIAG_RESULT : 1; - uint8_t : 1; - uint8_t DEVICE_ID : 3; /* Device IDs 3: DRV2605 4: DRV2604 5: DRV2604L 6: DRV2605L */ - } Bits; -} DRVREG_STATUS; - -typedef union DRVREG_MODE { /* register 0x01 */ - uint8_t Byte; - struct { - uint8_t MODE : 3; /* Mode setting */ - uint8_t : 3; - uint8_t STANDBY : 1; /* 0:standby 1:ready */ - } Bits; -} DRVREG_MODE; - -typedef union DRVREG_WAIT { - uint8_t Byte; - struct { - uint8_t WAIT_MODE : 1; /* Set to 1 to interpret as wait for next 7 bits x10ms */ - uint8_t WAIT_TIME : 7; - } Bits; -} DRVREG_WAIT; - -typedef union DRVREG_FBR { /* register 0x1A */ - uint8_t Byte; - struct { - uint8_t BEMF_GAIN : 2; - uint8_t LOOP_GAIN : 2; - uint8_t BRAKE_FACTOR : 3; - uint8_t ERM_LRA : 1; - } Bits; -} DRVREG_FBR; - -typedef union DRVREG_CTRL1 { /* register 0x1B */ - uint8_t Byte; - struct { - uint8_t C1_DRIVE_TIME : 5; - uint8_t C1_AC_COUPLE : 1; - uint8_t : 1; - uint8_t C1_STARTUP_BOOST : 1; - } Bits; -} DRVREG_CTRL1; - -typedef union DRVREG_CTRL2 { /* register 0x1C */ - uint8_t Byte; - struct { - uint8_t C2_IDISS_TIME : 2; - uint8_t C2_BLANKING_TIME : 2; - uint8_t C2_SAMPLE_TIME : 2; - uint8_t C2_BRAKE_STAB : 1; - uint8_t C2_BIDIR_INPUT : 1; - } Bits; -} DRVREG_CTRL2; - -typedef union DRVREG_CTRL3 { /* register 0x1D */ - uint8_t Byte; - struct { - uint8_t C3_LRA_OPEN_LOOP : 1; - uint8_t C3_N_PWM_ANALOG : 1; - uint8_t C3_LRA_DRIVE_MODE : 1; - uint8_t C3_DATA_FORMAT_RTO : 1; - uint8_t C3_SUPPLY_COMP_DIS : 1; - uint8_t C3_ERM_OPEN_LOOP : 1; - uint8_t C3_NG_THRESH : 2; - } Bits; -} DRVREG_CTRL3; - -typedef union DRVREG_CTRL4 { /* register 0x1E */ - uint8_t Byte; - struct { - uint8_t C4_OTP_PROGRAM : 1; - uint8_t : 1; - uint8_t C4_OTP_STATUS : 1; - uint8_t : 1; - uint8_t C4_AUTO_CAL_TIME : 2; - uint8_t C4_ZC_DET_TIME : 2; - } Bits; -} DRVREG_CTRL4; - -typedef union DRVREG_CTRL5 { /* register 0x1F */ - uint8_t Byte; - struct { - uint8_t C5_IDISS_TIME : 2; - uint8_t C5_BLANKING_TIME : 2; - uint8_t C5_PLAYBACK_INTERVAL : 1; - uint8_t C5_LRA_AUTO_OPEN_LOOP : 1; - uint8_t C5_AUTO_OL_CNT : 2; - } Bits; -} DRVREG_CTRL5; diff --git a/drivers/haptic/drv2605l.c b/drivers/haptic/drv2605l.c new file mode 100644 index 00000000000..1ad2ad385f2 --- /dev/null +++ b/drivers/haptic/drv2605l.c @@ -0,0 +1,126 @@ +/* Copyright 2018 ishtob + * Driver for DRV2605L written for 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 . + */ + +#include "drv2605l.h" +#include "i2c_master.h" +#include + +uint8_t drv2605l_write_buffer[2]; +uint8_t drv2605l_read_buffer; + +void drv2605l_write(uint8_t reg_addr, uint8_t data) { + drv2605l_write_buffer[0] = reg_addr; + drv2605l_write_buffer[1] = data; + i2c_transmit(DRV2605L_I2C_ADDRESS << 1, drv2605l_write_buffer, 2, 100); +} + +uint8_t drv2605l_read(uint8_t reg_addr) { + i2c_readReg(DRV2605L_I2C_ADDRESS << 1, reg_addr, &drv2605l_read_buffer, 1, 100); + + return drv2605l_read_buffer; +} + +void drv2605l_init(void) { + i2c_init(); + /* 0x07 sets DRV2605 into calibration mode */ + drv2605l_write(DRV2605L_REG_MODE, 0x07); + + // drv2605l_write(DRV2605L_REG_FEEDBACK_CTRL,0xB6); + +#if DRV2605L_FB_ERM_LRA == 0 + /* ERM settings */ + drv2605l_write(DRV2605L_REG_RATED_VOLTAGE, (DRV2605L_RATED_VOLTAGE / 21.33) * 1000); +# if DRV2605L_ERM_OPEN_LOOP == 0 + drv2605l_write(DRV2605L_REG_OVERDRIVE_CLAMP_VOLTAGE, (((DRV2605L_V_PEAK * (DRV2605L_DRIVE_TIME + DRV2605L_BLANKING_TIME + DRV2605L_IDISS_TIME)) / 0.02133) / (DRV2605L_DRIVE_TIME - 0.0003))); +# elif DRV2605L_ERM_OPEN_LOOP == 1 + drv2605l_write(DRV2605L_REG_OVERDRIVE_CLAMP_VOLTAGE, (DRV2605L_V_PEAK / 0.02196)); +# endif +#elif DRV2605L_FB_ERM_LRA == 1 + drv2605l_write(DRV2605L_REG_RATED_VOLTAGE, ((DRV2605L_V_RMS * sqrt(1 - ((4 * ((150 + (DRV2605L_SAMPLE_TIME * 50)) * 0.000001)) + 0.0003) * DRV2605L_F_LRA) / 0.02071))); +# if DRV2605L_LRA_OPEN_LOOP == 0 + drv2605l_write(DRV2605L_REG_OVERDRIVE_CLAMP_VOLTAGE, ((DRV2605L_V_PEAK / sqrt(1 - (DRV2605L_F_LRA * 0.0008)) / 0.02133))); +# elif DRV2605L_LRA_OPEN_LOOP == 1 + drv2605l_write(DRV2605L_REG_OVERDRIVE_CLAMP_VOLTAGE, (DRV2605L_V_PEAK / 0.02196)); +# endif +#endif + + drv2605l_reg_feedback_ctrl_t reg_feedback_ctrl; + reg_feedback_ctrl.bits.ERM_LRA = DRV2605L_FB_ERM_LRA; + reg_feedback_ctrl.bits.BRAKE_FACTOR = DRV2605L_FB_BRAKEFACTOR; + reg_feedback_ctrl.bits.LOOP_GAIN = DRV2605L_FB_LOOPGAIN; + reg_feedback_ctrl.bits.BEMF_GAIN = 0; /* auto-calibration populates this field*/ + drv2605l_write(DRV2605L_REG_FEEDBACK_CTRL, (uint8_t)reg_feedback_ctrl.raw); + + drv2605l_reg_ctrl1_t reg_ctrl1; + reg_ctrl1.bits.C1_DRIVE_TIME = DRV2605L_DRIVE_TIME; + reg_ctrl1.bits.C1_AC_COUPLE = DRV2605L_AC_COUPLE; + reg_ctrl1.bits.C1_STARTUP_BOOST = DRV2605L_STARTUP_BOOST; + drv2605l_write(DRV2605L_REG_CTRL1, (uint8_t)reg_ctrl1.raw); + + drv2605l_reg_ctrl2_t reg_ctrl2; + reg_ctrl2.bits.C2_BIDIR_INPUT = DRV2605L_BIDIR_INPUT; + reg_ctrl2.bits.C2_BRAKE_STAB = DRV2605L_BRAKE_STAB; + reg_ctrl2.bits.C2_SAMPLE_TIME = DRV2605L_SAMPLE_TIME; + reg_ctrl2.bits.C2_BLANKING_TIME = DRV2605L_BLANKING_TIME; + reg_ctrl2.bits.C2_IDISS_TIME = DRV2605L_IDISS_TIME; + drv2605l_write(DRV2605L_REG_CTRL2, (uint8_t)reg_ctrl2.raw); + + drv2605l_reg_ctrl3_t reg_ctrl3; + reg_ctrl3.bits.C3_LRA_OPEN_LOOP = DRV2605L_LRA_OPEN_LOOP; + reg_ctrl3.bits.C3_N_PWM_ANALOG = DRV2605L_N_PWM_ANALOG; + reg_ctrl3.bits.C3_LRA_DRIVE_MODE = DRV2605L_LRA_DRIVE_MODE; + reg_ctrl3.bits.C3_DATA_FORMAT_RTO = DRV2605L_DATA_FORMAT_RTO; + reg_ctrl3.bits.C3_SUPPLY_COMP_DIS = DRV2605L_SUPPLY_COMP_DIS; + reg_ctrl3.bits.C3_ERM_OPEN_LOOP = DRV2605L_ERM_OPEN_LOOP; + reg_ctrl3.bits.C3_NG_THRESH = DRV2605L_NG_THRESH; + drv2605l_write(DRV2605L_REG_CTRL3, (uint8_t)reg_ctrl3.raw); + + drv2605l_reg_ctrl4_t reg_ctrl4; + reg_ctrl4.bits.C4_ZC_DET_TIME = DRV2605L_ZC_DET_TIME; + reg_ctrl4.bits.C4_AUTO_CAL_TIME = DRV2605L_AUTO_CAL_TIME; + drv2605l_write(DRV2605L_REG_CTRL4, (uint8_t)reg_ctrl4.raw); + + drv2605l_write(DRV2605L_REG_LIBRARY_SELECTION, DRV2605L_LIBRARY); + + drv2605l_write(DRV2605L_REG_GO, 0x01); + + /* 0x00 sets DRV2605 out of standby and to use internal trigger + * 0x01 sets DRV2605 out of standby and to use external trigger */ + drv2605l_write(DRV2605L_REG_MODE, 0x00); + + // Play greeting sequence + drv2605l_write(DRV2605L_REG_GO, 0x00); + drv2605l_write(DRV2605L_REG_WAVEFORM_SEQUENCER_1, DRV2605L_GREETING); + drv2605l_write(DRV2605L_REG_GO, 0x01); +} + +void drv2605l_rtp_init(void) { + drv2605l_write(DRV2605L_REG_GO, 0x00); + drv2605l_write(DRV2605L_REG_RTP_INPUT, 20); // 20 is the lowest value I've found where haptics can still be felt. + drv2605l_write(DRV2605L_REG_MODE, 0x05); + drv2605l_write(DRV2605L_REG_GO, 0x01); +} + +void drv2605l_amplitude(uint8_t amplitude) { + drv2605l_write(DRV2605L_REG_RTP_INPUT, amplitude); +} + +void drv2605l_pulse(uint8_t sequence) { + drv2605l_write(DRV2605L_REG_GO, 0x00); + drv2605l_write(DRV2605L_REG_WAVEFORM_SEQUENCER_1, sequence); + drv2605l_write(DRV2605L_REG_GO, 0x01); +} diff --git a/drivers/haptic/drv2605l.h b/drivers/haptic/drv2605l.h new file mode 100644 index 00000000000..a7cf856a86c --- /dev/null +++ b/drivers/haptic/drv2605l.h @@ -0,0 +1,362 @@ +/* Copyright 2018 ishtob + * Driver for DRV2605L written for QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include + +/* Initialization settings + + * Feedback Control Settings */ +#ifndef DRV2605L_FB_ERM_LRA +# define DRV2605L_FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ +#endif +#ifndef DRV2605L_FB_BRAKEFACTOR +# define DRV2605L_FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#endif +#ifndef DRV2605L_FB_LOOPGAIN +# define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#endif + +/* LRA specific settings */ +#if DRV2605L_FB_ERM_LRA == 1 +# ifndef DRV2605L_V_RMS +# define DRV2605L_V_RMS 2.0 +# endif +# ifndef DRV2605L_V_PEAK +# define DRV2605L_V_PEAK 2.1 +# endif +# ifndef DRV2605L_F_LRA +# define DRV2605L_F_LRA 205 +# endif +# ifndef DRV2605L_RATED_VOLTAGE +# define DRV2605L_RATED_VOLTAGE 2 /* 2v as safe range in case device voltage is not set */ +# endif +#endif + +#ifndef DRV2605L_RATED_VOLTAGE +# define DRV2605L_RATED_VOLTAGE 2 /* 2v as safe range in case device voltage is not set */ +#endif +#ifndef DRV2605L_V_PEAK +# define DRV2605L_V_PEAK 2.8 +#endif + +/* Library Selection */ +#ifndef DRV2605L_LIBRARY +# if DRV2605L_FB_ERM_LRA == 1 +# define DRV2605L_LIBRARY 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ +# else +# define DRV2605L_LIBRARY 1 +# endif +#endif + +#ifndef DRV2605L_GREETING +# define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#endif +#ifndef DRV2605L_DEFAULT_MODE +# define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_STRONG_CLICK_1_100 +#endif + +/* Control 1 register settings */ +#ifndef DRV2605L_DRIVE_TIME +# define DRV2605L_DRIVE_TIME 25 +#endif +#ifndef DRV2605L_AC_COUPLE +# define DRV2605L_AC_COUPLE 0 +#endif +#ifndef DRV2605L_STARTUP_BOOST +# define DRV2605L_STARTUP_BOOST 1 +#endif + +/* Control 2 Settings */ +#ifndef DRV2605L_BIDIR_INPUT +# define DRV2605L_BIDIR_INPUT 1 +#endif +#ifndef DRV2605L_BRAKE_STAB +# define DRV2605L_BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ +#endif +#ifndef DRV2605L_SAMPLE_TIME +# define DRV2605L_SAMPLE_TIME 3 +#endif +#ifndef DRV2605L_BLANKING_TIME +# define DRV2605L_BLANKING_TIME 1 +#endif +#ifndef DRV2605L_IDISS_TIME +# define DRV2605L_IDISS_TIME 1 +#endif + +/* Control 3 settings */ +#ifndef DRV2605L_NG_THRESH +# define DRV2605L_NG_THRESH 2 +#endif +#ifndef DRV2605L_ERM_OPEN_LOOP +# define DRV2605L_ERM_OPEN_LOOP 1 +#endif +#ifndef DRV2605L_SUPPLY_COMP_DIS +# define DRV2605L_SUPPLY_COMP_DIS 0 +#endif +#ifndef DRV2605L_DATA_FORMAT_RTO +# define DRV2605L_DATA_FORMAT_RTO 0 +#endif +#ifndef DRV2605L_LRA_DRIVE_MODE +# define DRV2605L_LRA_DRIVE_MODE 0 +#endif +#ifndef DRV2605L_N_PWM_ANALOG +# define DRV2605L_N_PWM_ANALOG 0 +#endif +#ifndef DRV2605L_LRA_OPEN_LOOP +# define DRV2605L_LRA_OPEN_LOOP 0 +#endif + +/* Control 4 settings */ +#ifndef DRV2605L_ZC_DET_TIME +# define DRV2605L_ZC_DET_TIME 0 +#endif +#ifndef DRV2605L_AUTO_CAL_TIME +# define DRV2605L_AUTO_CAL_TIME 3 +#endif + +#define DRV2605L_I2C_ADDRESS 0x5A + +#define DRV2605L_REG_STATUS 0x00 +#define DRV2605L_REG_MODE 0x01 +#define DRV2605L_REG_RTP_INPUT 0x02 +#define DRV2605L_REG_LIBRARY_SELECTION 0x03 +#define DRV2605L_REG_WAVEFORM_SEQUENCER_1 0x04 +#define DRV2605L_REG_WAVEFORM_SEQUENCER_2 0x05 +#define DRV2605L_REG_WAVEFORM_SEQUENCER_3 0x06 +#define DRV2605L_REG_WAVEFORM_SEQUENCER_4 0x07 +#define DRV2605L_REG_WAVEFORM_SEQUENCER_5 0x08 +#define DRV2605L_REG_WAVEFORM_SEQUENCER_6 0x09 +#define DRV2605L_REG_WAVEFORM_SEQUENCER_7 0x0A +#define DRV2605L_REG_WAVEFORM_SEQUENCER_8 0x0B +#define DRV2605L_REG_GO 0x0C +#define DRV2605L_REG_OVERDRIVE_TIME_OFFSET 0x0D +#define DRV2605L_REG_SUSTAIN_TIME_OFFSET_P 0x0E +#define DRV2605L_REG_SUSTAIN_TIME_OFFSET_N 0x0F +#define DRV2605L_REG_BRAKE_TIME_OFFSET 0x10 +#define DRV2605L_REG_AUDIO_TO_VIBE_CTRL 0x11 +#define DRV2605L_REG_AUDIO_TO_VIBE_MIN_INPUT 0x12 +#define DRV2605L_REG_AUDIO_TO_VIBE_MAX_INPUT 0x13 +#define DRV2605L_REG_AUDIO_TO_VIBE_MIN_OUTPUT_DRIVE 0x14 +#define DRV2605L_REG_AUDIO_TO_VIBE_MAX_OUTPUT_DRIVE 0x15 +#define DRV2605L_REG_RATED_VOLTAGE 0x16 +#define DRV2605L_REG_OVERDRIVE_CLAMP_VOLTAGE 0x17 +#define DRV2605L_REG_AUTO_CALIBRATION_COMPENSATION_RESULT 0x18 +#define DRV2605L_REG_AUTO_CALIBRATION_BACK_EMF_RESULT 0x19 +#define DRV2605L_REG_FEEDBACK_CTRL 0x1A +#define DRV2605L_REG_CTRL1 0x1B +#define DRV2605L_REG_CTRL2 0x1C +#define DRV2605L_REG_CTRL3 0x1D +#define DRV2605L_REG_CTRL4 0x1E +#define DRV2605L_REG_CTRL5 0x1F +#define DRV2605L_REG_LRA_OPEN_LOOP_PERIOD 0x20 +#define DRV2605L_REG_VBAT_VOLTAGE_MONITOR 0x21 +#define DRV2605L_REG_LRA_RESONANCE_PERIOD 0x22 + +void drv2605l_init(void); +void drv2605l_write(const uint8_t reg_addr, const uint8_t data); +uint8_t drv2605l_read(const uint8_t reg_addr); +void drv2605l_rtp_init(void); +void drv2605l_amplitude(const uint8_t amplitude); +void drv2605l_pulse(const uint8_t sequence); + +typedef enum drv2605l_effect_t { + DRV2605L_EFFECT_CLEAR_SEQUENCE, + DRV2605L_EFFECT_STRONG_CLICK_100, + DRV2605L_EFFECT_STRONG_CLICK_60, + DRV2605L_EFFECT_STRONG_CLICK_30, + DRV2605L_EFFECT_SHARP_CLICK_100, + DRV2605L_EFFECT_SHARP_CLICK_60, + DRV2605L_EFFECT_SHARP_CLICK_30, + DRV2605L_EFFECT_SOFT_BUMP_100, + DRV2605L_EFFECT_SOFT_BUMP_60, + DRV2605L_EFFECT_SOFT_BUMP_30, + DRV2605L_EFFECT_DOUBLE_CLICK_100, + DRV2605L_EFFECT_DOUBLE_CLICK_60, + DRV2605L_EFFECT_TRIPLE_CLICK_100, + DRV2605L_EFFECT_SOFT_FUZZ_60, + DRV2605L_EFFECT_STRONG_BUZZ_100, + DRV2605L_EFFECT_750_MS_ALERT_100, + DRV2605L_EFFECT_1000_MS_ALERT_100, + DRV2605L_EFFECT_STRONG_CLICK_1_100, + DRV2605L_EFFECT_STRONG_CLICK_2_80, + DRV2605L_EFFECT_STRONG_CLICK_3_60, + DRV2605L_EFFECT_STRONG_CLICK_4_30, + DRV2605L_EFFECT_MEDIUM_CLICK_1_100, + DRV2605L_EFFECT_MEDIUM_CLICK_2_80, + DRV2605L_EFFECT_MEDIUM_CLICK_3_60, + DRV2605L_EFFECT_SHARP_TICK_1_100, + DRV2605L_EFFECT_SHARP_TICK_2_80, + DRV2605L_EFFECT_SHARP_TICK_3_60, + DRV2605L_EFFECT_SHORT_DOUBLE_CLICK_STRONG_1_100, + DRV2605L_EFFECT_SHORT_DOUBLE_CLICK_STRONG_2_80, + DRV2605L_EFFECT_SHORT_DOUBLE_CLICK_STRONG_3_60, + DRV2605L_EFFECT_SHORT_DOUBLE_CLICK_STRONG_4_30, + DRV2605L_EFFECT_SHORT_DOUBLE_CLICK_MEDIUM_1_100, + DRV2605L_EFFECT_SHORT_DOUBLE_CLICK_MEDIUM_2_80, + DRV2605L_EFFECT_SHORT_DOUBLE_CLICK_MEDIUM_3_60, + DRV2605L_EFFECT_SHORT_DOUBLE_SHARP_TICK_1_100, + DRV2605L_EFFECT_SHORT_DOUBLE_SHARP_TICK_2_80, + DRV2605L_EFFECT_SHORT_DOUBLE_SHARP_TICK_3_60, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_STRONG_1_100, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_STRONG_2_80, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_STRONG_3_60, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_STRONG_4_30, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_MEDIUM_1_100, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_MEDIUM_2_80, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_MEDIUM_3_60, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_TICK_1_100, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_TICK_2_80, + DRV2605L_EFFECT_LONG_DOUBLE_SHARP_TICK_3_60, + DRV2605L_EFFECT_BUZZ_1_100, + DRV2605L_EFFECT_BUZZ_2_80, + DRV2605L_EFFECT_BUZZ_3_60, + DRV2605L_EFFECT_BUZZ_4_40, + DRV2605L_EFFECT_BUZZ_5_20, + DRV2605L_EFFECT_PULSING_STRONG_1_100, + DRV2605L_EFFECT_PULSING_STRONG_2_60, + DRV2605L_EFFECT_PULSING_MEDIUM_1_100, + DRV2605L_EFFECT_PULSING_MEDIUM_2_60, + DRV2605L_EFFECT_PULSING_SHARP_1_100, + DRV2605L_EFFECT_PULSING_SHARP_2_60, + DRV2605L_EFFECT_TRANSITION_CLICK_1_100, + DRV2605L_EFFECT_TRANSITION_CLICK_2_80, + DRV2605L_EFFECT_TRANSITION_CLICK_3_60, + DRV2605L_EFFECT_TRANSITION_CLICK_4_40, + DRV2605L_EFFECT_TRANSITION_CLICK_5_20, + DRV2605L_EFFECT_TRANSITION_CLICK_6_10, + DRV2605L_EFFECT_TRANSITION_HUM_1_100, + DRV2605L_EFFECT_TRANSITION_HUM_2_80, + DRV2605L_EFFECT_TRANSITION_HUM_3_60, + DRV2605L_EFFECT_TRANSITION_HUM_4_40, + DRV2605L_EFFECT_TRANSITION_HUM_5_20, + DRV2605L_EFFECT_TRANSITION_HUM_6_10, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_LONG_SMOOTH_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_LONG_SMOOTH_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_MEDIUM_SMOOTH_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_MEDIUM_SMOOTH_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_SHORT_SMOOTH_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_SHORT_SMOOTH_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_LONG_SHARP_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_LONG_SHARP_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_MEDIUM_SHARP_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_MEDIUM_SHARP_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_SHORT_SHARP_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_SHORT_SHARP_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_LONG_SMOOTH_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_LONG_SMOOTH_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_MEDIUM_SMOOTH_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_MEDIUM_SMOOTH_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_SHORT_SMOOTH_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_SHORT_SMOOTH_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_LONG_SHARP_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_LONG_SHARP_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_MEDIUM_SHARP_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_MEDIUM_SHARP_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_SHORT_SHARP_1_100, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_SHORT_SHARP_2_100, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_LONG_SMOOTH_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_LONG_SMOOTH_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_MEDIUM_SMOOTH_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_MEDIUM_SMOOTH_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_SHORT_SMOOTH_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_SHORT_SMOOTH_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_LONG_SHARP_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_LONG_SHARP_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_MEDIUM_SHARP_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_MEDIUM_SHARP_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_SHORT_SHARP_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_DOWN_SHORT_SHARP_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_LONG_SMOOTH_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_LONG_SMOOTH_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_MEDIUM_SMOOTH_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_MEDIUM_SMOOTH_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_SHORT_SMOOTH_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_SHORT_SMOOTH_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_LONG_SHARP_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_LONG_SHARP_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_MEDIUM_SHARP_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_MEDIUM_SHARP_2_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_SHORT_SHARP_1_50, + DRV2605L_EFFECT_TRANSITION_RAMP_UP_SHORT_SHARP_2_50, + DRV2605L_EFFECT_LONG_BUZZ_FOR_PROGRAMMATIC_STOPPING, + DRV2605L_EFFECT_SMOOTH_HUM_1_50, + DRV2605L_EFFECT_SMOOTH_HUM_2_40, + DRV2605L_EFFECT_SMOOTH_HUM_3_30, + DRV2605L_EFFECT_SMOOTH_HUM_4_20, + DRV2605L_EFFECT_SMOOTH_HUM_5_10, + DRV2605L_EFFECT_COUNT +} drv2605l_effect_t; + +/* Register bit array unions */ + +typedef union { /* register 0x1A */ + uint8_t raw; + struct { + uint8_t BEMF_GAIN : 2; + uint8_t LOOP_GAIN : 2; + uint8_t BRAKE_FACTOR : 3; + uint8_t ERM_LRA : 1; + } bits; +} drv2605l_reg_feedback_ctrl_t; + +typedef union { /* register 0x1B */ + uint8_t raw; + struct { + uint8_t C1_DRIVE_TIME : 5; + uint8_t C1_AC_COUPLE : 1; + uint8_t : 1; + uint8_t C1_STARTUP_BOOST : 1; + } bits; +} drv2605l_reg_ctrl1_t; + +typedef union { /* register 0x1C */ + uint8_t raw; + struct { + uint8_t C2_IDISS_TIME : 2; + uint8_t C2_BLANKING_TIME : 2; + uint8_t C2_SAMPLE_TIME : 2; + uint8_t C2_BRAKE_STAB : 1; + uint8_t C2_BIDIR_INPUT : 1; + } bits; +} drv2605l_reg_ctrl2_t; + +typedef union { /* register 0x1D */ + uint8_t raw; + struct { + uint8_t C3_LRA_OPEN_LOOP : 1; + uint8_t C3_N_PWM_ANALOG : 1; + uint8_t C3_LRA_DRIVE_MODE : 1; + uint8_t C3_DATA_FORMAT_RTO : 1; + uint8_t C3_SUPPLY_COMP_DIS : 1; + uint8_t C3_ERM_OPEN_LOOP : 1; + uint8_t C3_NG_THRESH : 2; + } bits; +} drv2605l_reg_ctrl3_t; + +typedef union { /* register 0x1E */ + uint8_t raw; + struct { + uint8_t C4_OTP_PROGRAM : 1; + uint8_t : 1; + uint8_t C4_OTP_STATUS : 1; + uint8_t : 1; + uint8_t C4_AUTO_CAL_TIME : 2; + uint8_t C4_ZC_DET_TIME : 2; + } bits; +} drv2605l_reg_ctrl4_t; diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 40fc68e4f11..766d8cd2eb7 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -16,14 +16,14 @@ */ #include "apa102.h" -#include "quantum.h" +#include "gpio.h" #ifndef APA102_NOPS # if defined(__AVR__) # define APA102_NOPS 0 // AVR at 16 MHz already spends 62.5 ns per clock, so no extra delay is needed # elif defined(PROTOCOL_CHIBIOS) - # include "hal.h" +# include "chibios_config.h" # if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103) # define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) // This calculates how many loops of 4 nops to run to delay 100 ns # else diff --git a/drivers/led/aw20216.c b/drivers/led/aw20216.c index 7895f1497b0..479643add48 100644 --- a/drivers/led/aw20216.c +++ b/drivers/led/aw20216.c @@ -71,7 +71,7 @@ uint8_t g_pwm_buffer[DRIVER_COUNT][AW_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; -bool AW20216_write(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t* data, uint8_t len) { +bool aw20216_write(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t* data, uint8_t len) { static uint8_t s_spi_transfer_buffer[2] = {0}; if (!spi_start(cs_pin, false, AW_SPI_MODE, AW_SPI_DIVISOR)) { @@ -96,70 +96,73 @@ bool AW20216_write(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t* data, uint8 return true; } -static inline bool AW20216_write_register(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t value) { +static inline bool aw20216_write_register(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t value) { // Little wrapper so callers need not care about sending a buffer - return AW20216_write(cs_pin, page, reg, &value, 1); + return aw20216_write(cs_pin, page, reg, &value, 1); } -void AW20216_soft_reset(pin_t cs_pin) { - AW20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_RESET, AW_RESET_CMD); +void aw20216_soft_reset(pin_t cs_pin) { + aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_RESET, AW_RESET_CMD); } -static void AW20216_init_scaling(pin_t cs_pin) { +static void aw20216_init_scaling(pin_t cs_pin) { // Set constant current to the max, control brightness with PWM for (uint8_t i = 0; i < AW_PWM_REGISTER_COUNT; i++) { - AW20216_write_register(cs_pin, AW_PAGE_SCALING, i, AW_SCALING_MAX); + aw20216_write_register(cs_pin, AW_PAGE_SCALING, i, AW_SCALING_MAX); } } -static inline void AW20216_init_current_limit(pin_t cs_pin) { +static inline void aw20216_init_current_limit(pin_t cs_pin) { // Push config - AW20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_GLOBALCURRENT, AW_GLOBAL_CURRENT_MAX); + aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_GLOBALCURRENT, AW_GLOBAL_CURRENT_MAX); } -static inline void AW20216_soft_enable(pin_t cs_pin) { +static inline void aw20216_soft_enable(pin_t cs_pin) { // Push config - AW20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_CONFIGURATION, AW_CONFIG_DEFAULT | AW_CHIPEN); + aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_CONFIGURATION, AW_CONFIG_DEFAULT | AW_CHIPEN); } -static inline void AW20216_auto_lowpower(pin_t cs_pin) { - AW20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_MIXFUNCTION, AW_MIXCR_DEFAULT | AW_LPEN); +static inline void aw20216_auto_lowpower(pin_t cs_pin) { + aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_MIXFUNCTION, AW_MIXCR_DEFAULT | AW_LPEN); } -void AW20216_init(pin_t cs_pin, pin_t en_pin) { +void aw20216_init(pin_t cs_pin, pin_t en_pin) { setPinOutput(en_pin); writePinHigh(en_pin); - AW20216_soft_reset(cs_pin); + aw20216_soft_reset(cs_pin); wait_ms(2); // Drivers should start with all scaling and PWM registers as off - AW20216_init_current_limit(cs_pin); - AW20216_init_scaling(cs_pin); + aw20216_init_current_limit(cs_pin); + aw20216_init_scaling(cs_pin); - AW20216_soft_enable(cs_pin); - AW20216_auto_lowpower(cs_pin); + aw20216_soft_enable(cs_pin); + aw20216_auto_lowpower(cs_pin); } -void AW20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void aw20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { aw_led led; memcpy_P(&led, (&g_aw_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } g_pwm_buffer[led.driver][led.r] = red; g_pwm_buffer[led.driver][led.g] = green; g_pwm_buffer[led.driver][led.b] = blue; g_pwm_buffer_update_required[led.driver] = true; } -void AW20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void aw20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - AW20216_set_color(i, red, green, blue); + aw20216_set_color(i, red, green, blue); } } -void AW20216_update_pwm_buffers(pin_t cs_pin, uint8_t index) { +void aw20216_update_pwm_buffers(pin_t cs_pin, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - AW20216_write(cs_pin, AW_PAGE_PWM, 0, g_pwm_buffer[index], AW_PWM_REGISTER_COUNT); + aw20216_write(cs_pin, AW_PAGE_PWM, 0, g_pwm_buffer[index], AW_PWM_REGISTER_COUNT); } g_pwm_buffer_update_required[index] = false; } diff --git a/drivers/led/aw20216.h b/drivers/led/aw20216.h index c6e71b4b4e2..e342cb6bacd 100644 --- a/drivers/led/aw20216.h +++ b/drivers/led/aw20216.h @@ -30,10 +30,10 @@ typedef struct aw_led { extern const aw_led PROGMEM g_aw_leds[RGB_MATRIX_LED_COUNT]; -void AW20216_init(pin_t cs_pin, pin_t en_pin); -void AW20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void AW20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void AW20216_update_pwm_buffers(pin_t cs_pin, uint8_t index); +void aw20216_init(pin_t cs_pin, pin_t en_pin); +void aw20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void aw20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void aw20216_update_pwm_buffers(pin_t cs_pin, uint8_t index); #define CS1_SW1 0x00 #define CS2_SW1 0x01 diff --git a/drivers/led/ckled2001-simple.c b/drivers/led/ckled2001-simple.c index 6c4ffd398e5..c4d4c0a4cc2 100644 --- a/drivers/led/ckled2001-simple.c +++ b/drivers/led/ckled2001-simple.c @@ -42,7 +42,7 @@ uint8_t g_twi_transfer_buffer[20]; // The control buffers match the PG0 LED On/Off registers. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in CKLED2001_write_pwm_buffer() but it's +// buffers and the transfers in ckled2001_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[DRIVER_COUNT][192]; bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; @@ -50,7 +50,7 @@ bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; -bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -69,7 +69,7 @@ bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { return true; } -bool CKLED2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // Assumes PG1 is already selected. // If any of the transactions fails function returns false. // Transmit PWM registers in 12 transfers of 16 bytes. @@ -100,69 +100,72 @@ bool CKLED2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } -void CKLED2001_init(uint8_t addr) { +void ckled2001_init(uint8_t addr) { // Select to function page - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); // Setting LED driver to shutdown mode - CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); + ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); // Setting internal channel pulldown/pullup - CKLED2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL); + ckled2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL); // Select number of scan phase - CKLED2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL); + ckled2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL); // Setting PWM Delay Phase - CKLED2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE); + ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE); // Setting Driving/Sinking Channel Slew Rate - CKLED2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE); + ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE); // Setting Iref - CKLED2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE); + ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE); // Set LED CONTROL PAGE (Page 0) - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) { - CKLED2001_write_register(addr, i, 0x00); + ckled2001_write_register(addr, i, 0x00); } // Set PWM PAGE (Page 1) - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) { - CKLED2001_write_register(addr, i, 0x00); + ckled2001_write_register(addr, i, 0x00); } // Set CURRENT PAGE (Page 4) uint8_t current_tuen_reg_list[LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE); for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) { - CKLED2001_write_register(addr, i, current_tuen_reg_list[i]); + ckled2001_write_register(addr, i, current_tuen_reg_list[i]); } // Enable LEDs ON/OFF - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) { - CKLED2001_write_register(addr, i, 0xFF); + ckled2001_write_register(addr, i, 0xFF); } // Select to function page - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); // Setting LED driver to normal mode - CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); + ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); } -void CKLED2001_set_value(int index, uint8_t value) { +void ckled2001_set_value(int index, uint8_t value) { ckled2001_led led; if (index >= 0 && index < LED_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.v] == value) { + return; + } g_pwm_buffer[led.driver][led.v] = value; g_pwm_buffer_update_required[led.driver] = true; } } -void CKLED2001_set_value_all(uint8_t value) { +void ckled2001_set_value_all(uint8_t value) { for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { - CKLED2001_set_value(i, value); + ckled2001_set_value(i, value); } } -void CKLED2001_set_led_control_register(uint8_t index, bool value) { +void ckled2001_set_led_control_register(uint8_t index, bool value) { ckled2001_led led; memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); @@ -178,41 +181,41 @@ void CKLED2001_set_led_control_register(uint8_t index, bool value) { g_led_control_registers_update_required[led.driver] = true; } -void CKLED2001_update_pwm_buffers(uint8_t addr, uint8_t index) { +void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. - if (!CKLED2001_write_pwm_buffer(addr, g_pwm_buffer[index])) { + if (!ckled2001_write_pwm_buffer(addr, g_pwm_buffer[index])) { g_led_control_registers_update_required[index] = true; } } g_pwm_buffer_update_required[index] = false; } -void CKLED2001_update_led_control_registers(uint8_t addr, uint8_t index) { +void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); for (int i = 0; i < 24; i++) { - CKLED2001_write_register(addr, i, g_led_control_registers[index][i]); + ckled2001_write_register(addr, i, g_led_control_registers[index][i]); } } g_led_control_registers_update_required[index] = false; } -void CKLED2001_sw_return_normal(uint8_t addr) { +void ckled2001_sw_return_normal(uint8_t addr) { // Select to function page - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); // Setting LED driver to normal mode - CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); + ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); } -void CKLED2001_sw_shutdown(uint8_t addr) { +void ckled2001_sw_shutdown(uint8_t addr) { // Select to function page - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); // Setting LED driver to shutdown mode - CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); + ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); // Write SW Sleep Register - CKLED2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE); + ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE); } diff --git a/drivers/led/ckled2001-simple.h b/drivers/led/ckled2001-simple.h index a56cad3461b..c94df62dd2e 100644 --- a/drivers/led/ckled2001-simple.h +++ b/drivers/led/ckled2001-simple.h @@ -27,24 +27,24 @@ typedef struct ckled2001_led { extern const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT]; -void CKLED2001_init(uint8_t addr); -bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool CKLED2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void ckled2001_init(uint8_t addr); +bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void CKLED2001_set_value(int index, uint8_t value); -void CKLED2001_set_value_all(uint8_t value); +void ckled2001_set_value(int index, uint8_t value); +void ckled2001_set_value_all(uint8_t value); -void CKLED2001_set_led_control_register(uint8_t index, bool value); +void ckled2001_set_led_control_register(uint8_t index, bool value); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void CKLED2001_update_pwm_buffers(uint8_t addr, uint8_t index); -void CKLED2001_update_led_control_registers(uint8_t addr, uint8_t index); +void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index); +void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index); -void CKLED2001_sw_return_normal(uint8_t addr); -void CKLED2001_sw_shutdown(uint8_t addr); +void ckled2001_sw_return_normal(uint8_t addr); +void ckled2001_sw_shutdown(uint8_t addr); // Registers Page Define #define CONFIGURE_CMD_PAGE 0xFD diff --git a/drivers/led/ckled2001.c b/drivers/led/ckled2001.c index a99b479d1cb..6ababf55e90 100644 --- a/drivers/led/ckled2001.c +++ b/drivers/led/ckled2001.c @@ -42,7 +42,7 @@ uint8_t g_twi_transfer_buffer[65]; // The control buffers match the PG0 LED On/Off registers. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in CKLED2001_write_pwm_buffer() but it's +// buffers and the transfers in ckled2001_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[DRIVER_COUNT][192]; bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; @@ -50,7 +50,7 @@ bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; -bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -69,7 +69,7 @@ bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { return true; } -bool CKLED2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // Assumes PG1 is already selected. // If any of the transactions fails function returns false. // Transmit PWM registers in 3 transfers of 64 bytes. @@ -99,57 +99,60 @@ bool CKLED2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } -void CKLED2001_init(uint8_t addr) { +void ckled2001_init(uint8_t addr) { // Select to function page - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); // Setting LED driver to shutdown mode - CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); + ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); // Setting internal channel pulldown/pullup - CKLED2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL); + ckled2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL); // Select number of scan phase - CKLED2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL); + ckled2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL); // Setting PWM Delay Phase - CKLED2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE); + ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE); // Setting Driving/Sinking Channel Slew Rate - CKLED2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE); + ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE); // Setting Iref - CKLED2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE); + ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE); // Set LED CONTROL PAGE (Page 0) - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) { - CKLED2001_write_register(addr, i, 0x00); + ckled2001_write_register(addr, i, 0x00); } // Set PWM PAGE (Page 1) - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) { - CKLED2001_write_register(addr, i, 0x00); + ckled2001_write_register(addr, i, 0x00); } // Set CURRENT PAGE (Page 4) uint8_t current_tuen_reg_list[LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE); for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) { - CKLED2001_write_register(addr, i, current_tuen_reg_list[i]); + ckled2001_write_register(addr, i, current_tuen_reg_list[i]); } // Enable LEDs ON/OFF - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) { - CKLED2001_write_register(addr, i, 0xFF); + ckled2001_write_register(addr, i, 0xFF); } // Select to function page - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); // Setting LED driver to normal mode - CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); + ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); } -void CKLED2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { ckled2001_led led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } g_pwm_buffer[led.driver][led.r] = red; g_pwm_buffer[led.driver][led.g] = green; g_pwm_buffer[led.driver][led.b] = blue; @@ -157,13 +160,13 @@ void CKLED2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } } -void CKLED2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void ckled2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - CKLED2001_set_color(i, red, green, blue); + ckled2001_set_color(i, red, green, blue); } } -void CKLED2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { +void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { ckled2001_led led; memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); @@ -193,41 +196,41 @@ void CKLED2001_set_led_control_register(uint8_t index, bool red, bool green, boo g_led_control_registers_update_required[led.driver] = true; } -void CKLED2001_update_pwm_buffers(uint8_t addr, uint8_t index) { +void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. - if (!CKLED2001_write_pwm_buffer(addr, g_pwm_buffer[index])) { + if (!ckled2001_write_pwm_buffer(addr, g_pwm_buffer[index])) { g_led_control_registers_update_required[index] = true; } } g_pwm_buffer_update_required[index] = false; } -void CKLED2001_update_led_control_registers(uint8_t addr, uint8_t index) { +void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); for (int i = 0; i < 24; i++) { - CKLED2001_write_register(addr, i, g_led_control_registers[index][i]); + ckled2001_write_register(addr, i, g_led_control_registers[index][i]); } } g_led_control_registers_update_required[index] = false; } -void CKLED2001_sw_return_normal(uint8_t addr) { +void ckled2001_sw_return_normal(uint8_t addr) { // Select to function page - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); // Setting LED driver to normal mode - CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); + ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); } -void CKLED2001_sw_shutdown(uint8_t addr) { +void ckled2001_sw_shutdown(uint8_t addr) { // Select to function page - CKLED2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); // Setting LED driver to shutdown mode - CKLED2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); + ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); // Write SW Sleep Register - CKLED2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE); + ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE); } diff --git a/drivers/led/ckled2001.h b/drivers/led/ckled2001.h index aa70a0623f9..32da137fb7a 100644 --- a/drivers/led/ckled2001.h +++ b/drivers/led/ckled2001.h @@ -29,24 +29,24 @@ typedef struct ckled2001_led { extern const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT]; -void CKLED2001_init(uint8_t addr); -bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool CKLED2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void ckled2001_init(uint8_t addr); +bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void CKLED2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void CKLED2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void ckled2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void CKLED2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue); +void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void CKLED2001_update_pwm_buffers(uint8_t addr, uint8_t index); -void CKLED2001_update_led_control_registers(uint8_t addr, uint8_t index); +void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index); +void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index); -void CKLED2001_sw_return_normal(uint8_t addr); -void CKLED2001_sw_shutdown(uint8_t addr); +void ckled2001_sw_return_normal(uint8_t addr); +void ckled2001_sw_shutdown(uint8_t addr); // Registers Page Define #define CONFIGURE_CMD_PAGE 0xFD diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c index c2300ebe899..970e9a0be98 100644 --- a/drivers/led/issi/is31fl3218.c +++ b/drivers/led/issi/is31fl3218.c @@ -37,58 +37,61 @@ uint8_t g_twi_transfer_buffer[20]; uint8_t g_pwm_buffer[18]; bool g_pwm_buffer_update_required = false; -void IS31FL3218_write_register(uint8_t reg, uint8_t data) { +void is31fl3218_write_register(uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; i2c_transmit(ISSI_ADDRESS, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); } -void IS31FL3218_write_pwm_buffer(uint8_t *pwm_buffer) { +void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) { g_twi_transfer_buffer[0] = ISSI_REG_PWM; memcpy(g_twi_transfer_buffer + 1, pwm_buffer, 18); i2c_transmit(ISSI_ADDRESS, g_twi_transfer_buffer, 19, ISSI_TIMEOUT); } -void IS31FL3218_init(void) { +void is31fl3218_init(void) { // In case we ever want to reinitialize (?) - IS31FL3218_write_register(ISSI_REG_RESET, 0x00); + is31fl3218_write_register(ISSI_REG_RESET, 0x00); // Turn off software shutdown - IS31FL3218_write_register(ISSI_REG_SHUTDOWN, 0x01); + is31fl3218_write_register(ISSI_REG_SHUTDOWN, 0x01); // Set all PWM values to zero for (uint8_t i = 0; i < 18; i++) { - IS31FL3218_write_register(ISSI_REG_PWM + i, 0x00); + is31fl3218_write_register(ISSI_REG_PWM + i, 0x00); } // Enable all channels for (uint8_t i = 0; i < 3; i++) { - IS31FL3218_write_register(ISSI_REG_CONTROL + i, 0b00111111); + is31fl3218_write_register(ISSI_REG_CONTROL + i, 0b00111111); } // Load PWM registers and LED Control register data - IS31FL3218_write_register(ISSI_REG_UPDATE, 0x01); + is31fl3218_write_register(ISSI_REG_UPDATE, 0x01); } -void IS31FL3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { + if (g_pwm_buffer[index * 3 + 0] == red && g_pwm_buffer[index * 3 + 1] == green && g_pwm_buffer[index * 3 + 2] == blue) { + return; + } g_pwm_buffer[index * 3 + 0] = red; g_pwm_buffer[index * 3 + 1] = green; g_pwm_buffer[index * 3 + 2] = blue; g_pwm_buffer_update_required = true; } -void IS31FL3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (int i = 0; i < 6; i++) { - IS31FL3218_set_color(i, red, green, blue); + is31fl3218_set_color(i, red, green, blue); } } -void IS31FL3218_update_pwm_buffers(void) { +void is31fl3218_update_pwm_buffers(void) { if (g_pwm_buffer_update_required) { - IS31FL3218_write_pwm_buffer(g_pwm_buffer); + is31fl3218_write_pwm_buffer(g_pwm_buffer); // Load PWM registers and LED Control register data - IS31FL3218_write_register(ISSI_REG_UPDATE, 0x01); + is31fl3218_write_register(ISSI_REG_UPDATE, 0x01); } g_pwm_buffer_update_required = false; } diff --git a/drivers/led/issi/is31fl3218.h b/drivers/led/issi/is31fl3218.h index 26bb01a0147..2fe37684320 100644 --- a/drivers/led/issi/is31fl3218.h +++ b/drivers/led/issi/is31fl3218.h @@ -20,7 +20,7 @@ #include #include -void IS31FL3218_init(void); -void IS31FL3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3218_update_pwm_buffers(void); +void is31fl3218_init(void); +void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void is31fl3218_update_pwm_buffers(void); diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index a62b21cc6b1..f7f6980a3b6 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -64,7 +64,7 @@ uint8_t g_twi_transfer_buffer[20]; // These buffers match the IS31FL3731 PWM registers 0x24-0xB3. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in IS31FL3731_write_pwm_buffer() but it's +// buffers and the transfers in is31fl3731_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[LED_DRIVER_COUNT][144]; bool g_pwm_buffer_update_required[LED_DRIVER_COUNT] = {false}; @@ -95,7 +95,7 @@ bool g_led_control_registers_update_required[LED_DRIVER_COUNT] = {false}; // 0x0E - R17,G15,G14,G13,G12,G11,G10,G09 // 0x10 - R16,R15,R14,R13,R12,R11,R10,R09 -void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -110,7 +110,7 @@ void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { #endif } -void IS31FL3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // assumes bank is already selected // transmit PWM registers in 9 transfers of 16 bytes @@ -135,79 +135,83 @@ void IS31FL3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } -void IS31FL3731_init(uint8_t addr) { +void is31fl3731_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, first enable software shutdown, // then set up the mode and other settings, clear the PWM registers, // then disable software shutdown. // select "function register" bank - IS31FL3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); // enable software shutdown - IS31FL3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x00); + is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x00); #ifdef ISSI_3731_DEGHOST // set to enable de-ghosting of the array - IS31FL3731_write_register(addr, ISSI_REG_GHOST_IMAGE_PREVENTION, 0x10); + is31fl3731_write_register(addr, ISSI_REG_GHOST_IMAGE_PREVENTION, 0x10); #endif // this delay was copied from other drivers, might not be needed wait_ms(10); // picture mode - IS31FL3731_write_register(addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE); + is31fl3731_write_register(addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE); // display frame 0 - IS31FL3731_write_register(addr, ISSI_REG_PICTUREFRAME, 0x00); + is31fl3731_write_register(addr, ISSI_REG_PICTUREFRAME, 0x00); // audio sync off - IS31FL3731_write_register(addr, ISSI_REG_AUDIOSYNC, 0x00); + is31fl3731_write_register(addr, ISSI_REG_AUDIOSYNC, 0x00); // select bank 0 - IS31FL3731_write_register(addr, ISSI_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0); // turn off all LEDs in the LED control register for (int i = 0x00; i <= 0x11; i++) { - IS31FL3731_write_register(addr, i, 0x00); + is31fl3731_write_register(addr, i, 0x00); } // turn off all LEDs in the blink control register (not really needed) for (int i = 0x12; i <= 0x23; i++) { - IS31FL3731_write_register(addr, i, 0x00); + is31fl3731_write_register(addr, i, 0x00); } // set PWM on all LEDs to 0 for (int i = 0x24; i <= 0xB3; i++) { - IS31FL3731_write_register(addr, i, 0x00); + is31fl3731_write_register(addr, i, 0x00); } // select "function register" bank - IS31FL3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); // disable software shutdown - IS31FL3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x01); + is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x01); // select bank 0 and leave it selected. // most usage after initialization is just writing PWM buffers in bank 0 // as there's not much point in double-buffering - IS31FL3731_write_register(addr, ISSI_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0); } -void IS31FL3731_set_value(int index, uint8_t value) { +void is31fl3731_set_value(int index, uint8_t value) { is31_led led; if (index >= 0 && index < LED_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); // Subtract 0x24 to get the second index of g_pwm_buffer + + if (g_pwm_buffer[led.driver][led.v - 0x24] == value) { + return; + } g_pwm_buffer[led.driver][led.v - 0x24] = value; g_pwm_buffer_update_required[led.driver] = true; } } -void IS31FL3731_set_value_all(uint8_t value) { +void is31fl3731_set_value_all(uint8_t value) { for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { - IS31FL3731_set_value(i, value); + is31fl3731_set_value(i, value); } } -void IS31FL3731_set_led_control_register(uint8_t index, bool value) { +void is31fl3731_set_led_control_register(uint8_t index, bool value) { is31_led led; memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); @@ -223,17 +227,17 @@ void IS31FL3731_set_led_control_register(uint8_t index, bool value) { g_led_control_registers_update_required[led.driver] = true; } -void IS31FL3731_update_pwm_buffers(uint8_t addr, uint8_t index) { +void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - IS31FL3731_write_pwm_buffer(addr, g_pwm_buffer[index]); + is31fl3731_write_pwm_buffer(addr, g_pwm_buffer[index]); g_pwm_buffer_update_required[index] = false; } } -void IS31FL3731_update_led_control_registers(uint8_t addr, uint8_t index) { +void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { for (int i = 0; i < 18; i++) { - IS31FL3731_write_register(addr, i, g_led_control_registers[index][i]); + is31fl3731_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; } diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 7834766b94e..69fba14a0b3 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -30,21 +30,21 @@ typedef struct is31_led { extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; -void IS31FL3731_init(uint8_t addr); -void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); -void IS31FL3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void is31fl3731_init(uint8_t addr); +void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); +void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void IS31FL3731_set_value(int index, uint8_t value); -void IS31FL3731_set_value_all(uint8_t value); +void is31fl3731_set_value(int index, uint8_t value); +void is31fl3731_set_value_all(uint8_t value); -void IS31FL3731_set_led_control_register(uint8_t index, bool value); +void is31fl3731_set_led_control_register(uint8_t index, bool value); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void IS31FL3731_update_pwm_buffers(uint8_t addr, uint8_t index); -void IS31FL3731_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index); #define C1_1 0x24 #define C1_2 0x25 diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index 80344ca721e..15a01b6d75c 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -63,7 +63,7 @@ uint8_t g_twi_transfer_buffer[20]; // These buffers match the IS31FL3731 PWM registers 0x24-0xB3. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in IS31FL3731_write_pwm_buffer() but it's +// buffers and the transfers in is31fl3731_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[DRIVER_COUNT][144]; bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; @@ -85,7 +85,7 @@ bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; // 0x0E - R17,G15,G14,G13,G12,G11,G10,G09 // 0x10 - R16,R15,R14,R13,R12,R11,R10,R09 -void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -98,7 +98,7 @@ void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { #endif } -void IS31FL3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // assumes bank is already selected // transmit PWM registers in 9 transfers of 16 bytes @@ -123,67 +123,70 @@ void IS31FL3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } -void IS31FL3731_init(uint8_t addr) { +void is31fl3731_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, first enable software shutdown, // then set up the mode and other settings, clear the PWM registers, // then disable software shutdown. // select "function register" bank - IS31FL3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); // enable software shutdown - IS31FL3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x00); + is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x00); #ifdef ISSI_3731_DEGHOST // set to enable de-ghosting of the array - IS31FL3731_write_register(addr, ISSI_REG_GHOST_IMAGE_PREVENTION, 0x10); + is31fl3731_write_register(addr, ISSI_REG_GHOST_IMAGE_PREVENTION, 0x10); #endif // this delay was copied from other drivers, might not be needed wait_ms(10); // picture mode - IS31FL3731_write_register(addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE); + is31fl3731_write_register(addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE); // display frame 0 - IS31FL3731_write_register(addr, ISSI_REG_PICTUREFRAME, 0x00); + is31fl3731_write_register(addr, ISSI_REG_PICTUREFRAME, 0x00); // audio sync off - IS31FL3731_write_register(addr, ISSI_REG_AUDIOSYNC, 0x00); + is31fl3731_write_register(addr, ISSI_REG_AUDIOSYNC, 0x00); // select bank 0 - IS31FL3731_write_register(addr, ISSI_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0); // turn off all LEDs in the LED control register for (int i = 0x00; i <= 0x11; i++) { - IS31FL3731_write_register(addr, i, 0x00); + is31fl3731_write_register(addr, i, 0x00); } // turn off all LEDs in the blink control register (not really needed) for (int i = 0x12; i <= 0x23; i++) { - IS31FL3731_write_register(addr, i, 0x00); + is31fl3731_write_register(addr, i, 0x00); } // set PWM on all LEDs to 0 for (int i = 0x24; i <= 0xB3; i++) { - IS31FL3731_write_register(addr, i, 0x00); + is31fl3731_write_register(addr, i, 0x00); } // select "function register" bank - IS31FL3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); // disable software shutdown - IS31FL3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x01); + is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x01); // select bank 0 and leave it selected. // most usage after initialization is just writing PWM buffers in bank 0 // as there's not much point in double-buffering - IS31FL3731_write_register(addr, ISSI_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0); } -void IS31FL3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); // Subtract 0x24 to get the second index of g_pwm_buffer + if (g_pwm_buffer[led.driver][led.r - 0x24] == red && g_pwm_buffer[led.driver][led.g - 0x24] == green && g_pwm_buffer[led.driver][led.b - 0x24] == blue) { + return; + } g_pwm_buffer[led.driver][led.r - 0x24] = red; g_pwm_buffer[led.driver][led.g - 0x24] = green; g_pwm_buffer[led.driver][led.b - 0x24] = blue; @@ -191,13 +194,13 @@ void IS31FL3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } } -void IS31FL3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - IS31FL3731_set_color(i, red, green, blue); + is31fl3731_set_color(i, red, green, blue); } } -void IS31FL3731_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { +void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { is31_led led; memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); @@ -227,17 +230,17 @@ void IS31FL3731_set_led_control_register(uint8_t index, bool red, bool green, bo g_led_control_registers_update_required[led.driver] = true; } -void IS31FL3731_update_pwm_buffers(uint8_t addr, uint8_t index) { +void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - IS31FL3731_write_pwm_buffer(addr, g_pwm_buffer[index]); + is31fl3731_write_pwm_buffer(addr, g_pwm_buffer[index]); } g_pwm_buffer_update_required[index] = false; } -void IS31FL3731_update_led_control_registers(uint8_t addr, uint8_t index) { +void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { for (int i = 0; i < 18; i++) { - IS31FL3731_write_register(addr, i, g_led_control_registers[index][i]); + is31fl3731_write_register(addr, i, g_led_control_registers[index][i]); } } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index 4c79cb81464..bdf03de1ee1 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -31,21 +31,21 @@ typedef struct is31_led { extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; -void IS31FL3731_init(uint8_t addr); -void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); -void IS31FL3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void is31fl3731_init(uint8_t addr); +void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); +void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void IS31FL3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3731_set_led_control_register(uint8_t index, bool red, bool green, bool blue); +void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bool blue); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void IS31FL3731_update_pwm_buffers(uint8_t addr, uint8_t index); -void IS31FL3731_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index); #define C1_1 0x24 #define C1_2 0x25 diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index 21138c6e05c..f9a0a271a89 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -81,7 +81,7 @@ uint8_t g_twi_transfer_buffer[20]; // The control buffers match the PG0 LED On/Off registers. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in IS31FL3733_write_pwm_buffer() but it's +// buffers and the transfers in is31fl3733_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[LED_DRIVER_COUNT][192]; bool g_pwm_buffer_update_required[LED_DRIVER_COUNT] = {false}; @@ -98,7 +98,7 @@ uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}, {0}, {0}, {0}}; #endif bool g_led_control_registers_update_required[LED_DRIVER_COUNT] = {false}; -bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -117,7 +117,7 @@ bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { return true; } -bool IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // Assumes PG1 is already selected. // If any of the transactions fails function returns false. // Transmit PWM registers in 12 transfers of 16 bytes. @@ -146,7 +146,7 @@ bool IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } -void IS31FL3733_init(uint8_t addr, uint8_t sync) { +void is31fl3733_init(uint8_t addr, uint8_t sync) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. // Set up the mode and other settings, clear the PWM registers, @@ -154,61 +154,66 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) { // Sync is passed so set it according to the datasheet. // Unlock the command register. - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG0 - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { - IS31FL3733_write_register(addr, i, 0x00); + is31fl3733_write_register(addr, i, 0x00); } // Unlock the command register. - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG1 - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { - IS31FL3733_write_register(addr, i, 0x00); + is31fl3733_write_register(addr, i, 0x00); } // Unlock the command register. - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG3 - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - IS31FL3733_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); + is31fl3733_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); // Set de-ghost pull-down resistors (CSx) - IS31FL3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); + is31fl3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); // Set global current to maximum. - IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); // Disable software shutdown. - IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); } -void IS31FL3733_set_value(int index, uint8_t value) { +void is31fl3733_set_value(int index, uint8_t value) { + is31_led led; if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - is31_led led = g_is31_leds[index]; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.v] == value) { + return; + } g_pwm_buffer[led.driver][led.v] = value; g_pwm_buffer_update_required[led.driver] = true; } } -void IS31FL3733_set_value_all(uint8_t value) { +void is31fl3733_set_value_all(uint8_t value) { for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { - IS31FL3733_set_value(i, value); + is31fl3733_set_value(i, value); } } -void IS31FL3733_set_led_control_register(uint8_t index, bool value) { - is31_led led = g_is31_leds[index]; +void is31fl3733_set_led_control_register(uint8_t index, bool value) { + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); uint8_t control_register = led.v / 8; uint8_t bit_value = led.v % 8; @@ -222,28 +227,28 @@ void IS31FL3733_set_led_control_register(uint8_t index, bool value) { g_led_control_registers_update_required[led.driver] = true; } -void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index) { +void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. - if (!IS31FL3733_write_pwm_buffer(addr, g_pwm_buffer[index])) { + if (!is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index])) { g_led_control_registers_update_required[index] = true; } g_pwm_buffer_update_required[index] = false; } } -void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index) { +void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { - IS31FL3733_write_register(addr, i, g_led_control_registers[index][i]); + is31fl3733_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; } diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index 1571fdd3d58..1458f7ac8dd 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -30,23 +30,23 @@ typedef struct is31_led { uint8_t v; } __attribute__((packed)) is31_led; -extern const is31_led __flash g_is31_leds[LED_MATRIX_LED_COUNT]; +extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; -void IS31FL3733_init(uint8_t addr, uint8_t sync); -bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void is31fl3733_init(uint8_t addr, uint8_t sync); +bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void IS31FL3733_set_value(int index, uint8_t value); -void IS31FL3733_set_value_all(uint8_t value); +void is31fl3733_set_value(int index, uint8_t value); +void is31fl3733_set_value_all(uint8_t value); -void IS31FL3733_set_led_control_register(uint8_t index, bool value); +void is31fl3733_set_led_control_register(uint8_t index, bool value); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index); -void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); #define PUR_0R 0x00 // No PUR resistor #define PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index 379eaa0ae30..ca431838ef5 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -80,7 +80,7 @@ uint8_t g_twi_transfer_buffer[20]; // The control buffers match the PG0 LED On/Off registers. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in IS31FL3733_write_pwm_buffer() but it's +// buffers and the transfers in is31fl3733_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[DRIVER_COUNT][192]; bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; @@ -88,7 +88,7 @@ bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; -bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -107,7 +107,7 @@ bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { return true; } -bool IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // Assumes PG1 is already selected. // If any of the transactions fails function returns false. // Transmit PWM registers in 12 transfers of 16 bytes. @@ -138,7 +138,7 @@ bool IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } -void IS31FL3733_init(uint8_t addr, uint8_t sync) { +void is31fl3733_init(uint8_t addr, uint8_t sync) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. // Set up the mode and other settings, clear the PWM registers, @@ -146,49 +146,52 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) { // Sync is passed so set it according to the datasheet. // Unlock the command register. - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG0 - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { - IS31FL3733_write_register(addr, i, 0x00); + is31fl3733_write_register(addr, i, 0x00); } // Unlock the command register. - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG1 - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { - IS31FL3733_write_register(addr, i, 0x00); + is31fl3733_write_register(addr, i, 0x00); } // Unlock the command register. - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG3 - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - IS31FL3733_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); + is31fl3733_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); // Set de-ghost pull-down resistors (CSx) - IS31FL3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); + is31fl3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); // Set global current to maximum. - IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); // Disable software shutdown. - IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); } -void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } g_pwm_buffer[led.driver][led.r] = red; g_pwm_buffer[led.driver][led.g] = green; g_pwm_buffer[led.driver][led.b] = blue; @@ -196,13 +199,13 @@ void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } } -void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - IS31FL3733_set_color(i, red, green, blue); + is31fl3733_set_color(i, red, green, blue); } } -void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { +void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { is31_led led; memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); @@ -232,28 +235,28 @@ void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bo g_led_control_registers_update_required[led.driver] = true; } -void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index) { +void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. - if (!IS31FL3733_write_pwm_buffer(addr, g_pwm_buffer[index])) { + if (!is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index])) { g_led_control_registers_update_required[index] = true; } } g_pwm_buffer_update_required[index] = false; } -void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index) { +void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { - IS31FL3733_write_register(addr, i, g_led_control_registers[index][i]); + is31fl3733_write_register(addr, i, g_led_control_registers[index][i]); } } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index 29441846acc..f37a58de0f9 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -32,21 +32,21 @@ typedef struct is31_led { extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; -void IS31FL3733_init(uint8_t addr, uint8_t sync); -bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void is31fl3733_init(uint8_t addr, uint8_t sync); +bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue); +void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index); -void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); #define PUR_0R 0x00 // No PUR resistor #define PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index d6b0881139d..0de8b3bbaef 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -74,7 +74,7 @@ uint8_t g_twi_transfer_buffer[20]; // The control buffers match the PG0 LED On/Off registers. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in IS31FL3736_write_pwm_buffer() but it's +// buffers and the transfers in is31fl3736_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[DRIVER_COUNT][192]; bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; @@ -82,7 +82,7 @@ bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; uint8_t g_led_control_registers[DRIVER_COUNT][24] = {{0}, {0}}; bool g_led_control_registers_update_required = false; -void IS31FL3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -95,7 +95,7 @@ void IS31FL3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { #endif } -void IS31FL3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // assumes PG1 is already selected // transmit PWM registers in 12 transfers of 16 bytes @@ -119,56 +119,59 @@ void IS31FL3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } -void IS31FL3736_init(uint8_t addr) { +void is31fl3736_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. // Set up the mode and other settings, clear the PWM registers, // then disable software shutdown. // Unlock the command register. - IS31FL3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG0 - IS31FL3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { - IS31FL3736_write_register(addr, i, 0x00); + is31fl3736_write_register(addr, i, 0x00); } // Unlock the command register. - IS31FL3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG1 - IS31FL3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { - IS31FL3736_write_register(addr, i, 0x00); + is31fl3736_write_register(addr, i, 0x00); } // Unlock the command register. - IS31FL3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG3 - IS31FL3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - IS31FL3736_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); + is31fl3736_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); // Set de-ghost pull-down resistors (CSx) - IS31FL3736_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); + is31fl3736_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); // Set global current to maximum. - IS31FL3736_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3736_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); // Disable software shutdown. - IS31FL3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); + is31fl3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); } -void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } g_pwm_buffer[led.driver][led.r] = red; g_pwm_buffer[led.driver][led.g] = green; g_pwm_buffer[led.driver][led.b] = blue; @@ -176,13 +179,13 @@ void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } } -void IS31FL3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - IS31FL3736_set_color(i, red, green, blue); + is31fl3736_set_color(i, red, green, blue); } } -void IS31FL3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { +void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { is31_led led; memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); @@ -226,7 +229,7 @@ void IS31FL3736_set_led_control_register(uint8_t index, bool red, bool green, bo g_led_control_registers_update_required = true; } -void IS31FL3736_mono_set_brightness(int index, uint8_t value) { +void is31fl3736_mono_set_brightness(int index, uint8_t value) { if (index >= 0 && index < 96) { // Index in range 0..95 -> A1..A8, B1..B8, etc. // Map index 0..95 to registers 0x00..0xBE (interleaved) @@ -236,13 +239,13 @@ void IS31FL3736_mono_set_brightness(int index, uint8_t value) { } } -void IS31FL3736_mono_set_brightness_all(uint8_t value) { +void is31fl3736_mono_set_brightness_all(uint8_t value) { for (int i = 0; i < 96; i++) { - IS31FL3736_mono_set_brightness(i, value); + is31fl3736_mono_set_brightness(i, value); } } -void IS31FL3736_mono_set_led_control_register(uint8_t index, bool enabled) { +void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled) { // Index in range 0..95 -> A1..A8, B1..B8, etc. // Map index 0..95 to registers 0x00..0xBE (interleaved) @@ -260,25 +263,25 @@ void IS31FL3736_mono_set_led_control_register(uint8_t index, bool enabled) { g_led_control_registers_update_required = true; } -void IS31FL3736_update_pwm_buffers(uint8_t addr, uint8_t index) { +void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1 - IS31FL3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); - IS31FL3736_write_pwm_buffer(addr, g_pwm_buffer[index]); + is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]); } g_pwm_buffer_update_required[index] = false; } -void IS31FL3736_update_led_control_registers(uint8_t addr1, uint8_t addr2) { +void is31fl3736_update_led_control_registers(uint8_t addr1, uint8_t addr2) { if (g_led_control_registers_update_required) { // Firstly we need to unlock the command register and select PG0 - IS31FL3736_write_register(addr1, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3736_write_register(addr1, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3736_write_register(addr1, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr1, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { - IS31FL3736_write_register(addr1, i, g_led_control_registers[0][i]); - // IS31FL3736_write_register(addr2, i, g_led_control_registers[1][i]); + is31fl3736_write_register(addr1, i, g_led_control_registers[0][i]); + // is31fl3736_write_register(addr2, i, g_led_control_registers[1][i]); } g_led_control_registers_update_required = false; } diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index 332b2035f30..32bdef4a808 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -42,25 +42,25 @@ typedef struct is31_led { extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; -void IS31FL3736_init(uint8_t addr); -void IS31FL3736_write_register(uint8_t addr, uint8_t reg, uint8_t data); -void IS31FL3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void is31fl3736_init(uint8_t addr); +void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data); +void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue); +void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue); -void IS31FL3736_mono_set_brightness(int index, uint8_t value); -void IS31FL3736_mono_set_brightness_all(uint8_t value); -void IS31FL3736_mono_set_led_control_register(uint8_t index, bool enabled); +void is31fl3736_mono_set_brightness(int index, uint8_t value); +void is31fl3736_mono_set_brightness_all(uint8_t value); +void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void IS31FL3736_update_pwm_buffers(uint8_t addr, uint8_t index); -void IS31FL3736_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); #define PUR_0R 0x00 // No PUR resistor #define PUR_05KR 0x01 // 0.5k Ohm resistor diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index b6ed6b26295..947c0a1d1ac 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -80,7 +80,7 @@ uint8_t g_twi_transfer_buffer[20]; // The control buffers match the PG0 LED On/Off registers. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in IS31FL3737_write_pwm_buffer() but it's +// buffers and the transfers in is31fl3737_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[DRIVER_COUNT][192]; @@ -89,7 +89,7 @@ bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; -void IS31FL3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -102,7 +102,7 @@ void IS31FL3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { #endif } -void IS31FL3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // assumes PG1 is already selected // transmit PWM registers in 12 transfers of 16 bytes @@ -126,56 +126,59 @@ void IS31FL3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } -void IS31FL3737_init(uint8_t addr) { +void is31fl3737_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. // Set up the mode and other settings, clear the PWM registers, // then disable software shutdown. // Unlock the command register. - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG0 - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { - IS31FL3737_write_register(addr, i, 0x00); + is31fl3737_write_register(addr, i, 0x00); } // Unlock the command register. - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG1 - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { - IS31FL3737_write_register(addr, i, 0x00); + is31fl3737_write_register(addr, i, 0x00); } // Unlock the command register. - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG3 - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - IS31FL3737_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); + is31fl3737_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); // Set de-ghost pull-down resistors (CSx) - IS31FL3737_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); + is31fl3737_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); // Set global current to maximum. - IS31FL3737_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3737_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); // Disable software shutdown. - IS31FL3737_write_register(addr, ISSI_REG_CONFIGURATION, ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3737_write_register(addr, ISSI_REG_CONFIGURATION, ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); } -void IS31FL3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } g_pwm_buffer[led.driver][led.r] = red; g_pwm_buffer[led.driver][led.g] = green; g_pwm_buffer[led.driver][led.b] = blue; @@ -183,13 +186,13 @@ void IS31FL3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } } -void IS31FL3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - IS31FL3737_set_color(i, red, green, blue); + is31fl3737_set_color(i, red, green, blue); } } -void IS31FL3737_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { +void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { is31_led led; memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); @@ -219,24 +222,24 @@ void IS31FL3737_set_led_control_register(uint8_t index, bool red, bool green, bo g_led_control_registers_update_required[led.driver] = true; } -void IS31FL3737_update_pwm_buffers(uint8_t addr, uint8_t index) { +void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1 - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); - IS31FL3737_write_pwm_buffer(addr, g_pwm_buffer[index]); + is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]); } g_pwm_buffer_update_required[index] = false; } -void IS31FL3737_update_led_control_registers(uint8_t addr, uint8_t index) { +void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { - IS31FL3737_write_register(addr, i, g_led_control_registers[index][i]); + is31fl3737_write_register(addr, i, g_led_control_registers[index][i]); } } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index ca9a917ee2b..e7fc97872c5 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -33,21 +33,21 @@ typedef struct is31_led { extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; -void IS31FL3737_init(uint8_t addr); -void IS31FL3737_write_register(uint8_t addr, uint8_t reg, uint8_t data); -void IS31FL3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void is31fl3737_init(uint8_t addr); +void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data); +void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void IS31FL3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3737_set_led_control_register(uint8_t index, bool red, bool green, bool blue); +void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bool blue); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void IS31FL3737_update_pwm_buffers(uint8_t addr, uint8_t index); -void IS31FL3737_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); #define PUR_0R 0x00 // No PUR resistor #define PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 2f43473fc15..70671c2a40f 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -82,7 +82,7 @@ uint8_t g_twi_transfer_buffer[20] = {0xFF}; // The scaling buffers match the PG2 and PG3 LED On/Off registers. // Storing them like this is optimal for I2C transfers to the registers. // We could optimize this and take out the unused registers from these -// buffers and the transfers in IS31FL3741_write_pwm_buffer() but it's +// buffers and the transfers in is31fl3741_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[DRIVER_COUNT][ISSI_MAX_LEDS]; bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; @@ -90,7 +90,7 @@ bool g_scaling_registers_update_required[DRIVER_COUNT] = {false}; uint8_t g_scaling_registers[DRIVER_COUNT][ISSI_MAX_LEDS]; -void IS31FL3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { +void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; @@ -103,14 +103,14 @@ void IS31FL3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { #endif } -bool IS31FL3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { +bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // Assume PG0 is already selected for (int i = 0; i < 342; i += 18) { if (i == 180) { // unlock the command register and select PG1 - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM1); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM1); } g_twi_transfer_buffer[0] = i % 180; @@ -148,7 +148,7 @@ bool IS31FL3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } -void IS31FL3741_init(uint8_t addr) { +void is31fl3741_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. // Set up the mode and other settings, clear the PWM registers, @@ -156,44 +156,47 @@ void IS31FL3741_init(uint8_t addr) { // Unlock the command register. // Unlock the command register. - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG4 - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); // Set to Normal operation - IS31FL3741_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); + is31fl3741_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); // Set Golbal Current Control Register - IS31FL3741_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3741_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); // Set Pull up & Down for SWx CSy - IS31FL3741_write_register(addr, ISSI_REG_PULLDOWNUP, ((ISSI_CSPULLUP << 4) | ISSI_SWPULLUP)); + is31fl3741_write_register(addr, ISSI_REG_PULLDOWNUP, ((ISSI_CSPULLUP << 4) | ISSI_SWPULLUP)); - // IS31FL3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); + // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); // Wait 10ms to ensure the device has woken up. wait_ms(10); } -void IS31FL3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } + g_pwm_buffer_update_required[led.driver] = true; g_pwm_buffer[led.driver][led.r] = red; g_pwm_buffer[led.driver][led.g] = green; g_pwm_buffer[led.driver][led.b] = blue; - g_pwm_buffer_update_required[led.driver] = true; } } -void IS31FL3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - IS31FL3741_set_color(i, red, green, blue); + is31fl3741_set_color(i, red, green, blue); } } -void IS31FL3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { +void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { is31_led led; memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); @@ -218,19 +221,19 @@ void IS31FL3741_set_led_control_register(uint8_t index, bool red, bool green, bo g_scaling_registers_update_required[led.driver] = true; } -void IS31FL3741_update_pwm_buffers(uint8_t addr, uint8_t index) { +void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // unlock the command register and select PG2 - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM0); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM0); - IS31FL3741_write_pwm_buffer(addr, g_pwm_buffer[index]); + is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]); } g_pwm_buffer_update_required[index] = false; } -void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { g_pwm_buffer[pled->driver][pled->r] = red; g_pwm_buffer[pled->driver][pled->g] = green; g_pwm_buffer[pled->driver][pled->b] = blue; @@ -238,31 +241,31 @@ void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, g_pwm_buffer_update_required[pled->driver] = true; } -void IS31FL3741_update_led_control_registers(uint8_t addr, uint8_t index) { +void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_scaling_registers_update_required[index]) { // unlock the command register and select PG2 - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_0); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_0); // CS1_SW1 to CS30_SW6 are on PG2 for (int i = CS1_SW1; i <= CS30_SW6; ++i) { - IS31FL3741_write_register(addr, i, g_scaling_registers[index][i]); + is31fl3741_write_register(addr, i, g_scaling_registers[index][i]); } // unlock the command register and select PG3 - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_1); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_1); // CS1_SW7 to CS39_SW9 are on PG3 for (int i = CS1_SW7; i <= CS39_SW9; ++i) { - IS31FL3741_write_register(addr, i - CS1_SW7, g_scaling_registers[index][i]); + is31fl3741_write_register(addr, i - CS1_SW7, g_scaling_registers[index][i]); } g_scaling_registers_update_required[index] = false; } } -void IS31FL3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { g_scaling_registers[pled->driver][pled->r] = red; g_scaling_registers[pled->driver][pled->g] = green; g_scaling_registers[pled->driver][pled->b] = blue; diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index b0089ea5bab..4ae84dc3c65 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -32,24 +32,24 @@ typedef struct is31_led { extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; -void IS31FL3741_init(uint8_t addr); -void IS31FL3741_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool IS31FL3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); +void is31fl3741_init(uint8_t addr); +void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -void IS31FL3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue); +void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void IS31FL3741_update_pwm_buffers(uint8_t addr, uint8_t index); -void IS31FL3741_update_led_control_registers(uint8_t addr, uint8_t index); -void IS31FL3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); #define PUR_0R 0x00 // No PUR resistor #define PUR_05KR 0x01 // 0.5k Ohm resistor diff --git a/drivers/led/issi/is31flcommon.c b/drivers/led/issi/is31flcommon.c index 106890a8bf0..4b78947ada3 100644 --- a/drivers/led/issi/is31flcommon.c +++ b/drivers/led/issi/is31flcommon.c @@ -133,19 +133,28 @@ void IS31FL_common_update_pwm_register(uint8_t addr, uint8_t index) { #ifdef ISSI_MANUAL_SCALING void IS31FL_set_manual_scaling_buffer(void) { + is31_led led; + is31_led scale; for (int i = 0; i < ISSI_MANUAL_SCALING; i++) { - is31_led scale = g_is31_scaling[i]; + memcpy_P(&scale, (&g_is31_scaling[i]), sizeof(scale)); + # ifdef RGB_MATRIX_ENABLE if (scale.driver >= 0 && scale.driver < RGB_MATRIX_LED_COUNT) { - is31_led led = g_is31_leds[scale.driver]; + memcpy_P(&led, (&g_is31_leds[scale.driver]), sizeof(led)); + if (g_scaling_buffer[led.driver][led.r] = scale.r && g_scaling_buffer[led.driver][led.g] = scale.g && g_scaling_buffer[led.driver][led.b] = scale.b) { + return; + } g_scaling_buffer[led.driver][led.r] = scale.r; g_scaling_buffer[led.driver][led.g] = scale.g; g_scaling_buffer[led.driver][led.b] = scale.b; # elif defined(LED_MATRIX_ENABLE) if (scale.driver >= 0 && scale.driver < LED_MATRIX_LED_COUNT) { - is31_led led = g_is31_leds[scale.driver]; + memcpy_P(&led, (&g_is31_leds[scale.driver]), sizeof(led)); + if (g_scaling_buffer[led.driver][led.v] == scale.v) { + return; + } g_scaling_buffer[led.driver][led.v] = scale.v; # endif g_scaling_buffer_update_required[led.driver] = true; @@ -169,7 +178,8 @@ void IS31FL_common_update_scaling_register(uint8_t addr, uint8_t index) { // Colour is set by adjusting PWM register void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - is31_led led = g_is31_leds[index]; + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); g_pwm_buffer[led.driver][led.r] = red; g_pwm_buffer[led.driver][led.g] = green; @@ -186,7 +196,8 @@ void IS31FL_RGB_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { // Setup Scaling register that decides the peak current of each LED void IS31FL_RGB_set_scaling_buffer(uint8_t index, bool red, bool green, bool blue) { - is31_led led = g_is31_leds[index]; + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); if (red) { g_scaling_buffer[led.driver][led.r] = ISSI_SCAL_RED; } else { @@ -208,7 +219,8 @@ void IS31FL_RGB_set_scaling_buffer(uint8_t index, bool red, bool green, bool blu #elif defined(LED_MATRIX_ENABLE) // LED Matrix Specific scripts void IS31FL_simple_set_scaling_buffer(uint8_t index, bool value) { - is31_led led = g_is31_leds[index]; + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); if (value) { g_scaling_buffer[led.driver][led.v] = ISSI_SCAL_LED; } else { @@ -219,7 +231,9 @@ void IS31FL_simple_set_scaling_buffer(uint8_t index, bool value) { void IS31FL_simple_set_brightness(int index, uint8_t value) { if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - is31_led led = g_is31_leds[index]; + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + g_pwm_buffer[led.driver][led.v] = value; g_pwm_buffer_update_required[led.driver] = true; } diff --git a/drivers/led/issi/is31flcommon.h b/drivers/led/issi/is31flcommon.h index 18432ffc312..4b3add558b6 100644 --- a/drivers/led/issi/is31flcommon.h +++ b/drivers/led/issi/is31flcommon.h @@ -43,7 +43,7 @@ typedef struct is31_led { uint8_t b; } __attribute__((packed)) is31_led; -extern const is31_led __flash g_is31_leds[RGB_MATRIX_LED_COUNT]; +extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; #elif defined(LED_MATRIX_ENABLE) typedef struct is31_led { @@ -51,11 +51,11 @@ typedef struct is31_led { uint8_t v; } __attribute__((packed)) is31_led; -extern const is31_led __flash g_is31_leds[LED_MATRIX_LED_COUNT]; +extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; #endif #ifdef ISSI_MANUAL_SCALING -extern const is31_led __flash g_is31_scaling[]; +extern const is31_led PROGMEM g_is31_scaling[]; void IS31FL_set_manual_scaling_buffer(void); #endif diff --git a/drivers/painter/ili9xxx/qp_ili9xxx_opcodes.h b/drivers/painter/ili9xxx/qp_ili9xxx_opcodes.h index 47bb7036489..f57e638e034 100644 --- a/drivers/painter/ili9xxx/qp_ili9xxx_opcodes.h +++ b/drivers/painter/ili9xxx/qp_ili9xxx_opcodes.h @@ -19,8 +19,8 @@ #define ILI9XXX_CMD_SLEEP_OFF 0x11 // Exist sleep mode #define ILI9XXX_CMD_PARTIAL_ON 0x12 // Enter partial mode #define ILI9XXX_CMD_PARTIAL_OFF 0x13 // Exit partial mode -#define ILI9XXX_CMD_INVERT_ON 0x20 // Enter inverted mode -#define ILI9XXX_CMD_INVERT_OFF 0x21 // Exit inverted mode +#define ILI9XXX_CMD_INVERT_OFF 0x20 // Exit inverted mode +#define ILI9XXX_CMD_INVERT_ON 0x21 // Enter inverted mode #define ILI9XXX_SET_GAMMA 0x26 // Set gamma params #define ILI9XXX_CMD_DISPLAY_OFF 0x28 // Disable display #define ILI9XXX_CMD_DISPLAY_ON 0x29 // Enable display diff --git a/drivers/ps2/ps2_mouse.c b/drivers/ps2/ps2_mouse.c index d6911d66f21..ae594c94bc5 100644 --- a/drivers/ps2/ps2_mouse.c +++ b/drivers/ps2/ps2_mouse.c @@ -191,13 +191,12 @@ static inline void ps2_mouse_convert_report_to_hid(report_mouse_t *mouse_report) #ifdef PS2_MOUSE_INVERT_BUTTONS // swap left & right buttons - uint8_t needs_left = mouse_report->buttons & PS2_MOUSE_BTN_RIGHT; - uint8_t needs_right = mouse_report->buttons & PS2_MOUSE_BTN_LEFT; - mouse_report->buttons = (mouse_report->buttons & ~(PS2_MOUSE_BTN_MASK)) | (needs_left ? PS2_MOUSE_BTN_LEFT : 0) | (needs_right ? PS2_MOUSE_BTN_RIGHT : 0); -#else + bool needs_left = mouse_report->buttons & (1 << PS2_MOUSE_BTN_RIGHT); + bool needs_right = mouse_report->buttons & (1 << PS2_MOUSE_BTN_LEFT); + mouse_report->buttons = (mouse_report->buttons & ~((1 << PS2_MOUSE_BTN_LEFT) | (1 << PS2_MOUSE_BTN_RIGHT))) | (needs_left << PS2_MOUSE_BTN_LEFT) | (needs_right << PS2_MOUSE_BTN_RIGHT); +#endif // remove sign and overflow flags mouse_report->buttons &= PS2_MOUSE_BTN_MASK; -#endif #ifdef PS2_MOUSE_INVERT_X mouse_report->x = -mouse_report->x; diff --git a/drivers/sensors/pmw33xx_common.h b/drivers/sensors/pmw33xx_common.h index 88523b8420a..b30ee3d5966 100644 --- a/drivers/sensors/pmw33xx_common.h +++ b/drivers/sensors/pmw33xx_common.h @@ -10,7 +10,7 @@ #pragma once -#include "quantum.h" //to get is_keyboard_left +#include "keyboard.h" #include #include "spi_master.h" #include "util.h" diff --git a/keyboards/0_sixty/underglow/config.h b/keyboards/0_sixty/underglow/config.h index 6efe6e18cdb..0d5edf494ea 100644 --- a/keyboards/0_sixty/underglow/config.h +++ b/keyboards/0_sixty/underglow/config.h @@ -16,21 +16,6 @@ #pragma once - -/* underglow */ -#define RGBLED_NUM 24 -#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 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/0_sixty/underglow/info.json b/keyboards/0_sixty/underglow/info.json index 24914915616..6227591f445 100644 --- a/keyboards/0_sixty/underglow/info.json +++ b/keyboards/0_sixty/underglow/info.json @@ -10,6 +10,19 @@ "pin": "B6" }, "rgblight": { - "max_brightness": 185 + "led_count": 24, + "max_brightness": 185, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } } } diff --git a/keyboards/0xcb/1337/config.h b/keyboards/0xcb/1337/config.h index cf4ea821bf4..9527d6abae2 100644 --- a/keyboards/0xcb/1337/config.h +++ b/keyboards/0xcb/1337/config.h @@ -18,23 +18,6 @@ along with this program. If not, see . // clang-format off -#define TAP_CODE_DELAY 10 - - #define RGBLED_NUM 4 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE /* default setup after eeprom reset */ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_EFFECT_BREATHING + 2 #define RGBLIGHT_DEFAULT_HUE 152 diff --git a/keyboards/0xcb/1337/info.json b/keyboards/0xcb/1337/info.json index a0b04ba7df5..30b806aedc7 100644 --- a/keyboards/0xcb/1337/info.json +++ b/keyboards/0xcb/1337/info.json @@ -18,9 +18,30 @@ {"pin_a": "F6", "pin_b": "F5"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "qmk_lufa_bootloader": { "led": "B0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/0xcb/1337/rules.mk b/keyboards/0xcb/1337/rules.mk index 77dd67f53f8..60cbfd4df60 100644 --- a/keyboards/0xcb/1337/rules.mk +++ b/keyboards/0xcb/1337/rules.mk @@ -14,4 +14,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes LTO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/0xcb/splaytoraid/info.json b/keyboards/0xcb/splaytoraid/info.json index 5b7334ff9d2..c218d1ff781 100644 --- a/keyboards/0xcb/splaytoraid/info.json +++ b/keyboards/0xcb/splaytoraid/info.json @@ -36,7 +36,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 2], "x": 0, "y": 0}, {"flags": 4, "matrix": [1, 0], "x": 20, "y": 0}, diff --git a/keyboards/0xcb/static/config.h b/keyboards/0xcb/static/config.h index 10b1f88216f..179c84088bb 100644 --- a/keyboards/0xcb/static/config.h +++ b/keyboards/0xcb/static/config.h @@ -16,8 +16,6 @@ along with this program. If not, see . */ #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/0xcb/static/info.json b/keyboards/0xcb/static/info.json index 7a678a01942..97f5e53cadb 100644 --- a/keyboards/0xcb/static/info.json +++ b/keyboards/0xcb/static/info.json @@ -18,6 +18,9 @@ {"pin_a": "D0", "pin_b": "D1"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega328p", "bootloader": "usbasploader", "layout_aliases": { diff --git a/keyboards/0xcb/static/rules.mk b/keyboards/0xcb/static/rules.mk index 24ff2f2cfd1..fe8dabeab7e 100644 --- a/keyboards/0xcb/static/rules.mk +++ b/keyboards/0xcb/static/rules.mk @@ -14,4 +14,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes LTO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/0xcb/tutelpad/config.h b/keyboards/0xcb/tutelpad/config.h index f64205d126e..6b9c1274a81 100644 --- a/keyboards/0xcb/tutelpad/config.h +++ b/keyboards/0xcb/tutelpad/config.h @@ -16,24 +16,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 4 // Number of LEDs connected - -#define RGBLIGHT_HUE_STEP 10 // The number of steps to cycle through the hue by -#define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by -#define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by -#define RGBLIGHT_SLEEP // RGB will switch off when host goes to sleep - -#define RGBLIGHT_EFFECT_BREATHING // Enable all additional RGB animation modes -#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 OLED_TIMEOUT 20000 // Turns off OLED after said amount of milliseconds #define OLED_BRIGHTNESS 128 #define OLED_DISPLAY_128X64 diff --git a/keyboards/0xcb/tutelpad/info.json b/keyboards/0xcb/tutelpad/info.json index 79fdf0af458..e4c7fce98ab 100644 --- a/keyboards/0xcb/tutelpad/info.json +++ b/keyboards/0xcb/tutelpad/info.json @@ -11,6 +11,23 @@ "bootmagic": { "matrix": [1, 0] }, + "rgblight": { + "hue_steps": 10, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/0xcb/tutelpad/rules.mk b/keyboards/0xcb/tutelpad/rules.mk index 9cc3b02a227..f06d31c5f13 100644 --- a/keyboards/0xcb/tutelpad/rules.mk +++ b/keyboards/0xcb/tutelpad/rules.mk @@ -10,6 +10,4 @@ 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 - OLED_ENABLE = yes -OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/10bleoledhub/config.h b/keyboards/10bleoledhub/config.h index ae376dfa531..e3b72117929 100644 --- a/keyboards/10bleoledhub/config.h +++ b/keyboards/10bleoledhub/config.h @@ -16,20 +16,4 @@ along with this program. If not, see .*/ #pragma once -#define SSD1306OLED - -#define RGBLED_NUM 4 - -#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 OLED_FONT_H "./lib/glcdfont.c" diff --git a/keyboards/10bleoledhub/info.json b/keyboards/10bleoledhub/info.json index 9b536e0677f..17ebcaf4587 100644 --- a/keyboards/10bleoledhub/info.json +++ b/keyboards/10bleoledhub/info.json @@ -8,6 +8,24 @@ "pid": "0x7C99", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/10bleoledhub/rules.mk b/keyboards/10bleoledhub/rules.mk index e30794f68e6..12bfe122d62 100644 --- a/keyboards/10bleoledhub/rules.mk +++ b/keyboards/10bleoledhub/rules.mk @@ -14,7 +14,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes diff --git a/keyboards/1k/config.h b/keyboards/1k/config.h index afdc6d4baab..0d0cd3712a7 100644 --- a/keyboards/1k/config.h +++ b/keyboards/1k/config.h @@ -15,8 +15,6 @@ */ #pragma once -#define RGBLED_NUM 1 - // Save as much space as we can... #define LAYER_STATE_8BIT #define NO_ACTION_LAYER diff --git a/keyboards/1k/info.json b/keyboards/1k/info.json index 090e93b94bd..34f33d50595 100644 --- a/keyboards/1k/info.json +++ b/keyboards/1k/info.json @@ -8,6 +8,9 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 1 + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/1upkeyboards/1up60hse/config.h b/keyboards/1upkeyboards/1up60hse/config.h index bc0d7f0c4bc..d876570c808 100644 --- a/keyboards/1upkeyboards/1up60hse/config.h +++ b/keyboards/1upkeyboards/1up60hse/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/1upkeyboards/1up60hse/info.json b/keyboards/1upkeyboards/1up60hse/info.json index 475a9351237..ffc2d4d7657 100644 --- a/keyboards/1upkeyboards/1up60hse/info.json +++ b/keyboards/1upkeyboards/1up60hse/info.json @@ -18,6 +18,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/1upkeyboards/1up60hte/config.h b/keyboards/1upkeyboards/1up60hte/config.h index aeda8afd338..eddf290b4c3 100644 --- a/keyboards/1upkeyboards/1up60hte/config.h +++ b/keyboards/1upkeyboards/1up60hte/config.h @@ -23,18 +23,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/1upkeyboards/1up60hte/info.json b/keyboards/1upkeyboards/1up60hte/info.json index 712999df325..99275bf251b 100644 --- a/keyboards/1upkeyboards/1up60hte/info.json +++ b/keyboards/1upkeyboards/1up60hte/info.json @@ -20,6 +20,23 @@ "caps_lock": "B6", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/1upkeyboards/1up60rgb/config.h b/keyboards/1upkeyboards/1up60rgb/config.h index 8bbb646e40d..5f360813239 100644 --- a/keyboards/1upkeyboards/1up60rgb/config.h +++ b/keyboards/1upkeyboards/1up60rgb/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/1upkeyboards/1up60rgb/info.json b/keyboards/1upkeyboards/1up60rgb/info.json index ee6914a4e59..0d288916cc4 100644 --- a/keyboards/1upkeyboards/1up60rgb/info.json +++ b/keyboards/1upkeyboards/1up60rgb/info.json @@ -17,6 +17,23 @@ "pin": "B6", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/default/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/default/keymap.c index 15b7c9faa71..5792f51ca82 100644 --- a/keyboards/1upkeyboards/1up60rgb/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1up60rgb/keymaps/default/keymap.c @@ -18,12 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(B2); writePinLow(B2); } else { setPinInput(B2); writePinLow(B2); } + return false; } diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/iso/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/iso/keymap.c index fd6087a2388..20783c22cba 100644 --- a/keyboards/1upkeyboards/1up60rgb/keymaps/iso/keymap.c +++ b/keyboards/1upkeyboards/1up60rgb/keymaps/iso/keymap.c @@ -18,12 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(B2); writePinLow(B2); } else { setPinInput(B2); writePinLow(B2); } + return false; } diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/raffle/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/raffle/keymap.c index d0c47c526da..453bf8c9617 100644 --- a/keyboards/1upkeyboards/1up60rgb/keymaps/raffle/keymap.c +++ b/keyboards/1upkeyboards/1up60rgb/keymaps/raffle/keymap.c @@ -71,42 +71,12 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _raise, _rgb, _adjust); } - -// scan matrix -void matrix_scan_user(void) { -} - // support for standard mod state keys (caps lock, scroll lock, etc.) -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { DDRB |= (1 << 2); PORTB &= ~(1 << 2); } else { DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - + return false; } diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c index a45947de54b..5cc92278859 100644 --- a/keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c +++ b/keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c @@ -18,12 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(B2); writePinLow(B2); } else { setPinInput(B2); writePinLow(B2); } + return false; } diff --git a/keyboards/1upkeyboards/1upocarina/config.h b/keyboards/1upkeyboards/1upocarina/config.h new file mode 100644 index 00000000000..4431ef6bdbc --- /dev/null +++ b/keyboards/1upkeyboards/1upocarina/config.h @@ -0,0 +1,70 @@ +/* Copyright 2023 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 + +#define RGB_MATRIX_LED_COUNT 32 +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses + +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when 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 diff --git a/keyboards/1upkeyboards/1upocarina/info.json b/keyboards/1upkeyboards/1upocarina/info.json new file mode 100644 index 00000000000..fccf9d88998 --- /dev/null +++ b/keyboards/1upkeyboards/1upocarina/info.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "1upkeyboards", + "keyboard_name": "1upocarina", + "maintainer": "ziptyze", + "processor": "RP2040", + "bootloader": "rp2040", + "board": "GENERIC_RP_RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x5607", + "vid": "0x6F75" + }, + "dynamic_keymap": { + "layer_count": 10 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true + }, + "encoder": { + "enabled": true, + "rotary": [ + { + "pin_a": "GP25", "pin_b": "GP26" + } + ] + }, + "matrix_pins": { + "direct": [ + ["GP28", "GP29", "GP27", "GP1", "GP2"] + ] + }, + "ws2812": { + "pin": "GP24" + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 23, "y": 26 }, + { "flags": 4, "matrix": [0, 1], "x": 62, "y": 26 }, + { "flags": 4, "matrix": [0, 2], "x": 112, "y": 34 }, + { "flags": 4, "matrix": [0, 3], "x": 161, "y": 26 }, + { "flags": 4, "matrix": [0, 4], "x": 200, "y": 26 }, + + { "flags": 2, "x": 133, "y": 3 }, + { "flags": 2, "x": 154, "y": 3 }, + { "flags": 2, "x": 174, "y": 3 }, + { "flags": 2, "x": 194, "y": 3 }, + { "flags": 2, "x": 218, "y": 5 }, + + { "flags": 2, "x": 221, "y": 19 }, + { "flags": 2, "x": 221, "y": 31 }, + { "flags": 2, "x": 221, "y": 44 }, + { "flags": 2, "x": 217, "y": 58 }, + { "flags": 2, "x": 195, "y": 61 }, + + { "flags": 2, "x": 174, "y": 61 }, + { "flags": 2, "x": 154, "y": 61 }, + { "flags": 2, "x": 133, "y": 61 }, + { "flags": 2, "x": 112, "y": 61 }, + { "flags": 2, "x": 91, "y": 61 }, + + { "flags": 2, "x": 70, "y": 61 }, + { "flags": 2, "x": 49, "y": 61 }, + { "flags": 2, "x": 28, "y": 61 }, + { "flags": 2, "x": 5, "y": 58 }, + { "flags": 2, "x": 2, "y": 44 }, + + { "flags": 2, "x": 2, "y": 31 }, + { "flags": 2, "x": 2, "y": 19 }, + { "flags": 2, "x": 5, "y": 5 }, + { "flags": 2, "x": 28, "y": 3 }, + { "flags": 2, "x": 49, "y": 3 }, + + { "flags": 2, "x": 70, "y": 3 }, + { "flags": 2, "x": 91, "y": 3 } + ] + }, + "layouts": { + "LAYOUT_1x5": { + "layout": [ + { "label": "z", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "x", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "esc", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "c", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "v", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 } + ] + } + } +} diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c new file mode 100644 index 00000000000..86e3f440fee --- /dev/null +++ b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2023 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_1x5( + KC_Z, KC_X, LT(1, KC_ESC), KC_C, KC_V + ), + + [1] = LAYOUT_1x5( + RGB_TOG, RGB_MOD, KC_TRNS, RGB_VAD, RGB_VAI + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} +}; +#endif diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/default/rules.mk b/keyboards/1upkeyboards/1upocarina/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/1upkeyboards/1upocarina/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/via/keymap.c b/keyboards/1upkeyboards/1upocarina/keymaps/via/keymap.c new file mode 100644 index 00000000000..86e3f440fee --- /dev/null +++ b/keyboards/1upkeyboards/1upocarina/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2023 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_1x5( + KC_Z, KC_X, LT(1, KC_ESC), KC_C, KC_V + ), + + [1] = LAYOUT_1x5( + RGB_TOG, RGB_MOD, KC_TRNS, RGB_VAD, RGB_VAI + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} +}; +#endif diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/via/rules.mk b/keyboards/1upkeyboards/1upocarina/keymaps/via/rules.mk new file mode 100644 index 00000000000..bf70b1f3e09 --- /dev/null +++ b/keyboards/1upkeyboards/1upocarina/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/1upocarina/readme.md b/keyboards/1upkeyboards/1upocarina/readme.md new file mode 100644 index 00000000000..280c9f01d6d --- /dev/null +++ b/keyboards/1upkeyboards/1upocarina/readme.md @@ -0,0 +1,22 @@ +# 1upocarina + +This keyboard is the Ocarina from 1upkeyboards. It is a five button keypad designed for osu. There is an option to add an encoder to the center position, and the keypad features in-switch per-key addressable RGB leds, as well as 27 right angle underglow RGB leds for very bright and smooth lighting effects. + +* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/1upocarina:default + +Flashing example for this keyboard: + + make 1upkeyboards/1upocarina: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 +* **Physical reset button**: Hold the button on the back of the PCB and plug in the keyboard diff --git a/keyboards/1upkeyboards/1upocarina/rules.mk b/keyboards/1upkeyboards/1upocarina/rules.mk new file mode 100644 index 00000000000..8e853e0af70 --- /dev/null +++ b/keyboards/1upkeyboards/1upocarina/rules.mk @@ -0,0 +1 @@ +WS2812_DRIVER = vendor \ No newline at end of file diff --git a/keyboards/1upkeyboards/1upsuper16v3/config.h b/keyboards/1upkeyboards/1upsuper16v3/config.h new file mode 100644 index 00000000000..41e1679d488 --- /dev/null +++ b/keyboards/1upkeyboards/1upsuper16v3/config.h @@ -0,0 +1,22 @@ +/* Copyright 2023 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 + +#define RGB_MATRIX_LED_COUNT 48 +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/1upkeyboards/1upsuper16v3/info.json b/keyboards/1upkeyboards/1upsuper16v3/info.json new file mode 100644 index 00000000000..b11654a9424 --- /dev/null +++ b/keyboards/1upkeyboards/1upsuper16v3/info.json @@ -0,0 +1,164 @@ +{ + "manufacturer": "1upkeyboards", + "keyboard_name": "1upsuper16v3", + "maintainer": "ziptyze", + "bootloader": "rp2040", + "dynamic_keymap": { + "layer_count": 10 + }, + "encoder": { + "rotary": [ + {"pin_a": "GP20", "pin_b": "GP21"}, + {"pin_a": "GP25", "pin_b": "GP26"}, + {"pin_a": "GP2", "pin_b": "GP3"}, + {"pin_a": "GP6", "pin_b": "GP7"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true + }, + "matrix_pins": { + "direct": [ + ["GP23", "GP24", "GP4", "GP5"], + ["GP19", "GP27", "GP1", "GP8"], + ["GP18", "GP28", "GP0", "GP9"], + ["GP17", "GP16", "GP15", "GP11"] + ] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"x": 99, "y": 1, "flags": 2}, + {"x": 70, "y": 1, "flags": 2}, + {"x": 42, "y": 1, "flags": 2}, + {"x": 14, "y": 1, "flags": 2}, + {"x": 4, "y": 4, "flags": 2}, + {"x": 4, "y": 12, "flags": 2}, + {"matrix": [0, 0], "x": 28, "y": 8, "flags": 4}, + {"matrix": [0, 1], "x": 84, "y": 8, "flags": 4}, + {"x": 4, "y": 20, "flags": 2}, + {"x": 4, "y": 28, "flags": 2}, + {"matrix": [1, 0], "x": 28, "y": 24, "flags": 4}, + {"matrix": [1, 1], "x": 84, "y": 24, "flags": 4}, + {"x": 4, "y": 36, "flags": 2}, + {"x": 4, "y": 44, "flags": 2}, + {"matrix": [2, 0], "x": 28, "y": 40, "flags": 4}, + {"matrix": [2, 1], "x": 84, "y": 40, "flags": 4}, + {"x": 4, "y": 52, "flags": 2}, + {"x": 4, "y": 60, "flags": 2}, + {"x": 14, "y": 63, "flags": 2}, + {"matrix": [3, 0], "x": 28, "y": 56, "flags": 4}, + {"x": 42, "y": 63, "flags": 2}, + {"x": 70, "y": 63, "flags": 2}, + {"matrix": [3, 1], "x": 84, "y": 56, "flags": 4}, + {"x": 99, "y": 63, "flags": 2}, + {"x": 126, "y": 63, "flags": 2}, + {"matrix": [3, 2], "x": 140, "y": 56, "flags": 4}, + {"x": 154, "y": 63, "flags": 2}, + {"x": 182, "y": 63, "flags": 2}, + {"matrix": [3, 3], "x": 196, "y": 56, "flags": 4}, + {"x": 210, "y": 63, "flags": 2}, + {"x": 220, "y": 60, "flags": 2}, + {"x": 220, "y": 52, "flags": 2}, + {"x": 220, "y": 44, "flags": 2}, + {"matrix": [2, 3], "x": 196, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 140, "y": 40, "flags": 4}, + {"x": 220, "y": 36, "flags": 2}, + {"x": 220, "y": 28, "flags": 2}, + {"matrix": [1, 3], "x": 196, "y": 24, "flags": 4}, + {"matrix": [1, 2], "x": 140, "y": 24, "flags": 4}, + {"x": 220, "y": 20, "flags": 2}, + {"x": 220, "y": 12, "flags": 2}, + {"matrix": [0, 3], "x": 196, "y": 8, "flags": 4}, + {"matrix": [0, 2], "x": 140, "y": 8, "flags": 4}, + {"x": 220, "y": 4, "flags": 2}, + {"x": 210, "y": 1, "flags": 2}, + {"x": 182, "y": 1, "flags": 2}, + {"x": 154, "y": 1, "flags": 2}, + {"x": 126, "y": 1, "flags": 2} + ] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x5610", + "vid": "0x6F75" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + }, + "community_layouts": ["ortho_4x4"], + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"label": "00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "10", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "11", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "12", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "13", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "20", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "21", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "22", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "23", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "30", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "31", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "32", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "33", "matrix": [3, 3], "x": 3, "y": 3} + ] + } + } +} diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c new file mode 100644 index 00000000000..e7be96bd813 --- /dev/null +++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2023 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), 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), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/rules.mk b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c new file mode 100644 index 00000000000..e7be96bd813 --- /dev/null +++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2023 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), 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), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk new file mode 100644 index 00000000000..bf70b1f3e09 --- /dev/null +++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/1upsuper16v3/readme.md b/keyboards/1upkeyboards/1upsuper16v3/readme.md new file mode 100644 index 00000000000..51645908322 --- /dev/null +++ b/keyboards/1upkeyboards/1upsuper16v3/readme.md @@ -0,0 +1,22 @@ +# 1upSuper16v3 + +This keyboard is the Super16v3 from 1upkeyboards, a 4x4 macropad with the option for up to four encoders in the top row. Notable features include in-switch per-key addressable RGB LEDs and thirty two 1mm underglow RGB LEDs; for bright and smooth lighting effects. The Super16v3 utilises an rp2040 microcontroller, wired using direct pins. + +* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/1upsuper16v3:default + +Flashing example for this keyboard: + + make 1upkeyboards/1upsuper16v3: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. For this keyboard it is the top left button +* **Physical reset button**: Hold the button on the back of the PCB and plug in the keyboard diff --git a/keyboards/capsunlocked/cu80/v2_ansi/base/rules.mk b/keyboards/1upkeyboards/1upsuper16v3/rules.mk similarity index 100% rename from keyboards/capsunlocked/cu80/v2_ansi/base/rules.mk rename to keyboards/1upkeyboards/1upsuper16v3/rules.mk diff --git a/keyboards/1upkeyboards/pi40/grid_v1_1/info.json b/keyboards/1upkeyboards/pi40/grid_v1_1/info.json index 695d5cb9b79..c7028f4a4e3 100644 --- a/keyboards/1upkeyboards/pi40/grid_v1_1/info.json +++ b/keyboards/1upkeyboards/pi40/grid_v1_1/info.json @@ -40,7 +40,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [0, 0], "x": 9, "y": 8}, {"flags": 4, "matrix": [0, 1], "x": 28, "y": 8}, diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/info.json b/keyboards/1upkeyboards/pi40/mit_v1_0/info.json index ebd5d649316..6b89f2c2ab4 100644 --- a/keyboards/1upkeyboards/pi40/mit_v1_0/info.json +++ b/keyboards/1upkeyboards/pi40/mit_v1_0/info.json @@ -40,7 +40,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [0, 0], "x": 9, "y": 8}, {"flags": 4, "matrix": [0, 1], "x": 28, "y": 8}, diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h new file mode 100644 index 00000000000..834b7ee0ab2 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h @@ -0,0 +1,13 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once + +# define TAPPING_TERM 160 +# define TAPPING_TERM_PER_KEY +# define HOLD_ON_OTHER_KEY_PRESS +# define QUICK_TAP_TERM TAPPING_TERM / 2 +# define QUICK_TAP_TERM_PER_KEY + + + diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c new file mode 100644 index 00000000000..636aad675bc --- /dev/null +++ b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c @@ -0,0 +1,290 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#include "miketronic.h" + + + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Workman + * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ + * │ TAB │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│ BSPC│ + * │ ESC │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ + * │ TAB │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │ │ + * │SHIFT│ │ │ ┃ EX ┃ │ │ ┃ ┃ │ │ENTER│ENTER│ + * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ + * │SHIFT| Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ / │ UP | + * │ │ │ │ │ │ │ │ │ │ , │ . │ │RIGHT| + * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ + * │ FN │CTRL │ OS │ ALT │LOWER│ │ │ │RAISE│ SS │CLIP │COPY │ DN │ + * │ │ │ │ │ │ │ │ │ │ │ │PASTE│LEFT │ + * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_WM] = LAYOUT_ortho_4x12_wrapper ( + RGB_TOG, + _____________WORKMAN_412_001_L_____________, _____________WORKMAN_412_001_R_____________, + _____________WORKMAN_412_002_L_____________, _____________WORKMAN_412_002_R_____________, + _____________WORKMAN_412_003_L_____________, _____________WORKMAN_412_003_R_____________, + _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________ + ), + + [_QW] = LAYOUT_ortho_4x12_wrapper ( + RGB_TOG, + KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, + KC_ESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, + KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT, + _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________ + ), + + + + + /* Lower + * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ + * │ │ @ # │ & % │ ┃ ┃ │ │ ┃ 4 ┃ 5 │ 6 │ │ │ + * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │ + * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ │ UP │ + * │ │ │ │ │ │ │ │ │ │ 0 │ │ │RIGHT│ + * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │LOWER│ │ │ │BPSC │ SPC │ . │ │ DN │ + * │ │ │ │ │ │ │ │ │ │ │ ENT │ │LEFT │ + * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ + */ + [_LOWER] = LAYOUT_ortho_4x12_wrapper ( + KC_MUTE, + _______________LOWER_412_L1________________, _______________LOWER_412_R1________________, + _______________LOWER_412_L2________________, _______________LOWER_412_R2________________, + _______________LOWER_412_L3________________, _______________LOWER_412_R3________________, + _______________LOWER_412_L4________________, _______________LOWER_412_R4________________ + ), + + + /* RAISE + * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ + * │BOOT │DEBUG│ │ │ │MAKE │ │ │ │ F7 │ F8 │ F9 │ F10 │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ + * │ │ RGB | RGB | RGB ┃ RGB ┃ WM │ │ ┃ / \ ┃ F4 │ F5 │ F6 │ F11 │ + * │ │ TOG │ MOD │ HUI ┃ HUD ┃ │ │ ┃ ┃ │ │ │ │ + * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ + * │ │ RGB │ RGB │ RGB │ RGB │ QW │ │ │ _ │ F1 | F2 | F3 │ F12 │ + * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ - │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │RAISE│ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ + */ + [_RAISE] = LAYOUT_ortho_4x12_wrapper ( + KC_MUTE, + _______________RAISE_412_L1________________, _______________RAISE_412_R1________________, + _______________RAISE_412_L2________________, _______________RAISE_412_R2________________, + _______________RAISE_412_L3________________, _______________RAISE_412_R3________________, + _________________BLANK_6___________________, _________________BLANK_6___________________ + ), + + + /* EXTRAS + * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ ! │ │ │ │ │ │ │ /\ | [ | ] | ; │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ + * │SHIFT│ | |EXTRA┃ ┃ │ │ ┃ @ # ┃ & % | | ' | │ + * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │ + * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ , | . | ? │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ + */ + [_EX] = LAYOUT_ortho_4x12_wrapper ( + KC_MUTE, + ______________EXTRAS_412_L1________________, ______________EXTRAS_412_R1________________, + ______________EXTRAS_412_L2________________, ______________EXTRAS_412_R2________________, + ______________EXTRAS_412_L3________________, ______________EXTRAS_412_R3________________, + ______________EXTRAS_412_L4________________, ______________EXTRAS_412_R4________________ + ), + + + + /* FUNCTION + * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ + * │COPY │CLIP │ SS │ │ │ │ │ │ /\ │ UP │ │ │ DEL │ + * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ + * │TAB │ M05 | M06 | M07 ┃ M08 ┃ │ │ ┃LEFT ┃DOWN │RIGHT│ │UP │ + * │SHIFT│ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │RIGHT│ + * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ + * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ │ , | . | ? │DOWN │ + * │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │ + * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │RGB1 │RGB2 │RGB3 │RGB4 │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ + */ + [_FN] = LAYOUT_ortho_4x12_wrapper ( + KC_MUTE, + _____________FUNCTION_412_L1_______________, _____________FUNCTION_412_R1_______________, + _____________FUNCTION_412_L2_______________, _____________FUNCTION_412_R2_______________, + _____________FUNCTION_412_L3_______________, _____________FUNCTION_412_R3_______________, + _____________FUNCTION_412_L4_______________, _____________FUNCTION_412_R4_______________ + ), + + + /* SYMBOLS + * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ + * │ | $ | ^ | < | > │ SYMB│ │ SYMB│ | | [ | ] | - | | + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ + * │ | % | : | ; ┃ + ┃ = │ │ ┃ ┃ ( | ) | _ | | + * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │ + * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ + * | | & | ' | " | * | # │ │ ! | ? | / | \ | @ | | + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_SYMB] = LAYOUT_ortho_4x12_wrapper ( + KC_MUTE, + _______, _____________SYMBOLS_310_L1________________, _____________SYMBOLS_310_R1________________, _______, + _______, _____________SYMBOLS_310_L2________________, _____________SYMBOLS_310_R2________________, _______, + _______, _____________SYMBOLS_310_L3________________, _____________SYMBOLS_310_R3________________, _______, + _________________BLANK_6___________________, _________________BLANK_6___________________ + ) + +}; + +#ifndef NUM_DIRECTIONS +# define NUM_DIRECTIONS 2 +#endif + +#if defined(ENCODER_MAP_ENABLE) && defined(KEYBOARD_1upkeyboards_pi40_mit_v1_0) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) }, + [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LOWER] = { ENCODER_CCW_CW(____, ____) }, + [_RAISE] = { ENCODER_CCW_CW(____, ____) }, + [_EX] = { ENCODER_CCW_CW(____, ____) }, + [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) }, + [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif + + +#ifdef OLED_ENABLE +bool oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _LOWER: + oled_write_P(PSTR("LOWER"), false); + break; + case _RAISE: + oled_write_P(PSTR("RAISE"), false); + break; + case _EX: + oled_write_P(PSTR("EXTRA"), false); + break; + case _FN: + oled_write_P(PSTR("FUNCTION"), false); + break; + case _WM: + oled_write_P(PSTR("WORKMAN"), false); + break; + case _SYMB: + oled_write_P(PSTR("SYMBOLS"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("HOME"), 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; +} +#endif + + +bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SFT_T(KC_A): + // Do not force the mod-tap key press to be handled as a modifier + // if any other key was pressed while the mod-tap key is held down. + return false; + case TEX: + return false; + case CTRLX: + return false; + case FNZ: + return false; + case MGUI: + return false; + case VLOWER: + return false; + case KRAISE: + return false; + default: + // Force the dual-role key press to be handled as a modifier if any + // other key was pressed while the mod-tap key is held down. + return true; + } +} + +#ifdef AUDIO_ENABLE +float leader_start_song[][2] = SONG(ONE_UP_SOUND); +float leader_succeed_song[][2] = SONG(ALL_STAR); +float leader_fail_song[][2] = SONG(RICK_ROLL); +#endif + +void matrix_scan_user(void); + +void leader_start_user(void) { +#ifdef AUDIO_ENABLE + PLAY_SONG(leader_start_song); +#endif +} + +bool did_leader_succeed; + +void leader_end_user(void) { + did_leader_succeed = false; + + if (leader_sequence_one_key(KC_E)) { + SEND_STRING(SS_LCTL(SS_LSFT("t"))); + did_leader_succeed = true; + } else if (leader_sequence_two_keys(KC_E, KC_D)) { + SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c")); + did_leader_succeed = true; + } else if (leader_sequence_two_keys(KC_A, KC_T)) { + SEND_STRING("@guidehouse.com"); + did_leader_succeed = true; + } + + +#ifdef AUDIO_ENABLE + if (did_leader_succeed) { + PLAY_SONG(leader_succeed_song); + } else { + PLAY_SONG(leader_fail_song); + } +#endif +} \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk new file mode 100644 index 00000000000..b446776377a --- /dev/null +++ b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk @@ -0,0 +1,22 @@ +# Common feature for all keyboards +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +EXTRAKEY_ENABLE = yes # Audio control and System control +TAP_DANCE_ENABLE = yes # Tap Dance keys +NKRO_ENABLE = yes # Enable N-Key Rollover +MACROS_ENABLED = yes + + +# Keyboard specific +AUTO_SHIFT_ENABLE = no +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +MOUSEKEY_ENABLE = no # Mouse keys + +LEADER_ENABLE = yes +RGB_MATRIX_ENABLE = yes +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes +OLED_ENABLE = yes diff --git a/keyboards/1upkeyboards/pi40/mit_v1_1/info.json b/keyboards/1upkeyboards/pi40/mit_v1_1/info.json index 3ee2e738f17..f19ef235d51 100644 --- a/keyboards/1upkeyboards/pi40/mit_v1_1/info.json +++ b/keyboards/1upkeyboards/pi40/mit_v1_1/info.json @@ -40,7 +40,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [0, 0], "x": 9, "y": 8}, {"flags": 4, "matrix": [0, 1], "x": 28, "y": 8}, diff --git a/keyboards/1upkeyboards/pi40/rules.mk b/keyboards/1upkeyboards/pi40/rules.mk index e858deae6aa..3451f44976a 100644 --- a/keyboards/1upkeyboards/pi40/rules.mk +++ b/keyboards/1upkeyboards/pi40/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 DEFAULT_FOLDER = 1upkeyboards/pi40/mit_v1_0 diff --git a/keyboards/1upkeyboards/pi50/info.json b/keyboards/1upkeyboards/pi50/info.json index 1880c78d44e..17345284cac 100644 --- a/keyboards/1upkeyboards/pi50/info.json +++ b/keyboards/1upkeyboards/pi50/info.json @@ -38,7 +38,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "max_brightness": 150, "animations": { "solid_color": true, diff --git a/keyboards/1upkeyboards/pi60/info.json b/keyboards/1upkeyboards/pi60/info.json index 00d32ec973b..1f8bdb4592f 100644 --- a/keyboards/1upkeyboards/pi60/info.json +++ b/keyboards/1upkeyboards/pi60/info.json @@ -41,7 +41,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 17, "y": 50}, {"flags": 2, "x": 37, "y": 50}, @@ -112,7 +112,7 @@ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2}, {"label": "Enter", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2}, - {"label": "LShift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3}, + {"label": "LShift", "matrix": [3, 15], "w": 1.25, "x": 0, "y": 3}, {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3}, {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c index 15b593362d0..acf9ce1adb3 100644 --- a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c @@ -17,12 +17,12 @@ #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_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_TRNS, KC_ENT, - KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, MO(1), + KC_LSFT, KC_TRNS, 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, MO(1), KC_TRNS, KC_APP, KC_RCTL ), diff --git a/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c index f9187727eb3..80f9d3a9f6b 100644 --- a/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c +++ b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c @@ -17,12 +17,12 @@ #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_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_TRNS, KC_ENT, - KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, MO(1), + KC_LSFT, KC_TRNS, 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, MO(1), KC_TRNS, KC_APP, KC_RCTL ), diff --git a/keyboards/1upkeyboards/pi60_hse/config.h b/keyboards/1upkeyboards/pi60_hse/config.h index 02100955e4a..a47120f7d39 100644 --- a/keyboards/1upkeyboards/pi60_hse/config.h +++ b/keyboards/1upkeyboards/pi60_hse/config.h @@ -6,7 +6,6 @@ #define DYNAMIC_KEYMAP_LAYER_COUNT 10 #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 diff --git a/keyboards/1upkeyboards/pi60_hse/info.json b/keyboards/1upkeyboards/pi60_hse/info.json index 01b02369751..310ad3d94b0 100644 --- a/keyboards/1upkeyboards/pi60_hse/info.json +++ b/keyboards/1upkeyboards/pi60_hse/info.json @@ -32,7 +32,7 @@ "rows": ["GP4", "GP3", "GP2", "GP1", "GP0", "GP21"] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 98, "y": 51}, {"flags": 2, "x": 68, "y": 51}, diff --git a/keyboards/1upkeyboards/pi60_rgb/info.json b/keyboards/1upkeyboards/pi60_rgb/info.json index d78705352a9..68634f4da1f 100644 --- a/keyboards/1upkeyboards/pi60_rgb/info.json +++ b/keyboards/1upkeyboards/pi60_rgb/info.json @@ -38,7 +38,7 @@ "enabled": true }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [5, 5], "x": 103, "y": 58}, {"flags": 1, "matrix": [5, 10], "x": 159, "y": 58}, diff --git a/keyboards/1upkeyboards/super16/config.h b/keyboards/1upkeyboards/super16/config.h index 8102cbda4c1..7a5c6e0e833 100644 --- a/keyboards/1upkeyboards/super16/config.h +++ b/keyboards/1upkeyboards/super16/config.h @@ -17,24 +17,8 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 16 // Add 12 if attaching the RGB LED ring -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# ifdef RGBLIGHT_ENABLE -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE -# elif defined RGB_MATRIX_ENABLE +# define RGB_MATRIX_LED_COUNT 16 +# ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES // reacts to keypresses # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // reacts to keyreleases (instead of keypresses) // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/1upkeyboards/super16/info.json b/keyboards/1upkeyboards/super16/info.json index 923f536ac8b..6d63921f1b9 100644 --- a/keyboards/1upkeyboards/super16/info.json +++ b/keyboards/1upkeyboards/super16/info.json @@ -11,8 +11,26 @@ "ws2812": { "pin": "D3" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D4", "C6", "F6", "F7"], diff --git a/keyboards/1upkeyboards/super16v2/info.json b/keyboards/1upkeyboards/super16v2/info.json index 39a8eefcc41..c4bdc441eed 100644 --- a/keyboards/1upkeyboards/super16v2/info.json +++ b/keyboards/1upkeyboards/super16v2/info.json @@ -12,7 +12,7 @@ "pin": "B5" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D5", "D6", "C2", "D0"], diff --git a/keyboards/1upkeyboards/sweet16/v1/config.h b/keyboards/1upkeyboards/sweet16/v1/config.h index bed2edc0a66..c0ffe021374 100644 --- a/keyboards/1upkeyboards/sweet16/v1/config.h +++ b/keyboards/1upkeyboards/sweet16/v1/config.h @@ -5,19 +5,3 @@ # define LED_CAPS_LOCK_PIN D5 // TXLED # define LED_PIN_ON_STATE 0 #endif - -/* Underglow options */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/1upkeyboards/sweet16/v1/info.json b/keyboards/1upkeyboards/sweet16/v1/info.json index cb82e7fcfb3..bbecccae020 100644 --- a/keyboards/1upkeyboards/sweet16/v1/info.json +++ b/keyboards/1upkeyboards/sweet16/v1/info.json @@ -3,6 +3,23 @@ "pid": "0x0161", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/config.h b/keyboards/1upkeyboards/sweet16v2/kb2040/config.h index 88687335de7..37a85b4711d 100644 --- a/keyboards/1upkeyboards/sweet16v2/kb2040/config.h +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/config.h @@ -19,7 +19,6 @@ #define DYNAMIC_KEYMAP_LAYER_COUNT 10 #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 diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/info.json b/keyboards/1upkeyboards/sweet16v2/kb2040/info.json index b8705866c87..f1ac861c8c7 100644 --- a/keyboards/1upkeyboards/sweet16v2/kb2040/info.json +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/info.json @@ -41,7 +41,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 28, "y": 12}, {"flags": 4, "matrix": [0, 1], "x": 84, "y": 12}, diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json b/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json index fa98b70fbc8..a8696ab64c9 100644 --- a/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json +++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json @@ -39,7 +39,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 28, "y": 12}, {"flags": 4, "matrix": [0, 1], "x": 84, "y": 12}, diff --git a/keyboards/25keys/aleth42/rev0/config.h b/keyboards/25keys/aleth42/rev0/config.h index 2c3ca34c5ec..0d7a5de5605 100644 --- a/keyboards/25keys/aleth42/rev0/config.h +++ b/keyboards/25keys/aleth42/rev0/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/25keys/aleth42/rev0/info.json b/keyboards/25keys/aleth42/rev0/info.json index f3741a80b14..675c741bf52 100644 --- a/keyboards/25keys/aleth42/rev0/info.json +++ b/keyboards/25keys/aleth42/rev0/info.json @@ -13,6 +13,24 @@ {"pin_a": "B5", "pin_b": "B4"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/25keys/aleth42/rev1/config.h b/keyboards/25keys/aleth42/rev1/config.h index a97ab1ea498..0d7a5de5605 100644 --- a/keyboards/25keys/aleth42/rev1/config.h +++ b/keyboards/25keys/aleth42/rev1/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/25keys/aleth42/rev1/info.json b/keyboards/25keys/aleth42/rev1/info.json index 56202038895..fd4b07fe3ee 100644 --- a/keyboards/25keys/aleth42/rev1/info.json +++ b/keyboards/25keys/aleth42/rev1/info.json @@ -13,6 +13,24 @@ {"pin_a": "F5", "pin_b": "F6"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/25keys/cassette42/config.h b/keyboards/25keys/cassette42/config.h index 07d9ab9b67d..915e161e8bd 100644 --- a/keyboards/25keys/cassette42/config.h +++ b/keyboards/25keys/cassette42/config.h @@ -17,20 +17,4 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 5 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - #define OLED_FONT_H "keyboards/25keys/cassette42/common/glcdfont.c" diff --git a/keyboards/25keys/cassette42/info.json b/keyboards/25keys/cassette42/info.json index 01701aedeb6..38a73368f63 100644 --- a/keyboards/25keys/cassette42/info.json +++ b/keyboards/25keys/cassette42/info.json @@ -14,6 +14,24 @@ {"pin_a": "B3", "pin_b": "B1"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/25keys/cassette42/rules.mk b/keyboards/25keys/cassette42/rules.mk index eaeebeff07f..f8febbdec8d 100644 --- a/keyboards/25keys/cassette42/rules.mk +++ b/keyboards/25keys/cassette42/rules.mk @@ -12,6 +12,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 SRC += ./common/oled_helper.c diff --git a/keyboards/25keys/zinc/info.json b/keyboards/25keys/zinc/info.json index 1efe467be97..23502423168 100644 --- a/keyboards/25keys/zinc/info.json +++ b/keyboards/25keys/zinc/info.json @@ -8,7 +8,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "processor": "atmega32u4", "bootloader": "caterina" diff --git a/keyboards/25keys/zinc/rev1/config.h b/keyboards/25keys/zinc/rev1/config.h index e4b0d02f753..27755e64c6a 100644 --- a/keyboards/25keys/zinc/rev1/config.h +++ b/keyboards/25keys/zinc/rev1/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once #define QUICK_TAP_TERM 0 -#define TAPPING_TERM 100 /* Select hand configuration */ #define MASTER_LEFT diff --git a/keyboards/25keys/zinc/rev1/info.json b/keyboards/25keys/zinc/rev1/info.json index 46692f6e4d1..47fb1f2e98e 100644 --- a/keyboards/25keys/zinc/rev1/info.json +++ b/keyboards/25keys/zinc/rev1/info.json @@ -8,6 +8,12 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 100 + }, + "rgblight": { + "hue_steps": 10 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/25keys/zinc/rev1/post_config.h b/keyboards/25keys/zinc/rev1/post_config.h index 15857d3b0b3..3d51de9e4c1 100644 --- a/keyboards/25keys/zinc/rev1/post_config.h +++ b/keyboards/25keys/zinc/rev1/post_config.h @@ -34,7 +34,6 @@ along with this program. If not, see . #ifdef RGBLED_CONT #define RGBLED_NUM 60 #define RGBLED_SPLIT { 30, 30 } -// #define RGBLIGHT_LED_MAP {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29} #else #define RGBLED_NUM 30 #endif @@ -72,8 +71,6 @@ along with this program. If not, see . #endif #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value diff --git a/keyboards/25keys/zinc/reva/config.h b/keyboards/25keys/zinc/reva/config.h index e4b0d02f753..27755e64c6a 100644 --- a/keyboards/25keys/zinc/reva/config.h +++ b/keyboards/25keys/zinc/reva/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once #define QUICK_TAP_TERM 0 -#define TAPPING_TERM 100 /* Select hand configuration */ #define MASTER_LEFT diff --git a/keyboards/25keys/zinc/reva/info.json b/keyboards/25keys/zinc/reva/info.json index 4db1d049107..1ab2fb7e38f 100644 --- a/keyboards/25keys/zinc/reva/info.json +++ b/keyboards/25keys/zinc/reva/info.json @@ -8,6 +8,12 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 100 + }, + "rgblight": { + "hue_steps": 10 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/25keys/zinc/reva/post_config.h b/keyboards/25keys/zinc/reva/post_config.h index 15857d3b0b3..3d51de9e4c1 100644 --- a/keyboards/25keys/zinc/reva/post_config.h +++ b/keyboards/25keys/zinc/reva/post_config.h @@ -34,7 +34,6 @@ along with this program. If not, see . #ifdef RGBLED_CONT #define RGBLED_NUM 60 #define RGBLED_SPLIT { 30, 30 } -// #define RGBLIGHT_LED_MAP {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29} #else #define RGBLED_NUM 30 #endif @@ -72,8 +71,6 @@ along with this program. If not, see . #endif #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value diff --git a/keyboards/2key2crawl/config.h b/keyboards/2key2crawl/config.h index a4088e49256..5f360813239 100644 --- a/keyboards/2key2crawl/config.h +++ b/keyboards/2key2crawl/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - -#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 RGBLED_NUM 3 -#endif diff --git a/keyboards/2key2crawl/info.json b/keyboards/2key2crawl/info.json index 1752531ba17..b8644a07129 100644 --- a/keyboards/2key2crawl/info.json +++ b/keyboards/2key2crawl/info.json @@ -18,6 +18,21 @@ {"pin_a": "D0", "pin_b": "D1", "resolution": 1} ] }, + "rgblight": { + "led_count": 3, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C6" }, diff --git a/keyboards/3keyecosystem/2key2/info.json b/keyboards/3keyecosystem/2key2/info.json index f2d712072ea..35cc3ee3c45 100644 --- a/keyboards/3keyecosystem/2key2/info.json +++ b/keyboards/3keyecosystem/2key2/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F4", "D7"], diff --git a/keyboards/40percentclub/4pack/info.json b/keyboards/40percentclub/4pack/info.json index 9709807612c..31d45598833 100644 --- a/keyboards/40percentclub/4pack/info.json +++ b/keyboards/40percentclub/4pack/info.json @@ -9,6 +9,7 @@ "device_version": "0.0.1" }, "backlight": { + "driver": "timer", "pins": ["F6", "F7"] }, "processor": "atmega32u4", diff --git a/keyboards/40percentclub/gherkin/keymaps/default/keymap.c b/keyboards/40percentclub/gherkin/keymaps/default/keymap.c index ab2a1fa1c14..f4d3032857c 100644 --- a/keyboards/40percentclub/gherkin/keymaps/default/keymap.c +++ b/keyboards/40percentclub/gherkin/keymaps/default/keymap.c @@ -59,16 +59,17 @@ void keyboard_pre_init_user(void) { setPinOutput(B0); } -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { writePinLow(D5); } else { writePinHigh(D5); } - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { writePinLow(B0); } else { writePinHigh(B0); } + return false; } diff --git a/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c b/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c index 40c11739fb6..090fd1d2963 100644 --- a/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c +++ b/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c @@ -199,9 +199,6 @@ void music_scale_user(void) #endif -void matrix_scan_user(void) { -} - //Tap Dance Definitions tap_dance_action_t tap_dance_actions[] = { //Tap once for Esc, twice for Caps Lock @@ -211,40 +208,3 @@ tap_dance_action_t tap_dance_actions[] = { [TD_A_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_A, KC_TAB), [TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC) }; - -// don't know what this is doing... -/* -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - DDRD |= (1 << 5); PORTD &= ~(1 << 5); - } else { - DDRD &= ~(1 << 5); PORTD &= ~(1 << 5); - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 0); PORTB &= ~(1 << 0); - } else { - DDRB &= ~(1 << 0); PORTB &= ~(1 << 0); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} -*/ diff --git a/keyboards/40percentclub/luddite/config.h b/keyboards/40percentclub/luddite/config.h index e388bc97056..5f360813239 100644 --- a/keyboards/40percentclub/luddite/config.h +++ b/keyboards/40percentclub/luddite/config.h @@ -5,19 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 // Number of LEDs -// #define RGBLIGHT_HUE_STEP 10 -// #define RGBLIGHT_SAT_STEP 17 -// #define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/40percentclub/luddite/info.json b/keyboards/40percentclub/luddite/info.json index eb5c0e4a9d7..a8c8c13b2a5 100644 --- a/keyboards/40percentclub/luddite/info.json +++ b/keyboards/40percentclub/luddite/info.json @@ -17,6 +17,21 @@ "pin": "B5", "levels": 4 }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c b/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c index c3e359e24ea..f7899ad886f 100644 --- a/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c +++ b/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c @@ -157,11 +157,11 @@ void dynamic_macro_record_end_user(int8_t direction) { // Custom Caps Lock backlight behaviour // ------------------------------------ -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { // This exists because I don't like the backlight to turn OFF when the Caps Lock is ON. // That is, this will turn the backlight ON (at half the brightness) when the Caps Lock is ON as well. static bool prev_is_caps_on; - bool is_caps_on = IS_LED_ON(usb_led, USB_LED_CAPS_LOCK); + bool is_caps_on = led_state.caps_lock; if (prev_is_caps_on != is_caps_on) { prev_is_caps_on = is_caps_on; @@ -178,7 +178,7 @@ void led_set_user(uint8_t usb_led) { } // Turn on the Pro Micro's on-board LEDs for Caps Lock - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { // Set to low setPinOutput(B0); writePinLow(B0); @@ -189,6 +189,7 @@ void led_set_user(uint8_t usb_led) { setPinInput(B0); setPinInput(D5); } + return false; } // Backlight idle timeout feature diff --git a/keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c b/keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c index ea659979ea8..3932a1ee9b9 100644 --- a/keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c +++ b/keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c @@ -35,11 +35,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - - -void led_set_user(uint8_t usb_led){ +bool led_update_user(led_t led_state){ //turn on the Pro Micro's on board LEDs for CAPS LOCK - if(IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)){ + if(led_state.caps_lock){ //set led pins to low setPinOutput(B0); writePinLow(B0); @@ -50,4 +48,5 @@ void led_set_user(uint8_t usb_led){ setPinInput(B0); setPinInput(D5); } + return false; } diff --git a/keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk b/keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk index 975c5818833..dedd62afcbc 100644 --- a/keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk +++ b/keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk @@ -5,5 +5,5 @@ F_CPU = 8000000 # change yes to no to disable # BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE +BLUETOOTH_DRIVER = bluefruit_le BACKLIGHT_ENABLE = no diff --git a/keyboards/40percentclub/nano/config.h b/keyboards/40percentclub/nano/config.h deleted file mode 100644 index 8641d6a37f8..00000000000 --- a/keyboards/40percentclub/nano/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -/* ws2812 RGB LED */ -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 // Number of LEDs diff --git a/keyboards/40percentclub/nano/info.json b/keyboards/40percentclub/nano/info.json index 21e5c2d1d2b..4cfd3a9a295 100644 --- a/keyboards/40percentclub/nano/info.json +++ b/keyboards/40percentclub/nano/info.json @@ -8,6 +8,21 @@ "pid": "0x0007", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/40percentclub/nori/config.h b/keyboards/40percentclub/nori/config.h index 57981dd27ff..0fe9b9df213 100644 --- a/keyboards/40percentclub/nori/config.h +++ b/keyboards/40percentclub/nori/config.h @@ -16,22 +16,6 @@ #pragma once -// enable RGB underglow -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/40percentclub/nori/info.json b/keyboards/40percentclub/nori/info.json index b58ee84edc8..214d1da2a09 100644 --- a/keyboards/40percentclub/nori/info.json +++ b/keyboards/40percentclub/nori/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "B5" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/40percentclub/sixpack/info.json b/keyboards/40percentclub/sixpack/info.json index 3483c7d4df6..cd4864fbd12 100644 --- a/keyboards/40percentclub/sixpack/info.json +++ b/keyboards/40percentclub/sixpack/info.json @@ -9,6 +9,7 @@ "device_version": "10.0.1" }, "backlight": { + "driver": "timer", "pins": ["F4", "F5"], "levels": 6, "breathing": true diff --git a/keyboards/40percentclub/tomato/config.h b/keyboards/40percentclub/tomato/config.h index 2199981c7c9..b46d357dd04 100644 --- a/keyboards/40percentclub/tomato/config.h +++ b/keyboards/40percentclub/tomato/config.h @@ -5,19 +5,3 @@ /* eliminate lag on space cadet mods */ #define PERMISSIVE_HOLD - -/* setup lighting */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 30 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/40percentclub/tomato/info.json b/keyboards/40percentclub/tomato/info.json index c881f7c7d10..eabe3545683 100644 --- a/keyboards/40percentclub/tomato/info.json +++ b/keyboards/40percentclub/tomato/info.json @@ -8,6 +8,23 @@ "pid": "0x546F", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 30, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/40percentclub/ut47/led.c b/keyboards/40percentclub/ut47/led.c index f5d8ffc12ee..867a6e2e2a3 100644 --- a/keyboards/40percentclub/ut47/led.c +++ b/keyboards/40percentclub/ut47/led.c @@ -19,20 +19,23 @@ along with this program. If not, see . #include #include "led.h" - -void led_set(uint8_t usb_led) +bool led_update_kb(led_t led_state) { - if (usb_led & (1<. */ #pragma once -#define RGBLED_NUM 12 #define WS2812_EXTERNAL_PULLUP -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/4pplet/aekiso60/rev_b/info.json b/keyboards/4pplet/aekiso60/rev_b/info.json index 4e218f9365e..b5ad58bc11d 100644 --- a/keyboards/4pplet/aekiso60/rev_b/info.json +++ b/keyboards/4pplet/aekiso60/rev_b/info.json @@ -4,6 +4,23 @@ "pid": "0x0011", "device_version": "0.0.2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A8" }, diff --git a/keyboards/4pplet/aekiso60/rev_b/rules.mk b/keyboards/4pplet/aekiso60/rev_b/rules.mk index 041df45ecaa..e539634d589 100644 --- a/keyboards/4pplet/aekiso60/rev_b/rules.mk +++ b/keyboards/4pplet/aekiso60/rev_b/rules.mk @@ -14,5 +14,3 @@ 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/eagle_viper_rep/rev_a/config.h b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h index 6114950220c..9bec945f24a 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h @@ -18,27 +18,12 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 4 -#define BACKLIGHT_PAL_MODE 2 /* Underglow */ #define WS2812_SPI SPID1 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PIN A5 #define WS2812_SPI_SCK_PAL_MODE 0 -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/info.json b/keyboards/4pplet/eagle_viper_rep/rev_a/info.json index 02d4f386327..4be993daea1 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/info.json +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/info.json @@ -18,6 +18,23 @@ "levels": 10, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A7", "driver": "spi" diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk b/keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk index 4e3e37ff3df..30a36865b96 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk @@ -13,5 +13,3 @@ RGBLIGHT_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/eagle_viper_rep/rev_b/config.h b/keyboards/4pplet/eagle_viper_rep/rev_b/config.h index 7c8c8a8cf22..5d5eefda218 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_b/config.h +++ b/keyboards/4pplet/eagle_viper_rep/rev_b/config.h @@ -21,23 +21,8 @@ along with this program. If not, see . #define BACKLIGHT_PAL_MODE 1 /* Underglow */ -#define RGBLED_NUM 16 #define WS2812_EXTERNAL_PULLUP -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/info.json b/keyboards/4pplet/eagle_viper_rep/rev_b/info.json index 82d6349dc72..ad7513c13d6 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_b/info.json +++ b/keyboards/4pplet/eagle_viper_rep/rev_b/info.json @@ -23,6 +23,23 @@ "num_lock": "B12", "scroll_lock": "B13" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A8" }, @@ -114,7 +131,7 @@ {"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, {"label": "Alt", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25}, {"label": "GUI", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Fn", "matrix": [8, 6], "x": 13.75, "y": 9, "w": 1.25} + {"label": "Fn", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25} ] }, "LAYOUT_60_ansi": { diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/rules.mk b/keyboards/4pplet/eagle_viper_rep/rev_b/rules.mk index 09e14f7540b..428a48c4649 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_b/rules.mk +++ b/keyboards/4pplet/eagle_viper_rep/rev_b/rules.mk @@ -13,5 +13,3 @@ RGBLIGHT_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/perk60_iso/rev_a/info.json b/keyboards/4pplet/perk60_iso/rev_a/info.json index e961253a23c..527f3d57726 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/info.json +++ b/keyboards/4pplet/perk60_iso/rev_a/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["A1", "B12", "B14", "A2", "A0", "A3", "A4"], diff --git a/keyboards/4pplet/perk60_iso/rev_a/rules.mk b/keyboards/4pplet/perk60_iso/rev_a/rules.mk index d89fef71947..6a7da3e998d 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/rules.mk +++ b/keyboards/4pplet/perk60_iso/rev_a/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/4pplet/steezy60/rev_b/rules.mk b/keyboards/4pplet/steezy60/rev_b/rules.mk index 68bddfc7485..3787d8c241b 100644 --- a/keyboards/4pplet/steezy60/rev_b/rules.mk +++ b/keyboards/4pplet/steezy60/rev_b/rules.mk @@ -6,5 +6,3 @@ KEY_LOCK_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/unextended_std/rev_a/rules.mk b/keyboards/4pplet/unextended_std/rev_a/rules.mk index 68bddfc7485..3787d8c241b 100644 --- a/keyboards/4pplet/unextended_std/rev_a/rules.mk +++ b/keyboards/4pplet/unextended_std/rev_a/rules.mk @@ -6,5 +6,3 @@ KEY_LOCK_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/waffling60/rev_b/config.h b/keyboards/4pplet/waffling60/rev_b/config.h deleted file mode 100644 index 2552b1e451f..00000000000 --- a/keyboards/4pplet/waffling60/rev_b/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -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 . -*/ -#pragma once - -#define RGBLED_NUM 1 - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/4pplet/waffling60/rev_b/info.json b/keyboards/4pplet/waffling60/rev_b/info.json index 90fe5d02a22..7ba1964c7ca 100644 --- a/keyboards/4pplet/waffling60/rev_b/info.json +++ b/keyboards/4pplet/waffling60/rev_b/info.json @@ -8,6 +8,23 @@ "pid": "0x0005", "device_version": "0.0.2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/4pplet/waffling60/rev_c/config.h b/keyboards/4pplet/waffling60/rev_c/config.h deleted file mode 100644 index 06e5db9090c..00000000000 --- a/keyboards/4pplet/waffling60/rev_c/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -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 RGBLED_NUM 1 - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/4pplet/waffling60/rev_c/info.json b/keyboards/4pplet/waffling60/rev_c/info.json index c33d2b0616c..f2461aeaa9b 100644 --- a/keyboards/4pplet/waffling60/rev_c/info.json +++ b/keyboards/4pplet/waffling60/rev_c/info.json @@ -12,6 +12,23 @@ "cols": ["C4", "C5", "D2", "C6", "C7", "B7", "B6", "B5", "B4", "B3", "B2", "B1", "D1", "D4"], "rows": ["C2", "D0", "B0", "D6", "D5"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/4pplet/waffling60/rev_d/config.h b/keyboards/4pplet/waffling60/rev_d/config.h index 2ba774712ab..036d08cc73c 100644 --- a/keyboards/4pplet/waffling60/rev_d/config.h +++ b/keyboards/4pplet/waffling60/rev_d/config.h @@ -16,9 +16,4 @@ along with this program. If not, see . */ #pragma once -#define RGBLED_NUM 1 #define WS2812_EXTERNAL_PULLUP - -#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 index 01aba228636..692f9956052 100644 --- a/keyboards/4pplet/waffling60/rev_d/info.json +++ b/keyboards/4pplet/waffling60/rev_d/info.json @@ -8,6 +8,11 @@ "pid": "0x000E", "device_version": "0.0.4" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1 + }, "ws2812": { "pin": "A8" }, diff --git a/keyboards/4pplet/waffling60/rev_d/rules.mk b/keyboards/4pplet/waffling60/rev_d/rules.mk index 041df45ecaa..e539634d589 100644 --- a/keyboards/4pplet/waffling60/rev_d/rules.mk +++ b/keyboards/4pplet/waffling60/rev_d/rules.mk @@ -14,5 +14,3 @@ 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/rules.mk b/keyboards/4pplet/waffling60/rev_d_ansi/rules.mk index 51920656446..a64bf928ebb 100644 --- a/keyboards/4pplet/waffling60/rev_d_ansi/rules.mk +++ b/keyboards/4pplet/waffling60/rev_d_ansi/rules.mk @@ -14,5 +14,3 @@ 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/info.json b/keyboards/4pplet/waffling60/rev_d_iso/info.json index cab2fa1c079..fdcf9d0bdee 100644 --- a/keyboards/4pplet/waffling60/rev_d_iso/info.json +++ b/keyboards/4pplet/waffling60/rev_d_iso/info.json @@ -15,8 +15,11 @@ "diode_direction": "COL2ROW", "processor": "STM32F072", "bootloader": "stm32-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -47,21 +50,21 @@ {"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, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [2, 12], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, + + {"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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, @@ -88,6 +91,284 @@ {"matrix": [4, 12], "x": 12.5, "y": 4}, {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] + }, + "LAYOUT_60_iso_tsangan_split_rshift": { + "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": [1, 13], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "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": [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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl_split_rshift": { + "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": [1, 13], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl_split_bs_rshift": { + "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": [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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "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 index 563c3838d10..7536b7f3a1a 100644 --- a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c +++ b/keyboards/4pplet/waffling60/rev_d_iso/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( +[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_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( +[1] = 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_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, diff --git a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c index 18c29122690..b6945a706d8 100644 --- a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c +++ b/keyboards/4pplet/waffling60/rev_d_iso/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( +[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_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( +[1] = 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_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( +[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), // extra layer for VIA -[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, diff --git a/keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md b/keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md new file mode 100644 index 00000000000..781000ec413 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for 4pplet Waffling60 Rev D ISO + +``` + ┌───────┐ + 2u Backspace │1D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2D │ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬───┬─┴───┤ +│40 │41 │42 │44 │46 │48 │4B │4C │4D │ +└─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬───────────────────────────────────────┬───┬─────┐ +│40 │41 │46 │4C │4D │ 10u Spacebar +└─────┴───┴───────────────────────────────────────┴───┴─────┘ +``` diff --git a/keyboards/4pplet/waffling60/rev_d_iso/rules.mk b/keyboards/4pplet/waffling60/rev_d_iso/rules.mk index e8184d57aba..e11c916b4fd 100644 --- a/keyboards/4pplet/waffling60/rev_d_iso/rules.mk +++ b/keyboards/4pplet/waffling60/rev_d_iso/rules.mk @@ -14,5 +14,3 @@ 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/waffling80/rev_a/config.h b/keyboards/4pplet/waffling80/rev_a/config.h deleted file mode 100644 index e42bb68b370..00000000000 --- a/keyboards/4pplet/waffling80/rev_a/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -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 RGBLED_NUM 2 - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/4pplet/waffling80/rev_a/info.json b/keyboards/4pplet/waffling80/rev_a/info.json index 34ec33bbe21..8c3a84be1e6 100644 --- a/keyboards/4pplet/waffling80/rev_a/info.json +++ b/keyboards/4pplet/waffling80/rev_a/info.json @@ -4,6 +4,11 @@ "pid": "0x0006", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2 + }, "ws2812": { "pin": "D7" }, diff --git a/keyboards/4pplet/waffling80/rev_b/config.h b/keyboards/4pplet/waffling80/rev_b/config.h index 1bf561d74ae..036d08cc73c 100644 --- a/keyboards/4pplet/waffling80/rev_b/config.h +++ b/keyboards/4pplet/waffling80/rev_b/config.h @@ -16,9 +16,4 @@ along with this program. If not, see . */ #pragma once -#define RGBLED_NUM 2 #define WS2812_EXTERNAL_PULLUP - -#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 index 61673e609d6..47d3d5d662f 100644 --- a/keyboards/4pplet/waffling80/rev_b/info.json +++ b/keyboards/4pplet/waffling80/rev_b/info.json @@ -4,6 +4,11 @@ "pid": "0x000F", "device_version": "0.0.2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2 + }, "ws2812": { "pin": "A8" }, diff --git a/keyboards/4pplet/waffling80/rev_b/rules.mk b/keyboards/4pplet/waffling80/rev_b/rules.mk index 041df45ecaa..e539634d589 100644 --- a/keyboards/4pplet/waffling80/rev_b/rules.mk +++ b/keyboards/4pplet/waffling80/rev_b/rules.mk @@ -14,5 +14,3 @@ 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/yakiimo/rev_a/rules.mk b/keyboards/4pplet/yakiimo/rev_a/rules.mk index 9e42693cb69..c3b8e77d77a 100644 --- a/keyboards/4pplet/yakiimo/rev_a/rules.mk +++ b/keyboards/4pplet/yakiimo/rev_a/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/7c8/framework/config.h b/keyboards/7c8/framework/config.h deleted file mode 100644 index f6b4b30cf5e..00000000000 --- a/keyboards/7c8/framework/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2020 Steven 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 - -#define TAP_CODE_DELAY 16 - -#define LEADER_TIMEOUT 250 -#define LEADER_PER_KEY_TIMING 150 diff --git a/keyboards/7c8/framework/info.json b/keyboards/7c8/framework/info.json index 18c0289c9a3..19325af9cbd 100644 --- a/keyboards/7c8/framework/info.json +++ b/keyboards/7c8/framework/info.json @@ -18,6 +18,13 @@ {"pin_a": "D0", "pin_b": "D1"} ] }, + "qmk": { + "tap_keycode_delay": 16 + }, + "leader_key": { + "timeout": 250, + "timing": true + }, "processor": "atmega328p", "bootloader": "usbasploader", "layouts": { diff --git a/keyboards/8pack/config.h b/keyboards/8pack/config.h index 5139d4cf699..5f360813239 100644 --- a/keyboards/8pack/config.h +++ b/keyboards/8pack/config.h @@ -5,16 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// ws2812 options -#define RGBLED_NUM 8 // number of LEDs -#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/8pack/info.json b/keyboards/8pack/info.json index 45dec97b330..0145eef5e3a 100644 --- a/keyboards/8pack/info.json +++ b/keyboards/8pack/info.json @@ -8,9 +8,25 @@ "pid": "0x2171" }, "backlight": { + "driver": "timer", "pins": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"], "levels": 8 }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/9key/config.h b/keyboards/9key/config.h deleted file mode 100644 index bb910a4427d..00000000000 --- a/keyboards/9key/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -#define RGBLED_NUM 1 // Number of LEDs - -#define TAPPING_TERM 200 diff --git a/keyboards/9key/info.json b/keyboards/9key/info.json index 1dc9fad41a1..d4061d82614 100644 --- a/keyboards/9key/info.json +++ b/keyboards/9key/info.json @@ -8,6 +8,9 @@ "pid": "0x0007", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 1 + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/a_dux/keymaps/daliusd/keymap.c b/keyboards/a_dux/keymaps/daliusd/keymap.c index 7dec77b01e4..dcc41a36ee2 100644 --- a/keyboards/a_dux/keymaps/daliusd/keymap.c +++ b/keyboards/a_dux/keymaps/daliusd/keymap.c @@ -126,28 +126,28 @@ const uint32_t unicode_map[] PROGMEM = { [LT_CB] = 0x201c, // “ }; -#define K_SNEK X(SNEK) -#define K_EURO X(EURO) -#define K_LT_A XP(LT_S_A, LT_L_A) -#define K_LT_AU X(LT_L_A) -#define K_LT_C XP(LT_S_C, LT_L_C) -#define K_LT_CU X(LT_L_C) -#define K_LT_E1 XP(LT_S_E1, LT_L_E1) -#define K_LT_E1U X(LT_L_E1) -#define K_LT_E2 XP(LT_S_E2, LT_L_E2) -#define K_LT_E2U X(LT_L_E2) -#define K_LT_I XP(LT_S_I, LT_L_I) -#define K_LT_IU X(LT_L_I) -#define K_LT_S XP(LT_S_S, LT_L_S) -#define K_LT_SU X(LT_L_S) -#define K_LT_U1 XP(LT_S_U1, LT_L_U1) -#define K_LT_U1U X(LT_L_U1) -#define K_LT_U2 XP(LT_S_U2, LT_L_U2) -#define K_LT_U2U X(LT_L_U2) -#define K_LT_Z XP(LT_S_Z, LT_L_Z) -#define K_LT_ZU X(LT_L_Z) -#define K_LT_OB X(LT_OB) -#define K_LT_CB X(LT_CB) +#define K_SNEK UM(SNEK) +#define K_EURO UM(EURO) +#define K_LT_A UP(LT_S_A, LT_L_A) +#define K_LT_AU UM(LT_L_A) +#define K_LT_C UP(LT_S_C, LT_L_C) +#define K_LT_CU UM(LT_L_C) +#define K_LT_E1 UP(LT_S_E1, LT_L_E1) +#define K_LT_E1U UM(LT_L_E1) +#define K_LT_E2 UP(LT_S_E2, LT_L_E2) +#define K_LT_E2U UM(LT_L_E2) +#define K_LT_I UP(LT_S_I, LT_L_I) +#define K_LT_IU UM(LT_L_I) +#define K_LT_S UP(LT_S_S, LT_L_S) +#define K_LT_SU UM(LT_L_S) +#define K_LT_U1 UP(LT_S_U1, LT_L_U1) +#define K_LT_U1U UM(LT_L_U1) +#define K_LT_U2 UP(LT_S_U2, LT_L_U2) +#define K_LT_U2U UM(LT_L_U2) +#define K_LT_Z UP(LT_S_Z, LT_L_Z) +#define K_LT_ZU UM(LT_L_Z) +#define K_LT_OB UM(LT_OB) +#define K_LT_CB UM(LT_CB) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/abacus/config.h b/keyboards/abacus/config.h index b5109c291d3..ca764a9eebe 100644 --- a/keyboards/abacus/config.h +++ b/keyboards/abacus/config.h @@ -19,19 +19,6 @@ along with this program. If not, see . #define DIP_SWITCH_PINS { D0 } -# define RGBLED_NUM 17 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== choose 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_STATIC_GRADIENT - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/abacus/info.json b/keyboards/abacus/info.json index c12d7cb2354..2e147829973 100644 --- a/keyboards/abacus/info.json +++ b/keyboards/abacus/info.json @@ -18,6 +18,20 @@ {"pin_a": "F1", "pin_b": "F0"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 17, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/abacus/keymaps/unicodemap/keymap.c b/keyboards/abacus/keymaps/unicodemap/keymap.c index 0e6ab0d6479..46e2219f0bd 100644 --- a/keyboards/abacus/keymaps/unicodemap/keymap.c +++ b/keyboards/abacus/keymaps/unicodemap/keymap.c @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = LAYOUT( NICKURL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_F11, KC_F12, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, RGB_MODE_SNAKE, RGB_MODE_KNIGHT, RGB_MODE_GRADIENT, XXXXXXX, RGB_TOG, - _______, X(LOVEEYES), X(THINK), X(UPSIDEDOWN), X(NOMOUTH), X(PARTY), X(PEACH), X(HEART), X(EGGPLANT), X(EMOJI100), X(EMOJIB), RGB_HUI, + _______, UM(LOVEEYES), UM(THINK), UM(UPSIDEDOWN), UM(NOMOUTH), UM(PARTY), UM(PEACH), UM(HEART), UM(EGGPLANT), UM(EMOJI100), UM(EMOJIB), RGB_HUI, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/abatskeyboardclub/nayeon/config.h b/keyboards/abatskeyboardclub/nayeon/config.h index b42ece99a60..7fedf4dce12 100644 --- a/keyboards/abatskeyboardclub/nayeon/config.h +++ b/keyboards/abatskeyboardclub/nayeon/config.h @@ -20,5 +20,4 @@ along with this program. If not, see . /* RGB Matrix setup */ #define RGB_MATRIX_LED_COUNT 2 -#define RGBLED_NUM 2 #define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral diff --git a/keyboards/abatskeyboardclub/nayeon/info.json b/keyboards/abatskeyboardclub/nayeon/info.json index d7e3718c0b1..7a3b650ff1d 100644 --- a/keyboards/abatskeyboardclub/nayeon/info.json +++ b/keyboards/abatskeyboardclub/nayeon/info.json @@ -25,7 +25,7 @@ "driver": "vendor" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "processor": "RP2040", "bootloader": "rp2040", diff --git a/keyboards/abko/ak84bt/ak84bt.c b/keyboards/abko/ak84bt/ak84bt.c new file mode 100644 index 00000000000..0ecd06b177e --- /dev/null +++ b/keyboards/abko/ak84bt/ak84bt.c @@ -0,0 +1,110 @@ +/* Copyright 2023 temp4gh + * + * This 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 is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + {0, G_1, I_1, H_1}, + {0, G_3, I_3, H_3}, + {0, G_4, I_4, H_4}, + {0, G_5, I_5, H_5}, + {0, G_6, I_6, H_6}, + {0, G_7, I_7, H_7}, + {0, G_8, I_8, H_8}, + {0, G_9, I_9, H_9}, + {0, G_10, I_10, H_10}, + {0, G_11, I_11, H_11}, + {0, G_12, I_12, H_12}, + {0, G_13, I_13, H_13}, + {0, G_14, I_14, H_14}, + {0, G_15, I_15, H_15}, + {0, D_1, F_1, E_1}, + {0, D_2, F_2, E_2}, + {0, D_3, F_3, E_3}, + {0, D_4, F_4, E_4}, + {0, D_5, F_5, E_5}, + {0, D_6, F_6, E_6}, + {0, D_7, F_7, E_7}, + {0, D_8, F_8, E_8}, + {0, D_9, F_9, E_9}, + {0, D_10, F_10, E_10}, + {0, D_11, F_11, E_11}, + {0, D_12, F_12, E_12}, + {0, D_13, F_13, E_13}, + {0, D_14, F_14, E_14}, + {0, D_15, F_15, E_15}, + {0, A_1, C_1, B_1}, + {0, A_2, C_2, B_2}, + {0, A_3, C_3, B_3}, + {0, A_4, C_4, B_4}, + {0, A_5, C_5, B_5}, + {0, A_6, C_6, B_6}, + {0, A_7, C_7, B_7}, + {0, A_8, C_8, B_8}, + {0, A_9, C_9, B_9}, + {0, A_10, C_10, B_10}, + {0, A_11, C_11, B_11}, + {0, A_12, C_12, B_12}, + {0, A_13, C_13, B_13}, + {0, A_14, C_14, B_14}, + {0, A_15, C_15, B_15}, + {1, G_1, I_1, H_1}, + {1, G_2, I_2, H_2}, + {1, G_3, I_3, H_3}, + {1, G_4, I_4, H_4}, + {1, G_5, I_5, H_5}, + {1, G_6, I_6, H_6}, + {1, G_7, I_7, H_7}, + {1, G_8, I_8, H_8}, + {1, G_9, I_9, H_9}, + {1, G_10, I_10, H_10}, + {1, G_11, I_11, H_11}, + {1, G_12, I_12, H_12}, + {1, G_13, I_13, H_13}, + {1, G_14, I_14, H_14}, + {1, G_15, I_15, H_15}, + {1, D_1, F_1, E_1}, + {1, D_2, F_2, E_2}, + {1, D_3, F_3, E_3}, + {1, D_4, F_4, E_4}, + {1, D_5, F_5, E_5}, + {1, D_6, F_6, E_6}, + {1, D_7, F_7, E_7}, + {1, D_8, F_8, E_8}, + {1, D_9, F_9, E_9}, + {1, D_10, F_10, E_10}, + {1, D_11, F_11, E_11}, + {1, D_12, F_12, E_12}, + {1, D_13, F_13, E_13}, + {1, D_14, F_14, E_14}, + {1, D_15, F_15, E_15}, + {1, A_1, C_1, B_1}, + {1, A_2, C_2, B_2}, + {1, A_3, C_3, B_3}, + {1, A_5, C_5, B_5}, + {1, A_6, C_6, B_6}, + {1, A_7, C_7, B_7}, + {1, A_8, C_8, B_8}, + {1, A_9, C_9, B_9}, + {1, A_10, C_10, B_10}, + {1, A_11, C_11, B_11}, + {1, A_12, C_12, B_12}, + {1, A_13, C_13, B_13}, + {1, A_14, C_14, B_14}, + {1, A_15, C_15, B_15}, + {0, G_2, I_2, H_2}, + {1, A_4, C_4, B_4} +}; diff --git a/keyboards/abko/ak84bt/config.h b/keyboards/abko/ak84bt/config.h new file mode 100644 index 00000000000..f6a3b55851f --- /dev/null +++ b/keyboards/abko/ak84bt/config.h @@ -0,0 +1,41 @@ +/* Copyright 2023 temp4gh + * + * This 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 DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_2 0b1010011 + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 45 +#define DRIVER_2_LED_TOTAL 45 + +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) + +#define ENABLE_RGB_MATRIX_SOLID_COLOR +#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_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_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_FLOW diff --git a/keyboards/abko/ak84bt/halconf.h b/keyboards/abko/ak84bt/halconf.h new file mode 100644 index 00000000000..f1dae7232ed --- /dev/null +++ b/keyboards/abko/ak84bt/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 temp4gh + * + * This 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_I2C +#define HAL_USE_I2C TRUE diff --git a/keyboards/abko/ak84bt/info.json b/keyboards/abko/ak84bt/info.json new file mode 100644 index 00000000000..4660fb70248 --- /dev/null +++ b/keyboards/abko/ak84bt/info.json @@ -0,0 +1,225 @@ +{ + "manufacturer": "abko", + "keyboard_name": "ak84bt", + "bootloader": "stm32duino", + "bootmagic": { + "matrix": [1, 0] + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 2 + }, + "features": { + "bootmagic": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "B8", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A6", "A7", "C4", "C5", "B0", "B1", "C6", "C7", "C8", "C9", "A8", "A9", "A10", "A13", "A14", "A15"], + "rows": ["A0", "A1", "A2", "A3", "A4", "A5"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 2, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 2, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 2, "flags": 4}, + {"matrix": [0, 6], "x": 95, "y": 2, "flags": 4}, + {"matrix": [0, 7], "x": 109, "y": 2, "flags": 4}, + {"matrix": [0, 8], "x": 122, "y": 2, "flags": 4}, + {"matrix": [0, 9], "x": 136, "y": 2, "flags": 4}, + {"matrix": [0, 10], "x": 157, "y": 2, "flags": 4}, + {"matrix": [0, 11], "x": 170, "y": 2, "flags": 4}, + {"matrix": [0, 12], "x": 184, "y": 2, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 2, "flags": 4}, + {"matrix": [0, 14], "x": 217, "y": 2, "flags": 4}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 14, "flags": 4}, + {"matrix": [1, 4], "x": 61, "y": 14, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 14, "flags": 4}, + {"matrix": [1, 6], "x": 89, "y": 14, "flags": 4}, + {"matrix": [1, 7], "x": 102, "y": 14, "flags": 4}, + {"matrix": [1, 8], "x": 116, "y": 14, "flags": 4}, + {"matrix": [1, 9], "x": 129, "y": 14, "flags": 4}, + {"matrix": [1, 10], "x": 143, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 157, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 170, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 190, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 217, "y": 14, "flags": 4}, + {"matrix": [2, 0], "x": 10, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 27, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 54, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 150, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 163, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 177, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 194, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 217, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 12, "y": 34, "flags": 4}, + {"matrix": [3, 1], "x": 30, "y": 34, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 58, "y": 34, "flags": 4}, + {"matrix": [3, 4], "x": 71, "y": 34, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 34, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 34, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 34, "flags": 4}, + {"matrix": [3, 8], "x": 126, "y": 34, "flags": 4}, + {"matrix": [3, 9], "x": 140, "y": 34, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 34, "flags": 4}, + {"matrix": [3, 11], "x": 167, "y": 34, "flags": 4}, + {"x": 180, "y": 34, "flags": 4}, + {"matrix": [3, 13], "x": 189, "y": 34, "flags": 4}, + {"matrix": [3, 14], "x": 217, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 44, "flags": 4}, + {"x": 24, "y": 44, "flags": 4}, + {"matrix": [4, 2], "x": 38, "y": 44, "flags": 4}, + {"matrix": [4, 3], "x": 51, "y": 44, "flags": 4}, + {"matrix": [4, 4], "x": 65, "y": 44, "flags": 4}, + {"matrix": [4, 5], "x": 78, "y": 44, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 44, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 44, "flags": 4}, + {"matrix": [4, 8], "x": 119, "y": 44, "flags": 4}, + {"matrix": [4, 9], "x": 133, "y": 44, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 44, "flags": 4}, + {"matrix": [4, 11], "x": 160, "y": 44, "flags": 4}, + {"matrix": [4, 12], "x": 179, "y": 44, "flags": 4}, + {"matrix": [4, 13], "x": 201, "y": 46, "flags": 4}, + {"matrix": [4, 14], "x": 217, "y": 44, "flags": 4}, + {"matrix": [5, 0], "x": 8, "y": 54, "flags": 4}, + {"matrix": [5, 1], "x": 25, "y": 54, "flags": 4}, + {"matrix": [5, 2], "x": 43, "y": 54, "flags": 4}, + {"x": 67, "y": 57, "flags": 4}, + {"x": 80, "y": 57, "flags": 4}, + {"x": 94, "y": 54, "flags": 4}, + {"matrix": [5, 6], "x": 107, "y": 57, "flags": 4}, + {"x": 120, "y": 57, "flags": 4}, + {"matrix": [5, 9], "x": 143, "y": 54, "flags": 4}, + {"matrix": [5, 10], "x": 157, "y": 54, "flags": 4}, + {"matrix": [5, 11], "x": 170, "y": 54, "flags": 4}, + {"matrix": [5, 12], "x": 187, "y": 56, "flags": 4}, + {"matrix": [5, 13], "x": 201, "y": 56, "flags": 4}, + {"matrix": [5, 14], "x": 214, "y": 56, "flags": 4}, + {"x": 207, "y": 23, "flags": 8}, + {"x": 207, "y": 27, "flags": 8} + ] + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x4321", + "vid": "0x7654" + }, + "layout_aliases": { + "LAYOUT_75_ansi": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 1.5, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 2.5, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 3.5, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 4.5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 10.5, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 11.5, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 12.5, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 13.5, "y": 0}, + {"label": "END", "matrix": [0, 15], "x": 15, "y": 0}, + + {"label": "GRV", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "MINS", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "EQL", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "BSPC", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"label": "HOME", "matrix": [1, 14], "x": 15, "y": 1.25}, + + {"label": "TAB", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "LBRC", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "RBRC", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "BSLS", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "DEL", "matrix": [2, 14], "x": 15, "y": 2.25}, + + {"label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": "SCLN", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "QUOT", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "ENT", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"label": "PGUP", "matrix": [3, 14], "x": 15, "y": 3.25}, + + {"label": "LSFT", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "COMM", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": "DOT", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "SLSH", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "RSFT", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "UP", "matrix": [4, 13], "x": 14, "y": 4.25}, + {"label": "PGDN", "matrix": [4, 14], "x": 15, "y": 4.25}, + + {"label": "LCTL", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "LGUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "LALT", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "SPC", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "RALT", "matrix": [5, 9], "x": 10, "y": 5.25}, + {"label": "MO(1)", "matrix": [5, 10], "x": 11, "y": 5.25}, + {"label": "RCTL", "matrix": [5, 11], "x": 12, "y": 5.25}, + {"label": "LEFT", "matrix": [5, 12], "x": 13, "y": 5.25}, + {"label": "DOWN", "matrix": [5, 13], "x": 14, "y": 5.25}, + {"label": "RGHT", "matrix": [5, 14], "x": 15, "y": 5.25} + ] + } + } +} diff --git a/keyboards/abko/ak84bt/keymaps/default/keymap.c b/keyboards/abko/ak84bt/keymaps/default/keymap.c new file mode 100644 index 00000000000..48fab8614b0 --- /dev/null +++ b/keyboards/abko/ak84bt/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2023 temp4gh + * + * This 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 layer_names +{ + _BASE, + _FnLay, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_END, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FnLay), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FnLay] = LAYOUT( + QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI + ) +}; diff --git a/keyboards/abko/ak84bt/mcuconf.h b/keyboards/abko/ak84bt/mcuconf.h new file mode 100644 index 00000000000..9187c76aad0 --- /dev/null +++ b/keyboards/abko/ak84bt/mcuconf.h @@ -0,0 +1,22 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + 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 + + http://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. +*/ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/abko/ak84bt/readme.md b/keyboards/abko/ak84bt/readme.md new file mode 100644 index 00000000000..68269604cc2 --- /dev/null +++ b/keyboards/abko/ak84bt/readme.md @@ -0,0 +1,21 @@ +# AK84BT + +![ak84bt](https://i.imgur.com/tQJ19vxh.jpg) + +A customizable 80% keyboard. + +- Keyboard Maintainer: [temp4gh](https://github.com/temp4gh) +- Hardware Supported: AK84BT PCB +- Hardware Availability: www.abko.co.kr + +Make example for this keyboard (after setting up your build environment): + + make abko/ak84bt:default + +Flashing example for this keyboard: + + make abko/ak84bt:default:flash + +**Reset Key**: Hold down the key located at *K10*, commonly programmed as *Grave* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/jscotto/scottostarter/rules.mk b/keyboards/abko/ak84bt/rules.mk similarity index 100% rename from keyboards/handwired/jscotto/scottostarter/rules.mk rename to keyboards/abko/ak84bt/rules.mk diff --git a/keyboards/abstract/ellipse/rev1/config.h b/keyboards/abstract/ellipse/rev1/config.h index c2632e04174..81349657efa 100644 --- a/keyboards/abstract/ellipse/rev1/config.h +++ b/keyboards/abstract/ellipse/rev1/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 3 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/abstract/ellipse/rev1/info.json b/keyboards/abstract/ellipse/rev1/info.json index 9dfe255ba22..341b5229265 100644 --- a/keyboards/abstract/ellipse/rev1/info.json +++ b/keyboards/abstract/ellipse/rev1/info.json @@ -24,6 +24,12 @@ "pin": "C6", "levels": 15 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 3, + "sleep": true + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/acekeyboard/titan60/config.h b/keyboards/acekeyboard/titan60/config.h index 2f3159192ac..2bcc184a309 100644 --- a/keyboards/acekeyboard/titan60/config.h +++ b/keyboards/acekeyboard/titan60/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 6 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/acekeyboard/titan60/info.json b/keyboards/acekeyboard/titan60/info.json index b384b7bcbf1..8f11e1df071 100644 --- a/keyboards/acekeyboard/titan60/info.json +++ b/keyboards/acekeyboard/titan60/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/acheron/apollo/87h/delta/info.json b/keyboards/acheron/apollo/87h/delta/info.json index c2a702781b9..b5b935ab585 100644 --- a/keyboards/acheron/apollo/87h/delta/info.json +++ b/keyboards/acheron/apollo/87h/delta/info.json @@ -8,7 +8,7 @@ "pin": "B15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C8", "C9", "A8", "A10", "C7", "C6", "B14", "B12", "B10", "B1", "C5", "C4", "A7", "B0", "C11", "A3", "B4"], diff --git a/keyboards/acheron/apollo/87h/delta/rules.mk b/keyboards/acheron/apollo/87h/delta/rules.mk index ce1d65be0f3..723724b7aa2 100644 --- a/keyboards/acheron/apollo/87h/delta/rules.mk +++ b/keyboards/acheron/apollo/87h/delta/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/acheron/apollo/87h/gamma/info.json b/keyboards/acheron/apollo/87h/gamma/info.json index f10a6adb67d..0a3b28e31f6 100644 --- a/keyboards/acheron/apollo/87h/gamma/info.json +++ b/keyboards/acheron/apollo/87h/gamma/info.json @@ -5,7 +5,7 @@ "device_version": "0.0.3" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B3", "A15", "A10", "A8", "B14", "B12", "B10", "B1", "B0", "A7", "A4", "A5", "A6", "C15", "A0", "A1"], diff --git a/keyboards/acheron/apollo/87h/gamma/rules.mk b/keyboards/acheron/apollo/87h/gamma/rules.mk index 25c83bb136c..4af646ec021 100644 --- a/keyboards/acheron/apollo/87h/gamma/rules.mk +++ b/keyboards/acheron/apollo/87h/gamma/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes KEYBOARD_SHARED_EP = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/acheron/apollo/87htsc/info.json b/keyboards/acheron/apollo/87htsc/info.json index 5a140a7bdce..de0388176e7 100644 --- a/keyboards/acheron/apollo/87htsc/info.json +++ b/keyboards/acheron/apollo/87htsc/info.json @@ -12,7 +12,7 @@ "pin": "B15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C8", "C9", "A8", "A10", "C7", "C6", "B14", "B12", "B10", "B1", "C5", "C4", "A7", "B0", "C11", "A3", "B4"], diff --git a/keyboards/acheron/apollo/87htsc/rules.mk b/keyboards/acheron/apollo/87htsc/rules.mk index ce1d65be0f3..723724b7aa2 100644 --- a/keyboards/acheron/apollo/87htsc/rules.mk +++ b/keyboards/acheron/apollo/87htsc/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/acheron/apollo/88htsc/info.json b/keyboards/acheron/apollo/88htsc/info.json index 9fc9210c803..adb2372e608 100644 --- a/keyboards/acheron/apollo/88htsc/info.json +++ b/keyboards/acheron/apollo/88htsc/info.json @@ -12,7 +12,7 @@ "pin": "B15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C8", "C9", "A8", "A10", "C7", "C6", "B14", "B12", "B10", "B1", "C5", "C4", "A7", "B0", "C11", "A3", "B4"], diff --git a/keyboards/acheron/apollo/88htsc/rules.mk b/keyboards/acheron/apollo/88htsc/rules.mk index ce1d65be0f3..723724b7aa2 100644 --- a/keyboards/acheron/apollo/88htsc/rules.mk +++ b/keyboards/acheron/apollo/88htsc/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/acheron/arctic/rules.mk b/keyboards/acheron/arctic/rules.mk index 0aeca0dd9f3..7f4f202a1b7 100644 --- a/keyboards/acheron/arctic/rules.mk +++ b/keyboards/acheron/arctic/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/athena/alpha/alpha.c b/keyboards/acheron/athena/alpha/alpha.c index 26c00e41aa0..9e4f82f7ad1 100644 --- a/keyboards/acheron/athena/alpha/alpha.c +++ b/keyboards/acheron/athena/alpha/alpha.c @@ -23,10 +23,9 @@ void board_init(void) { void keyboard_post_init_kb(void){ // Defining the backlight pin (A6) as an floating (no pullup or pulldown resistor) opendrain output pin - palSetLineMode(BACKLIGHT_PIN, PAL_MODE_ALTERNATE(BACKLIGHT_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING); + palSetLineMode(BACKLIGHT_PIN, PAL_MODE_ALTERNATE(2) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING); } -#define LED_PIN_ON_STATE 1 void led_init_ports(void) { palSetLineMode(LED_CAPS_LOCK_PIN, PAL_MODE_OUTPUT_OPENDRAIN | PAL_STM32_PUPDR_FLOATING); } diff --git a/keyboards/acheron/athena/alpha/config.h b/keyboards/acheron/athena/alpha/config.h index 1f91766add0..ba5c2dedf2c 100644 --- a/keyboards/acheron/athena/alpha/config.h +++ b/keyboards/acheron/athena/alpha/config.h @@ -22,19 +22,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 2 - -#define RGBLED_NUM 34 -#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 WS2812_PWM_COMPLEMENTARY_OUTPUT #define WS2812_PWM_DRIVER PWMD1 diff --git a/keyboards/acheron/athena/alpha/info.json b/keyboards/acheron/athena/alpha/info.json index e72e8aece46..229fd7a8c88 100644 --- a/keyboards/acheron/athena/alpha/info.json +++ b/keyboards/acheron/athena/alpha/info.json @@ -15,6 +15,21 @@ "on_state": 0, "breathing": true }, + "rgblight": { + "led_count": 34, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/acheron/athena/alpha/rules.mk b/keyboards/acheron/athena/alpha/rules.mk index 3d622c22169..086e2474baf 100644 --- a/keyboards/acheron/athena/alpha/rules.mk +++ b/keyboards/acheron/athena/alpha/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes ENCODER_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/athena/beta/config.h b/keyboards/acheron/athena/beta/config.h index 0376a9ac2ca..30c29fa6862 100644 --- a/keyboards/acheron/athena/beta/config.h +++ b/keyboards/acheron/athena/beta/config.h @@ -21,20 +21,7 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE #define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 -#define BACKLIGHT_PAL_MODE 2 - -#define RGBLED_NUM 34 -#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_SWIRL+5 #define WS2812_PWM_COMPLEMENTARY_OUTPUT diff --git a/keyboards/acheron/athena/beta/info.json b/keyboards/acheron/athena/beta/info.json index b2ced072a89..0730833b9b8 100644 --- a/keyboards/acheron/athena/beta/info.json +++ b/keyboards/acheron/athena/beta/info.json @@ -14,6 +14,21 @@ "levels": 20, "breathing": true }, + "rgblight": { + "led_count": 34, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/acheron/athena/beta/rules.mk b/keyboards/acheron/athena/beta/rules.mk index 3d622c22169..086e2474baf 100644 --- a/keyboards/acheron/athena/beta/rules.mk +++ b/keyboards/acheron/athena/beta/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes ENCODER_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/austin/rules.mk b/keyboards/acheron/austin/rules.mk index 295d6960eed..a5089d51a5b 100644 --- a/keyboards/acheron/austin/rules.mk +++ b/keyboards/acheron/austin/rules.mk @@ -10,5 +10,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/elongate/beta/config.h b/keyboards/acheron/elongate/beta/config.h index 81093a2838f..62093e37b23 100644 --- a/keyboards/acheron/elongate/beta/config.h +++ b/keyboards/acheron/elongate/beta/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/acheron/elongate/beta/info.json b/keyboards/acheron/elongate/beta/info.json index 5f46a2a48c0..2bbb214bd00 100644 --- a/keyboards/acheron/elongate/beta/info.json +++ b/keyboards/acheron/elongate/beta/info.json @@ -8,6 +8,24 @@ "pid": "0x454C", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D7" }, diff --git a/keyboards/acheron/elongate/delta/config.h b/keyboards/acheron/elongate/delta/config.h index 2113a65b3a8..81342ef26dc 100755 --- a/keyboards/acheron/elongate/delta/config.h +++ b/keyboards/acheron/elongate/delta/config.h @@ -21,19 +21,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_CHANNEL 1 #define BACKLIGHT_PAL_MODE 1 -#define RGBLED_NUM 16 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 5) /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/acheron/elongate/delta/delta.c b/keyboards/acheron/elongate/delta/delta.c index e83516b5667..e621b4495b5 100755 --- a/keyboards/acheron/elongate/delta/delta.c +++ b/keyboards/acheron/elongate/delta/delta.c @@ -16,7 +16,6 @@ #include "quantum.h" -#define LED_PIN_ON_STATE 1 // Inits all indicator LEDs as push-pull outputs void led_init_ports(void) { palSetLineMode(LED1_PIN, PAL_MODE_OUTPUT_PUSHPULL); diff --git a/keyboards/acheron/elongate/delta/info.json b/keyboards/acheron/elongate/delta/info.json index c753810954b..19991ecb861 100644 --- a/keyboards/acheron/elongate/delta/info.json +++ b/keyboards/acheron/elongate/delta/info.json @@ -20,7 +20,21 @@ "breathing_period": 3 }, "rgblight": { - "max_brightness": 200 + "led_count": 16, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "ws2812": { "pin": "B15" diff --git a/keyboards/acheron/elongate/delta/rules.mk b/keyboards/acheron/elongate/delta/rules.mk old mode 100755 new mode 100644 index f84ab5d6023..3d5cb57ad50 --- a/keyboards/acheron/elongate/delta/rules.mk +++ b/keyboards/acheron/elongate/delta/rules.mk @@ -10,5 +10,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/keebspcb/rules.mk b/keyboards/acheron/keebspcb/rules.mk index f94f12cb84a..5356b24d77c 100644 --- a/keyboards/acheron/keebspcb/rules.mk +++ b/keyboards/acheron/keebspcb/rules.mk @@ -10,5 +10,3 @@ 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 -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/lasgweloth/rules.mk b/keyboards/acheron/lasgweloth/rules.mk index 93f25a13d8d..5b6b0c92991 100644 --- a/keyboards/acheron/lasgweloth/rules.mk +++ b/keyboards/acheron/lasgweloth/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/shark/alpha/config.h b/keyboards/acheron/shark/alpha/config.h index 91f51146f0b..a34ea41cffb 100644 --- a/keyboards/acheron/shark/alpha/config.h +++ b/keyboards/acheron/shark/alpha/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once #define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/acheron/shark/beta/config.h b/keyboards/acheron/shark/beta/config.h index 348b284a3ff..d862fd016de 100644 --- a/keyboards/acheron/shark/beta/config.h +++ b/keyboards/acheron/shark/beta/config.h @@ -22,19 +22,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 2 - -#define RGBLED_NUM 24 -#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 WS2812_PWM_COMPLEMENTARY_OUTPUT #define WS2812_PWM_DRIVER PWMD1 diff --git a/keyboards/acheron/shark/beta/info.json b/keyboards/acheron/shark/beta/info.json index 504e86f4b3f..5ec24036384 100644 --- a/keyboards/acheron/shark/beta/info.json +++ b/keyboards/acheron/shark/beta/info.json @@ -14,6 +14,21 @@ {"pin_a": "C15", "pin_b": "C14"} ] }, + "rgblight": { + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/acheron/shark/beta/rules.mk b/keyboards/acheron/shark/beta/rules.mk index fd436cc258a..a398475a3eb 100644 --- a/keyboards/acheron/shark/beta/rules.mk +++ b/keyboards/acheron/shark/beta/rules.mk @@ -15,5 +15,3 @@ ENCODER_ENABLE = yes EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ada/ada1800mini/config.h b/keyboards/ada/ada1800mini/config.h deleted file mode 100644 index 92f08f354ce..00000000000 --- a/keyboards/ada/ada1800mini/config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright 2022 peepeetee - * - * This 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 - -//TODO: implement RGB matrix when I get the hardware - #define RGBLED_NUM 100 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/ada/ada1800mini/info.json b/keyboards/ada/ada1800mini/info.json index 1768a7b55b4..22cac5ade4d 100644 --- a/keyboards/ada/ada1800mini/info.json +++ b/keyboards/ada/ada1800mini/info.json @@ -12,7 +12,23 @@ "pin": "F0" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 100, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "B3", "B2", "B1"], diff --git a/keyboards/ada/infinity81/config.h b/keyboards/ada/infinity81/config.h index 336bd351f1b..86415b251a0 100644 --- a/keyboards/ada/infinity81/config.h +++ b/keyboards/ada/infinity81/config.h @@ -3,22 +3,6 @@ #pragma once -# define RGBLED_NUM 107 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ada/infinity81/info.json b/keyboards/ada/infinity81/info.json index f957a01094c..f56b6f92d13 100644 --- a/keyboards/ada/infinity81/info.json +++ b/keyboards/ada/infinity81/info.json @@ -8,6 +8,24 @@ "pid": "0x0081", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 107, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/adafruit/macropad/config.h b/keyboards/adafruit/macropad/config.h index 08db87fefe1..818a8229f58 100644 --- a/keyboards/adafruit/macropad/config.h +++ b/keyboards/adafruit/macropad/config.h @@ -55,7 +55,6 @@ /* RGB Defines */ # define RGB_MATRIX_LED_COUNT 12 -# define RGBLED_NUM 12 /* Enable Framebuffer and keypress effects */ # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/adafruit/macropad/info.json b/keyboards/adafruit/macropad/info.json index febf1e61f68..bac0061f3eb 100644 --- a/keyboards/adafruit/macropad/info.json +++ b/keyboards/adafruit/macropad/info.json @@ -14,7 +14,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "bootmagic": { "matrix": [1, 2] diff --git a/keyboards/adkb96/info.json b/keyboards/adkb96/info.json index 47e08a7ed7d..aa7e5a6921e 100644 --- a/keyboards/adkb96/info.json +++ b/keyboards/adkb96/info.json @@ -16,6 +16,9 @@ "split": { "soft_serial_pin": "D0" }, + "tapping": { + "term": 100 + }, "processor": "atmega32u4", "bootloader": "caterina", "layout_aliases": { diff --git a/keyboards/adkb96/rev1/config.h b/keyboards/adkb96/rev1/config.h index 89de3d9a643..0b8941e7760 100644 --- a/keyboards/adkb96/rev1/config.h +++ b/keyboards/adkb96/rev1/config.h @@ -18,9 +18,6 @@ along with this program. If not, see . #pragma once -/* define tapping term */ -#define TAPPING_TERM 100 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/adm42/config.h b/keyboards/adm42/config.h index af23da4c662..b5ba2eb94ea 100644 --- a/keyboards/adm42/config.h +++ b/keyboards/adm42/config.h @@ -16,8 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 1 - #if defined(CONSOLE_ENABLE) #define DEBUG_MATRIX_SCAN_RATE #endif diff --git a/keyboards/adm42/info.json b/keyboards/adm42/info.json index 0ffebff135a..b2bdbc4dad0 100644 --- a/keyboards/adm42/info.json +++ b/keyboards/adm42/info.json @@ -13,7 +13,14 @@ "pin": "B7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 24 + }, + "qmk": { + "tap_keycode_delay": 1 + }, + "build": { + "debounce_type": "sym_eager_pk" }, "matrix_pins": { "cols": ["C6", "B6", "B5", "B4", "D7", "D6", "F0", "F1", "F4", "F5", "F6", "F7"], diff --git a/keyboards/adm42/rev4/config.h b/keyboards/adm42/rev4/config.h index fbf2e300eff..5553b18751c 100644 --- a/keyboards/adm42/rev4/config.h +++ b/keyboards/adm42/rev4/config.h @@ -27,10 +27,6 @@ #define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 20 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_MATRIX_SAT_STEP 24 -#define RGB_MATRIX_HUE_STEP 8 -#define RGB_MATRIX_VAL_STEP 16 -#define RGB_MATRIX_SPD_STEP 16 #define ENABLE_RGB_MATRIX_BREATHING #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT diff --git a/keyboards/adm42/rules.mk b/keyboards/adm42/rules.mk index 73e4d46c59c..a2402f19a9b 100644 --- a/keyboards/adm42/rules.mk +++ b/keyboards/adm42/rules.mk @@ -10,7 +10,6 @@ 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 -DEBOUNCE_TYPE = sym_eager_pk LTO_ENABLE = yes DEFAULT_FOLDER = adm42/rev4 diff --git a/keyboards/adpenrose/akemipad/config.h b/keyboards/adpenrose/akemipad/config.h index 5756903c664..230453c3a00 100644 --- a/keyboards/adpenrose/akemipad/config.h +++ b/keyboards/adpenrose/akemipad/config.h @@ -3,8 +3,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - /* Audio functionality */ #define AUDIO_PIN C6 #define AUDIO_CLICKY diff --git a/keyboards/adpenrose/akemipad/info.json b/keyboards/adpenrose/akemipad/info.json index fb70fb00a4f..0484578571b 100644 --- a/keyboards/adpenrose/akemipad/info.json +++ b/keyboards/adpenrose/akemipad/info.json @@ -11,7 +11,7 @@ "pin": "F4" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D3", "D2", "F5", "F6", "B2"], @@ -23,6 +23,9 @@ {"pin_a": "B1", "pin_b": "B3"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/rules.mk b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/rules.mk index d24a189b81d..d313f3a4f96 100644 --- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/rules.mk +++ b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/rules.mk @@ -5,5 +5,4 @@ GRAVE_ESC_ENABLE = no MAGIC_ENABLE = no ENCODER_MAP_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/config.h b/keyboards/adpenrose/kintsugi/config.h deleted file mode 100644 index 088b40139bf..00000000000 --- a/keyboards/adpenrose/kintsugi/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -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 - -#define TAP_CODE_DELAY 10 - -/* Underglow options: */ -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 diff --git a/keyboards/adpenrose/kintsugi/info.json b/keyboards/adpenrose/kintsugi/info.json index 3daf3326acd..42cc69ed7fe 100644 --- a/keyboards/adpenrose/kintsugi/info.json +++ b/keyboards/adpenrose/kintsugi/info.json @@ -8,6 +8,23 @@ "pid": "0x0001", "device_version": "1.0.0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "F1" }, @@ -21,6 +38,9 @@ {"pin_a": "B7", "pin_b": "D5"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/adpenrose/kintsugi/rules.mk b/keyboards/adpenrose/kintsugi/rules.mk index 4704a3487dc..864f929c81e 100644 --- a/keyboards/adpenrose/kintsugi/rules.mk +++ b/keyboards/adpenrose/kintsugi/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Encoder functionality OLED_ENABLE = yes # OLED functionality -OLED_DRIVER = SSD1306 diff --git a/keyboards/adpenrose/mine/config.h b/keyboards/adpenrose/mine/config.h new file mode 100644 index 00000000000..cc05ddf8f17 --- /dev/null +++ b/keyboards/adpenrose/mine/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 Arturo Avila (@Arturo Avila) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Solenoid pin */ +#define SOLENOID_PIN A7 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/adpenrose/mine/info.json b/keyboards/adpenrose/mine/info.json new file mode 100644 index 00000000000..5010485602d --- /dev/null +++ b/keyboards/adpenrose/mine/info.json @@ -0,0 +1,357 @@ +{ + "manufacturer": "ADPenrose", + "keyboard_name": "Mine", + "maintainer": "Arturo Avila", + "usb": { + "device_version": "1.0.0", + "pid": "0x0006", + "vid": "0x4450" + }, + "features": { + "encoder": true, + "bootmagic": true, + "extrakey": true + }, + "build": { + "lto": true + }, + "encoder": { + "rotary": [{ "pin_a": "C4", "pin_b": "C3" }] + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["A0", "A1", "A4", "A3", "C7", "B4", "B5", "B6", "A6", "A2", "A5"], + "cols": ["B0", "B1", "B2", "B3", "D0", "D1", "D5", "D6", "C6", "C5"] + }, + "processor": "atmega32a", + "bootloader": "usbasploader", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Enc", "matrix": [0, 9], "x": 20.75, "y": 0 }, + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "label": "F2", "matrix": [1, 1], "x": 2.25, "y": 0 }, + { "label": "F3", "matrix": [0, 2], "x": 3.5, "y": 0 }, + { "label": "F4", "matrix": [1, 2], "x": 4.5, "y": 0 }, + { "label": "F5", "matrix": [0, 3], "x": 5.75, "y": 0 }, + { "label": "F6", "matrix": [1, 3], "x": 6.75, "y": 0 }, + { "label": "F7", "matrix": [9, 3], "x": 9.25, "y": 0 }, + { "label": "F8", "matrix": [10, 3], "x": 10.25, "y": 0 }, + { "label": "F9", "matrix": [0, 4], "x": 11.5, "y": 0 }, + { "label": "F10", "matrix": [0, 5], "x": 12.5, "y": 0 }, + { "label": "F11", "matrix": [0, 6], "x": 13.75, "y": 0 }, + { "label": "F12", "matrix": [1, 6], "x": 14.75, "y": 0 }, + { "label": "M1", "matrix": [10, 6], "x": 16, "y": 0 }, + { "label": "M2", "matrix": [0, 7], "x": 17, "y": 0 }, + { "label": "Num Lock", "matrix": [1, 7], "x": 17.75, "y": 1.25 }, + { "label": "/", "matrix": [0, 8], "x": 18.75, "y": 1.25 }, + { "label": "*", "matrix": [10, 8], "x": 19.75, "y": 1.25 }, + { "label": "-", "matrix": [1, 9], "x": 20.75, "y": 1.25 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [10, 0], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [2, 1], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [10, 1], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [2, 2], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [10, 2], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [2, 3], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [8, 3], "x": 9.25, "y": 1.25 }, + { "label": "*", "matrix": [1, 4], "x": 10.25, "y": 1.25 }, + { "label": "(", "matrix": [10, 4], "x": 11.25, "y": 1.25 }, + { "label": ")", "matrix": [1, 5], "x": 12.25, "y": 1.25 }, + { "label": "_", "matrix": [10, 5], "x": 13.25, "y": 1.25 }, + { "label": "+", "matrix": [2, 6], "x": 14.25, "y": 1.25 }, + { "label": "Backspace", "matrix": [9, 6], "w": 2, "x": 15.25, "y": 1.25 }, + { "label": "7", "matrix": [2, 7], "x": 17.75, "y": 2.25 }, + { "label": "8", "matrix": [1, 8], "x": 18.75, "y": 2.25 }, + { "label": "9", "matrix": [9, 8], "x": 19.75, "y": 2.25 }, + { "h": 2, "label": "+", "matrix": [8, 8], "x": 20.75, "y": 2.25 }, + + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "Q", "matrix": [9, 0], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [3, 1], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [9, 1], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [3, 2], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [9, 2], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [7, 3], "x": 8.75, "y": 2.25 }, + { "label": "U", "matrix": [2, 4], "x": 9.75, "y": 2.25 }, + { "label": "I", "matrix": [9, 4], "x": 10.75, "y": 2.25 }, + { "label": "O", "matrix": [2, 5], "x": 11.75, "y": 2.25 }, + { "label": "P", "matrix": [9, 5], "x": 12.75, "y": 2.25 }, + { "label": "{", "matrix": [3, 6], "x": 13.75, "y": 2.25 }, + { "label": "}", "matrix": [8, 6], "x": 14.75, "y": 2.25 }, + { "label": "|", "matrix": [7, 7], "w": 1.5, "x": 15.75, "y": 2.25 }, + { "label": "4", "matrix": [3, 7], "x": 17.75, "y": 3.25 }, + { "label": "5", "matrix": [2, 8], "x": 18.75, "y": 3.25 }, + { "label": "6", "matrix": [7, 8], "x": 19.75, "y": 3.25 }, + + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "A", "matrix": [8, 0], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [4, 1], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [8, 1], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [8, 2], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [6, 3], "x": 9, "y": 3.25 }, + { "label": "J", "matrix": [3, 4], "x": 10, "y": 3.25 }, + { "label": "K", "matrix": [8, 4], "x": 11, "y": 3.25 }, + { "label": "L", "matrix": [3, 5], "x": 12, "y": 3.25 }, + { "label": ":", "matrix": [8, 5], "x": 13, "y": 3.25 }, + { "label": "\\", "matrix": [4, 6], "x": 14, "y": 3.25 }, + { "label": "#", "matrix": [6, 6], "x": 15, "y": 3.25 }, + { "label": "Enter", "matrix": [7, 6], "w": 2.25, "x": 15, "y": 3.25 }, + { "label": "1", "matrix": [4, 7], "x": 17.75, "y": 4.25 }, + { "label": "2", "matrix": [3, 8], "x": 18.75, "y": 4.25 }, + { "label": "3", "matrix": [6, 8], "x": 19.75, "y": 4.25 }, + { "h": 2, "label": "Enter", "matrix": [5, 8], "x": 20.75, "y": 4.25 }, + + { "label": "Shift", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "label": "~", "matrix": [7, 0], "x": 1.25, "y": 4.25 }, + { "label": "Z", "matrix": [5, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [7, 1], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [5, 2], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [7, 2], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [3, 3], "x": 6.25, "y": 4.25 }, + { "label": "B", "matrix": [5, 3], "x": 8.5, "y": 4.25 }, + { "label": "N", "matrix": [4, 4], "x": 9.5, "y": 4.25 }, + { "label": "M", "matrix": [5, 4], "x": 10.5, "y": 4.25 }, + { "label": "<", "matrix": [7, 4], "x": 11.5, "y": 4.25 }, + { "label": ">", "matrix": [4, 5], "x": 12.5, "y": 4.25 }, + { "label": "?", "matrix": [7, 5], "x": 13.5, "y": 4.25 }, + { "label": "Shift", "matrix": [5, 6], "w": 2.75, "x": 14.5, "y": 4.25 }, + { "label": "Up", "matrix": [5, 7], "x": 17.5, "y": 5.5 }, + { "label": "0", "matrix": [10, 7], "x": 18.75, "y": 5.25 }, + { "label": ".", "matrix": [4, 8], "x": 19.75, "y": 5.25 }, + + { "label": "LCtrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "LWin", "matrix": [6, 0], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "LAlt", "matrix": [6, 1], "w": 1.25, "x": 3.25, "y": 5.25 }, + { "label": "LSpacebar", "matrix": [6, 2], "w": 2.75, "x": 4.5, "y": 5.25 }, + { "label": "RSpacebar", "matrix": [4, 3], "w": 2.25, "x": 8.5, "y": 5.25 }, + { "label": "RAlt", "matrix": [6, 4], "w": 1.25, "x": 10.75, "y": 5.25 }, + { "label": "RWin", "matrix": [5, 5], "w": 1.25, "x": 14.75, "y": 5.25 }, + { "label": "RCtrl", "matrix": [6, 5], "w": 1.25, "x": 16, "y": 5.25 }, + { "label": "Left", "matrix": [6, 7], "x": 16.5, "y": 6.5 }, + { "label": "Down", "matrix": [8, 7], "x": 17.5, "y": 6.5 }, + { "label": "Right", "matrix": [9, 7], "x": 18.5, "y": 6.5 } + ] + }, + "LAYOUT_1800_alice_ansi": { + "layout": [ + { "label": "Enc", "matrix": [0, 9], "x": 20.75, "y": 0 }, + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "label": "F2", "matrix": [1, 1], "x": 2.25, "y": 0 }, + { "label": "F3", "matrix": [0, 2], "x": 3.5, "y": 0 }, + { "label": "F4", "matrix": [1, 2], "x": 4.5, "y": 0 }, + { "label": "F5", "matrix": [0, 3], "x": 5.75, "y": 0 }, + { "label": "F6", "matrix": [1, 3], "x": 6.75, "y": 0 }, + { "label": "F7", "matrix": [9, 3], "x": 9.25, "y": 0 }, + { "label": "F8", "matrix": [10, 3], "x": 10.25, "y": 0 }, + { "label": "F9", "matrix": [0, 4], "x": 11.5, "y": 0 }, + { "label": "F10", "matrix": [0, 5], "x": 12.5, "y": 0 }, + { "label": "F11", "matrix": [0, 6], "x": 13.75, "y": 0 }, + { "label": "F12", "matrix": [1, 6], "x": 14.75, "y": 0 }, + { "label": "M1", "matrix": [10, 6], "x": 16, "y": 0 }, + { "label": "M2", "matrix": [0, 7], "x": 17, "y": 0 }, + { "label": "Num Lock", "matrix": [1, 7], "x": 17.75, "y": 1.25 }, + { "label": "/", "matrix": [0, 8], "x": 18.75, "y": 1.25 }, + { "label": "*", "matrix": [10, 8], "x": 19.75, "y": 1.25 }, + { "label": "-", "matrix": [1, 9], "x": 20.75, "y": 1.25 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [10, 0], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [2, 1], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [10, 1], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [2, 2], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [10, 2], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [2, 3], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [8, 3], "x": 9.25, "y": 1.25 }, + { "label": "*", "matrix": [1, 4], "x": 10.25, "y": 1.25 }, + { "label": "(", "matrix": [10, 4], "x": 11.25, "y": 1.25 }, + { "label": ")", "matrix": [1, 5], "x": 12.25, "y": 1.25 }, + { "label": "_", "matrix": [10, 5], "x": 13.25, "y": 1.25 }, + { "label": "+", "matrix": [2, 6], "x": 14.25, "y": 1.25 }, + { "label": "Backspace", "matrix": [9, 6], "w": 2, "x": 15.25, "y": 1.25 }, + { "label": "7", "matrix": [2, 7], "x": 17.75, "y": 2.25 }, + { "label": "8", "matrix": [1, 8], "x": 18.75, "y": 2.25 }, + { "label": "9", "matrix": [9, 8], "x": 19.75, "y": 2.25 }, + { "h": 2, "label": "+", "matrix": [8, 8], "x": 20.75, "y": 2.25 }, + + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "Q", "matrix": [9, 0], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [3, 1], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [9, 1], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [3, 2], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [9, 2], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [7, 3], "x": 8.75, "y": 2.25 }, + { "label": "U", "matrix": [2, 4], "x": 9.75, "y": 2.25 }, + { "label": "I", "matrix": [9, 4], "x": 10.75, "y": 2.25 }, + { "label": "O", "matrix": [2, 5], "x": 11.75, "y": 2.25 }, + { "label": "P", "matrix": [9, 5], "x": 12.75, "y": 2.25 }, + { "label": "{", "matrix": [3, 6], "x": 13.75, "y": 2.25 }, + { "label": "}", "matrix": [8, 6], "x": 14.75, "y": 2.25 }, + { "label": "|", "matrix": [7, 7], "w": 1.5, "x": 15.75, "y": 2.25 }, + { "label": "4", "matrix": [3, 7], "x": 17.75, "y": 3.25 }, + { "label": "5", "matrix": [2, 8], "x": 18.75, "y": 3.25 }, + { "label": "6", "matrix": [7, 8], "x": 19.75, "y": 3.25 }, + + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "A", "matrix": [8, 0], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [4, 1], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [8, 1], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [8, 2], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [6, 3], "x": 9, "y": 3.25 }, + { "label": "J", "matrix": [3, 4], "x": 10, "y": 3.25 }, + { "label": "K", "matrix": [8, 4], "x": 11, "y": 3.25 }, + { "label": "L", "matrix": [3, 5], "x": 12, "y": 3.25 }, + { "label": ":", "matrix": [8, 5], "x": 13, "y": 3.25 }, + { "label": "\\", "matrix": [4, 6], "x": 14, "y": 3.25 }, + { "label": "Enter", "matrix": [7, 6], "w": 2.25, "x": 15, "y": 3.25 }, + { "label": "1", "matrix": [4, 7], "x": 17.75, "y": 4.25 }, + { "label": "2", "matrix": [3, 8], "x": 18.75, "y": 4.25 }, + { "label": "3", "matrix": [6, 8], "x": 19.75, "y": 4.25 }, + { "h": 2, "label": "Enter", "matrix": [5, 8], "x": 20.75, "y": 4.25 }, + + { "label": "Shift", "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "label": "Z", "matrix": [5, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [7, 1], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [5, 2], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [7, 2], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [3, 3], "x": 6.25, "y": 4.25 }, + { "label": "B", "matrix": [5, 3], "x": 8.5, "y": 4.25 }, + { "label": "N", "matrix": [4, 4], "x": 9.5, "y": 4.25 }, + { "label": "M", "matrix": [5, 4], "x": 10.5, "y": 4.25 }, + { "label": "<", "matrix": [7, 4], "x": 11.5, "y": 4.25 }, + { "label": ">", "matrix": [4, 5], "x": 12.5, "y": 4.25 }, + { "label": "?", "matrix": [7, 5], "x": 13.5, "y": 4.25 }, + { "label": "Shift", "matrix": [5, 6], "w": 2.75, "x": 14.5, "y": 4.25 }, + { "label": "Up", "matrix": [5, 7], "x": 17.5, "y": 5.5 }, + { "label": "0", "matrix": [10, 7], "x": 18.75, "y": 5.25 }, + { "label": ".", "matrix": [4, 8], "x": 19.75, "y": 5.25 }, + + { "label": "LCtrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "LWin", "matrix": [6, 0], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "LAlt", "matrix": [6, 1], "w": 1.25, "x": 3.25, "y": 5.25 }, + { "label": "LSpacebar", "matrix": [6, 2], "w": 2.75, "x": 4.5, "y": 5.25 }, + { "label": "RSpacebar", "matrix": [4, 3], "w": 2.25, "x": 8.5, "y": 5.25 }, + { "label": "RAlt", "matrix": [6, 4], "w": 1.25, "x": 10.75, "y": 5.25 }, + { "label": "RWin", "matrix": [5, 5], "w": 1.25, "x": 14.75, "y": 5.25 }, + { "label": "RCtrl", "matrix": [6, 5], "w": 1.25, "x": 16, "y": 5.25 }, + { "label": "Left", "matrix": [6, 7], "x": 16.5, "y": 6.5 }, + { "label": "Down", "matrix": [8, 7], "x": 17.5, "y": 6.5 }, + { "label": "Right", "matrix": [9, 7], "x": 18.5, "y": 6.5 } + ] + }, + "LAYOUT_1800_alice_iso": { + "layout": [ + { "label": "Enc", "matrix": [0, 9], "x": 20.75, "y": 0 }, + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "label": "F2", "matrix": [1, 1], "x": 2.25, "y": 0 }, + { "label": "F3", "matrix": [0, 2], "x": 3.5, "y": 0 }, + { "label": "F4", "matrix": [1, 2], "x": 4.5, "y": 0 }, + { "label": "F5", "matrix": [0, 3], "x": 5.75, "y": 0 }, + { "label": "F6", "matrix": [1, 3], "x": 6.75, "y": 0 }, + { "label": "F7", "matrix": [9, 3], "x": 9.25, "y": 0 }, + { "label": "F8", "matrix": [10, 3], "x": 10.25, "y": 0 }, + { "label": "F9", "matrix": [0, 4], "x": 11.5, "y": 0 }, + { "label": "F10", "matrix": [0, 5], "x": 12.5, "y": 0 }, + { "label": "F11", "matrix": [0, 6], "x": 13.75, "y": 0 }, + { "label": "F12", "matrix": [1, 6], "x": 14.75, "y": 0 }, + { "label": "M1", "matrix": [10, 6], "x": 16, "y": 0 }, + { "label": "M2", "matrix": [0, 7], "x": 17, "y": 0 }, + { "label": "Num Lock", "matrix": [1, 7], "x": 17.75, "y": 1.25 }, + { "label": "/", "matrix": [0, 8], "x": 18.75, "y": 1.25 }, + { "label": "*", "matrix": [10, 8], "x": 19.75, "y": 1.25 }, + { "label": "-", "matrix": [1, 9], "x": 20.75, "y": 1.25 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [10, 0], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [2, 1], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [10, 1], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [2, 2], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [10, 2], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [2, 3], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [8, 3], "x": 9.25, "y": 1.25 }, + { "label": "*", "matrix": [1, 4], "x": 10.25, "y": 1.25 }, + { "label": "(", "matrix": [10, 4], "x": 11.25, "y": 1.25 }, + { "label": ")", "matrix": [1, 5], "x": 12.25, "y": 1.25 }, + { "label": "_", "matrix": [10, 5], "x": 13.25, "y": 1.25 }, + { "label": "+", "matrix": [2, 6], "x": 14.25, "y": 1.25 }, + { "label": "Backspace", "matrix": [9, 6], "w": 2, "x": 15.25, "y": 1.25 }, + { "label": "7", "matrix": [2, 7], "x": 17.75, "y": 2.25 }, + { "label": "8", "matrix": [1, 8], "x": 18.75, "y": 2.25 }, + { "label": "9", "matrix": [9, 8], "x": 19.75, "y": 2.25 }, + { "h": 2, "label": "+", "matrix": [8, 8], "x": 20.75, "y": 2.25 }, + + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "Q", "matrix": [9, 0], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [3, 1], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [9, 1], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [3, 2], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [9, 2], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [7, 3], "x": 8.75, "y": 2.25 }, + { "label": "U", "matrix": [2, 4], "x": 9.75, "y": 2.25 }, + { "label": "I", "matrix": [9, 4], "x": 10.75, "y": 2.25 }, + { "label": "O", "matrix": [2, 5], "x": 11.75, "y": 2.25 }, + { "label": "P", "matrix": [9, 5], "x": 12.75, "y": 2.25 }, + { "label": "{", "matrix": [3, 6], "x": 13.75, "y": 2.25 }, + { "label": "}", "matrix": [8, 6], "x": 14.75, "y": 2.25 }, + { "label": "4", "matrix": [3, 7], "x": 17.75, "y": 3.25 }, + { "label": "5", "matrix": [2, 8], "x": 18.75, "y": 3.25 }, + { "label": "6", "matrix": [7, 8], "x": 19.75, "y": 3.25 }, + + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "A", "matrix": [8, 0], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [4, 1], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [8, 1], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [8, 2], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [6, 3], "x": 9, "y": 3.25 }, + { "label": "J", "matrix": [3, 4], "x": 10, "y": 3.25 }, + { "label": "K", "matrix": [8, 4], "x": 11, "y": 3.25 }, + { "label": "L", "matrix": [3, 5], "x": 12, "y": 3.25 }, + { "label": ":", "matrix": [8, 5], "x": 13, "y": 3.25 }, + { "label": "\\", "matrix": [4, 6], "x": 14, "y": 3.25 }, + { "label": "#", "matrix": [6, 6], "x": 15, "y": 3.25 }, + { "h": 2, "label": "Enter", "matrix": [7, 6], "w": 1.25, "x": 16, "y": 2.25 }, + { "label": "1", "matrix": [4, 7], "x": 17.75, "y": 4.25 }, + { "label": "2", "matrix": [3, 8], "x": 18.75, "y": 4.25 }, + { "label": "3", "matrix": [6, 8], "x": 19.75, "y": 4.25 }, + { "h": 2, "label": "Enter", "matrix": [5, 8], "x": 20.75, "y": 4.25 }, + + { "label": "Shift", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "label": "~", "matrix": [7, 0], "x": 1.25, "y": 4.25 }, + { "label": "Z", "matrix": [5, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [7, 1], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [5, 2], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [7, 2], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [3, 3], "x": 6.25, "y": 4.25 }, + { "label": "B", "matrix": [5, 3], "x": 8.5, "y": 4.25 }, + { "label": "N", "matrix": [4, 4], "x": 9.5, "y": 4.25 }, + { "label": "M", "matrix": [5, 4], "x": 10.5, "y": 4.25 }, + { "label": "<", "matrix": [7, 4], "x": 11.5, "y": 4.25 }, + { "label": ">", "matrix": [4, 5], "x": 12.5, "y": 4.25 }, + { "label": "?", "matrix": [7, 5], "x": 13.5, "y": 4.25 }, + { "label": "Shift", "matrix": [5, 6], "w": 2.75, "x": 14.5, "y": 4.25 }, + { "label": "Up", "matrix": [5, 7], "x": 17.5, "y": 5.5 }, + { "label": "0", "matrix": [10, 7], "x": 18.75, "y": 5.25 }, + { "label": ".", "matrix": [4, 8], "x": 19.75, "y": 5.25 }, + + { "label": "LCtrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "LWin", "matrix": [6, 0], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "LAlt", "matrix": [6, 1], "w": 1.25, "x": 3.25, "y": 5.25 }, + { "label": "LSpacebar", "matrix": [6, 2], "w": 2.75, "x": 4.5, "y": 5.25 }, + { "label": "RSpacebar", "matrix": [4, 3], "w": 2.25, "x": 8.5, "y": 5.25 }, + { "label": "RAlt", "matrix": [6, 4], "w": 1.25, "x": 10.75, "y": 5.25 }, + { "label": "RWin", "matrix": [5, 5], "w": 1.25, "x": 14.75, "y": 5.25 }, + { "label": "RCtrl", "matrix": [6, 5], "w": 1.25, "x": 16, "y": 5.25 }, + { "label": "Left", "matrix": [6, 7], "x": 16.5, "y": 6.5 }, + { "label": "Down", "matrix": [8, 7], "x": 17.5, "y": 6.5 }, + { "label": "Right", "matrix": [9, 7], "x": 18.5, "y": 6.5 } + ] + } + } +} diff --git a/keyboards/adpenrose/mine/keymaps/default/keymap.c b/keyboards/adpenrose/mine/keymaps/default/keymap.c new file mode 100644 index 00000000000..3d6cf31bd86 --- /dev/null +++ b/keyboards/adpenrose/mine/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +// Copyright 2022 Arturo Avila (@Arturo Avila) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_1800_alice_ansi( + KC_MUTE, + 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_HOME, KC_END, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_P1, KC_P2, KC_P3, KC_PENT, + 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_P0, KC_PDOT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_1800_alice_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif \ No newline at end of file diff --git a/keyboards/adpenrose/mine/keymaps/default/rules.mk b/keyboards/adpenrose/mine/keymaps/default/rules.mk new file mode 100644 index 00000000000..4769500eb06 --- /dev/null +++ b/keyboards/adpenrose/mine/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes # Encoder mapping functionality \ No newline at end of file diff --git a/keyboards/adpenrose/mine/keymaps/iso/keymap.c b/keyboards/adpenrose/mine/keymaps/iso/keymap.c new file mode 100644 index 00000000000..988330c979f --- /dev/null +++ b/keyboards/adpenrose/mine/keymaps/iso/keymap.c @@ -0,0 +1,33 @@ +// Copyright 2022 Arturo Avila (@Arturo Avila) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_1800_alice_iso( + KC_MUTE, + 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_HOME, KC_END, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_P1, KC_P2, KC_P3, KC_PENT, + KC_LSFT, MO(1), 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_P0, KC_PDOT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_1800_alice_iso( + 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_PSCR, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif \ No newline at end of file diff --git a/keyboards/adpenrose/mine/keymaps/iso/rules.mk b/keyboards/adpenrose/mine/keymaps/iso/rules.mk new file mode 100644 index 00000000000..4769500eb06 --- /dev/null +++ b/keyboards/adpenrose/mine/keymaps/iso/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes # Encoder mapping functionality \ No newline at end of file diff --git a/keyboards/adpenrose/mine/keymaps/solenoid/keymap.c b/keyboards/adpenrose/mine/keymaps/solenoid/keymap.c new file mode 100644 index 00000000000..cd9e1768eb6 --- /dev/null +++ b/keyboards/adpenrose/mine/keymaps/solenoid/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2022 Arturo Avila (@Arturo Avila) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + HF_TOGG, + 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_HOME, KC_END, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_P1, KC_P2, KC_P3, KC_PENT, + KC_LSFT, MO(1), 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_P0, KC_PDOT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_all( + 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_PSCR, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif + +#ifdef HAPTIC_ENABLE +bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_VOLU ... KC_VOLD: + return false; + } + return true; +} +#endif diff --git a/keyboards/adpenrose/mine/keymaps/solenoid/rules.mk b/keyboards/adpenrose/mine/keymaps/solenoid/rules.mk new file mode 100644 index 00000000000..345c10cdd48 --- /dev/null +++ b/keyboards/adpenrose/mine/keymaps/solenoid/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = solenoid +ENCODER_MAP_ENABLE = yes # Encoder mapping functionality \ No newline at end of file diff --git a/keyboards/adpenrose/mine/keymaps/via/keymap.c b/keyboards/adpenrose/mine/keymaps/via/keymap.c new file mode 100644 index 00000000000..776ed893d54 --- /dev/null +++ b/keyboards/adpenrose/mine/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +// Copyright 2022 Arturo Avila (@Arturo Avila) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_MUTE, + 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_HOME, KC_END, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_P1, KC_P2, KC_P3, KC_PENT, + KC_LSFT, KC_BSLS, 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_P0, KC_PDOT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [1] = LAYOUT_all( + 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_PSCR, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/hfdkb/keyboard_sw/k83/keymaps/via/rules.mk b/keyboards/adpenrose/mine/keymaps/via/rules.mk similarity index 100% rename from keyboards/hfdkb/keyboard_sw/k83/keymaps/via/rules.mk rename to keyboards/adpenrose/mine/keymaps/via/rules.mk diff --git a/keyboards/adpenrose/mine/matrix_diagram.md b/keyboards/adpenrose/mine/matrix_diagram.md new file mode 100644 index 00000000000..05d34fb066e --- /dev/null +++ b/keyboards/adpenrose/mine/matrix_diagram.md @@ -0,0 +1,78 @@ +# Matrix Diagram for the Mine Keyboard +## Matrix for "LAYOUT_all": +``` +┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐ +│0A│ │0B││1B│ │0C││1C│ │0D││1D│ │9D││AD│ │0E││0F│ │0G││1G│ │AG││0H│ │0J│ +└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘ +┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──────┐ ┌──┐┌──┐┌──┐┌──┐ +│1A││AA││2B││AB││2C││AC││2D│ │8D││1E││AE││1F││AF││2G││9G │ │1H││0I││AI││1J│ +└──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──────┘ └──┘└──┘└──┘└──┘ +┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐ ┌──┐┌──┐┌──┐┌──┐ +│2A ││9A││3B││9B││3C││9C│ │7D││2E││9E││2F││9F││3G││8G││7H │ │2H││1I││9I││8I│ +└────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└────┘ └──┘└──┘└──┘│ │ +┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌───────┐ ┌──┐┌──┐┌──┐│ │ +│3A ││8A││4B││8B││4C││8C│ │6D││3E││8E││3F││8F││4G││7G │ │3H││2I││7I││ │ +└─────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└───────┘ └──┘└──┘└──┘└──┘ +┌───┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌─────────┐ ┌──┐┌──┐┌──┐┌──┐ +│4A ││7A││5B││7B││5C││7C││3D│ │5D││4E││5E││7E││4F││7F││5G │ │4H││3I││6I││5I│ +└───┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└─────────┘ └──┘└──┘└──┘│ │ +┌───┐┌───┐ ┌───┐┌─────────┐ ┌───────┐┌───┐ ┌───┐┌───┐ ┌──┐┌──┐│ │ +│5A ││6A │ │6B ││6C │ │4D ││6E │ │5F ││6F │ ┌──┐ │AH││4I││ │ +└───┘└───┘ └───┘└─────────┘ └───────┘└───┘ └───┘└───┘ │5H│ └──┘└──┘└──┘ + └──┘ + ┌──┐┌──┐┌──┐ + │6H││8H││9H│ + └──┘└──┘└──┘ +``` + +## Matrix for "LAYOUT_1800_alice_ansi": +``` +┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐ +│0A│ │0B││1B│ │0C││1C│ │0D││1D│ │9D││AD│ │0E││0F│ │0G││1G│ │AG││0H│ │0J│ +└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘ +┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──────┐ ┌──┐┌──┐┌──┐┌──┐ +│1A││AA││2B││AB││2C││AC││2D│ │8D││1E││AE││1F││AF││2G││9G │ │1H││0I││AI││1J│ +└──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──────┘ └──┘└──┘└──┘└──┘ +┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐ ┌──┐┌──┐┌──┐┌──┐ +│2A ││9A││3B││9B││3C││9C│ │7D││2E││9E││2F││9F││3G││8G││7H │ │2H││1I││9I││8I│ +└────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└────┘ └──┘└──┘└──┘│ │ +┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌───────┐ ┌──┐┌──┐┌──┐│ │ +│3A ││8A││4B││8B││4C││8C│ │6D││3E││8E││3F││8F││4G││7G │ │3H││2I││7I││ │ +└─────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└───────┘ └──┘└──┘└──┘└──┘ +┌───────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌─────────┐ ┌──┐┌──┐┌──┐┌──┐ +│4A ││5B││7B││5C││7C││3D│ │5D││4E││5E││7E││4F││7F││5G │ │4H││3I││6I││5I│ +└───────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└─────────┘ └──┘└──┘└──┘│ │ +┌───┐┌───┐ ┌───┐┌─────────┐ ┌───────┐┌───┐ ┌───┐┌───┐ ┌──┐┌──┐│ │ +│5A ││6A │ │6B ││6C │ │4D ││6E │ │5F ││6F │ ┌──┐ │AH││4I││ │ +└───┘└───┘ └───┘└─────────┘ └───────┘└───┘ └───┘└───┘ │5H│ └──┘└──┘└──┘ + └──┘ + ┌──┐┌──┐┌──┐ + │6H││8H││9H│ + └──┘└──┘└──┘ +``` + +## Matrix for "LAYOUT_1800_alice_iso": +``` +┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐ +│0A│ │0B││1B│ │0C││1C│ │0D││1D│ │9D││AD│ │0E││0F│ │0G││1G│ │AG││0H│ │0J│ +└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘ +┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──────┐ ┌──┐┌──┐┌──┐┌──┐ +│1A││AA││2B││AB││2C││AC││2D│ │8D││1E││AE││1F││AF││2G││9G │ │1H││0I││AI││1J│ +└──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──────┘ └──┘└──┘└──┘└──┘ +┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐ ┌──┐┌──┐┌──┐┌──┐ +│2A ││9A││3B││9B││3C││9C│ │7D││2E││9E││2F││9F││3G││8G││7G │ │2H││1I││9I││8I│ +└────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└┐ │ └──┘└──┘└──┘│ │ +┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐│ │ ┌──┐┌──┐┌──┐│ │ +│3A ││8A││4B││8B││4C││8C│ │6D││3E││8E││3F││8F││4G││6G││ │ │3H││2I││7I││ │ +└─────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└───┘ └──┘└──┘└──┘└──┘ +┌───┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌─────────┐ ┌──┐┌──┐┌──┐┌──┐ +│4A ││7A││5B││7B││5C││7C││3D│ │5D││4E││5E││7E││4F││7F││5G │ │4H││3I││6I││5I│ +└───┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└─────────┘ └──┘└──┘└──┘│ │ +┌───┐┌───┐ ┌───┐┌─────────┐ ┌───────┐┌───┐ ┌───┐┌───┐ ┌──┐┌──┐│ │ +│5A ││6A │ │6B ││6C │ │4D ││6E │ │5F ││6F │ ┌──┐ │AH││4I││ │ +└───┘└───┘ └───┘└─────────┘ └───────┘└───┘ └───┘└───┘ │5H│ └──┘└──┘└──┘ + └──┘ + ┌──┐┌──┐┌──┐ + │6H││8H││9H│ + └──┘└──┘└──┘ +``` \ No newline at end of file diff --git a/keyboards/adpenrose/mine/readme.md b/keyboards/adpenrose/mine/readme.md new file mode 100644 index 00000000000..266fe1ddd5b --- /dev/null +++ b/keyboards/adpenrose/mine/readme.md @@ -0,0 +1,27 @@ +# Mine + +![mine](https://i.imgur.com/P9s2cI8h.jpg) + +A hotswap ISO/ANSI-compatible 1800 alice, assembled only with THT components, including a solenoid and a chunky encoder. + +* Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose) +* Hardware Supported: Mine v1 PCB +* Hardware Availability: [Arturo Avila](https://github.com/ADPenrose) + +Make example for this keyboard (after setting up your build environment): + + make adpenrose/mine:default + +Flashing example for this keyboard: + + make adpenrose/mine: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**: Hold down the button labeled "BOOT" and briefly press the button labeled "RESET" on the front of the PCB. To exit the bootloader mode, briefly press the button labeled "RESET" once more. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/adpenrose/mine/rules.mk b/keyboards/adpenrose/mine/rules.mk new file mode 100644 index 00000000000..93ae8d898f2 --- /dev/null +++ b/keyboards/adpenrose/mine/rules.mk @@ -0,0 +1,2 @@ +# Processor frequency +F_CPU = 16000000 \ No newline at end of file diff --git a/keyboards/adpenrose/obi/config.h b/keyboards/adpenrose/obi/config.h deleted file mode 100644 index 862c0fe1ee5..00000000000 --- a/keyboards/adpenrose/obi/config.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2022 Arturo Avila (@ADPenrose) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define TAP_CODE_DELAY 10 - -/* Underglow options: */ -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 diff --git a/keyboards/adpenrose/obi/info.json b/keyboards/adpenrose/obi/info.json index 00a2572e7a4..d11e00a50e7 100644 --- a/keyboards/adpenrose/obi/info.json +++ b/keyboards/adpenrose/obi/info.json @@ -7,6 +7,23 @@ "pid": "0x0002", "vid": "0x4450" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "F7" }, @@ -20,6 +37,9 @@ {"pin_a": "F1", "pin_b": "F0"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/adpenrose/shisaku/keymaps/solenoid/rules.mk b/keyboards/adpenrose/shisaku/keymaps/solenoid/rules.mk index e13f2bd0357..6bec144827b 100644 --- a/keyboards/adpenrose/shisaku/keymaps/solenoid/rules.mk +++ b/keyboards/adpenrose/shisaku/keymaps/solenoid/rules.mk @@ -1,4 +1,4 @@ VIA_ENABLE = yes LTO_ENABLE = yes HAPTIC_ENABLE = yes -HAPTIC_DRIVER += SOLENOID \ No newline at end of file +HAPTIC_DRIVER = solenoid \ No newline at end of file diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk b/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk index e9a8bec8798..ab9d5c6ac2f 100644 --- a/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk +++ b/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk @@ -1,3 +1,2 @@ VIA_ENABLE = yes OLED_ENABLE = yes -# OLED_DRIVER = not a real thing diff --git a/keyboards/aeboards/ext65/rev2/config.h b/keyboards/aeboards/ext65/rev2/config.h index 0bc48fb5626..78d20f300fe 100644 --- a/keyboards/aeboards/ext65/rev2/config.h +++ b/keyboards/aeboards/ext65/rev2/config.h @@ -16,19 +16,6 @@ #pragma once -//RGB Underglow WS2812 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 24 - //SPI #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 diff --git a/keyboards/aeboards/ext65/rev2/info.json b/keyboards/aeboards/ext65/rev2/info.json index bfdcae090e5..d9d0ee62ee1 100644 --- a/keyboards/aeboards/ext65/rev2/info.json +++ b/keyboards/aeboards/ext65/rev2/info.json @@ -12,6 +12,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk b/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk index e9a8bec8798..ab9d5c6ac2f 100644 --- a/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk +++ b/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk @@ -1,3 +1,2 @@ VIA_ENABLE = yes OLED_ENABLE = yes -# OLED_DRIVER = not a real thing diff --git a/keyboards/aeboards/ext65/rev2/rules.mk b/keyboards/aeboards/ext65/rev2/rules.mk index d52eea26d19..b9637955ff7 100644 --- a/keyboards/aeboards/ext65/rev2/rules.mk +++ b/keyboards/aeboards/ext65/rev2/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c index aafd0e0848d..785fa8af9ff 100644 --- a/keyboards/aeboards/satellite/rev1/rev1.c +++ b/keyboards/aeboards/satellite/rev1/rev1.c @@ -145,30 +145,30 @@ led_config_t g_led_config = { { // Custom Driver static void init(void) { i2c_init(); - IS31FL3731_init(DRIVER_ADDR_1); - IS31FL3731_init(DRIVER_ADDR_2); + is31fl3731_init(DRIVER_ADDR_1); + is31fl3731_init(DRIVER_ADDR_2); for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = !( ( index == 18+5) || //B5 ( index == 36+17) || //C17 ( index == 54+13) //D13 ); - IS31FL3731_set_led_control_register(index, enabled, enabled, enabled); + is31fl3731_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); - IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); } static void flush(void) { - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0); - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); } static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - IS31FL3731_set_color(index, red, green, blue); + is31fl3731_set_color(index, red, green, blue); } static void set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - IS31FL3731_set_color_all( red, green, blue ); + is31fl3731_set_color_all( red, green, blue ); } diff --git a/keyboards/ah/haven65/haven65.c b/keyboards/ah/haven65/haven65.c new file mode 100644 index 00000000000..b4077b1a63a --- /dev/null +++ b/keyboards/ah/haven65/haven65.c @@ -0,0 +1,29 @@ +/* Copyright 2023 CMM.S Freather + * + * This 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" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + if (led_state.caps_lock) { + rgblight_sethsv_at(0, 0, 255, 0); + } else { + rgblight_sethsv_at(0, 0, 0, 0); + } + } + return res; +} diff --git a/keyboards/ah/haven65/info.json b/keyboards/ah/haven65/info.json new file mode 100644 index 00000000000..1cdc337836e --- /dev/null +++ b/keyboards/ah/haven65/info.json @@ -0,0 +1,130 @@ +{ + "keyboard_name": "HAVEN65", + "manufacturer": "Atelier_Haven", + "url": "https://keyspensory.store/products/gb-haven65-by-atelier-haven", + "maintainer": "Freather", + "usb": { + "vid": "0x4446", + "pid": "0x4665", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "matrix_pins": { + "rows": ["B5", "B6", "C6", "F1", "D6"], + "cols": ["F7", "F6", "F5", "F4", "F0", "B4", "D0", "D1", "D2", "D3", "D5", "B0", "B1", "B2", "B3"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "command": true, + "nkro": true, + "rgblight": true + }, + "ws2812": { + "pin": "C7", + }, + "rgblight": { + "led_count": 1, + "saturation_steps": 8, + "brightness_steps": 8, + "sleep": true, + "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 + } + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, + "community_layouts": [ + "65_ansi_blocker" + ], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + { "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 }, + { "label": "1", "matrix":[0,1],"x": 1, "y": 0 }, + { "label": "2", "matrix":[0,2],"x": 2, "y": 0 }, + { "label": "3", "matrix":[0,3],"x": 3, "y": 0 }, + { "label": "4", "matrix":[0,4],"x": 4, "y": 0 }, + { "label": "5", "matrix":[0,5],"x": 5, "y": 0 }, + { "label": "6", "matrix":[0,6],"x": 6, "y": 0 }, + { "label": "7", "matrix":[0,7],"x": 7, "y": 0 }, + { "label": "8", "matrix":[0,8],"x": 8, "y": 0 }, + { "label": "9", "matrix":[0,9],"x": 9, "y": 0 }, + { "label": "0", "matrix":[0,10],"x": 10, "y": 0 }, + { "label": "-", "matrix":[0,11],"x": 11, "y": 0 }, + { "label": "=", "matrix":[0,12],"x": 12, "y": 0 }, + { "label": "backspace", "matrix":[0,13],"x": 13, "y": 0, "w": 2 }, + { "label": "home", "matrix":[0,14],"x": 15, "y": 0 }, + + { "label": "tab", "matrix":[1,0],"x": 0, "y": 1, "w": 1.5 }, + { "label": "q", "matrix":[1,1],"x": 1.5, "y": 1 }, + { "label": "w", "matrix":[1,2],"x": 2.5, "y": 1 }, + { "label": "e", "matrix":[1,3],"x": 3.5, "y": 1 }, + { "label": "r", "matrix":[1,4],"x": 4.5, "y": 1 }, + { "label": "t", "matrix":[1,5],"x": 5.5, "y": 1 }, + { "label": "y", "matrix":[1,6],"x": 6.5, "y": 1 }, + { "label": "u", "matrix":[1,7],"x": 7.5, "y": 1 }, + { "label": "i", "matrix":[1,8],"x": 8.5, "y": 1 }, + { "label": "o", "matrix":[1,9],"x": 9.5, "y": 1 }, + { "label": "p", "matrix":[1,10],"x": 10.5, "y": 1 }, + { "label": "{", "matrix":[1,11],"x": 11.5, "y": 1 }, + { "label": "}", "matrix":[1,12],"x": 12.5, "y": 1 }, + { "label": "|", "matrix":[2,13],"x": 13.5, "y": 1, "w": 1.5 }, + { "label": "insert", "matrix":[1,14],"x": 15, "y": 1 }, + + { "label": "capslock", "matrix":[2,0],"x": 0, "y": 2, "w": 1.75 }, + { "label": "a", "matrix":[2,1],"x": 1.75, "y": 2 }, + { "label": "s", "matrix":[2,2],"x": 2.75, "y": 2 }, + { "label": "d", "matrix":[2,3],"x": 3.75, "y": 2 }, + { "label": "f", "matrix":[2,4],"x": 4.75, "y": 2 }, + { "label": "g", "matrix":[2,5],"x": 5.75, "y": 2 }, + { "label": "h", "matrix":[2,6],"x": 6.75, "y": 2 }, + { "label": "j", "matrix":[2,7],"x": 7.75, "y": 2 }, + { "label": "k", "matrix":[2,8],"x": 8.75, "y": 2 }, + { "label": "l", "matrix":[2,9],"x": 9.75, "y": 2 }, + { "label": ";", "matrix":[2,10],"x": 10.75, "y": 2 }, + { "label": "'", "matrix":[2,11],"x": 11.75, "y": 2 }, + { "label": "enter", "matrix":[2,12],"x": 12.75, "y": 2, "w": 2.25 }, + { "label": "delete", "matrix":[2,14],"x": 15, "y": 2 }, + + { "label": "leftshift", "matrix":[3,0],"x": 0, "y": 3, "w": 2.25 }, + { "label": "z", "matrix":[3,2],"x": 2.25, "y": 3 }, + { "label": "x", "matrix":[3,3],"x": 3.25, "y": 3 }, + { "label": "c", "matrix":[3,4],"x": 4.25, "y": 3 }, + { "label": "v", "matrix":[3,5],"x": 5.25, "y": 3 }, + { "label": "b", "matrix":[3,6],"x": 6.25, "y": 3 }, + { "label": "n", "matrix":[3,7],"x": 7.25, "y": 3 }, + { "label": "m", "matrix":[3,8],"x": 8.25, "y": 3 }, + { "label": ",", "matrix":[3,9],"x": 9.25, "y": 3 }, + { "label": ".", "matrix":[3,10],"x": 10.25, "y": 3 }, + { "label": "/", "matrix":[3,11],"x": 11.25, "y": 3 }, + { "label": "rightshift", "matrix":[3,12],"x": 12.25, "y": 3, "w": 1.75 }, + { "label": "up", "matrix":[3,13],"x": 14, "y": 3 }, + { "label": "end", "matrix":[3,14],"x": 15, "y": 3 }, + + { "label": "lctrl", "matrix":[4,0],"x": 0, "y": 4, "w": 1.25 }, + { "label": "lwin", "matrix":[4,1],"x": 1.25, "y": 4, "w": 1.25 }, + { "label": "lalt", "matrix":[4,2],"x": 2.5, "y": 4, "w": 1.25 }, + { "label": "space", "matrix":[4,6],"x": 3.75, "y": 4, "w": 6.25 }, + { "label": "ralt", "matrix":[4,9],"x": 10, "y": 4, "w": 1.25 }, + { "label": "MO(1)", "matrix":[4,10],"x": 11.25, "y": 4, "w": 1.25 }, + { "label": "left", "matrix":[4,11],"x": 13, "y": 4 }, + { "label": "down", "matrix":[4,12],"x": 14, "y": 4 }, + { "label": "right", "matrix":[4,13],"x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/ah/haven65/keymaps/default/keymap.c b/keyboards/ah/haven65/keymaps/default/keymap.c new file mode 100644 index 00000000000..e3c424072d4 --- /dev/null +++ b/keyboards/ah/haven65/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Freather +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, 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_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_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, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker( + 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/ah/haven65/keymaps/via/keymap.c b/keyboards/ah/haven65/keymaps/via/keymap.c new file mode 100644 index 00000000000..e4de01e0e8b --- /dev/null +++ b/keyboards/ah/haven65/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 Freather +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, 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_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_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, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker( + 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/capsunlocked/cu80/v2_ansi/keymaps/via/rules.mk b/keyboards/ah/haven65/keymaps/via/rules.mk similarity index 100% rename from keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/rules.mk rename to keyboards/ah/haven65/keymaps/via/rules.mk diff --git a/keyboards/ah/haven65/readme.md b/keyboards/ah/haven65/readme.md new file mode 100644 index 00000000000..bf29ca0810b --- /dev/null +++ b/keyboards/ah/haven65/readme.md @@ -0,0 +1,21 @@ +#Haven65 + +![haven 65](https://i.imgur.com/M1l1DaOh.png) + + +* Keyboard Maintainer: [Freather](https://github.com/CMMS-Freather) +* Hardware Supported: PCB, Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make ah/haven65:default + +Flashing example for this keyboard: + + make ah/haven65:default:flash + +##Bootloader Atmel-DFU + +For reset instruction, use the physical reset button on the back of the keyboard to enter bootloader mode + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/jscotto/scotto36/rules.mk b/keyboards/ah/haven65/rules.mk similarity index 100% rename from keyboards/handwired/jscotto/scotto36/rules.mk rename to keyboards/ah/haven65/rules.mk diff --git a/keyboards/ah/haven80/haven80.c b/keyboards/ah/haven80/haven80.c new file mode 100644 index 00000000000..d02130cfe9e --- /dev/null +++ b/keyboards/ah/haven80/haven80.c @@ -0,0 +1,29 @@ +/* Copyright 2023 CMM.S Freather + * + * This 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" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + if (led_state.caps_lock) { + rgblight_sethsv_range(0, 0, 255, 0,20); + } else { + rgblight_sethsv_range(0, 0, 0, 0, 20); + } + } + return res; +} diff --git a/keyboards/ah/haven80/hotswap/info.json b/keyboards/ah/haven80/hotswap/info.json new file mode 100644 index 00000000000..b73da1c5f4c --- /dev/null +++ b/keyboards/ah/haven80/hotswap/info.json @@ -0,0 +1,116 @@ +{ + "keyboard_name": "haven80_hotswap", + "usb": { + "vid": "0x4446", + "pid": "0x4680", + "device_version": "1.0.0" + }, + "matrix_pins": { + "rows": ["F0", "F1", "F4", "F5", "F6", "B1", "B2", "B3", "D3", "D5", "F7"], + "cols": ["D0", "D1", "D2", "B0", "D4", "B4", "D6", "D7", "B5"] + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan" + }, + "community_layouts": [ + "tkl_f13_ansi_tsangan" + ], + "layouts": { + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + { "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 }, + { "label": "F1", "matrix":[0,1],"x": 1.25, "y": 0 }, + { "label": "F2", "matrix":[0,2],"x": 2.25, "y": 0 }, + { "label": "F3", "matrix":[0,3],"x": 3.25, "y": 0 }, + { "label": "F4", "matrix":[0,4],"x": 4.25, "y": 0 }, + { "label": "F5", "matrix":[0,5],"x": 5.5, "y": 0 }, + { "label": "F6", "matrix":[0,6],"x": 6.5, "y": 0 }, + { "label": "F7", "matrix":[0,7],"x": 7.5, "y": 0 }, + { "label": "F8", "matrix":[5,8],"x": 8.5, "y": 0 }, + { "label": "F9", "matrix":[5,7],"x": 9.75, "y": 0 }, + { "label": "F10", "matrix":[5,6],"x": 10.75, "y": 0 }, + { "label": "F11", "matrix":[5,5],"x": 11.75, "y": 0 }, + { "label": "F12", "matrix":[5,4],"x": 12.75, "y": 0 }, + { "label": "F13", "matrix":[5,3],"x": 14, "y": 0 }, + { "label": "Prtsc", "matrix":[5,2],"x": 15.25, "y": 0 }, + { "label": "Scrlk", "matrix":[5,1],"x": 16.25, "y": 0 }, + { "label": "Pause", "matrix":[5,0],"x": 17.25, "y": 0 }, + + { "label": "~", "matrix":[1,0],"x": 0, "y": 1.25 }, + { "label": "1", "matrix":[1,1],"x": 1, "y": 1.25 }, + { "label": "2", "matrix":[1,2],"x": 2, "y": 1.25 }, + { "label": "3", "matrix":[1,3],"x": 3, "y": 1.25 }, + { "label": "4", "matrix":[1,4],"x": 4, "y": 1.25 }, + { "label": "5", "matrix":[1,5],"x": 5, "y": 1.25 }, + { "label": "6", "matrix":[1,6],"x": 6, "y": 1.25 }, + { "label": "7", "matrix":[1,7],"x": 7, "y": 1.25 }, + { "label": "8", "matrix":[1,8],"x": 8, "y": 1.25 }, + { "label": "9", "matrix":[6,8],"x": 9, "y": 1.25 }, + { "label": "0", "matrix":[6,7],"x": 10, "y": 1.25 }, + { "label": "-", "matrix":[6,6],"x": 11, "y": 1.25 }, + { "label": "=", "matrix":[6,5],"x": 12, "y": 1.25 }, + { "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.25, "w": 2 }, + { "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.25 }, + { "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.25 }, + { "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.25 }, + + { "label": "tab", "matrix":[2,0],"x": 0, "y": 2.25, "w": 1.5 }, + { "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.25 }, + { "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.25 }, + { "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.25 }, + { "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.25 }, + { "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.25 }, + { "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.25 }, + { "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.25 }, + { "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.25 }, + { "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.25 }, + { "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.25 }, + { "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.25 }, + { "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.25 }, + { "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.25 }, + { "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.25 }, + { "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.25 }, + + { "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.25, "w": 1.75 }, + { "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.25 }, + { "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.25 }, + { "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.25 }, + { "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.25 }, + { "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.25 }, + { "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.25 }, + { "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.25 }, + { "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.25 }, + { "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.25 }, + { "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.25 }, + { "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.25 }, + { "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.25, "w": 2.25 }, + { "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.25 }, + { "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.25 }, + { "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.25 }, + { "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.25 }, + { "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.25 }, + { "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.25 }, + { "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.25 }, + { "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.25 }, + { "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.25 }, + { "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.25 }, + { "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.25 }, + + { "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.25, "w": 1.5 }, + { "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.25 }, + { "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "space", "matrix":[10,3],"x": 4, "y": 5.25, "w": 7 }, + { "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.25, "w": 1.5 }, + { "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.25, "w": 1 }, + { "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.25, "w":1.5}, + { "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.25 }, + { "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.25 }, + { "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/ah/haven80/hotswap/readme.md b/keyboards/ah/haven80/hotswap/readme.md new file mode 100644 index 00000000000..a43054863c3 --- /dev/null +++ b/keyboards/ah/haven80/hotswap/readme.md @@ -0,0 +1,21 @@ +#Haven80 Hotswap + +![haven 80 hotswap](https://i.imgur.com/lXKf8Cih.png) + + +* Keyboard Maintainer: [Freather](https://github.com/CMMS-Freather) +* Hardware Supported: PCB, Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make ah/haven80/hotswap:default + +Flashing example for this keyboard: + + make ah/haven80/hotswap:default:flash + +##Bootloader Atmel-DFU + +For reset instruction, use the physical reset button on the back of the keyboard 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/scotto40/rules.mk b/keyboards/ah/haven80/hotswap/rules.mk similarity index 100% rename from keyboards/handwired/jscotto/scotto40/rules.mk rename to keyboards/ah/haven80/hotswap/rules.mk diff --git a/keyboards/ah/haven80/info.json b/keyboards/ah/haven80/info.json new file mode 100644 index 00000000000..bd878151549 --- /dev/null +++ b/keyboards/ah/haven80/info.json @@ -0,0 +1,34 @@ +{ + "manufacturer": "Atelier_Haven", + "url": "", + "maintainer": "Freather", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "rgblight": true + }, + "ws2812": { + "pin": "E6", + }, + "rgblight": { + "led_count": 21, + "sleep": true, + "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 + } + } +} diff --git a/keyboards/ah/haven80/keymaps/default/keymap.c b/keyboards/ah/haven80/keymaps/default/keymap.c new file mode 100644 index 00000000000..401787bcbcb --- /dev/null +++ b/keyboards/ah/haven80/keymaps/default/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 Freather +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/ah/haven80/keymaps/via/keymap.c b/keyboards/ah/haven80/keymaps/via/keymap.c new file mode 100644 index 00000000000..f4d1b6fe92d --- /dev/null +++ b/keyboards/ah/haven80/keymaps/via/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2023 Freather +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/rules.mk b/keyboards/ah/haven80/keymaps/via/rules.mk similarity index 100% rename from keyboards/capsunlocked/cu80/v2_iso/keymaps/via/rules.mk rename to keyboards/ah/haven80/keymaps/via/rules.mk diff --git a/keyboards/ah/haven80/solder/info.json b/keyboards/ah/haven80/solder/info.json new file mode 100644 index 00000000000..775908d24f0 --- /dev/null +++ b/keyboards/ah/haven80/solder/info.json @@ -0,0 +1,413 @@ +{ + "keyboard_name": "haven80_solder", + "usb": { + "vid": "0x4446", + "pid": "0x4681", + "device_version": "1.0.0" + }, + "matrix_pins": { + "rows": ["F0", "F1", "F4", "F5", "C6", "B1", "B2", "B3", "D3", "D5", "D6"], + "cols": ["D0", "D1", "D2", "B0", "C7", "B5", "D7", "B4", "B6"] + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan" + }, + "community_layouts": [ + "tkl_f13_ansi_tsangan", + "tkl_f13_ansi_tsangan_split_bs_rshift", + "tkl_f13_iso_tsangan", + "tkl_f13_iso_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + { "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 }, + { "label": "F1", "matrix":[0,1],"x": 1.25, "y": 0 }, + { "label": "F2", "matrix":[0,2],"x": 2.25, "y": 0 }, + { "label": "F3", "matrix":[0,3],"x": 3.25, "y": 0 }, + { "label": "F4", "matrix":[0,4],"x": 4.25, "y": 0 }, + { "label": "F5", "matrix":[0,5],"x": 5.5, "y": 0 }, + { "label": "F6", "matrix":[0,6],"x": 6.5, "y": 0 }, + { "label": "F7", "matrix":[0,7],"x": 7.5, "y": 0 }, + { "label": "F8", "matrix":[5,8],"x": 8.5, "y": 0 }, + { "label": "F9", "matrix":[5,7],"x": 9.75, "y": 0 }, + { "label": "F10", "matrix":[5,6],"x": 10.75, "y": 0 }, + { "label": "F11", "matrix":[5,5],"x": 11.75, "y": 0 }, + { "label": "F12", "matrix":[5,4],"x": 12.75, "y": 0 }, + { "label": "F13", "matrix":[5,3],"x": 14, "y": 0 }, + { "label": "Prtsc", "matrix":[5,2],"x": 15.25, "y": 0 }, + { "label": "Scrlk", "matrix":[5,1],"x": 16.25, "y": 0 }, + { "label": "Pause", "matrix":[5,0],"x": 17.25, "y": 0 }, + + { "label": "~", "matrix":[1,0],"x": 0, "y": 1.25 }, + { "label": "1", "matrix":[1,1],"x": 1, "y": 1.25 }, + { "label": "2", "matrix":[1,2],"x": 2, "y": 1.25 }, + { "label": "3", "matrix":[1,3],"x": 3, "y": 1.25 }, + { "label": "4", "matrix":[1,4],"x": 4, "y": 1.25 }, + { "label": "5", "matrix":[1,5],"x": 5, "y": 1.25 }, + { "label": "6", "matrix":[1,6],"x": 6, "y": 1.25 }, + { "label": "7", "matrix":[1,7],"x": 7, "y": 1.25 }, + { "label": "8", "matrix":[1,8],"x": 8, "y": 1.25 }, + { "label": "9", "matrix":[6,8],"x": 9, "y": 1.25 }, + { "label": "0", "matrix":[6,7],"x": 10, "y": 1.25 }, + { "label": "-", "matrix":[6,6],"x": 11, "y": 1.25 }, + { "label": "=", "matrix":[6,5],"x": 12, "y": 1.25 }, + { "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.25, "w": 2 }, + { "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.25 }, + { "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.25 }, + { "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.25 }, + + { "label": "tab", "matrix":[2,0],"x": 0, "y": 2.25, "w": 1.5 }, + { "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.25 }, + { "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.25 }, + { "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.25 }, + { "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.25 }, + { "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.25 }, + { "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.25 }, + { "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.25 }, + { "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.25 }, + { "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.25 }, + { "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.25 }, + { "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.25 }, + { "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.25 }, + { "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.25 }, + { "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.25 }, + { "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.25 }, + + { "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.25, "w": 1.75 }, + { "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.25 }, + { "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.25 }, + { "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.25 }, + { "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.25 }, + { "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.25 }, + { "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.25 }, + { "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.25 }, + { "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.25 }, + { "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.25 }, + { "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.25 }, + { "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.25 }, + { "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.25, "w": 2.25 }, + { "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.25 }, + { "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.25 }, + { "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.25 }, + { "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.25 }, + { "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.25 }, + { "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.25 }, + { "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.25 }, + { "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.25 }, + { "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.25 }, + { "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.25 }, + { "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.25 }, + + { "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.25, "w": 1.5 }, + { "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.25 }, + { "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "space", "matrix":[10,3],"x": 4, "y": 5.25, "w": 7 }, + { "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.25, "w": 1.5 }, + { "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.25, "w": 1 }, + { "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.25, "w":1.5}, + { "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.25 }, + { "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.25 }, + { "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [5, 3], "x": 14, "y": 0}, + {"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0}, + {"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25}, + {"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25}, + {"label": "backspace", "matrix": [6, 3], "x": 14, "y": 1.25}, + {"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25}, + {"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25}, + {"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25}, + + {"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25}, + {"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25}, + {"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25}, + {"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [7, 4], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25}, + {"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25}, + {"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25}, + + {"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25}, + {"label": "enter", "matrix": [8, 5], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25}, + {"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25}, + {"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25}, + {"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25}, + {"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25}, + {"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "rightshift", "matrix": [9, 5], "x": 14, "y": 4.25}, + {"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25}, + + {"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25}, + {"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7}, + {"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25}, + {"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25}, + {"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25}, + {"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [5, 3], "x": 14, "y": 0}, + {"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0}, + {"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25}, + {"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25, "w": 2}, + {"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25}, + {"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25}, + {"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25}, + + {"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25}, + {"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25}, + {"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25}, + {"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25}, + {"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25}, + {"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25}, + + {"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [7, 4], "x": 12.75, "y": 3.25}, + {"label": "enter", "matrix": [8, 5], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [9, 3], "x": 1.25, "y": 4.25}, + {"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25}, + {"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25}, + {"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25}, + {"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25}, + {"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25}, + {"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25}, + + {"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25}, + {"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7}, + {"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25}, + {"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25}, + {"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25}, + {"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [5, 3], "x": 14, "y": 0}, + {"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0}, + {"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25}, + {"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25}, + {"label": "backspace", "matrix": [6, 3], "x": 14, "y": 1.25}, + {"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25}, + {"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25}, + {"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25}, + + {"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25}, + {"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25}, + {"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25}, + {"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25}, + {"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25}, + {"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25}, + + {"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [7, 4], "x": 12.75, "y": 3.25}, + {"label": "enter", "matrix": [8, 5], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [9, 3], "x": 1.25, "y": 4.25}, + {"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25}, + {"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25}, + {"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25}, + {"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25}, + {"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25}, + {"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "rightshift", "matrix": [9, 5], "x": 14, "y": 4.25}, + {"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25}, + + {"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25}, + {"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7}, + {"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25}, + {"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25}, + {"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25}, + {"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/ah/haven80/solder/readme.md b/keyboards/ah/haven80/solder/readme.md new file mode 100644 index 00000000000..670e760682c --- /dev/null +++ b/keyboards/ah/haven80/solder/readme.md @@ -0,0 +1,21 @@ +# Haven80 Solder + +![haven 80 hotswap](https://i.imgur.com/TBXFqE5h.png) + + +* Keyboard Maintainer: [Freather](https://github.com/CMMS-Freather) +* Hardware Supported: PCB, Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make ah/haven80/solder:default + +Flashing example for this keyboard: + + make ah/haven80/solder:default:flash + +## Bootloader + +For reset instruction, use the physical reset button on the back of the keyboard 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/ah/haven80/solder/rules.mk similarity index 100% rename from keyboards/handwired/jscotto/scotto9/rules.mk rename to keyboards/ah/haven80/solder/rules.mk diff --git a/keyboards/ai03/andromeda/rules.mk b/keyboards/ai03/andromeda/rules.mk index 0aeca0dd9f3..7f4f202a1b7 100644 --- a/keyboards/ai03/andromeda/rules.mk +++ b/keyboards/ai03/andromeda/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ai03/equinox/rev0/info.json b/keyboards/ai03/equinox/rev0/info.json index f5dd3655645..396f50c3765 100644 --- a/keyboards/ai03/equinox/rev0/info.json +++ b/keyboards/ai03/equinox/rev0/info.json @@ -5,6 +5,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D1", "levels": 5, "breathing": true diff --git a/keyboards/ai03/lunar_ii/rules.mk b/keyboards/ai03/lunar_ii/rules.mk index 1448dc35c3c..7ad594e1f9f 100644 --- a/keyboards/ai03/lunar_ii/rules.mk +++ b/keyboards/ai03/lunar_ii/rules.mk @@ -12,4 +12,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output HAPTIC_ENABLE = yes # Enable solenoid support -HAPTIC_DRIVER += SOLENOID +HAPTIC_DRIVER = solenoid diff --git a/keyboards/ai03/polaris/config.h b/keyboards/ai03/polaris/config.h index 2542b9f62f4..50001e978cc 100644 --- a/keyboards/ai03/polaris/config.h +++ b/keyboards/ai03/polaris/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 14 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ai03/polaris/info.json b/keyboards/ai03/polaris/info.json index af67191ba11..dca6df3dbad 100644 --- a/keyboards/ai03/polaris/info.json +++ b/keyboards/ai03/polaris/info.json @@ -19,7 +19,23 @@ "breathing": true }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "ws2812": { "pin": "D2" diff --git a/keyboards/ai03/quasar/keymaps/ai03/keymap.c b/keyboards/ai03/quasar/keymaps/ai03/keymap.c index 4df12732bdb..c564b8aa388 100644 --- a/keyboards/ai03/quasar/keymaps/ai03/keymap.c +++ b/keyboards/ai03/quasar/keymaps/ai03/keymap.c @@ -33,19 +33,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, KC_BSPC, KC_HOME, KC_PGDN, KC_END ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/ai03/soyuz/keymaps/1U/keymap.c b/keyboards/ai03/soyuz/keymaps/1U/keymap.c index 1d6f3dfa8c1..792457cf107 100644 --- a/keyboards/ai03/soyuz/keymaps/1U/keymap.c +++ b/keyboards/ai03/soyuz/keymaps/1U/keymap.c @@ -43,15 +43,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/ai03/vega/rules.mk b/keyboards/ai03/vega/rules.mk index 0aeca0dd9f3..7f4f202a1b7 100644 --- a/keyboards/ai03/vega/rules.mk +++ b/keyboards/ai03/vega/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ai03/voyager60_alps/config.h b/keyboards/ai03/voyager60_alps/config.h deleted file mode 100644 index a358ce601e2..00000000000 --- a/keyboards/ai03/voyager60_alps/config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright 2020 -This 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 RGBLED_NUM 14 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - -/* - * 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/ai03/voyager60_alps/info.json b/keyboards/ai03/voyager60_alps/info.json index 00a2a9f4d89..440f061432f 100644 --- a/keyboards/ai03/voyager60_alps/info.json +++ b/keyboards/ai03/voyager60_alps/info.json @@ -8,6 +8,12 @@ "pid": "0x060A", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "sleep": true + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/vial/config.h b/keyboards/aidansmithdotdev/fine40/keymaps/vial/config.h new file mode 100644 index 00000000000..c118f67d02c --- /dev/null +++ b/keyboards/aidansmithdotdev/fine40/keymaps/vial/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x29, 0x7D, 0x3C, 0x47, 0x6B, 0xFE, 0xA6, 0x3E} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 0 } diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/vial/keymap.c b/keyboards/aidansmithdotdev/fine40/keymaps/vial/keymap.c new file mode 100644 index 00000000000..0010c9f97bc --- /dev/null +++ b/keyboards/aidansmithdotdev/fine40/keymaps/vial/keymap.c @@ -0,0 +1,52 @@ +// Copyright 2022 Aidan Smith (@Aidan-OS) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum keyboard_layers { + _MAIN, + _RIGHT, + _LEFT, + _TAB, +}; + +#define LT3_TAB LT(_TAB, KC_TAB) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_MAIN] = LAYOUT_2u_single_space( + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC , + LT3_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_ENT , + KC_LCTL , KC_RALT , KC_LGUI , KC_BSLS , MO(_LEFT) , KC_SPC , MO(_RIGHT) , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_MPLY +), + +[_LEFT] = LAYOUT_2u_single_space( /* LEFT */ + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DELETE , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_UNDERSCORE , KC_PLUS , KC_LEFT_CURLY_BRACE , KC_RIGHT_CURLY_BRACE , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_HOME , KC_PGDN , KC_PGUP , KC_END , _______ +), + +[_RIGHT] = LAYOUT_2u_single_space( /* RIGHT */ + KC_TILDE , KC_EXCLAIM , KC_AT , KC_HASH , KC_DOLLAR , KC_PERCENT , KC_CIRCUMFLEX , KC_AMPERSAND , KC_ASTERISK , KC_LEFT_PAREN , KC_RIGHT_PAREN , KC_DELETE , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MINS , KC_EQL , KC_LBRC , KC_RBRC , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_LT , KC_GT , _______ , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLD , KC_VOLU , KC_MPLY , _______ +), + +[_TAB] = LAYOUT_2u_single_space( /* Tab */ + KC_ESC , QK_BOOT, _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , + _______ , KC_F11 , KC_F12 , KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , _______ , + _______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______ , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MS_L , KC_MS_D , KC_MS_U , KC_MS_R , _______ +), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_MAIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LEFT] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_RIGHT] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_TAB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +}; +#endif \ No newline at end of file diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/vial/rules.mk b/keyboards/aidansmithdotdev/fine40/keymaps/vial/rules.mk new file mode 100644 index 00000000000..d6aa8769e41 --- /dev/null +++ b/keyboards/aidansmithdotdev/fine40/keymaps/vial/rules.mk @@ -0,0 +1,7 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +# Options to reduce firmware size: +LTO_ENABLE = yes # make the compiler work harder +QMK_SETTINGS = no # enables the tab to change QMK settings from the GUI diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/vial/vial.json b/keyboards/aidansmithdotdev/fine40/keymaps/vial/vial.json new file mode 100644 index 00000000000..c7288907fcc --- /dev/null +++ b/keyboards/aidansmithdotdev/fine40/keymaps/vial/vial.json @@ -0,0 +1,192 @@ +{ + "name": "fine!40", + "vendorId": "0xA059", + "productId": "0x4564", + "matrix": { + "rows": 8, + "cols": 6 + }, + "layouts": { + "labels": [ + ["Bottom Row", "Single 2u", "Split 2u", "Split 2.25u", "Single 7u"] + ], + "keymap": [ + [ + { + "c": "#777777" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "4,5", + "4,4", + "4,3", + "4,2", + "4,1", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,0" + ], + [ + { + "w": 1.25 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "5,5", + "5,4", + "5,3", + "5,2", + "5,1", + { + "w": 1.25 + }, + "5,0" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "6,5", + "6,4", + "6,3", + "6,2", + "6,1", + { + "c": "#777777" + }, + "6,0" + ], + [ + { + "c": "#aaaaaa" + }, + "3,0\n\n\n0,0", + "3,1\n\n\n0,0", + "3,2\n\n\n0,0", + "3,3\n\n\n0,0", + { + "w": 1.25 + }, + "3,4\n\n\n0,0", + { + "c": "#777777", + "w": 2 + }, + "3,5\n\n\n0,0", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "7,5\n\n\n0,0", + "7,4\n\n\n0,0", + "7,3\n\n\n0,0", + "7,2\n\n\n0,0", + "7,1\n\n\n0,0", + { + "x": 0.5, + "c": "#cccccc" + }, + "7,0" + ], + [ + { + "y": 0.5, + "c": "#aaaaaa" + }, + "3,0\n\n\n0,1", + "3,1\n\n\n0,1", + "3,2\n\n\n0,1", + { + "w": 1.25 + }, + "3,3\n\n\n0,1", + { + "c": "#777777", + "w": 2 + }, + "3,4\n\n\n0,1", + { + "w": 2 + }, + "7,5\n\n\n0,1", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "7,4\n\n\n0,1", + "7,3\n\n\n0,1", + "7,2\n\n\n0,1", + "7,1\n\n\n0,1" + ], + [ + "3,0\n\n\n0,2", + "3,1\n\n\n0,2", + "3,2\n\n\n0,2", + "3,3\n\n\n0,2", + { + "c": "#777777", + "w": 2.25 + }, + "3,4\n\n\n0,2", + { + "w": 2.25 + }, + "7,5\n\n\n0,2", + { + "c": "#aaaaaa" + }, + "7,4\n\n\n0,2", + "7,3\n\n\n0,2", + "7,2\n\n\n0,2", + "7,1\n\n\n0,2" + ], + [ + { + "w": 1.25 + }, + "3,0\n\n\n0,3", + { + "w": 1.25 + }, + "3,1\n\n\n0,3", + { + "c": "#777777", + "w": 7 + }, + "3,5\n\n\n0,3", + { + "c": "#aaaaaa" + }, + "7,3\n\n\n0,3", + "7,2\n\n\n0,3", + "7,1\n\n\n0,3" + ] + ] + } +} diff --git a/keyboards/aidansmithdotdev/fine40/rules.mk b/keyboards/aidansmithdotdev/fine40/rules.mk index 2e3ef9fb844..e69de29bb2d 100644 --- a/keyboards/aidansmithdotdev/fine40/rules.mk +++ b/keyboards/aidansmithdotdev/fine40/rules.mk @@ -1 +0,0 @@ -OLED_DRIVER = SSD1306 diff --git a/keyboards/akegata_denki/device_one/rules.mk b/keyboards/akegata_denki/device_one/rules.mk index 6ac6abcf567..26de1138e5f 100644 --- a/keyboards/akegata_denki/device_one/rules.mk +++ b/keyboards/akegata_denki/device_one/rules.mk @@ -10,5 +10,3 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/akko/5108/5108.c b/keyboards/akko/5108/5108.c new file mode 100644 index 00000000000..a14f02bc76e --- /dev/null +++ b/keyboards/akko/5108/5108.c @@ -0,0 +1,162 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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" +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + /*row0*/ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + {1, A_15, B_15, C_15}, + {1, A_16, B_16, C_16}, + {1, D_11, E_11, F_11}, + {1, D_12, E_12, F_12}, + {1, D_13, E_13, F_13}, + {1, D_14, E_14, F_14}, + + /*row1*/ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1 }, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + {1, D_4, E_4, F_4}, + {1, D_5, E_5, F_5}, + {1, D_6, E_6, F_6}, + {1, D_7, E_7, F_7}, + + /*row2*/ + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + {1, D_8, E_8, F_8}, + {1, D_9, E_9, F_9}, + {1, D_10, E_10, F_10}, + {1, G_7, H_7, I_7}, + + /*row3*/ + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + {1, G_4, H_4, I_4}, + {1, G_5, H_5, I_5}, + {1, G_6, H_6, I_6}, + + /*row4*/ + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, J_4, K_4, L_4}, + {1, J_7, K_7, L_7}, + {1, J_8, K_8, L_8}, + {1, J_9, K_9, L_9}, + {1, J_10, K_10, L_10}, + + /*row5*/ + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + {0, D_15, E_15, F_15}, + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + {1, J_5, K_5, L_5}, + {1, J_6, K_6, L_6}, + +}; +#endif + +void keyboard_pre_init_kb(void) { + setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock + writePinLow(LED_WIN_LOCK_PIN); + keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui); + } + return res; +} diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h new file mode 100644 index 00000000000..f56e825e050 --- /dev/null +++ b/keyboards/akko/5108/config.h @@ -0,0 +1,54 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 + +/* Use 5 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* LED Indicators */ +#define LED_WIN_LOCK_PIN C11 + +/* 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 108 + +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/hfdkb/keyboard_sw/k83/halconf.h b/keyboards/akko/5108/halconf.h similarity index 100% rename from keyboards/hfdkb/keyboard_sw/k83/halconf.h rename to keyboards/akko/5108/halconf.h diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json new file mode 100644 index 00000000000..7049b20a648 --- /dev/null +++ b/keyboards/akko/5108/info.json @@ -0,0 +1,290 @@ +{ + "keyboard_name": "5108", + "manufacturer": "Akko", + "url":"https://www.akkogear.com", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x000D", + "device_version": "1.0.3", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": [ "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "indicators": { + "num_lock": "A15", + "caps_lock": "C10" + }, + "rgb_matrix": { + "driver": "is31fl3733", + "max_brightness": 180, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 30, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 50, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 70, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 80, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 90, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 100, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 110, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 120, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x": 130, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x": 140, "y": 0 }, + { "flags": 4, "matrix": [0, 14], "x": 156, "y": 0 }, + { "flags": 4, "matrix": [0, 15], "x": 166, "y": 0 }, + { "flags": 4, "matrix": [0, 16], "x": 176, "y": 0 }, + { "flags": 4, "matrix": [0, 17], "x": 194, "y": 0 }, + { "flags": 4, "matrix": [0, 18], "x": 204, "y": 0 }, + { "flags": 4, "matrix": [0, 19], "x": 214, "y": 0 }, + { "flags": 4, "matrix": [0, 20], "x": 224, "y": 0 }, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 13 }, + { "flags": 4, "matrix": [1, 1], "x": 10, "y": 13 }, + { "flags": 4, "matrix": [1, 2], "x": 20, "y": 13 }, + { "flags": 4, "matrix": [1, 3], "x": 30, "y": 13 }, + { "flags": 4, "matrix": [1, 4], "x": 40, "y": 13 }, + { "flags": 4, "matrix": [1, 5], "x": 50, "y": 13 }, + { "flags": 4, "matrix": [1, 6], "x": 60, "y": 13 }, + { "flags": 4, "matrix": [1, 7], "x": 70, "y": 13 }, + { "flags": 4, "matrix": [1, 8], "x": 80, "y": 13 }, + { "flags": 4, "matrix": [1, 9], "x": 90, "y": 13 }, + { "flags": 4, "matrix": [1, 10], "x": 100, "y": 13 }, + { "flags": 4, "matrix": [1, 11], "x": 110, "y": 13 }, + { "flags": 4, "matrix": [1, 12], "x": 120, "y": 13 }, + { "flags": 4, "matrix": [1, 13], "x": 140, "y": 13 }, + { "flags": 4, "matrix": [1, 14], "x": 156, "y": 13 }, + { "flags": 4, "matrix": [1, 15], "x": 166, "y": 13 }, + { "flags": 4, "matrix": [1, 16], "x": 176, "y": 13 }, + { "flags": 4, "matrix": [1, 17], "x": 194, "y": 13 }, + { "flags": 4, "matrix": [1, 18], "x": 204, "y": 13 }, + { "flags": 4, "matrix": [1, 19], "x": 214, "y": 13 }, + { "flags": 4, "matrix": [1, 20], "x": 224, "y": 13 }, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 26 }, + { "flags": 4, "matrix": [2, 1], "x": 10, "y": 26 }, + { "flags": 4, "matrix": [2, 2], "x": 20, "y": 26 }, + { "flags": 4, "matrix": [2, 3], "x": 30, "y": 26 }, + { "flags": 4, "matrix": [2, 4], "x": 40, "y": 26 }, + { "flags": 4, "matrix": [2, 5], "x": 50, "y": 26 }, + { "flags": 4, "matrix": [2, 6], "x": 60, "y": 26 }, + { "flags": 4, "matrix": [2, 7], "x": 70, "y": 26 }, + { "flags": 4, "matrix": [2, 8], "x": 80, "y": 26 }, + { "flags": 4, "matrix": [2, 9], "x": 90, "y": 26 }, + { "flags": 4, "matrix": [2, 10], "x": 100, "y": 26 }, + { "flags": 4, "matrix": [2, 11], "x": 110, "y": 26 }, + { "flags": 4, "matrix": [2, 12], "x": 128, "y": 26 }, + { "flags": 4, "matrix": [2, 13], "x": 140, "y": 26 }, + { "flags": 4, "matrix": [2, 14], "x": 156, "y": 26 }, + { "flags": 4, "matrix": [2, 15], "x": 166, "y": 26 }, + { "flags": 4, "matrix": [2, 16], "x": 176, "y": 26 }, + { "flags": 4, "matrix": [2, 17], "x": 194, "y": 26 }, + { "flags": 4, "matrix": [2, 18], "x": 204, "y": 26 }, + { "flags": 4, "matrix": [2, 19], "x": 214, "y": 26 }, + { "flags": 4, "matrix": [2, 20], "x": 224, "y": 26 }, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38 }, + { "flags": 4, "matrix": [3, 1], "x": 10, "y": 38 }, + { "flags": 4, "matrix": [3, 2], "x": 20, "y": 38 }, + { "flags": 4, "matrix": [3, 3], "x": 30, "y": 38 }, + { "flags": 4, "matrix": [3, 4], "x": 40, "y": 38 }, + { "flags": 4, "matrix": [3, 5], "x": 50, "y": 38 }, + { "flags": 4, "matrix": [3, 6], "x": 60, "y": 38 }, + { "flags": 4, "matrix": [3, 7], "x": 70, "y": 38 }, + { "flags": 4, "matrix": [3, 8], "x": 80, "y": 38 }, + { "flags": 4, "matrix": [3, 9], "x": 90, "y": 38 }, + { "flags": 4, "matrix": [3, 10], "x": 100, "y": 38 }, + { "flags": 4, "matrix": [3, 11], "x": 110, "y": 38 }, + { "flags": 4, "matrix": [3, 13], "x": 135, "y": 38 }, + { "flags": 4, "matrix": [3, 17], "x": 194, "y": 38 }, + { "flags": 4, "matrix": [3, 18], "x": 204, "y": 38 }, + { "flags": 4, "matrix": [3, 19], "x": 214, "y": 38 }, + + { "flags": 4, "matrix": [4, 0], "x": 5, "y": 51 }, + { "flags": 4, "matrix": [4, 1], "x": 20, "y": 51 }, + { "flags": 4, "matrix": [4, 2], "x": 30, "y": 51 }, + { "flags": 4, "matrix": [4, 3], "x": 40, "y": 51 }, + { "flags": 4, "matrix": [4, 4], "x": 50, "y": 51 }, + { "flags": 4, "matrix": [4, 5], "x": 60, "y": 51 }, + { "flags": 4, "matrix": [4, 6], "x": 70, "y": 51 }, + { "flags": 4, "matrix": [4, 7], "x": 80, "y": 51 }, + { "flags": 4, "matrix": [4, 8], "x": 90, "y": 51 }, + { "flags": 4, "matrix": [4, 9], "x": 100, "y": 51 }, + { "flags": 4, "matrix": [4, 10], "x": 110, "y": 51 }, + { "flags": 4, "matrix": [4, 13], "x": 135, "y": 51 }, + { "flags": 4, "matrix": [4, 15], "x": 166, "y": 51 }, + { "flags": 4, "matrix": [4, 17], "x": 194, "y": 51 }, + { "flags": 4, "matrix": [4, 18], "x": 204, "y": 51 }, + { "flags": 4, "matrix": [4, 19], "x": 214, "y": 51 }, + { "flags": 4, "matrix": [4, 20], "x": 224, "y": 51 }, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [5, 1], "x": 10, "y": 64 }, + { "flags": 4, "matrix": [5, 2], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [5, 5], "x": 60, "y": 64 }, + { "flags": 4, "matrix": [5, 9], "x": 100, "y": 64 }, + { "flags": 4, "matrix": [5, 10], "x": 110, "y": 64 }, + { "flags": 4, "matrix": [5, 11], "x": 130, "y": 64 }, + { "flags": 4, "matrix": [5, 13], "x": 140, "y": 64 }, + { "flags": 4, "matrix": [5, 14], "x": 156, "y": 64 }, + { "flags": 4, "matrix": [5, 15], "x": 166, "y": 64 }, + { "flags": 4, "matrix": [5, 16], "x": 176, "y": 64 }, + { "flags": 4, "matrix": [5, 18], "x": 199, "y": 64 }, + { "flags": 4, "matrix": [5, 19], "x": 214, "y": 64 } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 }, + { "label": "Cal", "matrix": [0, 17], "x": 18.5, "y": 0 }, + { "label": "Mute", "matrix": [0, 18], "x": 19.5, "y": 0 }, + { "label": "Vold", "matrix": [0, 19], "x": 20.5, "y": 0 }, + { "label": "Volu", "matrix": [0, 20], "x": 21.5, "y": 0 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 }, + { "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "label": "Num", "matrix": [1, 17], "x": 18.5, "y": 1.25 }, + { "label": "/", "matrix": [1, 18], "x": 19.5, "y": 1.25 }, + { "label": "*", "matrix": [1, 19], "x": 20.5, "y": 1.25 }, + { "label": "-", "matrix": [1, 20], "x": 21.5, "y": 1.25 }, + + { "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "label": "7", "matrix": [2, 17], "x": 18.5, "y": 2.25 }, + { "label": "8", "matrix": [2, 18], "x": 19.5, "y": 2.25 }, + { "label": "9", "matrix": [2, 19], "x": 20.5, "y": 2.25 }, + { "label": "+", "matrix": [2, 20], "x": 21.5, "y": 2.25, "h": 2 }, + + { "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "4", "matrix": [3, 17], "x": 18.5, "y": 3.25 }, + { "label": "5", "matrix": [3, 18], "x": 19.5, "y": 3.25 }, + { "label": "6", "matrix": [3, 19], "x": 20.5, "y": 3.25 }, + + { "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "label": "1", "matrix": [4, 17], "x": 18.5, "y": 4.25 }, + { "label": "2", "matrix": [4, 18], "x": 19.5, "y": 4.25 }, + { "label": "3", "matrix": [4, 19], "x": 20.5, "y": 4.25 }, + { "label": "Enter", "matrix": [4, 20], "x": 21.5, "y": 4.25, "h": 2 }, + + { "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 }, + { "label": "0", "matrix": [5, 18], "x": 18.5, "y": 5.25, "w": 2 }, + { "label": ".", "matrix": [5, 19], "x": 20.5, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/akko/5108/keymaps/default/keymap.c b/keyboards/akko/5108/keymaps/default/keymap.c new file mode 100644 index 00000000000..ef92432ff57 --- /dev/null +++ b/keyboards/akko/5108/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) +}; +// clang-format on diff --git a/keyboards/akko/5108/keymaps/via/keymap.c b/keyboards/akko/5108/keymaps/via/keymap.c new file mode 100644 index 00000000000..ef92432ff57 --- /dev/null +++ b/keyboards/akko/5108/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) +}; +// clang-format on diff --git a/keyboards/mino_plus/keymaps/via/rules.mk b/keyboards/akko/5108/keymaps/via/rules.mk similarity index 100% rename from keyboards/mino_plus/keymaps/via/rules.mk rename to keyboards/akko/5108/keymaps/via/rules.mk diff --git a/keyboards/akko/5108/keymaps/vial/config.h b/keyboards/akko/5108/keymaps/vial/config.h new file mode 100644 index 00000000000..aee4c972fa6 --- /dev/null +++ b/keyboards/akko/5108/keymaps/vial/config.h @@ -0,0 +1,11 @@ +// Copyright 2023 Oleg Titov +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Unique keyboard id +#define VIAL_KEYBOARD_UID {0x75, 0xD1, 0xD4, 0x59, 0xA2, 0xC8, 0x71, 0x93} + +// Unlock with Escape+Enter +#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } diff --git a/keyboards/akko/5108/keymaps/vial/keymap.c b/keyboards/akko/5108/keymaps/vial/keymap.c new file mode 100644 index 00000000000..ef92432ff57 --- /dev/null +++ b/keyboards/akko/5108/keymaps/vial/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) +}; +// clang-format on diff --git a/keyboards/akko/5108/keymaps/vial/rules.mk b/keyboards/akko/5108/keymaps/vial/rules.mk new file mode 100644 index 00000000000..6689dd363b9 --- /dev/null +++ b/keyboards/akko/5108/keymaps/vial/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes # Enable VIA +VIAL_ENABLE = yes # Enable VIAL +VIALRGB_ENABLE = yes # Enable VIALRGB diff --git a/keyboards/akko/5108/keymaps/vial/vial.json b/keyboards/akko/5108/keymaps/vial/vial.json new file mode 100644 index 00000000000..81b1915e1e9 --- /dev/null +++ b/keyboards/akko/5108/keymaps/vial/vial.json @@ -0,0 +1,261 @@ +{ + "name": "Akko 5108", + "vendorId": "0xFFFE", + "productId": "0x000D", + "lighting": "vialrgb", + "matrix": { + "rows": 6, + "cols": 21 + }, + "layouts": { + "keymap": [ + [ + { + "c": "#777777" + }, + "0,0", + { + "x": 1, + "c": "#aaaaaa" + }, + "0,1", + "0,2", + "0,3", + "0,4", + { + "x": 0.5 + }, + "0,5", + "0,6", + "0,7", + "0,8", + { + "x": 0.5 + }, + "0,9", + "0,10", + "0,11", + "0,12", + { + "x": 0.25 + }, + "0,14", + "0,15", + "0,16", + { + "x": 0.25 + }, + "0,17", + "0,18", + "0,19", + "0,20" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "c": "#aaaaaa", + "w": 2 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16", + { + "x": 0.25 + }, + "1,17", + "1,18", + "1,19", + "1,20" + ], + [ + { + "w": 1.5 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "w": 1.5 + }, + "2,13", + { + "x": 0.25, + "c": "#aaaaaa" + }, + "2,14", + "2,15", + "2,16", + { + "x": 0.25, + "c": "#cccccc" + }, + "2,17", + "2,18", + "2,19", + { + "c": "#aaaaaa", + "h": 2 + }, + "2,20" + ], + [ + { + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#777777", + "w": 2.25 + }, + "3,13", + { + "x": 3.5, + "c": "#cccccc" + }, + "3,17", + "3,18", + "3,19" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "4,0", + { + "c": "#cccccc" + }, + "4,1", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "4,13", + { + "x": 1.25, + "c": "#777777" + }, + "4,15", + { + "x": 1.25, + "c": "#cccccc" + }, + "4,17", + "4,18", + "4,19", + { + "c": "#777777", + "h": 2 + }, + "4,20" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,0", + { + "w": 1.25 + }, + "5,1", + { + "w": 1.25 + }, + "5,2", + { + "c": "#777777", + "w": 6.25 + }, + "5,5", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,9", + { + "w": 1.25 + }, + "5,10", + { + "w": 1.25 + }, + "5,11", + { + "w": 1.25 + }, + "5,13", + { + "x": 0.25, + "c": "#777777" + }, + "5,14", + "5,15", + "5,16", + { + "x": 0.25, + "c": "#cccccc", + "w": 2 + }, + "5,18", + "5,19" + ] + ] + } +} diff --git a/keyboards/hfdkb/keyboard_sw/k83/mcuconf.h b/keyboards/akko/5108/mcuconf.h similarity index 100% rename from keyboards/hfdkb/keyboard_sw/k83/mcuconf.h rename to keyboards/akko/5108/mcuconf.h diff --git a/keyboards/akko/5108/readme.md b/keyboards/akko/5108/readme.md new file mode 100644 index 00000000000..c7140deb5c7 --- /dev/null +++ b/keyboards/akko/5108/readme.md @@ -0,0 +1,20 @@ +# 5108 + +A customizable 100% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: Akko 5108 +* Hardware Availability: [akko](https://www.akkogear.com/) + +Make example for this keyboard (after setting up your build environment): + + make akko/5108:default + +Flashing example for this keyboard: + + make akko/5108:default:flash + +## Bootloader +**Reset Key**: Hold down the key located at *K000*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/akko/5108/rules.mk b/keyboards/akko/5108/rules.mk new file mode 100644 index 00000000000..24d5f6f52ec --- /dev/null +++ b/keyboards/akko/5108/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/akko/acr87/acr87.c b/keyboards/akko/acr87/acr87.c new file mode 100644 index 00000000000..e175e21368e --- /dev/null +++ b/keyboards/akko/acr87/acr87.c @@ -0,0 +1,217 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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" +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + /*row0*/ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + {1, A_15, B_15, C_15}, + {1, A_16, B_16, C_16}, + + /*row1*/ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + + /*row2*/ + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + + /*row3*/ + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + + /*row4*/ + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, J_4, K_4, L_4}, + + /*row5*/ + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + {0, D_15, E_15, F_15}, + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + + {2, J_12, K_12, L_12}, + {2, J_11, K_11, L_11}, + {2, J_10, K_10, L_10}, + {2, J_9, K_9, L_9}, + {2, J_8, K_8, L_8}, + {2, J_7, K_7, L_7}, + {2, J_6, K_6, L_6}, + {2, J_5, K_5, L_5}, + {2, J_4, K_4, L_4}, + {2, J_3, K_3, L_3}, + {2, J_2, K_2, L_2}, + {2, J_1, K_1, L_1}, + {2, G_12, H_12, I_12}, + {2, G_11, H_11, I_11}, + {2, G_10, H_10, I_10}, + {2, G_9, H_9, I_9}, + + {2, A_1, B_1, C_1}, + {2, G_8, H_8, I_8}, + + {2, A_2, B_2, C_2}, + {2, G_7, H_7, I_7}, + + {2, A_3, B_3, C_3}, + {2, G_6, H_6, I_6}, + + {2, A_4, B_4, C_4}, + {2, G_5, H_5, I_5}, + + {2, A_5, B_5, C_5}, + {2, G_4, H_4, I_4}, + + {2, A_6, B_6, C_6}, + {2, G_3, H_3, I_3}, + + {2, A_7, B_7, C_7}, + {2, G_2, H_2, I_2}, + + {2, A_8, B_8, C_8}, + {2, A_9, B_9, C_9}, + {2, A_10, B_10, C_10}, + {2, A_11, B_11, C_11}, + {2, A_12, B_12, C_12}, + {2, D_1, E_1, F_1}, + {2, D_2, E_2, F_2}, + {2, D_3, E_3, F_3}, + {2, D_4, E_4, F_4}, + {2, D_5, E_5, F_5}, + {2, D_6, E_6, F_6}, + {2, D_7, E_7, F_7}, + {2, D_8, E_8, F_8}, + {2, D_9, E_9, F_9}, + {2, D_10, E_10, F_10}, + {2, D_11, E_11, F_11}, + {2, D_12, E_12, F_12}, + {2, G_1, H_1, I_1}, +}; + +// clang-format on +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(50, 255, 255, 255); + } + else + { + if (!rgb_matrix_get_flags()) + { + RGB_MATRIX_INDICATOR_SET_COLOR(50, 0, 0, 0); + } + } + if (keymap_config.no_gui) + { + RGB_MATRIX_INDICATOR_SET_COLOR(77, 255, 255, 255); + } + else + { + if (!rgb_matrix_get_flags()) + { + RGB_MATRIX_INDICATOR_SET_COLOR(77, 0, 0, 0); + } + } + + return true; +} + +#endif diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h new file mode 100644 index 00000000000..221cad86ad1 --- /dev/null +++ b/keyboards/akko/acr87/config.h @@ -0,0 +1,53 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 + +/* Use 5 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 3 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_3 0b1110110 + +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 135 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/akko/acr87/halconf.h b/keyboards/akko/acr87/halconf.h new file mode 100644 index 00000000000..2f64e65393a --- /dev/null +++ b/keyboards/akko/acr87/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json new file mode 100644 index 00000000000..5ff1926d0c5 --- /dev/null +++ b/keyboards/akko/acr87/info.json @@ -0,0 +1,294 @@ +{ + "keyboard_name": "ACR87", + "manufacturer": "Akko", + "url":"https://www.akkogear.com", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x0010", + "device_version": "1.0.1", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": [ "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10"], + "rows": [ "B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "rgb_matrix": { + "driver": "is31fl3733", + "max_brightness": 180, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + { "flags": 4, "matrix": [0, 1], "x": 24, "y": 0}, + { "flags": 4, "matrix": [0, 2], "x": 38, "y": 0}, + { "flags": 4, "matrix": [0, 3], "x": 52, "y": 0}, + { "flags": 4, "matrix": [0, 4], "x": 66, "y": 0}, + { "flags": 4, "matrix": [0, 5], "x": 82, "y": 0}, + { "flags": 4, "matrix": [0, 6], "x": 96, "y": 0}, + { "flags": 4, "matrix": [0, 7], "x":110, "y": 0}, + { "flags": 4, "matrix": [0, 8], "x":124, "y": 0}, + { "flags": 4, "matrix": [0, 9], "x":140, "y": 0}, + { "flags": 4, "matrix": [0, 10], "x":154, "y": 0}, + { "flags": 4, "matrix": [0, 11], "x":168, "y": 0}, + { "flags": 4, "matrix": [0, 12], "x":182, "y": 0}, + { "flags": 4, "matrix": [0, 14], "x":196, "y": 0}, + { "flags": 4, "matrix": [0, 15], "x":210, "y": 0}, + { "flags": 4, "matrix": [0, 16], "x":224, "y": 0}, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 12}, + { "flags": 4, "matrix": [1, 1], "x": 13, "y": 12}, + { "flags": 4, "matrix": [1, 2], "x": 26, "y": 12}, + { "flags": 4, "matrix": [1, 3], "x": 39, "y": 12}, + { "flags": 4, "matrix": [1, 4], "x": 52, "y": 12}, + { "flags": 4, "matrix": [1, 5], "x": 65, "y": 12}, + { "flags": 4, "matrix": [1, 6], "x": 79, "y": 12}, + { "flags": 4, "matrix": [1, 7], "x": 92, "y": 12}, + { "flags": 4, "matrix": [1, 8], "x":105, "y": 12}, + { "flags": 4, "matrix": [1, 9], "x":118, "y": 12}, + { "flags": 4, "matrix": [1, 10], "x":131, "y": 12}, + { "flags": 4, "matrix": [1, 11], "x":144, "y": 12}, + { "flags": 4, "matrix": [1, 12], "x":158, "y": 12}, + { "flags": 4, "matrix": [1, 13], "x":171, "y": 12}, + { "flags": 4, "matrix": [1, 14], "x":184, "y": 12}, + { "flags": 4, "matrix": [1, 15], "x":197, "y": 12}, + { "flags": 4, "matrix": [1, 16], "x":210, "y": 12}, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 26}, + { "flags": 4, "matrix": [2, 1], "x": 14, "y": 26}, + { "flags": 4, "matrix": [2, 2], "x": 28, "y": 26}, + { "flags": 4, "matrix": [2, 3], "x": 42, "y": 26}, + { "flags": 4, "matrix": [2, 4], "x": 56, "y": 26}, + { "flags": 4, "matrix": [2, 5], "x": 70, "y": 26}, + { "flags": 4, "matrix": [2, 6], "x": 84, "y": 26}, + { "flags": 4, "matrix": [2, 7], "x": 98, "y": 26}, + { "flags": 4, "matrix": [2, 8], "x":112, "y": 26}, + { "flags": 4, "matrix": [2, 9], "x":126, "y": 26}, + { "flags": 4, "matrix": [2, 10], "x":140, "y": 26}, + { "flags": 4, "matrix": [2, 11], "x":154, "y": 26}, + { "flags": 4, "matrix": [2, 12], "x":168, "y": 26}, + { "flags": 4, "matrix": [2, 13], "x":182, "y": 26}, + { "flags": 4, "matrix": [2, 14], "x":196, "y": 26}, + { "flags": 4, "matrix": [2, 15], "x":210, "y": 26}, + { "flags": 4, "matrix": [2, 16], "x":224, "y": 26}, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38}, + { "flags": 4, "matrix": [3, 1], "x": 14, "y": 38}, + { "flags": 4, "matrix": [3, 2], "x": 28, "y": 38}, + { "flags": 4, "matrix": [3, 3], "x": 42, "y": 38}, + { "flags": 4, "matrix": [3, 4], "x": 56, "y": 38}, + { "flags": 4, "matrix": [3, 5], "x": 70, "y": 38}, + { "flags": 4, "matrix": [3, 6], "x": 84, "y": 38}, + { "flags": 4, "matrix": [3, 7], "x": 98, "y": 38}, + { "flags": 4, "matrix": [3, 8], "x":112, "y": 38}, + { "flags": 4, "matrix": [3, 9], "x":126, "y": 38}, + { "flags": 4, "matrix": [3, 10], "x":140, "y": 38}, + { "flags": 4, "matrix": [3, 11], "x":154, "y": 38}, + { "flags": 4, "matrix": [3, 13], "x":182, "y": 38}, + + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 51}, + { "flags": 4, "matrix": [4, 1], "x": 14, "y": 51}, + { "flags": 4, "matrix": [4, 2], "x": 28, "y": 51}, + { "flags": 4, "matrix": [4, 3], "x": 42, "y": 51}, + { "flags": 4, "matrix": [4, 4], "x": 56, "y": 51}, + { "flags": 4, "matrix": [4, 5], "x": 70, "y": 51}, + { "flags": 4, "matrix": [4, 6], "x": 84, "y": 51}, + { "flags": 4, "matrix": [4, 7], "x": 98, "y": 51}, + { "flags": 4, "matrix": [4, 8], "x":112, "y": 51}, + { "flags": 4, "matrix": [4, 9], "x":126, "y": 51}, + { "flags": 4, "matrix": [4, 10], "x":140, "y": 51}, + { "flags": 4, "matrix": [4, 13], "x":154, "y": 51}, + { "flags": 4, "matrix": [4, 15], "x":182, "y": 51}, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64}, + { "flags": 4, "matrix": [5, 1], "x": 14, "y": 64}, + { "flags": 4, "matrix": [5, 2], "x": 28, "y": 64}, + { "flags": 4, "matrix": [5, 5], "x": 70, "y": 64}, + { "flags": 4, "matrix": [5, 9], "x":126, "y": 64}, + { "flags": 4, "matrix": [5, 10], "x":140, "y": 64}, + { "flags": 4, "matrix": [5, 11], "x":154, "y": 64}, + { "flags": 4, "matrix": [5, 13], "x":182, "y": 64}, + { "flags": 4, "matrix": [5, 14], "x":196, "y": 64}, + { "flags": 4, "matrix": [5, 15], "x":210, "y": 64}, + { "flags": 4, "matrix": [5, 16], "x":224, "y": 64}, + + {"flags": 2, "x":13, "y":0}, + {"flags": 2, "x":24, "y":0}, + {"flags": 2, "x":38, "y":0}, + {"flags": 2, "x":52, "y":0}, + {"flags": 2, "x":66, "y":0}, + {"flags": 2, "x":82, "y":0}, + {"flags": 2, "x":96, "y":0}, + {"flags": 2, "x":110, "y":0}, + {"flags": 2, "x":124, "y":0}, + {"flags": 2, "x":140, "y":0}, + {"flags": 2, "x":154, "y":0}, + {"flags": 2, "x":168, "y":0}, + {"flags": 2, "x":182, "y":0}, + {"flags": 2, "x":196, "y":0}, + {"flags": 2, "x":210, "y":0}, + {"flags": 2, "x":224, "y":0}, + {"flags": 2, "x":0, "y":8}, + {"flags": 2, "x":224, "y":8}, + {"flags": 2, "x":0, "y":16}, + {"flags": 2, "x":224, "y":16}, + {"flags": 2, "x":0, "y":24}, + {"flags": 2, "x":224, "y":24}, + {"flags": 2, "x":0, "y":32}, + {"flags": 2, "x":224, "y":32}, + {"flags": 2, "x":0, "y":40}, + {"flags": 2, "x":224, "y":40}, + {"flags": 2, "x":0, "y":48}, + {"flags": 2, "x":224, "y":48}, + {"flags": 2, "x":0, "y":56}, + {"flags": 2, "x":224, "y":56}, + {"flags": 2, "x":0, "y":64}, + {"flags": 2, "x":13, "y":64}, + {"flags": 2, "x":25, "y":64}, + {"flags": 2, "x":37, "y":64}, + {"flags": 2, "x":49, "y":64}, + {"flags": 2, "x":61, "y":64}, + {"flags": 2, "x":73, "y":64}, + {"flags": 2, "x":85, "y":64}, + {"flags": 2, "x":97, "y":64}, + {"flags": 2, "x":109, "y":64}, + {"flags": 2, "x":121, "y":64}, + {"flags": 2, "x":133, "y":64}, + {"flags": 2, "x":145, "y":64}, + {"flags": 2, "x":157, "y":64}, + {"flags": 2, "x":170, "y":64}, + {"flags": 2, "x":196, "y":64}, + {"flags": 2, "x":210, "y":64}, + {"flags": 2, "x":224, "y":64} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 }, + { "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 } + + ] + } + } +} diff --git a/keyboards/akko/acr87/keymaps/default/keymap.c b/keyboards/akko/acr87/keymaps/default/keymap.c new file mode 100644 index 00000000000..88bfbc8e1fd --- /dev/null +++ b/keyboards/akko/acr87/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/akko/acr87/keymaps/via/keymap.c b/keyboards/akko/acr87/keymaps/via/keymap.c new file mode 100644 index 00000000000..88bfbc8e1fd --- /dev/null +++ b/keyboards/akko/acr87/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/akko/acr87/keymaps/via/rules.mk b/keyboards/akko/acr87/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/akko/acr87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/akko/acr87/keymaps/vial/config.h b/keyboards/akko/acr87/keymaps/vial/config.h new file mode 100644 index 00000000000..77e2c2bf789 --- /dev/null +++ b/keyboards/akko/acr87/keymaps/vial/config.h @@ -0,0 +1,11 @@ +// Copyright 2023 Oleg Titov +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Unique keyboard id +#define VIAL_KEYBOARD_UID {0x29, 0x54, 0x15, 0xFC, 0x17, 0xCD, 0xBF, 0x37} + +// Unlock with Escape+Enter +#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } diff --git a/keyboards/akko/acr87/keymaps/vial/keymap.c b/keyboards/akko/acr87/keymaps/vial/keymap.c new file mode 100644 index 00000000000..88bfbc8e1fd --- /dev/null +++ b/keyboards/akko/acr87/keymaps/vial/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/akko/acr87/keymaps/vial/rules.mk b/keyboards/akko/acr87/keymaps/vial/rules.mk new file mode 100644 index 00000000000..6689dd363b9 --- /dev/null +++ b/keyboards/akko/acr87/keymaps/vial/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes # Enable VIA +VIAL_ENABLE = yes # Enable VIAL +VIALRGB_ENABLE = yes # Enable VIALRGB diff --git a/keyboards/akko/acr87/keymaps/vial/vial.json b/keyboards/akko/acr87/keymaps/vial/vial.json new file mode 100644 index 00000000000..18e3894fdfd --- /dev/null +++ b/keyboards/akko/acr87/keymaps/vial/vial.json @@ -0,0 +1,206 @@ +{ + "name": "Akko ACR87", + "vendorId": "0xFFFE", + "productId": "0x0010", + "lighting": "vialrgb", + "matrix": { "rows": 6, "cols": 17 }, + "layouts": { + "keymap":[ + [ + { + "c": "#777777" + }, + "0,0", + { + "x": 1, + "c": "#aaaaaa" + }, + "0,1", + "0,2", + "0,3", + "0,4", + { + "x": 0.5 + }, + "0,5", + "0,6", + "0,7", + "0,8", + { + "x": 0.5 + }, + "0,9", + "0,10", + "0,11", + "0,12", + { + "x": 0.25 + }, + "0,14", + "0,15", + "0,16" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "c": "#aaaaaa", + "w": 2 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16" + ], + [ + { + "w": 1.5 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "w": 1.5 + }, + "2,13", + { + "x": 0.25, + "c": "#aaaaaa" + }, + "2,14", + "2,15", + "2,16" + ], + [ + { + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#777777", + "w": 2.25 + }, + "3,13" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "4,0", + { + "c": "#cccccc" + }, + "4,1", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "4,13", + { + "x": 1.25, + "c": "#777777" + }, + "4,15" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,0", + { + "w": 1.25 + }, + "5,1", + { + "w": 1.25 + }, + "5,2", + { + "c": "#777777", + "w": 6.25 + }, + "5,5", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,9", + { + "w": 1.25 + }, + "5,10", + { + "w": 1.25 + }, + "5,11", + { + "w": 1.25 + }, + "5,13", + { + "x": 0.25, + "c": "#777777" + }, + "5,14", + "5,15", + "5,16" + ] + ] + } +} diff --git a/keyboards/akko/acr87/mcuconf.h b/keyboards/akko/acr87/mcuconf.h new file mode 100644 index 00000000000..0d16f4f04e4 --- /dev/null +++ b/keyboards/akko/acr87/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/akko/acr87/readme.md b/keyboards/akko/acr87/readme.md new file mode 100644 index 00000000000..a4f400ce761 --- /dev/null +++ b/keyboards/akko/acr87/readme.md @@ -0,0 +1,19 @@ +# acr87 + +A customizable 80% encoder keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: acr87 +* Hardware Availability: [akko](https://www.akkogear.com/) + +Make example for this keyboard (after setting up your build environment): + + make akko/acr87:default + +Flashing example for this keyboard: + + make akko/acr87:default:flash + +**Reset Key**: Hold down the key located at *K000*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/akko/acr87/rules.mk b/keyboards/akko/acr87/rules.mk new file mode 100644 index 00000000000..0dc7a331420 --- /dev/null +++ b/keyboards/akko/acr87/rules.mk @@ -0,0 +1,3 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash + diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h new file mode 100644 index 00000000000..bd849292e6a --- /dev/null +++ b/keyboards/akko/top40/config.h @@ -0,0 +1,52 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 + +/* Use 5 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 76 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES +#define RGB_TRIGGER_ON_KEYDOWN + diff --git a/keyboards/akko/top40/halconf.h b/keyboards/akko/top40/halconf.h new file mode 100644 index 00000000000..2f64e65393a --- /dev/null +++ b/keyboards/akko/top40/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json new file mode 100644 index 00000000000..48252e6c776 --- /dev/null +++ b/keyboards/akko/top40/info.json @@ -0,0 +1,188 @@ +{ + "keyboard_name": "TOP40", + "manufacturer": "Akko", + "url":"https://www.akkogear.com", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x000E", + "device_version": "1.0.2", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4"], + "rows": ["C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "rgb_matrix": { + "driver": "is31fl3733", + "max_brightness": 180, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 10, "y":10 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y":10 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "y":10 }, + { "flags": 4, "matrix": [0, 3], "x": 60, "y":10 }, + { "flags": 4, "matrix": [0, 4], "x": 80, "y":10 }, + { "flags": 4, "matrix": [0, 5], "x":100 , "y":10 }, + { "flags": 4, "matrix": [0, 6], "x":120 , "y":10 }, + { "flags": 4, "matrix": [0, 7], "x":140 , "y":10 }, + { "flags": 4, "matrix": [0, 8], "x":160 , "y":10 }, + { "flags": 4, "matrix": [0, 9], "x":180 , "y":10 }, + { "flags": 4, "matrix": [0, 10], "x":200 , "y":10 }, + { "flags": 4, "matrix": [0, 11], "x":218 , "y":10 }, + + { "flags": 4, "matrix": [1, 0], "x": 10, "y":24 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y":24 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y":24 }, + { "flags": 4, "matrix": [1, 3], "x": 60, "y":24 }, + { "flags": 4, "matrix": [1, 4], "x": 80, "y":24 }, + { "flags": 4, "matrix": [1, 5], "x":100 , "y":24 }, + { "flags": 4, "matrix": [1, 6], "x":120 , "y":24 }, + { "flags": 4, "matrix": [1, 7], "x":140 , "y":24 }, + { "flags": 4, "matrix": [1, 8], "x":160 , "y":24 }, + { "flags": 4, "matrix": [1, 9], "x":180 , "y":24 }, + { "flags": 4, "matrix": [1, 10], "x":200 , "y":24 }, + { "flags": 4, "matrix": [1, 11], "x":218 , "y":24 }, + + { "flags": 4, "matrix": [2, 0], "x": 10, "y":39 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y":39 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "y":39 }, + { "flags": 4, "matrix": [2, 3], "x": 60, "y":39 }, + { "flags": 4, "matrix": [2, 4], "x": 80, "y":39 }, + { "flags": 4, "matrix": [2, 5], "x":100 , "y":39 }, + { "flags": 4, "matrix": [2, 6], "x":120 , "y":39 }, + { "flags": 4, "matrix": [2, 7], "x":140 , "y":39 }, + { "flags": 4, "matrix": [2, 8], "x":160 , "y":39 }, + { "flags": 4, "matrix": [2, 9], "x":180 , "y":39 }, + { "flags": 4, "matrix": [2, 10], "x":200 , "y":39 }, + { "flags": 4, "matrix": [2, 11], "x":218 , "y":39 }, + + { "flags": 4, "matrix": [3, 0], "x": 10, "y":54 }, + { "flags": 4, "matrix": [3, 1], "x": 20, "y":54 }, + { "flags": 4, "matrix": [3, 2], "x": 40, "y":54 }, + { "flags": 4, "matrix": [3, 4], "x": 80, "y":54 }, + { "flags": 4, "matrix": [3, 6], "x":120 , "y":54 }, + { "flags": 4, "matrix": [3, 8], "x":160 , "y":54 }, + { "flags": 4, "matrix": [3, 9], "x":180 , "y":54 }, + { "flags": 4, "matrix": [3, 10], "x":200 , "y":54 }, + { "flags": 4, "matrix": [3, 11], "x":218 , "y":54 }, + + {"flags": 2, "x":0, "y":0}, + {"flags": 2, "x":15, "y":0}, + {"flags": 2, "x":25, "y":0}, + {"flags": 2, "x":45, "y":0}, + {"flags": 2, "x":65, "y":0}, + {"flags": 2, "x":85, "y":0}, + {"flags": 2, "x":105, "y":0}, + {"flags": 2, "x":125, "y":0}, + {"flags": 2, "x":145, "y":0}, + {"flags": 2, "x":165, "y":0}, + {"flags": 2, "x":185, "y":0}, + {"flags": 2, "x":205, "y":0}, + {"flags": 2, "x":224, "y":0}, + {"flags": 2, "x":0, "y":16}, + {"flags": 2, "x":224, "y":16}, + {"flags": 2, "x":0, "y":32}, + {"flags": 2, "x":224, "y":32}, + {"flags": 2, "x":0, "y":48}, + {"flags": 2, "x":224, "y":48}, + {"flags": 2, "x":0, "y":64}, + {"flags": 2, "x":15, "y":64}, + {"flags": 2, "x":40, "y":64}, + {"flags": 2, "x":62, "y":64}, + {"flags": 2, "x":80, "y":64}, + {"flags": 2, "x":100, "y":64}, + {"flags": 2, "x":125, "y":64}, + {"flags": 2, "x":145, "y":64}, + {"flags": 2, "x":165, "y":64}, + {"flags": 2, "x":185, "y":64}, + {"flags": 2, "x":205, "y":64}, + {"flags": 2, "x":224, "y":64} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Ese", "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 , "w": 1.75}, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25 }, + { "label": "A", "matrix": [1, 1], "x": 1.25, "y": 1 }, + { "label": "S", "matrix": [1, 2], "x": 2.25, "y": 1 }, + { "label": "D", "matrix": [1, 3], "x": 3.25, "y": 1 }, + { "label": "F", "matrix": [1, 4], "x": 4.25, "y": 1 }, + { "label": "G", "matrix": [1, 5], "x": 5.25, "y": 1 }, + { "label": "H", "matrix": [1, 6], "x": 6.25, "y": 1 }, + { "label": "J", "matrix": [1, 7], "x": 7.25, "y": 1 }, + { "label": "K", "matrix": [1, 8], "x": 8.25, "y": 1 }, + { "label": "L", "matrix": [1, 9], "x": 9.25, "y": 1 }, + { "label": ":", "matrix": [1, 10], "x": 10.25, "y": 1 }, + { "label": "Enter", "matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.5 }, + + { "label": "Shift", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "Z", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "X", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "C", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "V", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "B", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "N", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "M", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "<", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": ">", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "Up", "matrix": [2, 10], "x": 10.75, "y": 2}, + { "label": "Shift", "matrix": [2, 11], "x": 11.75, "y": 2 }, + + { "label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 }, + { "label": "Win", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25 }, + { "label": "Alt", "matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25 }, + { "label": "Space", "matrix": [3, 4], "x": 3.75, "y": 3, "w": 2.25 }, + { "label": "Space", "matrix": [3, 6], "x": 6, "y": 3, "w": 2.75 }, + { "label": "Fn", "matrix": [3, 8], "x": 8.75, "y": 3 }, + { "label": "Left", "matrix": [3, 9], "x": 9.75, "y": 3 }, + { "label": "Down", "matrix": [3, 10], "x": 10.75, "y": 3 }, + { "label": "Right", "matrix": [3, 11], "x": 11.75, "y": 3 } + ] + } + } +} diff --git a/keyboards/akko/top40/keymaps/default/keymap.c b/keyboards/akko/top40/keymaps/default/keymap.c new file mode 100644 index 00000000000..fb9df162355 --- /dev/null +++ b/keyboards/akko/top40/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + _Base, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_Base] = LAYOUT( /* Base */ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_FN),KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN] = LAYOUT( /* Fn */ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD, + _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI) +}; diff --git a/keyboards/akko/top40/keymaps/via/keymap.c b/keyboards/akko/top40/keymaps/via/keymap.c new file mode 100644 index 00000000000..fb9df162355 --- /dev/null +++ b/keyboards/akko/top40/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + _Base, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_Base] = LAYOUT( /* Base */ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_FN),KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN] = LAYOUT( /* Fn */ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD, + _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI) +}; diff --git a/keyboards/akko/top40/keymaps/via/rules.mk b/keyboards/akko/top40/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/akko/top40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/akko/top40/keymaps/vial/config.h b/keyboards/akko/top40/keymaps/vial/config.h new file mode 100644 index 00000000000..3bab1e52dca --- /dev/null +++ b/keyboards/akko/top40/keymaps/vial/config.h @@ -0,0 +1,13 @@ +// Copyright 2023 Oleg Titov +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Unique keyboard id +#define VIAL_KEYBOARD_UID {0x5D, 0x72, 0x7C, 0xB4, 0xC9, 0x7C, 0xF2, 0x60} + +// Unlock with Escape+Enter +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 11 } + + diff --git a/keyboards/akko/top40/keymaps/vial/keymap.c b/keyboards/akko/top40/keymaps/vial/keymap.c new file mode 100644 index 00000000000..fb9df162355 --- /dev/null +++ b/keyboards/akko/top40/keymaps/vial/keymap.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + _Base, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_Base] = LAYOUT( /* Base */ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_FN),KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN] = LAYOUT( /* Fn */ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD, + _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI) +}; diff --git a/keyboards/akko/top40/keymaps/vial/rules.mk b/keyboards/akko/top40/keymaps/vial/rules.mk new file mode 100644 index 00000000000..6689dd363b9 --- /dev/null +++ b/keyboards/akko/top40/keymaps/vial/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes # Enable VIA +VIAL_ENABLE = yes # Enable VIAL +VIALRGB_ENABLE = yes # Enable VIALRGB diff --git a/keyboards/akko/top40/keymaps/vial/vial.json b/keyboards/akko/top40/keymaps/vial/vial.json new file mode 100644 index 00000000000..864a769fdb2 --- /dev/null +++ b/keyboards/akko/top40/keymaps/vial/vial.json @@ -0,0 +1,114 @@ +{ + "name": "Akko Top40", + "vendorId": "0xFFFE", + "productId": "0x000E", + "lighting": "vialrgb", + "matrix": { "rows": 4, "cols": 12 }, + "layouts": { + "keymap":[ + [ + { + "c": "#aaaaaa" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + { + "c": "#777777", + "w": 1.75 + }, + "0,11" + ], + [ + { + "w": 1.25 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + { + "c": "#777777", + "w": 1.5 + }, + "1,11" + ], + [ + { + "w": 1.75 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + { + "c": "#aaaaaa" + }, + "2,10", + { + "c": "#777777" + }, + "2,11" + ], + [ + { + "w": 1.25 + }, + "3,0", + { + "w": 1.25 + }, + "3,1", + { + "w": 1.25 + }, + "3,2", + { + "w": 2.25 + }, + "3,4", + { + "w": 2.75 + }, + "3,6", + "3,8", + { + "c": "#aaaaaa" + }, + "3,9", + "3,10", + "3,11" + ] + ] + } +} diff --git a/keyboards/akko/top40/mcuconf.h b/keyboards/akko/top40/mcuconf.h new file mode 100644 index 00000000000..0d16f4f04e4 --- /dev/null +++ b/keyboards/akko/top40/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/akko/top40/readme.md b/keyboards/akko/top40/readme.md new file mode 100644 index 00000000000..87a2287b934 --- /dev/null +++ b/keyboards/akko/top40/readme.md @@ -0,0 +1,19 @@ +# top40 + +A customizable 40% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: top40 +* Hardware Availability: [akko](https://www.akkogear.com/) + +Make example for this keyboard (after setting up your build environment): + + make akko/top40:default + +Flashing example for this keyboard: + + make akko/top40:default:flash + +**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/akko/top40/rules.mk b/keyboards/akko/top40/rules.mk new file mode 100644 index 00000000000..b753f0682e5 --- /dev/null +++ b/keyboards/akko/top40/rules.mk @@ -0,0 +1,6 @@ +# Build Options +# change yes to no to disable +# +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash + diff --git a/keyboards/akko/top40/top40.c b/keyboards/akko/top40/top40.c new file mode 100644 index 00000000000..7fe193447dc --- /dev/null +++ b/keyboards/akko/top40/top40.c @@ -0,0 +1,125 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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" +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_5, K_5, L_5}, + {0, J_7, K_7, L_7}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, J_7, K_7, L_7}, + {1, J_6, K_6, L_6}, + {1, J_5, K_5, L_5}, + {1, J_4, K_4, L_4}, + {1, J_3, K_3, L_3}, + {1, J_2, K_2, L_2}, + {1, J_1, K_1, L_1}, + {1, G_8, H_8, I_8}, + {1, G_7, H_7, I_7}, + {1, G_6, H_6, I_6}, + + {1, A_4, B_4, C_4}, + {1, G_5, H_5, I_5}, + + {1, A_5, B_5, C_5}, + {1, G_4, H_4, I_4}, + + {1, A_6, B_6, C_6}, + {1, G_3, H_3, I_3}, + + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, D_1, E_1, F_1}, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + {1, D_4, E_4, F_4}, + {1, D_5, E_5, F_5}, + {1, D_6, E_6, F_6}, + {1, D_7, E_7, F_7}, + {1, D_8, E_8, F_8}, + {1, G_2, H_2, I_2}, + {1, G_1, H_1, I_1}, + +}; + +// clang-format on +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 (keymap_config.no_gui) { + rgb_matrix_set_color(37, 200, 200, 200); + } + return true; +} + +#endif \ No newline at end of file diff --git a/keyboards/alas/config.h b/keyboards/alas/config.h index a4424815608..6f81ce367b9 100644 --- a/keyboards/alas/config.h +++ b/keyboards/alas/config.h @@ -19,7 +19,3 @@ along with this program. If not, see . /* Ensure we jump to bootloader if the RESET keycode was pressed */ #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE - -/* Indicator LEDs */ -#define LED_CAPS_LOCK_PIN B6 -#define LED_PIN_ON_STATE 0 diff --git a/keyboards/alas/info.json b/keyboards/alas/info.json index b3db25d2d81..5c5e29f5956 100755 --- a/keyboards/alas/info.json +++ b/keyboards/alas/info.json @@ -8,6 +8,10 @@ "pid": "0x414C", "device_version": "0.0.1" }, + "indicators": { + "caps_lock": "B6", + "on_state": 0 + }, "matrix_pins": { "cols": ["A1", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "B2", "B10", "B11", "B12", "B13", "B14"], "rows": ["A2", "B9", "B8", "B5", "B4"] @@ -326,21 +330,21 @@ {"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, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [1, 13], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, + + {"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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, @@ -397,21 +401,21 @@ {"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, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [1, 13], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, + + {"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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, @@ -468,21 +472,21 @@ {"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, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [1, 13], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, + + {"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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, diff --git a/keyboards/alas/matrix_diagram.md b/keyboards/alas/matrix_diagram.md new file mode 100644 index 00000000000..87e5844f55a --- /dev/null +++ b/keyboards/alas/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Yiancar-Designs Alas + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/alas/rules.mk b/keyboards/alas/rules.mk old mode 100755 new mode 100644 index 4b25596ba2b..916e1bf9bb7 --- a/keyboards/alas/rules.mk +++ b/keyboards/alas/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/aleblazer/zodiark/config.h b/keyboards/aleblazer/zodiark/config.h index 900836e4a80..d765afd355f 100644 --- a/keyboards/aleblazer/zodiark/config.h +++ b/keyboards/aleblazer/zodiark/config.h @@ -18,33 +18,10 @@ along with this program. If not, see . #define SELECT_SOFT_SERIAL_SPEED 1 -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 68 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 34, 34 } -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#endif - #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 68 #define RGB_MATRIX_SPLIT { 34, 34 } #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_MATRIX_HUE_STEP 8 -#define RGB_MATRIX_SAT_STEP 8 -#define RGB_MATRIX_VAL_STEP 8 -#define RGB_MATRIX_SPD_STEP 10 #endif diff --git a/keyboards/aleblazer/zodiark/info.json b/keyboards/aleblazer/zodiark/info.json index 0052d39844e..c7c5b9a8a8e 100644 --- a/keyboards/aleblazer/zodiark/info.json +++ b/keyboards/aleblazer/zodiark/info.json @@ -12,10 +12,29 @@ "pin": "B5" }, "rgblight": { - "max_brightness": 170 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 68, + "max_brightness": 170, + "split_count": [34, 34], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "matrix_pins": { "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"], diff --git a/keyboards/aleblazer/zodiark/keymaps/via/config.h b/keyboards/aleblazer/zodiark/keymaps/via/config.h index 2e8732ecc72..135f55b9191 100644 --- a/keyboards/aleblazer/zodiark/keymaps/via/config.h +++ b/keyboards/aleblazer/zodiark/keymaps/via/config.h @@ -20,3 +20,8 @@ along with this program. If not, see . #define OLED_DISPLAY_128X64 #define OLED_TIMEOUT 400000 #endif + +#ifdef RGBLIGHT_ENABLE + #undef RGBLIGHT_EFFECT_RGB_TEST + #undef RGBLIGHT_EFFECT_ALTERNATING +#endif diff --git a/keyboards/aleblazer/zodiark/rules.mk b/keyboards/aleblazer/zodiark/rules.mk index 3f1afb07c1f..8fc2f2ff256 100644 --- a/keyboards/aleblazer/zodiark/rules.mk +++ b/keyboards/aleblazer/zodiark/rules.mk @@ -11,7 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C ENCODER_ENABLE = yes SPLIT_KEYBOARD = yes LTO_ENABLE = yes diff --git a/keyboards/alf/dc60/config.h b/keyboards/alf/dc60/config.h index b94b584df0e..d876570c808 100644 --- a/keyboards/alf/dc60/config.h +++ b/keyboards/alf/dc60/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/alf/dc60/info.json b/keyboards/alf/dc60/info.json index 9d304c8de9a..906b78c10e7 100644 --- a/keyboards/alf/dc60/info.json +++ b/keyboards/alf/dc60/info.json @@ -17,6 +17,23 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/alf/x11/config.h b/keyboards/alf/x11/config.h index 639c56298b1..b5b661bef2a 100644 --- a/keyboards/alf/x11/config.h +++ b/keyboards/alf/x11/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 28 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/alf/x11/info.json b/keyboards/alf/x11/info.json index bca26ecb0a1..1d1508fc11a 100644 --- a/keyboards/alf/x11/info.json +++ b/keyboards/alf/x11/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 28, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/alf/x2/config.h b/keyboards/alf/x2/config.h index c982289a0be..02460e0beda 100644 --- a/keyboards/alf/x2/config.h +++ b/keyboards/alf/x2/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 4 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/alf/x2/info.json b/keyboards/alf/x2/info.json index ea54b093ce5..a7e76061f68 100644 --- a/keyboards/alf/x2/info.json +++ b/keyboards/alf/x2/info.json @@ -17,6 +17,23 @@ "caps_lock": "B2", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/alfredslab/swift65/hotswap/config.h b/keyboards/alfredslab/swift65/hotswap/config.h deleted file mode 100644 index 793bb4dd1e1..00000000000 --- a/keyboards/alfredslab/swift65/hotswap/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2021 Steven Phillips (Spooknik) - * - * This 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 RGBLED_NUM 22 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 diff --git a/keyboards/alfredslab/swift65/hotswap/info.json b/keyboards/alfredslab/swift65/hotswap/info.json index d60bd0c85d5..5be2a3798ce 100644 --- a/keyboards/alfredslab/swift65/hotswap/info.json +++ b/keyboards/alfredslab/swift65/hotswap/info.json @@ -8,6 +8,24 @@ "pid": "0xD4C4", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/alfredslab/swift65/solder/config.h b/keyboards/alfredslab/swift65/solder/config.h deleted file mode 100644 index 9ee0233356a..00000000000 --- a/keyboards/alfredslab/swift65/solder/config.h +++ /dev/null @@ -1,34 +0,0 @@ - -/* Copyright 2021 Steven Phillips (Spooknik) - * - * This 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 RGBLED_NUM 14 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/alfredslab/swift65/solder/info.json b/keyboards/alfredslab/swift65/solder/info.json index 129b0436d93..5259316d9d5 100644 --- a/keyboards/alfredslab/swift65/solder/info.json +++ b/keyboards/alfredslab/swift65/solder/info.json @@ -9,7 +9,23 @@ "device_version": "0.0.1" }, "rgblight": { - "max_brightness": 100 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "max_brightness": 100, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "ws2812": { "pin": "D2" diff --git a/keyboards/aliceh66/pianoforte/info.json b/keyboards/aliceh66/pianoforte/info.json index d645ddf5f6b..6cc2546794c 100644 --- a/keyboards/aliceh66/pianoforte/info.json +++ b/keyboards/aliceh66/pianoforte/info.json @@ -15,7 +15,11 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": ["tkl_f13_ansi", "tkl_f13_iso"], + "community_layouts": ["tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift"], + "layout_aliases": { + "LAYOUT_tkl_ansi_7u": "LAYOUT_tkl_f13_ansi_tsangan", + "LAYOUT_tkl_iso_7u": "LAYOUT_tkl_f13_iso_tsangan" + }, "layouts": { "LAYOUT_all": { "layout": [ @@ -56,72 +60,72 @@ {"matrix": [3, 5], "x": 11, "y": 1.25}, {"matrix": [2, 6], "x": 12, "y": 1.25}, {"matrix": [3, 6], "x": 13, "y": 1.25}, - {"matrix": [2, 7], "x": 14, "y": 1.25}, - - {"matrix": [3, 7], "x": 15.25, "y": 1.25}, - {"matrix": [2, 8], "x": 16.25, "y": 1.25}, - {"matrix": [4, 0], "x": 17.25, "y": 1.25}, - - {"matrix": [5, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 2.25}, - {"matrix": [5, 1], "x": 2.5, "y": 2.25}, - {"matrix": [4, 2], "x": 3.5, "y": 2.25}, - {"matrix": [5, 2], "x": 4.5, "y": 2.25}, - {"matrix": [4, 3], "x": 5.5, "y": 2.25}, - {"matrix": [5, 3], "x": 6.5, "y": 2.25}, - {"matrix": [4, 4], "x": 7.5, "y": 2.25}, - {"matrix": [5, 4], "x": 8.5, "y": 2.25}, - {"matrix": [4, 5], "x": 9.5, "y": 2.25}, - {"matrix": [5, 5], "x": 10.5, "y": 2.25}, - {"matrix": [4, 6], "x": 11.5, "y": 2.25}, - {"matrix": [5, 6], "x": 12.5, "y": 2.25}, - {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [5, 7], "x": 15.25, "y": 2.25}, - {"matrix": [4, 8], "x": 16.25, "y": 2.25}, - {"matrix": [6, 0], "x": 17.25, "y": 2.25}, - - {"matrix": [7, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [6, 1], "x": 1.75, "y": 3.25}, - {"matrix": [7, 1], "x": 2.75, "y": 3.25}, - {"matrix": [6, 2], "x": 3.75, "y": 3.25}, - {"matrix": [7, 2], "x": 4.75, "y": 3.25}, - {"matrix": [6, 3], "x": 5.75, "y": 3.25}, - {"matrix": [7, 3], "x": 6.75, "y": 3.25}, - {"matrix": [6, 4], "x": 7.75, "y": 3.25}, - {"matrix": [7, 4], "x": 8.75, "y": 3.25}, - {"matrix": [6, 5], "x": 9.75, "y": 3.25}, - {"matrix": [7, 5], "x": 10.75, "y": 3.25}, - {"matrix": [6, 6], "x": 11.75, "y": 3.25}, - {"matrix": [7, 6], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [6, 7], "x": 14, "y": 1.25}, + + {"matrix": [2, 7], "x": 15.25, "y": 1.25}, + {"matrix": [3, 7], "x": 16.25, "y": 1.25}, + {"matrix": [2, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + {"matrix": [5, 6], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [4, 7], "x": 15.25, "y": 2.25}, + {"matrix": [5, 7], "x": 16.25, "y": 2.25}, + {"matrix": [4, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 6], "x": 12.75, "y": 3.25}, + {"matrix": [7, 6], "x": 13.75, "y": 3.25, "w": 1.25}, + + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.75, "w": 1.75, "h": 0.5}, + {"matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 2.75, "h": 0.5}, + {"matrix": [8, 7], "x": 14, "y": 4.75, "h": 0.5}, - {"matrix": [6, 7], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [8, 0], "x": 1.25, "y": 4.25}, - {"matrix": [9, 0], "x": 2.25, "y": 4.25}, - {"matrix": [8, 1], "x": 3.25, "y": 4.25}, - {"matrix": [9, 1], "x": 4.25, "y": 4.25}, - {"matrix": [8, 2], "x": 5.25, "y": 4.25}, - {"matrix": [9, 2], "x": 6.25, "y": 4.25}, - {"matrix": [8, 3], "x": 7.25, "y": 4.25}, - {"matrix": [9, 3], "x": 8.25, "y": 4.25}, - {"matrix": [8, 4], "x": 9.25, "y": 4.25}, - {"matrix": [9, 4], "x": 10.25, "y": 4.25}, - {"matrix": [8, 5], "x": 11.25, "y": 4.25}, - {"matrix": [9, 5], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [8, 6], "x": 12.24, "y": 4.25, "w": 1.75}, - {"matrix": [9, 6], "x": 14, "y": 4.25}, - - {"matrix": [8, 7], "x": 16.25, "y": 4.25}, - - {"matrix": [9, 7], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [10, 0], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [11, 0], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [10, 1], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [11, 3], "x": 10, "y": 5.25}, - {"matrix": [10, 5], "x": 11, "y": 5.25}, - {"matrix": [11, 5], "x": 12, "y": 5.25}, - {"matrix": [10, 6], "x": 13, "y": 5.25}, - {"matrix": [11, 6], "x": 14, "y": 5.25}, + {"matrix": [9, 7], "x": 16.25, "y": 4.25}, + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 3], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [10, 5], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 6], "x": 13.75, "y": 5.25, "w": 1.25}, {"matrix": [10, 7], "x": 15.25, "y": 5.25}, {"matrix": [11, 7], "x": 16.25, "y": 5.25}, @@ -234,6 +238,114 @@ {"matrix": [10, 8], "x": 17.25, "y": 5.25} ] }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [1, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + + {"matrix": [1, 4], "x": 9.75, "y": 0}, + {"matrix": [0, 5], "x": 10.75, "y": 0}, + {"matrix": [1, 5], "x": 11.75, "y": 0}, + {"matrix": [0, 6], "x": 12.75, "y": 0}, + + {"matrix": [1, 6], "x": 14, "y": 0}, + + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25}, + {"matrix": [6, 7], "x": 14, "y": 1.25}, + + {"matrix": [2, 7], "x": 15.25, "y": 1.25}, + {"matrix": [3, 7], "x": 16.25, "y": 1.25}, + {"matrix": [2, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + {"matrix": [5, 6], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [4, 7], "x": 15.25, "y": 2.25}, + {"matrix": [5, 7], "x": 16.25, "y": 2.25}, + {"matrix": [4, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [7, 6], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [8, 7], "x": 14, "y": 4.25}, + + {"matrix": [9, 7], "x": 16.25, "y": 4.25}, + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 3], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [10, 5], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 6], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 7], "x": 15.25, "y": 5.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.25}, + {"matrix": [10, 8], "x": 17.25, "y": 5.25} + ] + }, "LAYOUT_tkl_f13_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -341,7 +453,116 @@ {"matrix": [10, 8], "x": 17.25, "y": 5.25} ] }, - "LAYOUT_tkl_ansi_7u": { + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [1, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + + {"matrix": [1, 4], "x": 9.75, "y": 0}, + {"matrix": [0, 5], "x": 10.75, "y": 0}, + {"matrix": [1, 5], "x": 11.75, "y": 0}, + {"matrix": [0, 6], "x": 12.75, "y": 0}, + + {"matrix": [1, 6], "x": 14, "y": 0}, + + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25}, + {"matrix": [6, 7], "x": 14, "y": 1.25}, + + {"matrix": [2, 7], "x": 15.25, "y": 1.25}, + {"matrix": [3, 7], "x": 16.25, "y": 1.25}, + {"matrix": [2, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + + {"matrix": [4, 7], "x": 15.25, "y": 2.25}, + {"matrix": [5, 7], "x": 16.25, "y": 2.25}, + {"matrix": [4, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 6], "x": 12.75, "y": 3.25}, + {"matrix": [7, 6], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [8, 7], "x": 14, "y": 4.25}, + + {"matrix": [9, 7], "x": 16.25, "y": 4.25}, + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 3], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [10, 5], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 6], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 7], "x": 15.25, "y": 5.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.25}, + {"matrix": [10, 8], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -446,7 +667,114 @@ {"matrix": [10, 8], "x": 17.25, "y": 5.25} ] }, - "LAYOUT_tkl_iso_7u": { + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [1, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + + {"matrix": [1, 4], "x": 9.75, "y": 0}, + {"matrix": [0, 5], "x": 10.75, "y": 0}, + {"matrix": [1, 5], "x": 11.75, "y": 0}, + {"matrix": [0, 6], "x": 12.75, "y": 0}, + + {"matrix": [1, 6], "x": 14, "y": 0}, + + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25}, + {"matrix": [6, 7], "x": 14, "y": 1.25}, + + {"matrix": [2, 7], "x": 15.25, "y": 1.25}, + {"matrix": [3, 7], "x": 16.25, "y": 1.25}, + {"matrix": [2, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + {"matrix": [5, 6], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [4, 7], "x": 15.25, "y": 2.25}, + {"matrix": [5, 7], "x": 16.25, "y": 2.25}, + {"matrix": [4, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [7, 6], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [8, 7], "x": 14, "y": 4.25}, + + {"matrix": [9, 7], "x": 16.25, "y": 4.25}, + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [11, 0], "x": 1.5, "y": 5.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [11, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [11, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25}, + {"matrix": [11, 6], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [10, 7], "x": 15.25, "y": 5.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.25}, + {"matrix": [10, 8], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -547,6 +875,114 @@ {"matrix": [10, 6], "x": 12.5, "y": 5.25}, {"matrix": [11, 6], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 7], "x": 15.25, "y": 5.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.25}, + {"matrix": [10, 8], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [1, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + + {"matrix": [1, 4], "x": 9.75, "y": 0}, + {"matrix": [0, 5], "x": 10.75, "y": 0}, + {"matrix": [1, 5], "x": 11.75, "y": 0}, + {"matrix": [0, 6], "x": 12.75, "y": 0}, + + {"matrix": [1, 6], "x": 14, "y": 0}, + + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25}, + {"matrix": [6, 7], "x": 14, "y": 1.25}, + + {"matrix": [2, 7], "x": 15.25, "y": 1.25}, + {"matrix": [3, 7], "x": 16.25, "y": 1.25}, + {"matrix": [2, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + + {"matrix": [4, 7], "x": 15.25, "y": 2.25}, + {"matrix": [5, 7], "x": 16.25, "y": 2.25}, + {"matrix": [4, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 6], "x": 12.75, "y": 3.25}, + {"matrix": [7, 6], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [8, 7], "x": 14, "y": 4.25}, + + {"matrix": [9, 7], "x": 16.25, "y": 4.25}, + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [11, 0], "x": 1.5, "y": 5.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [11, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [11, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25}, + {"matrix": [11, 6], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 7], "x": 15.25, "y": 5.25}, {"matrix": [11, 7], "x": 16.25, "y": 5.25}, {"matrix": [10, 8], "x": 17.25, "y": 5.25} diff --git a/keyboards/aliceh66/pianoforte/keymaps/default/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/default/keymap.c index 8762ce72d00..a5e41c2e0f7 100644 --- a/keyboards/aliceh66/pianoforte/keymaps/default/keymap.c +++ b/keyboards/aliceh66/pianoforte/keymaps/default/keymap.c @@ -21,13 +21,13 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_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_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT -) + [_LAYER0] = 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_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, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) }; diff --git a/keyboards/aliceh66/pianoforte/keymaps/iso/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/iso/keymap.c index c6db4637897..a4d4a512744 100644 --- a/keyboards/aliceh66/pianoforte/keymaps/iso/keymap.c +++ b/keyboards/aliceh66/pianoforte/keymaps/iso/keymap.c @@ -21,13 +21,13 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_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_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT -) + [_LAYER0] = 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_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_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) }; diff --git a/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c index 9c9dc9ffbd9..e0579044b9b 100644 --- a/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c +++ b/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c @@ -20,24 +20,24 @@ enum layer_names { _LAYER1, }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_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_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), + [_LAYER0] = 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_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, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) - [_LAYER1] = 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 - ) }; diff --git a/keyboards/aliceh66/pianoforte/matrix_diagram.md b/keyboards/aliceh66/pianoforte/matrix_diagram.md new file mode 100644 index 00000000000..058f31322c7 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for AliceH Pianoforte Solder + +``` +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ +│00 ││10 │01 │11 │02 ││12 │03 │13 │04 ││14 │05 │15 │06 ││16 ││07 │17 │08 │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ ┌───────┐ +│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │67 ││27 │37 │28 │ │36 │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ +│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │46 │56 ││47 │57 │48 │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐76 │ ISO Enter +│60 │70 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │76 │ │66 │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│80 │90 │81 │91 │82 │92 │83 │93 │84 │94 │85 │95 │86 │87 │ │97 │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│A0 │B0 │A1 │B3 │A5 │B5 │A6 │B6 ││A7 │B7 │A8 │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│80 │ 2.25u LShift 2.75u RShift │96 │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│A0 │B0 │A1 │B3 │B5 │A6 │B6 │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/aliceh66/pianoforte_hs/info.json b/keyboards/aliceh66/pianoforte_hs/info.json index eea0bc06b53..7366e961c1f 100644 --- a/keyboards/aliceh66/pianoforte_hs/info.json +++ b/keyboards/aliceh66/pianoforte_hs/info.json @@ -15,8 +15,12 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT_tkl_ansi": "LAYOUT_tkl_f13_ansi" + }, + "community_layouts": ["tkl_f13_ansi"], "layouts": { - "LAYOUT_tkl_ansi": { + "LAYOUT_tkl_f13_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -111,7 +115,7 @@ {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25}, {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25}, {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [11, 2], "x": 4, "y": 5.25, "w": 6.25}, + {"matrix": [11, 2], "x": 3.75, "y": 5.25, "w": 6.25}, {"matrix": [10, 4], "x": 10, "y": 5.25, "w": 1.25}, {"matrix": [11, 5], "x": 11.25, "y": 5.25, "w": 1.25}, {"matrix": [10, 6], "x": 12.5, "y": 5.25, "w": 1.25}, diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/default/keymap.c b/keyboards/aliceh66/pianoforte_hs/keymaps/default/keymap.c index 17aa2ae0e89..279b0f1170c 100644 --- a/keyboards/aliceh66/pianoforte_hs/keymaps/default/keymap.c +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/default/keymap.c @@ -21,7 +21,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT_tkl_ansi( + [_LAYER0] = 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_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, diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c b/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c index ddbaa3a8eff..6bcfa56fca9 100644 --- a/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c @@ -23,7 +23,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT_tkl_ansi( + [_LAYER0] = 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_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, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT_tkl_ansi( + [_LAYER1] = LAYOUT_tkl_f13_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, diff --git a/keyboards/alpha/config.h b/keyboards/alpha/config.h index b4ab41d42cc..5f360813239 100755 --- a/keyboards/alpha/config.h +++ b/keyboards/alpha/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 5 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/alpha/info.json b/keyboards/alpha/info.json index 86e4dbefb30..61f7f9d437c 100644 --- a/keyboards/alpha/info.json +++ b/keyboards/alpha/info.json @@ -7,6 +7,23 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/alpine65/config.h b/keyboards/alpine65/config.h index ac74e24450e..f608132b5af 100644 --- a/keyboards/alpine65/config.h +++ b/keyboards/alpine65/config.h @@ -22,19 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 68 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/alpine65/info.json b/keyboards/alpine65/info.json index e290606d8c0..c0322f72b50 100644 --- a/keyboards/alpine65/info.json +++ b/keyboards/alpine65/info.json @@ -9,7 +9,21 @@ "device_version": "0.0.1" }, "rgblight": { - "max_brightness": 200 + "led_count": 68, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "ws2812": { "pin": "B15" diff --git a/keyboards/alpine65/rules.mk b/keyboards/alpine65/rules.mk index 8e1200c9f50..747e719be4a 100644 --- a/keyboards/alpine65/rules.mk +++ b/keyboards/alpine65/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow ENCODER_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/amag23/config.h b/keyboards/amag23/config.h index 34e622bfb33..cdad6969cbc 100644 --- a/keyboards/amag23/config.h +++ b/keyboards/amag23/config.h @@ -15,22 +15,6 @@ */ #pragma once -#define RGBLED_NUM 7 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/amag23/info.json b/keyboards/amag23/info.json index 9ee25d06d8b..fd8aa85bbb6 100644 --- a/keyboards/amag23/info.json +++ b/keyboards/amag23/info.json @@ -8,6 +8,23 @@ "pid": "0x2323", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/amjkeyboard/amj40/config.h b/keyboards/amjkeyboard/amj40/config.h index 9ec9dcbbebe..b9449c4714b 100755 --- a/keyboards/amjkeyboard/amj40/config.h +++ b/keyboards/amjkeyboard/amj40/config.h @@ -22,24 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Underlight configuration - */ - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 4 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/amjkeyboard/amj40/info.json b/keyboards/amjkeyboard/amj40/info.json index a3bbb13785e..dca520375ab 100644 --- a/keyboards/amjkeyboard/amj40/info.json +++ b/keyboards/amjkeyboard/amj40/info.json @@ -17,6 +17,22 @@ "pin": "B6", "levels": 4 }, + "rgblight": { + "hue_steps": 10, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/amjkeyboard/amj60/config.h b/keyboards/amjkeyboard/amj60/config.h index c94d803db5f..b9449c4714b 100644 --- a/keyboards/amjkeyboard/amj60/config.h +++ b/keyboards/amjkeyboard/amj60/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 8 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -//# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/amjkeyboard/amj60/info.json b/keyboards/amjkeyboard/amj60/info.json index 236db9bd083..7c626b5a5f3 100644 --- a/keyboards/amjkeyboard/amj60/info.json +++ b/keyboards/amjkeyboard/amj60/info.json @@ -18,6 +18,22 @@ "levels": 4, "breathing": true }, + "rgblight": { + "hue_steps": 10, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/amjkeyboard/amj66/info.json b/keyboards/amjkeyboard/amj66/info.json index a28b91d7c60..07a170a3f6a 100644 --- a/keyboards/amjkeyboard/amj66/info.json +++ b/keyboards/amjkeyboard/amj66/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D4", "breathing": true }, diff --git a/keyboards/amjkeyboard/amj84/info.json b/keyboards/amjkeyboard/amj84/info.json index 98c4a7e4479..18a7cdff493 100644 --- a/keyboards/amjkeyboard/amj84/info.json +++ b/keyboards/amjkeyboard/amj84/info.json @@ -20,100 +20,287 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "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": [5, 8], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [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}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_ansi_rwkl": { + "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": [5, 8], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [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}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_rwkl": { "layout": [ - {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "K0E", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "K10", "matrix": [1, 0], "x": 15, "y": 0}, + {"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": [5, 8], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, - {"label": "K11", "matrix": [1, 1], "x": 0, "y": 1}, - {"label": "K12", "matrix": [1, 2], "x": 1, "y": 1}, - {"label": "K13", "matrix": [1, 3], "x": 2, "y": 1}, - {"label": "K14", "matrix": [1, 4], "x": 3, "y": 1}, - {"label": "K15", "matrix": [1, 5], "x": 4, "y": 1}, - {"label": "K16", "matrix": [1, 6], "x": 5, "y": 1}, - {"label": "K17", "matrix": [1, 7], "x": 6, "y": 1}, - {"label": "K18", "matrix": [1, 8], "x": 7, "y": 1}, - {"label": "K19", "matrix": [1, 9], "x": 8, "y": 1}, - {"label": "K1A", "matrix": [1, 10], "x": 9, "y": 1}, - {"label": "K1B", "matrix": [1, 11], "x": 10, "y": 1}, - {"label": "K1C", "matrix": [1, 12], "x": 11, "y": 1}, - {"label": "K1D", "matrix": [1, 13], "x": 12, "y": 1}, - {"label": "K1E", "matrix": [1, 14], "x": 13, "y": 1, "w": 2}, - {"label": "K20", "matrix": [2, 0], "x": 15, "y": 1}, + {"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}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, - {"label": "K21", "matrix": [2, 1], "x": 0, "y": 2, "w": 1.5}, - {"label": "K22", "matrix": [2, 2], "x": 1.5, "y": 2}, - {"label": "K23", "matrix": [2, 3], "x": 2.5, "y": 2}, - {"label": "K24", "matrix": [2, 4], "x": 3.5, "y": 2}, - {"label": "K25", "matrix": [2, 5], "x": 4.5, "y": 2}, - {"label": "K26", "matrix": [2, 6], "x": 5.5, "y": 2}, - {"label": "K27", "matrix": [2, 7], "x": 6.5, "y": 2}, - {"label": "K28", "matrix": [2, 8], "x": 7.5, "y": 2}, - {"label": "K29", "matrix": [2, 9], "x": 8.5, "y": 2}, - {"label": "K2A", "matrix": [2, 10], "x": 9.5, "y": 2}, - {"label": "K2B", "matrix": [2, 11], "x": 10.5, "y": 2}, - {"label": "K2C", "matrix": [2, 12], "x": 11.5, "y": 2}, - {"label": "K2D", "matrix": [2, 13], "x": 12.5, "y": 2}, - {"label": "K2E", "matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, - {"label": "K30", "matrix": [3, 0], "x": 15, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, - {"label": "K31", "matrix": [3, 1], "x": 0, "y": 3, "w": 1.75}, - {"label": "K32", "matrix": [3, 2], "x": 1.75, "y": 3}, - {"label": "K33", "matrix": [3, 3], "x": 2.75, "y": 3}, - {"label": "K34", "matrix": [3, 4], "x": 3.75, "y": 3}, - {"label": "K35", "matrix": [3, 5], "x": 4.75, "y": 3}, - {"label": "K36", "matrix": [3, 6], "x": 5.75, "y": 3}, - {"label": "K37", "matrix": [3, 7], "x": 6.75, "y": 3}, - {"label": "K38", "matrix": [3, 8], "x": 7.75, "y": 3}, - {"label": "K39", "matrix": [3, 9], "x": 8.75, "y": 3}, - {"label": "K3A", "matrix": [3, 10], "x": 9.75, "y": 3}, - {"label": "K3B", "matrix": [3, 11], "x": 10.75, "y": 3}, - {"label": "K3C", "matrix": [3, 12], "x": 11.75, "y": 3}, - {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 3}, - {"label": "K3E", "matrix": [3, 14], "x": 13.75, "y": 3, "w": 1.25}, - {"label": "K40", "matrix": [4, 0], "x": 15, "y": 3}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3}, - {"label": "K41", "matrix": [4, 1], "x": 0, "y": 4, "w": 2.25}, - {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 4}, - {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 4}, - {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 4}, - {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 4}, - {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 4}, - {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 4}, - {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 4}, - {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 4}, - {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 4}, - {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4}, - {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, - {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, - {"label": "K50", "matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"label": "K51", "matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"label": "K55", "matrix": [5, 5], "x": 3.75, "y": 5, "w": 5.25}, - {"label": "K58", "matrix": [5, 8], "x": 9, "y": 5}, - {"label": "K59", "matrix": [5, 9], "x": 10, "y": 5}, - {"label": "K5A", "matrix": [5, 10], "x": 11, "y": 5}, - {"label": "K5B", "matrix": [5, 11], "x": 12, "y": 5}, - {"label": "K5C", "matrix": [5, 12], "x": 13, "y": 5}, - {"label": "K5D", "matrix": [5, 13], "x": 14, "y": 5}, - {"label": "K5E", "matrix": [5, 14], "x": 15, "y": 5} + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5} ] } } diff --git a/keyboards/amjkeyboard/amj84/keymaps/default/keymap.c b/keyboards/amjkeyboard/amj84/keymaps/default/keymap.c index bf5a8deb056..1bc603a7918 100644 --- a/keyboards/amjkeyboard/amj84/keymaps/default/keymap.c +++ b/keyboards/amjkeyboard/amj84/keymaps/default/keymap.c @@ -3,51 +3,55 @@ #include QMK_KEYBOARD_H - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ /* Keymap 0: Default Layer - * ,----------------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Home |Del| - * |------------------------------------------------------------|---| - * |` | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |PgU| - * |------------------------------------------------------------|---| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgD| - * |------------------------------------------------------------|---| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |Ins| - * |------------------------------------------------------------|---| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |Fn0| - * |------------------------------------------------------------|---| - * |Ctrl|Win |Alt | Space |END|Alt |Ctrl|Left |Down|Rig| - * `----------------------------------------------------------------' + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Hm │End│Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bkspc │PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┤ + * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ │Ent │Ins│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │Sft │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Up │Fn │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ + * │Ctrl│GUI │Alt │Space │Alt │Ctrl │Lft│Dwn│Rig│ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ */ - [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_HOME,KC_DEL, - 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_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS,KC_PGDN, - KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NO, KC_ENT, KC_INS, - 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, MO(1), - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_END, KC_NO, KC_RALT,KC_RCTL,KC_LEFT,KC_DOWN,KC_RIGHT), + [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_HOME, KC_END, KC_DEL, + 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, KC_INS, + 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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Keymap 1: Fn Layer - * ,-----------------------------------------------------------. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | - * |-----------------------------------------------------------| - * | | |Up | | | |Cal| |Ins| |Psc|Slk|Pau| | - * |-----------------------------------------------------------| - * | |Lef|Dow|Rig| | | | | | |Hom|PgU| | - * |-----------------------------------------------------------| - * | | |App| | | |VoD|VoU|Mut|End|PgD| | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │Up │ │ │ │Cal│ │Ins│ │PSc│SLk│Pau│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┤ + * │BBrtg │Lft│Dwn│Rgh│ │ │ │ │ │ │Hm │PgU│ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │BStp│ │ │App│ │ │ │Vl-│Vl+│Mut│End│PgD│ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ + * │Slp │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ */ - [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_UP, KC_TRNS,KC_TRNS,KC_TRNS,KC_CALC,KC_TRNS,KC_INS, KC_TRNS,KC_PSCR,KC_SCRL,KC_PAUS,KC_TRNS,KC_TRNS, - BL_BRTG,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_HOME,KC_PGUP,KC_TRNS,KC_TRNS,KC_TRNS, - BL_STEP,KC_NO, KC_TRNS,KC_APP, KC_TRNS,KC_TRNS,KC_TRNS,KC_VOLD,KC_VOLU,KC_MUTE,KC_END, KC_PGDN,KC_TRNS,KC_TRNS,KC_TRNS, - KC_SLEP,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS) + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + BL_STEP, KC_NO, _______, KC_APP, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, + KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/amjkeyboard/amj84/keymaps/default_ansi_rwkl/keymap.c b/keyboards/amjkeyboard/amj84/keymaps/default_ansi_rwkl/keymap.c new file mode 100644 index 00000000000..973679d6f56 --- /dev/null +++ b/keyboards/amjkeyboard/amj84/keymaps/default_ansi_rwkl/keymap.c @@ -0,0 +1,57 @@ +// Copyright 2022 peepeetee (@peepeetee) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base */ + /* Keymap 0: Default Layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Hm │End│Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bkspc │PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Enter │Ins│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Up │Fn │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ + * │Ctrl│GUI │Alt │Space │Alt │Ctrl │Lft│Dwn│Rig│ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ + [0] = LAYOUT_75_ansi_rwkl( + 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_HOME, KC_END, KC_DEL, + 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_INS, + 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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap 1: Fn Layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │Up │ │ │ │Cal│ │Ins│ │PSc│SLk│Pau│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │BL Brt│Lft│Dwn│Rgt│ │ │ │ │ │ │Hm │PUp│ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │BL Step │ │App│ │ │ │Vl-│Vl+│Mut│End│PDn│ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ + * │Slp │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ + [1] = LAYOUT_75_ansi_rwkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, + BL_STEP, _______, KC_APP, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, + KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/amjkeyboard/amj84/keymaps/default_iso_rwkl/keymap.c b/keyboards/amjkeyboard/amj84/keymaps/default_iso_rwkl/keymap.c new file mode 100644 index 00000000000..d64dfffea09 --- /dev/null +++ b/keyboards/amjkeyboard/amj84/keymaps/default_iso_rwkl/keymap.c @@ -0,0 +1,57 @@ +// Copyright 2022 peepeetee (@peepeetee) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base */ + /* Keymap 0: Default Layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Hm │End│Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bkspc │PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent ├───┤ + * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │Ins│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Up │Fn │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ + * │Ctrl│GUI │Alt │Space │Alt │Ctrl │Lft│Dwn│Rig│ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ + [0] = LAYOUT_75_iso_rwkl( + 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_HOME, KC_END, KC_DEL, + 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_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_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_INS, + 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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap 1: Fn Layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │Up │ │ │ │Cal│ │Ins│ │PSc│SLk│Pau│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │BL Brt│Lft│Dwn│Rgt│ │ │ │ │ │ │Hm │PUp│ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │BL Step │ │App│ │ │ │Vl-│Vl+│Mut│End│PDn│ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ + * │Slp │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ + [1] = LAYOUT_75_iso_rwkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + BL_STEP, _______, _______, KC_APP, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, + KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/amjkeyboard/amj84/matrix_diagram.md b/keyboards/amjkeyboard/amj84/matrix_diagram.md new file mode 100644 index 00000000000..c09506c3a52 --- /dev/null +++ b/keyboards/amjkeyboard/amj84/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for AMJKeyboard AMJ84 + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │58 │0E │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ ┌─────┐ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐3D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ │3C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│50 │51 │52 │55 │59 │5A │5B │5C │5D │5E │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ +┌────────┐ └─────┬─────┘ +│40 │ 2.25u LShift │ +└────────┘ ┌─────┴─────┐ +┌─────┬───┬─────┬───────────────────────┬─────┬─────┐ +│50 │51 │52 │55 │5A │5B │ RWKL +└─────┴───┴─────┴───────────────────────┴─────┴─────┘ + 1.5u 1u 1.5u 6u +``` diff --git a/keyboards/amjkeyboard/amj96/config.h b/keyboards/amjkeyboard/amj96/config.h index 5060c17f3f3..b16c84d50eb 100644 --- a/keyboards/amjkeyboard/amj96/config.h +++ b/keyboards/amjkeyboard/amj96/config.h @@ -36,22 +36,6 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -# define RGBLED_NUM 16 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/amjkeyboard/amj96/info.json b/keyboards/amjkeyboard/amj96/info.json index 23bfedd721f..973e6b33759 100644 --- a/keyboards/amjkeyboard/amj96/info.json +++ b/keyboards/amjkeyboard/amj96/info.json @@ -8,6 +8,21 @@ "pid": "0x6074", "device_version": "0.0.2" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/amjkeyboard/amjpad/config.h b/keyboards/amjkeyboard/amjpad/config.h index ecd9f99ed95..b9449c4714b 100644 --- a/keyboards/amjkeyboard/amjpad/config.h +++ b/keyboards/amjkeyboard/amjpad/config.h @@ -22,25 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Underlight configuration - */ - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - -#define RGBLED_NUM 8 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/amjkeyboard/amjpad/info.json b/keyboards/amjkeyboard/amjpad/info.json index d5e1b042f40..fbaa2499d62 100644 --- a/keyboards/amjkeyboard/amjpad/info.json +++ b/keyboards/amjkeyboard/amjpad/info.json @@ -17,6 +17,22 @@ "pin": "B6", "levels": 4 }, + "rgblight": { + "hue_steps": 10, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/an_achronism/tetromino/info.json b/keyboards/an_achronism/tetromino/info.json index 6ff31fe1f40..8087c6489c4 100644 --- a/keyboards/an_achronism/tetromino/info.json +++ b/keyboards/an_achronism/tetromino/info.json @@ -110,7 +110,7 @@ "led_count": 70 }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 4, "matrix": [0, 1], "x": 17, "y": 0}, diff --git a/keyboards/anavi/knob1/rules.mk b/keyboards/anavi/knob1/rules.mk index c3600290d9f..0e5631b02b3 100644 --- a/keyboards/anavi/knob1/rules.mk +++ b/keyboards/anavi/knob1/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C OPT_DEFS += -DHAL_USE_I2C=TRUE diff --git a/keyboards/anavi/knobs3/rules.mk b/keyboards/anavi/knobs3/rules.mk index c3600290d9f..0e5631b02b3 100644 --- a/keyboards/anavi/knobs3/rules.mk +++ b/keyboards/anavi/knobs3/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C OPT_DEFS += -DHAL_USE_I2C=TRUE diff --git a/keyboards/anavi/macropad12/config.h b/keyboards/anavi/macropad12/config.h new file mode 100644 index 00000000000..02e7781e570 --- /dev/null +++ b/keyboards/anavi/macropad12/config.h @@ -0,0 +1,25 @@ +// Copyright 2023 Leon Anavi +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + +/* Double tap reset button to enter bootloader */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#ifdef BACKLIGHT_ENABLE +# define BACKLIGHT_PWM_DRIVER PWMD5 +# define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A +#endif + +#define I2C1_SDA_PIN GP6 +#define I2C1_SCL_PIN GP7 + +#ifdef OLED_ENABLE +# define OLED_DISPLAY_128X64 +# define OLED_TIMEOUT 60000 +# define OLED_BRIGHTNESS 128 +#endif diff --git a/keyboards/anavi/macropad12/halconf.h b/keyboards/anavi/macropad12/halconf.h new file mode 100644 index 00000000000..8a17a5c1676 --- /dev/null +++ b/keyboards/anavi/macropad12/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Leon Anavi +// 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/anavi/macropad12/info.json b/keyboards/anavi/macropad12/info.json new file mode 100644 index 00000000000..f0f6d6ca60a --- /dev/null +++ b/keyboards/anavi/macropad12/info.json @@ -0,0 +1,72 @@ +{ + "keyboard_name": "Macro Pad 12", + "manufacturer": "ANAVI", + "url": "https://github.com/AnaviTechnology/anavi-macro-pad-12", + "maintainer": "leon-anavi", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP0", "GP2", "GP4"], + "rows": ["GP27", "GP28", "GP29", "GP1"] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true, + "backlight": true, + "oled": true + }, + "rgblight": { + "led_count": 6, + "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 + } + }, + "ws2812": { + "pin": "GP3", + "driver": "vendor" + }, + "backlight": { + "pin": "GP26" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_4x3" + }, + "layouts": { + "LAYOUT_ortho_4x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3} + ] + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x9A25", + "vid": "0xFEED" + } +} diff --git a/keyboards/anavi/macropad12/keymaps/default/keymap.c b/keyboards/anavi/macropad12/keymaps/default/keymap.c new file mode 100644 index 00000000000..e74b20d9bad --- /dev/null +++ b/keyboards/anavi/macropad12/keymaps/default/keymap.c @@ -0,0 +1,17 @@ +// Copyright 2023 Leon Anavi +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_ortho_4x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9, + BL_STEP, RGB_MOD, RGB_TOG + ) +}; diff --git a/keyboards/anavi/macropad12/macropad12.c b/keyboards/anavi/macropad12/macropad12.c new file mode 100644 index 00000000000..de371dd988a --- /dev/null +++ b/keyboards/anavi/macropad12/macropad12.c @@ -0,0 +1,38 @@ +// Copyright 2023 Leon Anavi +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE + +bool oled_task_kb(void) { + + if (!oled_task_user()) { + return false; + } + + // Host Keyboard Layer Status + oled_write_ln_P(PSTR("ANAVI Macro Pad 12"), false); + oled_write_ln_P(PSTR("Keymap: Default"), false); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Num Lock: "), false); + oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Caps Lock: "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Scroll Lock: "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false); +# ifdef RGBLIGHT_ENABLE + oled_write_P(PSTR("RGB Mode: "), false); + oled_write_ln(get_u8_str(rgblight_get_mode(), ' '), false); + oled_write_P(PSTR("h: "), false); + oled_write(get_u8_str(rgblight_get_hue(), ' '), false); + oled_write_P(PSTR("s: "), false); + oled_write(get_u8_str(rgblight_get_sat(), ' '), false); + oled_write_P(PSTR("v: "), false); + oled_write_ln(get_u8_str(rgblight_get_val(), ' '), false); +# endif + return false; +} +#endif diff --git a/keyboards/anavi/macropad12/mcuconf.h b/keyboards/anavi/macropad12/mcuconf.h new file mode 100644 index 00000000000..23519c8977c --- /dev/null +++ b/keyboards/anavi/macropad12/mcuconf.h @@ -0,0 +1,15 @@ +// Copyright 2023 Leon Anavi (@leon-anavi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 FALSE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE + +#undef RP_PWM_USE_PWM5 +#define RP_PWM_USE_PWM5 TRUE diff --git a/keyboards/anavi/macropad12/readme.md b/keyboards/anavi/macropad12/readme.md new file mode 100644 index 00000000000..d926aa8eb05 --- /dev/null +++ b/keyboards/anavi/macropad12/readme.md @@ -0,0 +1,21 @@ +# ANAVI Macro Pad 12 + +ANAVI Macro Pad 12 is a compact mechanical keyboard with hot-swappable Cherry MX compatible mechanical switches, translucent keycaps, USB-C, RP2040 microcontroller, backlighting and under lighting. + +* Keyboard Maintainer: [Leon Anavi](https://github.com/leon-anavi) +* Hardware Supported: ANAVI Macro Pad 12 +* Hardware Availability: [Crowd Supply](https://www.crowdsupply.com/anavi-technology/anavi-macro-pad-12-and-arrows), [GitHub repository](https://github.com/AnaviTechnology/anavi-macro-pad-12) + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb anavi/macropad12 -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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key on the left half, or top right key on the right half, and then plug in the USB cable on that keyboard half. +* **Physical reset button**: Double tap the reset button on the XIAO RP2040. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/anavi/macropad12/rules.mk b/keyboards/anavi/macropad12/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/anavi/macropad12/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/anavi/macropad8/config.h b/keyboards/anavi/macropad8/config.h index cce2b5bc14f..f7c7b4b44ca 100644 --- a/keyboards/anavi/macropad8/config.h +++ b/keyboards/anavi/macropad8/config.h @@ -17,27 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_SLEEP - - -/* ws2812B RGB LED */ -#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 RGBLED_NUM 4 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -#endif - #ifdef OLED_ENABLE # define OLED_DISPLAY_128X64 # define OLED_TIMEOUT 60000 diff --git a/keyboards/anavi/macropad8/info.json b/keyboards/anavi/macropad8/info.json index 1fa276d94e6..63f295069d4 100644 --- a/keyboards/anavi/macropad8/info.json +++ b/keyboards/anavi/macropad8/info.json @@ -9,9 +9,27 @@ "device_version": "0.0.1" }, "backlight": { + "driver": "timer", "pin": "D7", "breathing": true }, + "rgblight": { + "hue_steps": 10, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/anavi/macropad8/rules.mk b/keyboards/anavi/macropad8/rules.mk index f5e38fc8cbc..63d200481c7 100644 --- a/keyboards/anavi/macropad8/rules.mk +++ b/keyboards/anavi/macropad8/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C diff --git a/keyboards/andean_condor/info.json b/keyboards/andean_condor/info.json new file mode 100644 index 00000000000..cfc3eefa877 --- /dev/null +++ b/keyboards/andean_condor/info.json @@ -0,0 +1,89 @@ +{ + "manufacturer": "Guido Bartolucci", + "keyboard_name": "andean_condor", + "maintainer": "guidoism", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP9", "GP8", "GP7", "GP5", "GP4", "GP3"], + "rows": ["GP2", "GP6", "GP10", "GP15", "GP22", "GP21", "GP20", "GP16"] + }, + "processor": "RP2040", + "url": "https://github.com/guidoism/andean-condor/tree/pico-w", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0,0], "x":0, "y":0, "label":"TAB"}, + {"matrix": [0,1], "x":1, "y":0, "label":"Q"}, + {"matrix": [0,2], "x":2, "y":0, "label":"W"}, + {"matrix": [0,3], "x":3, "y":0, "label":"E"}, + {"matrix": [0,4], "x":4, "y":0, "label":"R"}, + {"matrix": [0,5], "x":5, "y":0, "label":"T"}, + + {"matrix": [4,5], "x":10, "y":0, "label":"Y"}, + {"matrix": [4,4], "x":11, "y":0, "label":"U"}, + {"matrix": [4,3], "x":12, "y":0, "label":"I"}, + {"matrix": [4,2], "x":13, "y":0, "label":"O"}, + {"matrix": [4,1], "x":14, "y":0, "label":"P"}, + {"matrix": [4,0], "x":15, "y":0, "label":"BS"}, + + {"matrix": [1,0], "x":0, "y":1, "label":"CTRL"}, + {"matrix": [1,1], "x":1, "y":1, "label":"A"}, + {"matrix": [1,2], "x":2, "y":1, "label":"S"}, + {"matrix": [1,3], "x":3, "y":1, "label":"D"}, + {"matrix": [1,4], "x":4, "y":1, "label":"F"}, + {"matrix": [1,5], "x":5, "y":1, "label":"G"}, + + {"matrix": [5,5], "x":10, "y":1, "label":"H"}, + {"matrix": [5,4], "x":11, "y":1, "label":"J"}, + {"matrix": [5,3], "x":12, "y":1, "label":"K"}, + {"matrix": [5,2], "x":13, "y":1, "label":"L"}, + {"matrix": [5,1], "x":14, "y":1, "label":":"}, + {"matrix": [5,0], "x":15, "y":1, "label":"RET"}, + + {"matrix": [2,0], "x":0, "y":2, "label":"SHIFT"}, + {"matrix": [2,1], "x":1, "y":2, "label":"Z"}, + {"matrix": [2,2], "x":2, "y":2, "label":"X"}, + {"matrix": [2,3], "x":3, "y":2, "label":"C"}, + {"matrix": [2,4], "x":4, "y":2, "label":"V"}, + {"matrix": [2,5], "x":5, "y":2, "label":"B"}, + + {"matrix": [6,5], "x":10, "y":2, "label":"N"}, + {"matrix": [6,4], "x":11, "y":2, "label":"M"}, + {"matrix": [6,3], "x":12, "y":2, "label":","}, + {"matrix": [6,2], "x":13, "y":2, "label":"."}, + {"matrix": [6,1], "x":14, "y":2, "label":"/"}, + {"matrix": [6,0], "x":15, "y":2, "label":";"}, + + {"matrix": [3,4], "x":6.5, "y":3, "label":"lt2"}, + {"matrix": [3,5], "x":5.5, "y":3, "label":"lt1"}, + + {"matrix": [7,5], "x":9.5, "y":3, "label":"rt2"}, + {"matrix": [7,4], "x":8.5, "y":3, "label":"rt1"}, + + {"matrix": [3,0], "x":3.5, "y":4, "label":"lb1"}, + {"matrix": [3,1], "x":4.5, "y":4, "label":"lb2"}, + {"matrix": [3,2], "x":5.5, "y":4, "label":"lb3"}, + {"matrix": [3,3], "x":6.5, "y":4, "label":"lb4"}, + + {"matrix": [7,3], "x":8.5, "y":4, "label":"rb3"}, + {"matrix": [7,2], "x":9.5, "y":4, "label":"rb4"}, + {"matrix": [7,1], "x":10.5, "y":4, "label":"rb5"}, + {"matrix": [7,0], "x":11.5, "y":4, "label":"rb6"} + ] + } + } +} diff --git a/keyboards/andean_condor/keymaps/default/keymap.c b/keyboards/andean_condor/keymaps/default/keymap.c new file mode 100644 index 00000000000..4d00610897f --- /dev/null +++ b/keyboards/andean_condor/keymaps/default/keymap.c @@ -0,0 +1,14 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BACKSPACE, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, LSFT(KC_SEMICOLON), + KC_5, KC_6, KC_7, KC_8, + KC_1, KC_2, KC_3, KC_4, KC_9, KC_0, KC_MINUS, KC_EQUAL + ) +}; diff --git a/keyboards/andean_condor/readme.md b/keyboards/andean_condor/readme.md new file mode 100644 index 00000000000..8e961e3cb03 --- /dev/null +++ b/keyboards/andean_condor/readme.md @@ -0,0 +1,33 @@ +# Andean Condor (andean_condor) + +![Pic](https://i.imgur.com/woaDob6.jpg) + +The Andean Condor is a monoblock split keyboard in the spirit of the Kyria. + +* Keyboard Maintainer: [Guido Bartolucci](https://github.com/guidoism) +* Hardware Supported: Raspberry Pi Pico (only QMK), Nice!Nano (only ZMK) +* Hardware Availability: [Pico PCB](https://github.com/guidoism/andean-condor/tree/pico-w), [Nice!Nano PCB](https://github.com/guidoism/andean-condor) + +Make example for this keyboard (after setting up your build environment): + + make andean_condor:default + +or + + qmk compile -kb andean_condor -km default + +Flashing example for this keyboard: + + make andean_condor: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 +&g + diff --git a/keyboards/andean_condor/rules.mk b/keyboards/andean_condor/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/andean_condor/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/ano/config.h b/keyboards/ano/config.h index 296abfa02e6..fff04f05b3c 100644 --- a/keyboards/ano/config.h +++ b/keyboards/ano/config.h @@ -16,8 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ano/info.json b/keyboards/ano/info.json index 146e0cad7fc..ce88965500b 100644 --- a/keyboards/ano/info.json +++ b/keyboards/ano/info.json @@ -18,6 +18,9 @@ {"pin_a": "B12", "pin_b": "A14", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "STM32F303", "bootloader": "stm32-dfu", "layouts": { diff --git a/keyboards/aos/tkl/config.h b/keyboards/aos/tkl/config.h index a30a446491a..66790ac3d39 100644 --- a/keyboards/aos/tkl/config.h +++ b/keyboards/aos/tkl/config.h @@ -20,18 +20,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 88 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/aos/tkl/info.json b/keyboards/aos/tkl/info.json index 9b4f70a7ef4..165344004bd 100644 --- a/keyboards/aos/tkl/info.json +++ b/keyboards/aos/tkl/info.json @@ -11,7 +11,22 @@ "pin": "E6" }, "rgblight": { - "max_brightness": 50 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 88, + "max_brightness": 50, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "F4", "F5", "F6", "F7", "B6", "B5", "D7", "B4", "D6", "F0", "D1", "C6", "D4"], diff --git a/keyboards/aplyard/aplx6/rev2/config.h b/keyboards/aplyard/aplx6/rev2/config.h deleted file mode 100644 index 2724ccf1171..00000000000 --- a/keyboards/aplyard/aplx6/rev2/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2020 April Aplyard - -This 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 TAPPING_TERM 200 - -#define TAP_CODE_DELAY 50 diff --git a/keyboards/aplyard/aplx6/rev2/info.json b/keyboards/aplyard/aplx6/rev2/info.json index 2dc54180eb5..06e0296b684 100644 --- a/keyboards/aplyard/aplx6/rev2/info.json +++ b/keyboards/aplyard/aplx6/rev2/info.json @@ -13,6 +13,9 @@ {"pin_a": "F5", "pin_b": "F4"} ] }, + "qmk": { + "tap_keycode_delay": 50 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/aplyard/aplx6/rev2/rules.mk b/keyboards/aplyard/aplx6/rev2/rules.mk index 90decf0341c..bb653a97f2b 100644 --- a/keyboards/aplyard/aplx6/rev2/rules.mk +++ b/keyboards/aplyard/aplx6/rev2/rules.mk @@ -12,5 +12,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes # Unicode OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for Oled Display ENCODER_ENABLE = yes # Enable Support for Encoder diff --git a/keyboards/arabica37/keymaps/default/rules.mk b/keyboards/arabica37/keymaps/default/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/arabica37/keymaps/default/rules.mk +++ b/keyboards/arabica37/keymaps/default/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/arabica37/rev1/config.h b/keyboards/arabica37/rev1/config.h deleted file mode 100644 index 07d567be654..00000000000 --- a/keyboards/arabica37/rev1/config.h +++ /dev/null @@ -1,37 +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 - -#define RGBLED_NUM 50 // Number of LEDs -#define RGBLED_SPLIT {25, 25} -/* - * 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/arabica37/rev1/info.json b/keyboards/arabica37/rev1/info.json index a543a83fd9a..14d0c01cb9e 100644 --- a/keyboards/arabica37/rev1/info.json +++ b/keyboards/arabica37/rev1/info.json @@ -16,6 +16,10 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 50, + "split_count": [25, 25] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/ares/config.h b/keyboards/ares/config.h deleted file mode 100644 index ddc21dae308..00000000000 --- a/keyboards/ares/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 16 - -#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/ares/info.json b/keyboards/ares/info.json index 81646cb00c3..dceb80da043 100644 --- a/keyboards/ares/info.json +++ b/keyboards/ares/info.json @@ -22,6 +22,21 @@ "bootmagic": { "matrix": [4, 0] }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/argo_works/ishi/80/mk0_avr/config.h b/keyboards/argo_works/ishi/80/mk0_avr/config.h deleted file mode 100644 index 7c15e5faa7c..00000000000 --- a/keyboards/argo_works/ishi/80/mk0_avr/config.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2022 Jason Devadoss (@jasonj2232) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define BOOTMAGIC_LITE_ROW 1 -#define BOOTMAGIC_LITE_COLUMN 0 - -/* - * 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 \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/config.h b/keyboards/argo_works/ishi/80/mk0_avr_extra/config.h deleted file mode 100644 index 24cb7ccfa52..00000000000 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/config.h +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2022 Jason Devadoss (@jasonj2232) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define BOOTMAGIC_LITE_ROW 1 -#define BOOTMAGIC_LITE_COLUMN 0 - -//Uncomment the below if the encoder direction is flipped/opposite to what is expected - -//#define ENCODER_DIRECTION_FLIP - -/* - * 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 \ No newline at end of file diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk index 1af84436ed6..76e55c05f48 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk @@ -1,3 +1,2 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes diff --git a/keyboards/artemis/paragon/hotswap/info.json b/keyboards/artemis/paragon/hotswap/info.json index c57b49a047d..d70625c1d6c 100644 --- a/keyboards/artemis/paragon/hotswap/info.json +++ b/keyboards/artemis/paragon/hotswap/info.json @@ -2,5 +2,363 @@ "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "C7", "E6", "B0", "B3", "B6", "B5", "B4", "D7", "D4", "D6"], "rows": ["D2", "D1", "D0", "B2", "B1", "C6"] + }, + "layouts": { + "LAYOUT_ansi_rwkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_rwkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 14], "x": 14, "y": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 14], "x": 14, "y": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + } } } diff --git a/keyboards/artemis/paragon/hotswap/matrix_diagram.md b/keyboards/artemis/paragon/hotswap/matrix_diagram.md new file mode 100644 index 00000000000..215d44642a2 --- /dev/null +++ b/keyboards/artemis/paragon/hotswap/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Artemis Paragon Hotswap + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ +│00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │Rot│ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │1E │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └───────┘ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2F │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3F │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4F │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ +│50 │52 │53 │56 │5A │5B │5C │5D │5F │ +└────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│50 │52 │56 │5A │5B │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/artemis/paragon/info.json b/keyboards/artemis/paragon/info.json index 4df22a49222..b18b3b28db2 100644 --- a/keyboards/artemis/paragon/info.json +++ b/keyboards/artemis/paragon/info.json @@ -28,8 +28,11 @@ "pid": "0x3449", "vid": "0x8C27" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ { "matrix": [0, 0], "x": 0, "y": 0 }, { "matrix": [0, 2], "x": 1.5, "y": 0 }, diff --git a/keyboards/artemis/paragon/keymaps/default/keymap.c b/keyboards/artemis/paragon/keymaps/default/keymap.c index d980180a347..fc55fb1c85b 100644 --- a/keyboards/artemis/paragon/keymaps/default/keymap.c +++ b/keyboards/artemis/paragon/keymaps/default/keymap.c @@ -16,7 +16,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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_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_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, diff --git a/keyboards/artemis/paragon/keymaps/via/keymap.c b/keyboards/artemis/paragon/keymaps/via/keymap.c index 84f5735d97b..47e269c78ab 100644 --- a/keyboards/artemis/paragon/keymaps/via/keymap.c +++ b/keyboards/artemis/paragon/keymaps/via/keymap.c @@ -16,7 +16,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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_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_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, diff --git a/keyboards/artemis/paragon/readme.md b/keyboards/artemis/paragon/readme.md index 0eff403837b..287d141ccc6 100644 --- a/keyboards/artemis/paragon/readme.md +++ b/keyboards/artemis/paragon/readme.md @@ -1,6 +1,6 @@ # Artemis/Paragon -* Keyboard Maintainer: [Sleepdealer](https://github.com/Sleepdealr) - [Yak](https://github.com/yakMM) +* Keyboard Maintainer: [Sleepdealer](https://github.com/Sleepdealr) * Hardware Supported: Paragon PCB * Hardware Availability: GB diff --git a/keyboards/artemis/paragon/soldered/info.json b/keyboards/artemis/paragon/soldered/info.json index 5158add71e2..b531b22f807 100644 --- a/keyboards/artemis/paragon/soldered/info.json +++ b/keyboards/artemis/paragon/soldered/info.json @@ -2,5 +2,735 @@ "matrix_pins": { "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "B3", "D0", "D1", "D2", "D3", "D7", "D5"], "rows": ["B2", "C7", "C6", "B6", "B5", "B4"] + }, + "layouts": { + "LAYOUT_ansi_rwkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_rwkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 14], "x": 14, "y": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_rwkl_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 4], "x": 3.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.25}, + {"matrix": [5, 8], "x": 7.25, "y": 5.5, "w": 2.75}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_rwkl_split_space_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 14], "x": 14, "y": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 4], "x": 3.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.25}, + {"matrix": [5, 8], "x": 7.25, "y": 5.5, "w": 2.75}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_iso_rwkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_iso_rwkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 14], "x": 14, "y": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_iso_rwkl_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 4], "x": 3.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.25}, + {"matrix": [5, 8], "x": 7.25, "y": 5.5, "w": 2.75}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_iso_rwkl_split_space_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 14], "x": 14, "y": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 15], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 15, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 4], "x": 3.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.25}, + {"matrix": [5, 8], "x": 7.25, "y": 5.5, "w": 2.75}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 11.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5} + ] + } } } diff --git a/keyboards/artemis/paragon/soldered/matrix_diagram.md b/keyboards/artemis/paragon/soldered/matrix_diagram.md new file mode 100644 index 00000000000..6fa5ad6cf88 --- /dev/null +++ b/keyboards/artemis/paragon/soldered/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Artemis Paragon Soldered + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ +│00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │Rot│ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │1E │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐3D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3F │ │3C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4F │ +├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ +│50 │52 │53 │54 │56 │58 │5A │5B │5C │5D │5F │ +└────┴────┴────┴────────┴────┴──────────┴─────┴─────┴───┴───┴───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌────┬────┬────┬────────────────────────┬─────┬─────┐ +│50 │52 │53 │56 │5A │5B │ RWKL +└────┴────┴────┴────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/ash1800/ash1800.c b/keyboards/ash1800/ash1800.c deleted file mode 100644 index 520b1503aca..00000000000 --- a/keyboards/ash1800/ash1800.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2019 angelbirth - * - * This 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" - -bool led_update_kb(led_t led_state) { - if (led_update_user(led_state)) { - writePin(NUM_LOCK_LED_PIN, !led_state.num_lock); - writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); - writePin(SCROLL_LOCK_LED_PIN, !led_state.scroll_lock); - } - return true; -} \ No newline at end of file diff --git a/keyboards/ash1800/config.h b/keyboards/ash1800/config.h index 2f259d40f67..75e72d0e22a 100644 --- a/keyboards/ash1800/config.h +++ b/keyboards/ash1800/config.h @@ -17,10 +17,6 @@ along with this program. If not, see . #pragma once -#define NUM_LOCK_LED_PIN E6 -#define CAPS_LOCK_LED_PIN F0 -#define SCROLL_LOCK_LED_PIN F7 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ash1800/info.json b/keyboards/ash1800/info.json index e028e09135e..658e76962d8 100644 --- a/keyboards/ash1800/info.json +++ b/keyboards/ash1800/info.json @@ -7,6 +7,12 @@ "pid": "0x1800", "device_version": "0.0.1" }, + "indicators": { + "caps_lock": "F0", + "num_lock": "E6", + "scroll_lock": "F7", + "on_state": 0 + }, "matrix_pins": { "cols": ["F1", "F4", "F5", "F6", "B0", "B2", "B1", "B3", "B7", "C7"], "rows": ["C6", "B6", "B5", "B4", "D7", "D0", "D1", "D2", "D3", "D5", "D4", "D6"] diff --git a/keyboards/ash_xiix/ash_xiix.c b/keyboards/ash_xiix/ash_xiix.c deleted file mode 100644 index 64be362f93a..00000000000 --- a/keyboards/ash_xiix/ash_xiix.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2020 sh_xguitar - * - * This 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" - -bool led_update_kb(led_t led_state) { - if (led_update_user(led_state)) { - writePin(NUM_LOCK_LED_PIN, led_state.num_lock); - writePin(CAPS_LOCK_LED_PIN, led_state.caps_lock); - writePin(SCROLL_LOCK_LED_PIN, led_state.scroll_lock); - } - return true; -} diff --git a/keyboards/ash_xiix/config.h b/keyboards/ash_xiix/config.h index 8f81c450eb5..08dd2458c88 100644 --- a/keyboards/ash_xiix/config.h +++ b/keyboards/ash_xiix/config.h @@ -14,10 +14,6 @@ along with this program. If not, see . #pragma once -#define NUM_LOCK_LED_PIN E6 -#define CAPS_LOCK_LED_PIN F0 -#define SCROLL_LOCK_LED_PIN F7 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE #define LOCKING_RESYNC_ENABLE diff --git a/keyboards/ash_xiix/info.json b/keyboards/ash_xiix/info.json index 69155f55c10..d9f99640354 100644 --- a/keyboards/ash_xiix/info.json +++ b/keyboards/ash_xiix/info.json @@ -8,6 +8,12 @@ "pid": "0x14BC", "device_version": "0.0.1" }, + "indicators": { + "caps_lock": "F0", + "num_lock": "E6", + "scroll_lock": "F7", + "on_state": 0 + }, "matrix_pins": { "cols": ["F1", "F4", "F5", "F6", "B0", "B2", "B1", "B3", "B7", "C7"], "rows": ["C6", "B6", "B5", "B4", "D7", "D0", "D1", "D2", "D3", "D5", "D4", "D6"] diff --git a/keyboards/at_at/660m/rules.mk b/keyboards/at_at/660m/rules.mk index 0495864be4c..e984f8dc96e 100644 --- a/keyboards/at_at/660m/rules.mk +++ b/keyboards/at_at/660m/rules.mk @@ -12,5 +12,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover NO_USB_STARTUP_CHECK = yes # Workaround for issue 6369 -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/atlantis/ak81_ve/config.h b/keyboards/atlantis/ak81_ve/config.h index f3003629172..28a4e88893b 100644 --- a/keyboards/atlantis/ak81_ve/config.h +++ b/keyboards/atlantis/ak81_ve/config.h @@ -16,9 +16,6 @@ #pragma once -#define ENCODERS_CCW_KEY { { 4, 5 } } // Note: array is { col, row ) -#define ENCODERS_CW_KEY { { 3, 5 } } // Note: array is { col, row ) - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/atlantis/ak81_ve/info.json b/keyboards/atlantis/ak81_ve/info.json index 434e10c81f8..1a2d1eebe1e 100644 --- a/keyboards/atlantis/ak81_ve/info.json +++ b/keyboards/atlantis/ak81_ve/info.json @@ -9,7 +9,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F0", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "B2", "B7", "D3", "D2", "D1", "D0", "B3"], diff --git a/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c b/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c index 48ffe1be639..08001a6f998 100644 --- a/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c +++ b/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c @@ -16,54 +16,47 @@ #include QMK_KEYBOARD_H -#define LAYOUT_via( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, 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, K314, \ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ - K500, K501, K502, K503, K504, K506, K510, K511, K512, K513, K514 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, KC_NO, 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, K314 }, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414 }, \ - { K500, K501, K502, K503, K504, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514 } \ -} - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_via( - 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_VOLU, KC_VOLD, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), - - [1] = LAYOUT_via( - KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SPD, - _______, _______, _______, RGB_MOD, RGB_RMOD, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI), - - [2] = LAYOUT_via( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - [3] = LAYOUT_via( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - -}; \ No newline at end of file + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT( + KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SPD, + _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) + +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk b/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk index f74ca2c2447..f1adcab005e 100644 --- a/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk +++ b/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk @@ -1,3 +1,2 @@ VIA_ENABLE = yes - -SRC += encoder_actions.c \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/atlantis/encoder_actions.c b/keyboards/atlantis/encoder_actions.c deleted file mode 100644 index 126b665a8e6..00000000000 --- a/keyboards/atlantis/encoder_actions.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * Copyright 2021 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 3 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 "encoder_actions.h" - -#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE) -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -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/atlantis/encoder_actions.h b/keyboards/atlantis/encoder_actions.h deleted file mode 100644 index 1a7fb72014d..00000000000 --- a/keyboards/atlantis/encoder_actions.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); diff --git a/keyboards/atlantis/ps17/info.json b/keyboards/atlantis/ps17/info.json index 1b7ffa77855..5a85dec5b45 100644 --- a/keyboards/atlantis/ps17/info.json +++ b/keyboards/atlantis/ps17/info.json @@ -64,7 +64,7 @@ } }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "center_point": [126, 126], "layout": [ {"flags": 4, "matrix": [1, 0], "x": 74, "y": 165}, diff --git a/keyboards/atreus/f103/rules.mk b/keyboards/atreus/f103/rules.mk index 9755a4a3c26..22634018d2f 100644 --- a/keyboards/atreus/f103/rules.mk +++ b/keyboards/atreus/f103/rules.mk @@ -1,4 +1,2 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE BOOTMAGIC_ENABLE = yes \ No newline at end of file diff --git a/keyboards/atreus/feather/info.json b/keyboards/atreus/feather/info.json index 1f70534b7f5..b0d7d554433 100644 --- a/keyboards/atreus/feather/info.json +++ b/keyboards/atreus/feather/info.json @@ -5,5 +5,8 @@ }, "diode_direction": "COL2ROW", "processor": "atmega32u4", - "bootloader": "caterina" + "bootloader": "caterina", + "bluetooth": { + "driver": "bluefruit_le" + } } diff --git a/keyboards/atreus/feather/rules.mk b/keyboards/atreus/feather/rules.mk index 5e7d24b055b..c93cad90807 100644 --- a/keyboards/atreus/feather/rules.mk +++ b/keyboards/atreus/feather/rules.mk @@ -5,5 +5,4 @@ F_CPU = 8000000 # change yes to no to disable # BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE CONSOLE_ENABLE = no diff --git a/keyboards/atreus/keymaps/ridingqwerty/keymap.c b/keyboards/atreus/keymaps/ridingqwerty/keymap.c index 1eeb17fd175..9b0826402ec 100644 --- a/keyboards/atreus/keymaps/ridingqwerty/keymap.c +++ b/keyboards/atreus/keymaps/ridingqwerty/keymap.c @@ -46,7 +46,7 @@ { K75, K74, K73, K72, K71, K70 } \ } -//#define ALPHA XP(UCM_LDEL, UCM_UDEL) +//#define ALPHA UP(UCM_LDEL, UCM_UDEL) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_atreus_wrapper( /* Qwerty */ diff --git a/keyboards/atreyu/rev1/info.json b/keyboards/atreyu/rev1/info.json index a4e12a71fb1..8a38baabf81 100644 --- a/keyboards/atreyu/rev1/info.json +++ b/keyboards/atreyu/rev1/info.json @@ -81,21 +81,21 @@ {"matrix": [3, 4], "x": 4, "y": 3.125}, {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [7, 5], "x": 6, "y": 2.75}, - {"matrix": [7, 4], "x": 9.5, "y": 2.75}, - {"matrix": [7, 3], "x": 10.5, "y": 3.25}, - {"matrix": [7, 2], "x": 11.5, "y": 3.125}, - {"matrix": [7, 1], "x": 12.5, "y": 3}, - {"matrix": [7, 0], "x": 13.5, "y": 3.125}, + {"matrix": [7, 5], "x": 10.5, "y": 3.25}, + {"matrix": [7, 4], "x": 11.5, "y": 3.125}, + {"matrix": [7, 3], "x": 12.5, "y": 3}, + {"matrix": [7, 2], "x": 13.5, "y": 3.125}, + {"matrix": [7, 1], "x": 14.5, "y": 3.375}, + {"matrix": [7, 0], "x": 15.5, "y": 3.5}, - {"matrix": [8, 0], "x": 14.5, "y": 3.375}, - {"matrix": [8, 1], "x": 15.5, "y": 3.5}, - {"matrix": [8, 2], "x": 0, "y": 4.5}, - {"matrix": [8, 3], "x": 2.5, "y": 4.125}, - {"matrix": [8, 4], "x": 3.5, "y": 4.15}, - {"matrix": [8, 5], "x": 4.5, "y": 4.25}, + {"matrix": [8, 0], "x": 0, "y": 4.5}, + {"matrix": [8, 1], "x": 2.5, "y": 4.125}, + {"matrix": [8, 2], "x": 3.5, "y": 4.15}, + {"matrix": [8, 3], "x": 4.5, "y": 4.25}, + {"matrix": [8, 4], "x": 6, "y": 4.25, "h": 1.25}, + {"matrix": [8, 5], "x": 6, "y": 2.75}, - {"matrix": [9, 5], "x": 6, "y": 4.25, "h": 1.25}, + {"matrix": [9, 5], "x": 9.5, "y": 2.75}, {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.25}, {"matrix": [9, 3], "x": 11, "y": 4.25}, {"matrix": [9, 2], "x": 12, "y": 4.15}, diff --git a/keyboards/atreyu/rev2/info.json b/keyboards/atreyu/rev2/info.json index fd40f9fcb84..6fcfd64d1ff 100644 --- a/keyboards/atreyu/rev2/info.json +++ b/keyboards/atreyu/rev2/info.json @@ -73,26 +73,26 @@ {"matrix": [3, 4], "x": 4, "y": 3.125}, {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [7, 5], "x": 6, "y": 2.75}, - {"matrix": [7, 4], "x": 9.5, "y": 2.75}, - {"matrix": [7, 3], "x": 10.5, "y": 3.25}, - {"matrix": [7, 2], "x": 11.5, "y": 3.125}, - {"matrix": [7, 1], "x": 12.5, "y": 3}, - {"matrix": [7, 0], "x": 13.5, "y": 3.125}, + {"matrix": [7, 5], "x": 10.5, "y": 3.25}, + {"matrix": [7, 4], "x": 11.5, "y": 3.125}, + {"matrix": [7, 3], "x": 12.5, "y": 3}, + {"matrix": [7, 2], "x": 13.5, "y": 3.125}, + {"matrix": [7, 1], "x": 14.5, "y": 3.375}, + {"matrix": [7, 0], "x": 15.5, "y": 3.5}, - {"matrix": [8, 0], "x": 14.5, "y": 3.375}, - {"matrix": [8, 1], "x": 15.5, "y": 3.5}, - {"matrix": [8, 2], "x": 0, "y": 4.5}, - {"matrix": [8, 3], "x": 2.5, "y": 4.125}, - {"matrix": [8, 4], "x": 3.5, "y": 4.15}, - {"matrix": [8, 5], "x": 4.5, "y": 4.25}, + {"matrix": [8, 0], "x": 0, "y": 4.5}, + {"matrix": [8, 1], "x": 2.5, "y": 4.125}, + {"matrix": [8, 2], "x": 3.5, "y": 4.15}, + {"matrix": [8, 3], "x": 4.5, "y": 4.25}, + {"matrix": [8, 4], "x": 6, "y": 4.25, "h": 1.25}, + {"matrix": [8, 5], "x": 6, "y": 2.75}, - {"matrix": [9, 5], "x": 6, "y": 4.25, "h": 1.25}, + {"matrix": [9, 5], "x": 9.5, "y": 2.75}, {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.25}, {"matrix": [9, 3], "x": 11, "y": 4.25}, {"matrix": [9, 2], "x": 12, "y": 4.15}, {"matrix": [9, 1], "x": 13, "y": 4.125}, - {"matrix": [9, 0], "x": 14.5, "y": 4.5} + {"matrix": [9, 0], "x": 15.5, "y": 4.5} ] } } diff --git a/keyboards/atxkb/1894/config.h b/keyboards/atxkb/1894/config.h index 2542b9f62f4..50001e978cc 100644 --- a/keyboards/atxkb/1894/config.h +++ b/keyboards/atxkb/1894/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 14 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/atxkb/1894/info.json b/keyboards/atxkb/1894/info.json index 1f101bd9ded..aaa6d266436 100644 --- a/keyboards/atxkb/1894/info.json +++ b/keyboards/atxkb/1894/info.json @@ -18,6 +18,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/aurora65/config.h b/keyboards/aurora65/config.h index fad29eeec2c..ec0853212c9 100644 --- a/keyboards/aurora65/config.h +++ b/keyboards/aurora65/config.h @@ -25,18 +25,3 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM5 #define WS2812_DMA_CHANNEL 5 #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB - -#define RGBLED_NUM 36 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/aurora65/info.json b/keyboards/aurora65/info.json index fd03acb5bdc..9311e0f8086 100644 --- a/keyboards/aurora65/info.json +++ b/keyboards/aurora65/info.json @@ -8,6 +8,23 @@ "pid": "0x4136", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 36, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "pwm" diff --git a/keyboards/aurora65/rules.mk b/keyboards/aurora65/rules.mk index 000ee78e21a..cc9d7bb3f53 100644 --- a/keyboards/aurora65/rules.mk +++ b/keyboards/aurora65/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/automata02/alisaie/info.json b/keyboards/automata02/alisaie/info.json new file mode 100644 index 00000000000..9458843114b --- /dev/null +++ b/keyboards/automata02/alisaie/info.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "Automata02", + "keyboard_name": "Alisaie", + "maintainer": "qmk", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B6", "F0", "F1", "F4", "F5", "B5", "B7", "D3", "D2", "D1", "D0", "B3", "B2", "B0"], + "rows": ["E6", "F6", "D5", "D4", "B1"] + }, + "processor": "atmega32u4", + "usb": { + "device_version": "0.0.1", + "pid": "0x2012", + "vid": "0xBABE" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 10.5, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 11.5, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 12.5, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 13.5, "y": 0}, + {"label": "\\", "matrix": [0, 13], "x": 14.5, "y": 0}, + {"label": "`", "matrix": [4, 11], "x": 15.5, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 8, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 9, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 10, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 11, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 12, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 13, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 14, "y": 1}, + {"label": "Backspace", "matrix": [1, 13], "x": 15, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 8.25, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 9.25, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 10.25, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 11.25, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 12.25, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 13.25, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 14.25, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 7.75, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 8.75, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 9.75, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 10.75, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 11.75, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 12.75, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 13.75, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 15.5, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Alt", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "GUI", "matrix": [4, 2], "x": 3.25, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 3], "x": 4.75, "y": 4, "w": 2.75}, + {"label": "Space", "matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.25}, + {"label": "GUI", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.5}, + {"label": "Alt", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 15, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/automata02/alisaie/keymaps/default/keymap.c b/keyboards/automata02/alisaie/keymaps/default/keymap.c new file mode 100644 index 00000000000..00bd681aabd --- /dev/null +++ b/keyboards/automata02/alisaie/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2022 Automata + +This 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL + ), + [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, _______, + _______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_UP, KC_MNXT, _______, + _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, KC_PSCR, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/automata02/alisaie/keymaps/via/keymap.c b/keyboards/automata02/alisaie/keymaps/via/keymap.c new file mode 100644 index 00000000000..3ee2c863e92 --- /dev/null +++ b/keyboards/automata02/alisaie/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2022 Automata + +This 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL + ), + [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_DEL, _______, + _______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_UP, KC_MNXT, _______, + _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, KC_PSCR, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/automata02/alisaie/keymaps/via/rules.mk b/keyboards/automata02/alisaie/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/automata02/alisaie/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/automata02/alisaie/readme.md b/keyboards/automata02/alisaie/readme.md new file mode 100644 index 00000000000..8bfcae86f12 --- /dev/null +++ b/keyboards/automata02/alisaie/readme.md @@ -0,0 +1,24 @@ +# Alisaie + +![Alisaie layout](https://i.imgur.com/0YsrKvw.png) + +A 60% alice like keyboard sharing the same footprint and 8 degree alpha rotation as Meridian but with a tsangan bottom row. + +* Keyboard Maintainer: [Automata02](https://github.com/Automata02/) +* Hardware Supported: Alisaie PCB version 0.0.4b + +Make example for this keyboard (after setting up your build environment): + + make automata02/alisaie:default + +Flashing example for this keyboard: + + make automata02/alisaie: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 backside of the PCB located bellow the Y keyswitch. \ No newline at end of file diff --git a/keyboards/automata02/alisaie/rules.mk b/keyboards/automata02/alisaie/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/automata02/alisaie/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/avalanche/v2/config.h b/keyboards/avalanche/v2/config.h deleted file mode 100644 index 5d7c1c2047b..00000000000 --- a/keyboards/avalanche/v2/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Vitaly Volkov (@vlkv) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGBLED_NUM 12 -#define RGBLED_SPLIT { 6, 6 } -#define RGBLIGHT_SPLIT diff --git a/keyboards/avalanche/v2/info.json b/keyboards/avalanche/v2/info.json index 92f02721de4..62c284a8454 100644 --- a/keyboards/avalanche/v2/info.json +++ b/keyboards/avalanche/v2/info.json @@ -18,6 +18,10 @@ {"pin_a": "B5", "pin_b": "F4", "resolution": 2} ] }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/avalanche/v3/config.h b/keyboards/avalanche/v3/config.h deleted file mode 100644 index c6042255e3d..00000000000 --- a/keyboards/avalanche/v3/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2022 Vitaly Volkov (@vlkv) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGBLED_NUM 12 -#define RGBLED_SPLIT { 7, 7 } -#define RGBLIGHT_SPLIT diff --git a/keyboards/avalanche/v3/info.json b/keyboards/avalanche/v3/info.json index ed507485f5d..8cf8187df7f 100644 --- a/keyboards/avalanche/v3/info.json +++ b/keyboards/avalanche/v3/info.json @@ -21,6 +21,10 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 12, + "split_count": [7, 7] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/avalanche/v4/config.h b/keyboards/avalanche/v4/config.h index 51b7cb7537f..b88dc205359 100644 --- a/keyboards/avalanche/v4/config.h +++ b/keyboards/avalanche/v4/config.h @@ -3,50 +3,8 @@ #pragma once -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 64 -# define RGBLED_SPLIT { 32, 32 } -# define RGBLIGHT_SPLIT -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 - # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+2 -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_CHRISTMAS - - -// RGB LED Conversion macro from physical array to electric array. This results in better looking animated effects. -# define LED_LAYOUT( \ - /* LED matrix */ \ - L01, L02, L03, L04, L05, L06, L011, L012, L013, L014, L015, L016, \ - L11, L12, L13, L14, L15, L16, L111, L112, L113, L114, L115, L116, \ - L20, L21, L22, L23, L24, L25, L26, L211, L212, L213, L214, L215, L216, L217, \ - L31, L32, L33, L34, L35, L36, L37, L38, L39, L310, L311, L312, L313, L314, L315, L316, \ - L44, L45, L46, L47, L48, L49, L410, L411, L412, L413 )\ - { \ - /* left half - electrical wiring order */ \ - L47,L48,L38,L37,L36,L26,L16,L06,L05,L15,L25,L35,L46,L45,L34,L24,L14,L04,L03,L13,L23,L33,L44,L32,L22,L12,L02,L01,L11,L21,L31,L20, \ - /* right half - electrical wiring order */ \ - L410,L49,L39,L310,L311,L211,L111,L011,L012,L112,L212,L312,L411,L412,L313,L213,L113,L013,L014,L114,L214,L314,L413,L315,L215,L115,L015,L016,L116,L216,L316,L217 \ - } -# define RGBLIGHT_LED_MAP LED_LAYOUT( \ - /* animation order. */ \ - 4, 8, 12, 17, 22, 27, 40, 45, 50, 54, 58, 62, \ - 3, 7, 11, 16, 21, 26, 39, 44, 49, 53, 57, 61, \ - 0, 2, 6, 10, 15, 20, 25, 38, 43, 48, 52, 56, 60, 63, \ - 1, 5, 9, 14, 19, 24, 29, 31, 33, 35, 37, 42, 47, 51, 55, 59, \ - 13, 18, 23, 28, 30, 32, 34, 36, 41, 46 ) -#endif - #ifdef OLED_ENABLE # define OLED_DISPLAY_128X64 # define OLED_TIMEOUT 30000 diff --git a/keyboards/avalanche/v4/info.json b/keyboards/avalanche/v4/info.json index 235bb122201..7bb047466b5 100644 --- a/keyboards/avalanche/v4/info.json +++ b/keyboards/avalanche/v4/info.json @@ -25,7 +25,22 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "hue_steps": 10, + "led_count": 64, + "max_brightness": 100, + "led_map": [28, 30, 31, 29, 24, 25, 26, 27, 22, 21, 20, 19, 23, 18, 14, 15, 16, 17, 12, 11, 10, 9, 13, 5, 6, 7, 8, 4, 3, 2, 1, 0, 34, 32, 33, 35, 37, 38, 39, 40, 45, 44, 43, 42, 36, 41, 47, 48, 49, 50, 54, 53, 52, 51, 46, 55, 56, 57, 58, 62, 61, 60, 59, 63], + "split_count": [32, 32], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/avalanche/v4/rules.mk b/keyboards/avalanche/v4/rules.mk index da4886f7d77..513c25d04d9 100644 --- a/keyboards/avalanche/v4/rules.mk +++ b/keyboards/avalanche/v4/rules.mk @@ -12,6 +12,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 SPLIT_KEYBOARD = yes diff --git a/keyboards/aves60/config.h b/keyboards/aves60/config.h index 7b3a5286294..35ca2e0fc3c 100644 --- a/keyboards/aves60/config.h +++ b/keyboards/aves60/config.h @@ -3,23 +3,6 @@ #pragma once -#define RGBLED_NUM 9 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== or choose 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/aves60/info.json b/keyboards/aves60/info.json index eaa74b4fbb6..111fcab3bdc 100644 --- a/keyboards/aves60/info.json +++ b/keyboards/aves60/info.json @@ -16,6 +16,21 @@ "bootmagic": { "matrix": [4, 6] }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/aves65/config.h b/keyboards/aves65/config.h index 05d7e7fb166..95af0f8e733 100644 --- a/keyboards/aves65/config.h +++ b/keyboards/aves65/config.h @@ -21,17 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* Backlight configuration - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 9 diff --git a/keyboards/aves65/info.json b/keyboards/aves65/info.json index 38e619a0aa6..44299f80c50 100644 --- a/keyboards/aves65/info.json +++ b/keyboards/aves65/info.json @@ -17,6 +17,21 @@ "esc_input": "D4", "esc_output": "D0" }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/axolstudio/yeti/hotswap/info.json b/keyboards/axolstudio/yeti/hotswap/info.json index 732e9075cde..9b782c88c90 100644 --- a/keyboards/axolstudio/yeti/hotswap/info.json +++ b/keyboards/axolstudio/yeti/hotswap/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["C7", "F7", "F6", "F5", "F4", "F1", "F0", "B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5"], diff --git a/keyboards/b_sides/rev41lp/info.json b/keyboards/b_sides/rev41lp/info.json index 8a1c538a719..9d121083bd4 100644 --- a/keyboards/b_sides/rev41lp/info.json +++ b/keyboards/b_sides/rev41lp/info.json @@ -4,7 +4,7 @@ "url": "https://github.com/cyril279/keyboards/tree/main/revlp/41_1350", "maintainer": "cyril279", "usb": { - "vid": "0xFEED", + "vid": "0xFA9D", "pid": "0x5F10", "device_version": "0.0.1" }, diff --git a/keyboards/b_sides/rev41lp/keymaps/via/keymap.c b/keyboards/b_sides/rev41lp/keymaps/via/keymap.c new file mode 100644 index 00000000000..a873433953c --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2021 @cyril279 + +This 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_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_LALT, MO(1), KC_SPC, MO(2), KC_LGUI + ), + + [1] = LAYOUT( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD, + _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC), + _______, _______, KC_ENT, MO(3), _______ + ), + + [2] = LAYOUT( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, MO(3), KC_BSPC, _______, _______ + ), + + [3] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_BRTG, BL_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/b_sides/rev41lp/keymaps/via/rules.mk b/keyboards/b_sides/rev41lp/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/baion_808/rules.mk b/keyboards/baion_808/rules.mk old mode 100755 new mode 100644 index 5d2ff628779..11c4a00e5a5 --- a/keyboards/baion_808/rules.mk +++ b/keyboards/baion_808/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/bajjak/config.h b/keyboards/bajjak/config.h index 614d7a78136..72d296bca4b 100644 --- a/keyboards/bajjak/config.h +++ b/keyboards/bajjak/config.h @@ -43,10 +43,6 @@ along with this program. If not, see . #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 1 - -#define TAPPING_TERM 200 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/bajjak/info.json b/keyboards/bajjak/info.json index a280cb9ed8d..bf090bb7d63 100644 --- a/keyboards/bajjak/info.json +++ b/keyboards/bajjak/info.json @@ -10,6 +10,12 @@ }, "processor": "atmega32u4", "bootloader": "halfkay", + "tapping": { + "toggle": 1 + }, + "build": { + "debounce_type": "sym_eager_pr" + }, "layouts": { "LAYOUT_6x7": { "layout": [ diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index 9a93aea27fe..13148ecb048 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -24,8 +24,6 @@ SWAP_HANDS_ENABLE = yes # Allow swapping hands of keyboard BACKLIGHT_SUPPORTED = no AUDIO_SUPPORTED = no -DEBOUNCE_TYPE = sym_eager_pr - # project specific files SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/bandominedoni/config.h b/keyboards/bandominedoni/config.h index 91a4eb0ae80..df0ebb0fdc4 100644 --- a/keyboards/bandominedoni/config.h +++ b/keyboards/bandominedoni/config.h @@ -137,5 +137,3 @@ // Initial velocity value (avoid using 127 since it is used as a special number in some sound sources.) # define MIDI_INITIAL_VELOCITY 117 #endif // MIDI_ENABLE - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/bandominedoni/info.json b/keyboards/bandominedoni/info.json index c4dfe46d74b..aa5b2f9a2f2 100644 --- a/keyboards/bandominedoni/info.json +++ b/keyboards/bandominedoni/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D1", "E6", "F7", "B1", "B3", "B2", "D0"], @@ -26,6 +26,9 @@ } } }, + "qmk": { + "tap_keycode_delay": 10 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/barleycorn_smd/config.h b/keyboards/barleycorn_smd/config.h index 167c3b5c87c..06c67798c01 100644 --- a/keyboards/barleycorn_smd/config.h +++ b/keyboards/barleycorn_smd/config.h @@ -38,19 +38,6 @@ along with this program. If not, see . #define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, D5, D5, D5, D5, D5, D5, D5, D5, D5, D5 } #define PORT_EXPANDER_ADDRESS 0x20 -#define RGBLED_NUM 15 -#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_LED_MAP { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5 } - /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/barleycorn_smd/info.json b/keyboards/barleycorn_smd/info.json index 0f759e5f4d5..b4aef08b62d 100644 --- a/keyboards/barleycorn_smd/info.json +++ b/keyboards/barleycorn_smd/info.json @@ -12,6 +12,22 @@ "caps_lock": "B2", "num_lock": "B3" }, + "rgblight": { + "led_count": 15, + "led_map": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/basekeys/slice/rev1_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/config.h index 996e538ae3b..8a0c1946c16 100644 --- a/keyboards/basekeys/slice/rev1_rgb/config.h +++ b/keyboards/basekeys/slice/rev1_rgb/config.h @@ -26,23 +26,4 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* RGB LED */ -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 69 // Number of LEDs. backlight x69 -#define RGBLED_SPLIT { 34, 35 } -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#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 -#endif - #define OLED_FONT_H "keyboards/basekeys/slice/slice_font.c" diff --git a/keyboards/basekeys/slice/rev1_rgb/info.json b/keyboards/basekeys/slice/rev1_rgb/info.json index 38a6e8398a9..faec5a99533 100644 --- a/keyboards/basekeys/slice/rev1_rgb/info.json +++ b/keyboards/basekeys/slice/rev1_rgb/info.json @@ -20,7 +20,22 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 120 + "hue_steps": 10, + "led_count": 69, + "max_brightness": 120, + "split_count": [34, 35], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/basekeys/slice/rev1_rgb/rules.mk b/keyboards/basekeys/slice/rev1_rgb/rules.mk index e9d1e52c166..1e24ec177f9 100644 --- a/keyboards/basekeys/slice/rev1_rgb/rules.mk +++ b/keyboards/basekeys/slice/rev1_rgb/rules.mk @@ -12,6 +12,5 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Disable OLED driver. LTO_ENABLE = yes diff --git a/keyboards/basekeys/trifecta/config.h b/keyboards/basekeys/trifecta/config.h index 85ae15513e5..341f6f03e0f 100644 --- a/keyboards/basekeys/trifecta/config.h +++ b/keyboards/basekeys/trifecta/config.h @@ -18,24 +18,6 @@ #define RGB_MATRIX_LED_COUNT 80 -/* RGB LED */ -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 80 // Number of LEDs. backlight x69 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#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 -#endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE @@ -53,10 +35,6 @@ # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 /* Disable the animations you don't want/need. You will need to disable a good number of these * * because they take up a lot of space. Disable until you can successfully compile your firmware. */ diff --git a/keyboards/basekeys/trifecta/info.json b/keyboards/basekeys/trifecta/info.json index 3cc2c19f8b9..338eb1ae900 100644 --- a/keyboards/basekeys/trifecta/info.json +++ b/keyboards/basekeys/trifecta/info.json @@ -27,7 +27,26 @@ "pin": "E6" }, "rgblight": { - "max_brightness": 128 + "hue_steps": 10, + "led_count": 80, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "rgb_matrix": { + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/basketweave/config.h b/keyboards/basketweave/config.h index 36054e7bb6f..ebf85963191 100644 --- a/keyboards/basketweave/config.h +++ b/keyboards/basketweave/config.h @@ -20,5 +20,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/basketweave/info.json b/keyboards/basketweave/info.json index 8f9be9b4062..705ef675ba8 100644 --- a/keyboards/basketweave/info.json +++ b/keyboards/basketweave/info.json @@ -19,6 +19,9 @@ {"pin_a": "D7", "pin_b": "C0"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32a", "bootloader": "usbasploader", "layouts": { diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json b/keyboards/bastardkb/charybdis/3x5/blackpill/info.json index 3fc4587f36b..89e181b8f93 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/info.json @@ -4,12 +4,15 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "A1", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B1", "B10", "B3", "B4", "B5"], "rows": ["A2", "B8", "A8", "B9"] diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk index c48862af2c9..9cc216bb71f 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk @@ -25,5 +25,3 @@ KEYBOARD_SHARED_EP = yes EEPROM_DRIVER = spi SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json b/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json index 80a68aea5de..bbb0fd66ba2 100644 --- a/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C7", "F0", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json b/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json index ee2692fa062..4b69b244fbe 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F5", "B6", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json index 3feffac0abb..2c0faa95675 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP28", "GP15", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json index c80cd648c36..0a88daf352d 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP28", "GP21", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json index 7fd33fdc4de..c119df524c3 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json @@ -4,12 +4,15 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "D3", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["F5", "B6", "D7", "E6", "B4"], "rows": ["F7", "C6", "D4", "B5"] diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk index f10636573e7..4436426f303 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk @@ -26,5 +26,3 @@ MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json b/keyboards/bastardkb/charybdis/3x6/blackpill/info.json index a02c176d5ec..5ac7a1cdca0 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/info.json @@ -4,12 +4,15 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "A1", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], "rows": ["A2", "B8", "A8", "B9"] diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk index c48862af2c9..9cc216bb71f 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk @@ -25,5 +25,3 @@ KEYBOARD_SHARED_EP = yes EEPROM_DRIVER = spi SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json b/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json index 8fba6b33cd5..69c8bd6fb4f 100644 --- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D5", "C7", "F0", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json b/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json index 7822fbc36d6..67ada55640e 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json index f4b25121ef1..9b44b3f336c 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json index 8e9b413329b..d1ac62e1abe 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json index e67aa0d6408..85b66277cf2 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json @@ -4,12 +4,15 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "D3", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], "rows": ["F7", "C6", "D4", "B5"] diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk index f10636573e7..4436426f303 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk @@ -26,5 +26,3 @@ MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json b/keyboards/bastardkb/charybdis/4x6/blackpill/info.json index c6bff84bf5c..b9fb103496c 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/info.json @@ -4,12 +4,15 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "A1", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], "rows": ["B15", "A2", "B8", "A8", "B9"] diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk index 8ac0939d013..1cfe4724b42 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk @@ -25,5 +25,3 @@ KEYBOARD_SHARED_EP = yes EEPROM_DRIVER = spi SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json b/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json index 36f341e0e7b..161d36f45d4 100644 --- a/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D5", "C7", "F0", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json b/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json index 3043400b7b6..2ee88c4f9e4 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json index e6b47c984e6..961a0b1420d 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json index 7814c419767..28a1dee31f4 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json index 723f8ae5b13..cfae56715f1 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json @@ -4,12 +4,15 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "D3", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], "rows": ["F4", "F7", "C6", "D4", "B5"] diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk index f10636573e7..4436426f303 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk @@ -26,5 +26,3 @@ MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/dilemma/3x5_3/config.h b/keyboards/bastardkb/dilemma/3x5_3/config.h index c5fa0dc192b..8604597ff8a 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/config.h +++ b/keyboards/bastardkb/dilemma/3x5_3/config.h @@ -41,16 +41,11 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U -/* RGB settings. */ -#define RGBLED_NUM 36 -#define RGBLED_SPLIT \ - { 18, 18 } - /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 36 +# define RGB_MATRIX_SPLIT { 18, 18 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS # define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/bastardkb/dilemma/3x5_3/info.json b/keyboards/bastardkb/dilemma/3x5_3/info.json index 57ea2c16dff..4ab43d6a8e8 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/info.json +++ b/keyboards/bastardkb/dilemma/3x5_3/info.json @@ -5,7 +5,7 @@ "pid": "0x1835" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP8", "GP9", "GP7", "GP6", "GP28"], @@ -15,6 +15,9 @@ "split": { "soft_serial_pin": "GP1" }, + "rgblight": { + "split_count": [18, 18] + }, "ws2812": { "pin": "GP0", "driver": "vendor" diff --git a/keyboards/bastardkb/scylla/blackpill/info.json b/keyboards/bastardkb/scylla/blackpill/info.json index 8b653171041..24fb8bc701b 100644 --- a/keyboards/bastardkb/scylla/blackpill/info.json +++ b/keyboards/bastardkb/scylla/blackpill/info.json @@ -4,12 +4,15 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "A1", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], "rows": ["B15", "A2", "B8", "A8", "B9"] diff --git a/keyboards/bastardkb/scylla/blackpill/rules.mk b/keyboards/bastardkb/scylla/blackpill/rules.mk index 88d65fbb906..8c0e9b58918 100644 --- a/keyboards/bastardkb/scylla/blackpill/rules.mk +++ b/keyboards/bastardkb/scylla/blackpill/rules.mk @@ -23,5 +23,3 @@ KEYBOARD_SHARED_EP = yes EEPROM_DRIVER = spi SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/scylla/config.h b/keyboards/bastardkb/scylla/config.h index 0ad3ecd17bc..33c62549a10 100644 --- a/keyboards/bastardkb/scylla/config.h +++ b/keyboards/bastardkb/scylla/config.h @@ -18,16 +18,11 @@ #pragma once -/* RGB settings. */ -#define RGBLED_NUM 58 -#define RGBLED_SPLIT \ - { 29, 29 } - /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 58 +# define RGB_MATRIX_SPLIT { 29, 29 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS # define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/bastardkb/scylla/info.json b/keyboards/bastardkb/scylla/info.json index 682b2dc6dbd..24a0262beeb 100644 --- a/keyboards/bastardkb/scylla/info.json +++ b/keyboards/bastardkb/scylla/info.json @@ -3,6 +3,10 @@ "usb": { "pid": "0x1829" }, + "rgblight": { + "led_count": 58, + "split_count": [29, 29] + }, "layouts": { "LAYOUT_split_4x6_5": { "layout": [ diff --git a/keyboards/bastardkb/scylla/v1/elitec/info.json b/keyboards/bastardkb/scylla/v1/elitec/info.json index ffac558bbc7..3984c69f2fa 100644 --- a/keyboards/bastardkb/scylla/v1/elitec/info.json +++ b/keyboards/bastardkb/scylla/v1/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B4", "E6", "C6", "B1", "B3", "B2"], diff --git a/keyboards/bastardkb/scylla/v2/elitec/info.json b/keyboards/bastardkb/scylla/v2/elitec/info.json index 1a8643b27df..f9069afd911 100644 --- a/keyboards/bastardkb/scylla/v2/elitec/info.json +++ b/keyboards/bastardkb/scylla/v2/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/info.json b/keyboards/bastardkb/scylla/v2/splinky_2/info.json index 8ba2d4d19ab..0c7dc406b07 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_2/info.json +++ b/keyboards/bastardkb/scylla/v2/splinky_2/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/info.json b/keyboards/bastardkb/scylla/v2/splinky_3/info.json index c0cd88672b7..377fd4424ac 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_3/info.json +++ b/keyboards/bastardkb/scylla/v2/splinky_3/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/scylla/v2/stemcell/info.json b/keyboards/bastardkb/scylla/v2/stemcell/info.json index 2c66f255541..d463418cf19 100644 --- a/keyboards/bastardkb/scylla/v2/stemcell/info.json +++ b/keyboards/bastardkb/scylla/v2/stemcell/info.json @@ -4,12 +4,15 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "D3", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], "rows": ["F4", "F7", "C6", "D4", "B5"] diff --git a/keyboards/bastardkb/scylla/v2/stemcell/rules.mk b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk index c42b71866e9..8dda103d07a 100644 --- a/keyboards/bastardkb/scylla/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk @@ -21,5 +21,3 @@ RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SPLIT_KEYBOARD = yes SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/skeletyl/blackpill/info.json b/keyboards/bastardkb/skeletyl/blackpill/info.json index 2bec7f19811..1d256392819 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/info.json +++ b/keyboards/bastardkb/skeletyl/blackpill/info.json @@ -4,12 +4,15 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "A1", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B1", "B10", "B3", "B4", "B5"], "rows": ["A2", "B8", "A8", "B9"] diff --git a/keyboards/bastardkb/skeletyl/blackpill/rules.mk b/keyboards/bastardkb/skeletyl/blackpill/rules.mk index 88d65fbb906..8c0e9b58918 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/rules.mk +++ b/keyboards/bastardkb/skeletyl/blackpill/rules.mk @@ -23,5 +23,3 @@ KEYBOARD_SHARED_EP = yes EEPROM_DRIVER = spi SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/skeletyl/config.h b/keyboards/bastardkb/skeletyl/config.h index 3e282f0f15e..a7f9c943876 100644 --- a/keyboards/bastardkb/skeletyl/config.h +++ b/keyboards/bastardkb/skeletyl/config.h @@ -18,16 +18,11 @@ #pragma once -/* RGB settings. */ -#define RGBLED_NUM 36 -#define RGBLED_SPLIT \ - { 18, 18 } - /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 36 +# define RGB_MATRIX_SPLIT { 18, 18 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS # define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/bastardkb/skeletyl/info.json b/keyboards/bastardkb/skeletyl/info.json index b325ca71968..b4bb9ea78e5 100644 --- a/keyboards/bastardkb/skeletyl/info.json +++ b/keyboards/bastardkb/skeletyl/info.json @@ -3,6 +3,10 @@ "usb": { "pid": "0x1830" }, + "rgblight": { + "led_count": 36, + "split_count": [18, 18] + }, "community_layouts": ["split_3x5_3"], "layouts": { "LAYOUT_split_3x5_3": { diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/info.json b/keyboards/bastardkb/skeletyl/v1/elitec/info.json index f81bca976ee..f3eb68587d0 100644 --- a/keyboards/bastardkb/skeletyl/v1/elitec/info.json +++ b/keyboards/bastardkb/skeletyl/v1/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["E6", "C6", "B1", "B3", "B2"], diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/info.json b/keyboards/bastardkb/skeletyl/v2/elitec/info.json index 2c43204acea..5e5ccd25458 100644 --- a/keyboards/bastardkb/skeletyl/v2/elitec/info.json +++ b/keyboards/bastardkb/skeletyl/v2/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F5", "B6", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json b/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json index 023c4d553e6..e9c2b345923 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP28", "GP15", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json b/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json index 56a00a3c3dc..a47464720c0 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP28", "GP21", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/info.json b/keyboards/bastardkb/skeletyl/v2/stemcell/info.json index cc4bcf887f9..b44d64a47aa 100644 --- a/keyboards/bastardkb/skeletyl/v2/stemcell/info.json +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/info.json @@ -4,12 +4,15 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "D3", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["F5", "B6", "D7", "E6", "B4"], "rows": ["F7", "C6", "D4", "B5"] diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk index c42b71866e9..8dda103d07a 100644 --- a/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk @@ -21,5 +21,3 @@ RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SPLIT_KEYBOARD = yes SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/tbk/config.h b/keyboards/bastardkb/tbk/config.h index 40a9b2cbeb8..8515cac5ef0 100644 --- a/keyboards/bastardkb/tbk/config.h +++ b/keyboards/bastardkb/tbk/config.h @@ -17,18 +17,4 @@ #pragma once -#define RGBLED_NUM 38 -#define RGBLED_SPLIT { 19, 19 } -#define RGBLIGHT_SPLIT -#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 MASTER_RIGHT diff --git a/keyboards/bastardkb/tbk/info.json b/keyboards/bastardkb/tbk/info.json index 7da2d56ad53..3afca1e792e 100644 --- a/keyboards/bastardkb/tbk/info.json +++ b/keyboards/bastardkb/tbk/info.json @@ -5,6 +5,22 @@ "device_version": "0.0.1", "pid": "0x1828" }, + "rgblight": { + "led_count": 38, + "split_count": [19, 19], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/bastardkb/tbkmini/blackpill/info.json b/keyboards/bastardkb/tbkmini/blackpill/info.json index 30a1b0ac943..dcdce8f63b5 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/info.json +++ b/keyboards/bastardkb/tbkmini/blackpill/info.json @@ -4,12 +4,15 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "A1", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["B0", "B1", "B10", "B3", "B4", "B5"], "rows": ["A2", "B8", "A8", "B9"] diff --git a/keyboards/bastardkb/tbkmini/blackpill/rules.mk b/keyboards/bastardkb/tbkmini/blackpill/rules.mk index 88d65fbb906..8c0e9b58918 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/rules.mk +++ b/keyboards/bastardkb/tbkmini/blackpill/rules.mk @@ -23,5 +23,3 @@ KEYBOARD_SHARED_EP = yes EEPROM_DRIVER = spi SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/tbkmini/config.h b/keyboards/bastardkb/tbkmini/config.h index 06c6e3ada40..ea18f4349e7 100644 --- a/keyboards/bastardkb/tbkmini/config.h +++ b/keyboards/bastardkb/tbkmini/config.h @@ -18,16 +18,11 @@ #pragma once -/* RGB settings. */ -#define RGBLED_NUM 42 -#define RGBLED_SPLIT \ - { 21, 21 } - /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 42 +# define RGB_MATRIX_SPLIT { 21, 21 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS # define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/bastardkb/tbkmini/info.json b/keyboards/bastardkb/tbkmini/info.json index 94c357cd3b5..ec0433d3873 100644 --- a/keyboards/bastardkb/tbkmini/info.json +++ b/keyboards/bastardkb/tbkmini/info.json @@ -3,6 +3,10 @@ "usb": { "pid": "0x1828" }, + "rgblight": { + "led_count": 42, + "split_count": [21, 21] + }, "community_layouts": ["split_3x6_3"], "layouts": { "LAYOUT_split_3x6_3": { diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/info.json b/keyboards/bastardkb/tbkmini/v1/elitec/info.json index a5a90811ec8..f246ce0e7ce 100644 --- a/keyboards/bastardkb/tbkmini/v1/elitec/info.json +++ b/keyboards/bastardkb/tbkmini/v1/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B4", "E6", "C6", "B1", "B3", "B2"], diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/info.json b/keyboards/bastardkb/tbkmini/v2/elitec/info.json index 28c30f9ab7b..07bf99658b1 100644 --- a/keyboards/bastardkb/tbkmini/v2/elitec/info.json +++ b/keyboards/bastardkb/tbkmini/v2/elitec/info.json @@ -7,7 +7,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json b/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json index 1dc6607f3d0..3bcae1df607 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP27", "GP28", "GP15", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json b/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json index 2c96b46c2ad..e7f01c359dc 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["GP27", "GP28", "GP21", "GP6", "GP7", "GP8"], diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/info.json b/keyboards/bastardkb/tbkmini/v2/stemcell/info.json index ae8a3c4d88a..a75db584e79 100644 --- a/keyboards/bastardkb/tbkmini/v2/stemcell/info.json +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/info.json @@ -4,12 +4,15 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "D3", "driver": "pwm" }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "matrix_pins": { "cols": ["F6", "F5", "B6", "D7", "E6", "B4"], "rows": ["F7", "C6", "D4", "B5"] diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk index c42b71866e9..8dda103d07a 100644 --- a/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk @@ -21,5 +21,3 @@ RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SPLIT_KEYBOARD = yes SERIAL_DRIVER = usart - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bbrfkr/dynamis/config.h b/keyboards/bbrfkr/dynamis/config.h index 4cad8086cd3..98088d31c4a 100644 --- a/keyboards/bbrfkr/dynamis/config.h +++ b/keyboards/bbrfkr/dynamis/config.h @@ -16,18 +16,5 @@ #pragma once -/* rgb num */ -#define RGBLED_NUM 10 -#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 PMW33XX_CS_PIN SPI_SS_PIN #define POINTING_DEVICE_INVERT_Y diff --git a/keyboards/bbrfkr/dynamis/info.json b/keyboards/bbrfkr/dynamis/info.json index c9f403a0455..6d1ae830ebe 100644 --- a/keyboards/bbrfkr/dynamis/info.json +++ b/keyboards/bbrfkr/dynamis/info.json @@ -18,6 +18,21 @@ {"pin_a": "B7", "pin_b": "E6"} ] }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bear_face/info.json b/keyboards/bear_face/info.json index 0c3e6148033..e0df316093d 100644 --- a/keyboards/bear_face/info.json +++ b/keyboards/bear_face/info.json @@ -15,6 +15,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F7" }, "processor": "atmega32u4", diff --git a/keyboards/bemeier/bmek/config.h b/keyboards/bemeier/bmek/config.h index 6c147e6368c..45534540962 100755 --- a/keyboards/bemeier/bmek/config.h +++ b/keyboards/bemeier/bmek/config.h @@ -18,15 +18,3 @@ #define DYNAMIC_KEYMAP_LAYER_COUNT 5 #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_MODE_STATIC_GRADIENT - -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -//#define RETRO_TAPPING -#define TAPPING_TERM 175 diff --git a/keyboards/bemeier/bmek/rev1/info.json b/keyboards/bemeier/bmek/rev1/info.json index c50cae166e2..70873aa5274 100644 --- a/keyboards/bemeier/bmek/rev1/info.json +++ b/keyboards/bemeier/bmek/rev1/info.json @@ -2,6 +2,18 @@ "usb": { "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true + } + }, + "tapping": { + "term": 175 + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/bemeier/bmek/rev2/info.json b/keyboards/bemeier/bmek/rev2/info.json index 1ac54f5c79d..f1440afaf24 100644 --- a/keyboards/bemeier/bmek/rev2/info.json +++ b/keyboards/bemeier/bmek/rev2/info.json @@ -2,6 +2,18 @@ "usb": { "device_version": "0.0.2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true + } + }, + "tapping": { + "term": 175 + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/bemeier/bmek/rev3/info.json b/keyboards/bemeier/bmek/rev3/info.json index c951ca8e43b..ac0faf87063 100644 --- a/keyboards/bemeier/bmek/rev3/info.json +++ b/keyboards/bemeier/bmek/rev3/info.json @@ -2,6 +2,18 @@ "usb": { "device_version": "0.0.3" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true + } + }, + "tapping": { + "term": 175 + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/bfake/config.h b/keyboards/bfake/config.h deleted file mode 100644 index ddc21dae308..00000000000 --- a/keyboards/bfake/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 16 - -#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/bfake/info.json b/keyboards/bfake/info.json index 374e3377929..3aae216047f 100644 --- a/keyboards/bfake/info.json +++ b/keyboards/bfake/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/biacco42/ergo42/rev1/config.h b/keyboards/biacco42/ergo42/rev1/config.h index 8f990eb8ed0..179b1172430 100644 --- a/keyboards/biacco42/ergo42/rev1/config.h +++ b/keyboards/biacco42/ergo42/rev1/config.h @@ -24,9 +24,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/biacco42/ergo42/rev1/info.json b/keyboards/biacco42/ergo42/rev1/info.json index 96ecd7010e1..67f27ad6129 100644 --- a/keyboards/biacco42/ergo42/rev1/info.json +++ b/keyboards/biacco42/ergo42/rev1/info.json @@ -8,6 +8,9 @@ "pid": "0x0042", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/binepad/bn006/info.json b/keyboards/binepad/bn006/info.json index 2c2aecbf82c..756b82e330a 100755 --- a/keyboards/binepad/bn006/info.json +++ b/keyboards/binepad/bn006/info.json @@ -28,7 +28,7 @@ "pin": "B15" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 4, "matrix": [0, 1], "x": 112, "y": 0}, diff --git a/keyboards/binepad/bn009/keymaps/default/keymap.json b/keyboards/binepad/bn009/keymaps/default/keymap.json index 2d5410de04f..bcce7475c6d 100644 --- a/keyboards/binepad/bn009/keymaps/default/keymap.json +++ b/keyboards/binepad/bn009/keymaps/default/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "binepad/bn009r2", + "keyboard": "binepad/bn009/r2", "version": 1, "author": "binepad", "notes": "This file is a keymap.json file for binepad/bn009r2", diff --git a/keyboards/binepad/bn009/keymaps/via/keymap.json b/keyboards/binepad/bn009/keymaps/via/keymap.json new file mode 100644 index 00000000000..1790cf9328a --- /dev/null +++ b/keyboards/binepad/bn009/keymaps/via/keymap.json @@ -0,0 +1,35 @@ +{ + "config": { + "features": { + "via": true + } + }, + "keyboard": "binepad/bn009/r2", + "version": 1, + "author": "binepad", + "notes": "This file is a keymap.json file for binepad/bn009r2", + "keymap": "via", + "layout": "LAYOUT_ortho_3x3", + "layers": [ + [ + "KC_7", "KC_8", "KC_9", + "KC_4", "KC_5", "KC_6", + "KC_1", "KC_2", "KC_3" + ], + [ + "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" + ] + ] +} diff --git a/keyboards/binepad/bnr1/v2/rules.mk b/keyboards/binepad/bnr1/v2/rules.mk old mode 100755 new mode 100644 index a9a826d49ff..77b90d035df --- a/keyboards/binepad/bnr1/v2/rules.mk +++ b/keyboards/binepad/bnr1/v2/rules.mk @@ -3,5 +3,3 @@ EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/bioi/f60/config.h b/keyboards/bioi/f60/config.h index b06dcb251a7..39b9e8b47ac 100644 --- a/keyboards/bioi/f60/config.h +++ b/keyboards/bioi/f60/config.h @@ -17,18 +17,4 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 5 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 # define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB diff --git a/keyboards/bioi/f60/info.json b/keyboards/bioi/f60/info.json index 59118130434..6223ba7b579 100644 --- a/keyboards/bioi/f60/info.json +++ b/keyboards/bioi/f60/info.json @@ -18,6 +18,23 @@ "levels": 8, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/bioi/g60/config.h b/keyboards/bioi/g60/config.h index d1039d08968..976841be799 100644 --- a/keyboards/bioi/g60/config.h +++ b/keyboards/bioi/g60/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB Underglow */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 // Number of LEDs -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/bioi/g60/info.json b/keyboards/bioi/g60/info.json index 10a92de946b..a96d1acce57 100644 --- a/keyboards/bioi/g60/info.json +++ b/keyboards/bioi/g60/info.json @@ -17,9 +17,29 @@ "pin": "B7", "levels": 12 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, + "bluetooth": { + "driver": "custom" + }, "processor": "atmega32u4", "bootloader": "qmk-dfu", "layouts": { diff --git a/keyboards/bioi/g60/matrix_diagram.md b/keyboards/bioi/g60/matrix_diagram.md index 5f7af98daf5..8ac1d9b0d3f 100644 --- a/keyboards/bioi/g60/matrix_diagram.md +++ b/keyboards/bioi/g60/matrix_diagram.md @@ -12,9 +12,9 @@ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤ └──────┴───┴───┘ │40 │41 │42 │45 │4A │4B │48 │4C │4D │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ -┌────────┐ -│30 │ 2.25u LShift -└────────┘ +┌────────┐ ┌─────────────┐ +│30 │ 2.25u LShift │3D │ 2.75u RShift +└────────┘ └─────────────┘ ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ │40 │41 │42 │45 │4A │4B │4C │4D │ Standard └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ diff --git a/keyboards/bioi/g60/rules.mk b/keyboards/bioi/g60/rules.mk index a22a56ecec3..2b955ce793b 100644 --- a/keyboards/bioi/g60/rules.mk +++ b/keyboards/bioi/g60/rules.mk @@ -15,7 +15,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes # Reduce firmware size BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = custom VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. diff --git a/keyboards/bioi/g60ble/config.h b/keyboards/bioi/g60ble/config.h index d58c58713c6..0b4ce9a0907 100644 --- a/keyboards/bioi/g60ble/config.h +++ b/keyboards/bioi/g60ble/config.h @@ -2,24 +2,9 @@ /* 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 RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 36 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - +/* key combination for magic key command */ #define KEYBOARD_LOCK_ENABLE #define MAGIC_KEY_LOCK L diff --git a/keyboards/bioi/g60ble/info.json b/keyboards/bioi/g60ble/info.json index 2b835f7c482..1699f7275e0 100644 --- a/keyboards/bioi/g60ble/info.json +++ b/keyboards/bioi/g60ble/info.json @@ -17,9 +17,29 @@ "pin": "B7", "levels": 8 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 36, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, + "bluetooth": { + "driver": "custom" + }, "processor": "atmega32u4", "bootloader": "qmk-dfu", "community_layouts": ["60_ansi", "60_iso", "60_hhkb", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"], diff --git a/keyboards/bioi/g60ble/keymaps/chemicalwill/keymap.c b/keyboards/bioi/g60ble/keymaps/chemicalwill/keymap.c new file mode 100644 index 00000000000..680c9687957 --- /dev/null +++ b/keyboards/bioi/g60ble/keymaps/chemicalwill/keymap.c @@ -0,0 +1,206 @@ +/* Copyright 2023 Will Hedges (@will-hedges) + * + * This 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 { + _WORK, + _QWER, + _FN1 +}; + +enum custom_keycodes { + BASE_QWER = SAFE_RANGE, + BASE_WORK +}; + +// Tap Dance enum +enum { + N8_F8, + N9_F9, + N0_F10, + MINS_F11, + EQL_F12, + DEL_BSLS, + G_END, + H_HOME, + LALT_PGUP, + RALT_PGDN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_WORK] = LAYOUT_60_ansi( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, TD(N8_F8), TD(N9_F9), TD(N0_F10), TD(MINS_F11), TD(EQL_F12), 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, TD(DEL_BSLS), + LT(_FN1, KC_CAPS), KC_A, KC_S, KC_D, KC_F, TD(G_END), TD(H_HOME), 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, LALT_T(KC_PGUP), KC_SPC, RALT_T(KC_PGDN), KC_APP, MO(_FN1), KC_RCTL + ), + + [_QWER] = LAYOUT_60_ansi( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, TD(DEL_BSLS), + 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_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_APP, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_60_ansi( + _______, 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_PGUP, _______, QK_RBT, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, + _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, + _______, C(A(KC_DEL)), _______, _______, _______, BASE_WORK, _______, BASE_QWER + ) + +}; + + +// Tap Dance tap vs. hold docs @ https://docs.qmk.fm/#/feature_tap_dance?id=example-3 +// Macros are also used with process_record_user @ https://docs.qmk.fm/#/feature_macros?id=using-macros-in-c-keymaps +typedef struct { + uint16_t tap; + uint16_t hold; + uint16_t held; +} tap_dance_tap_hold_t; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_action_t *action; + + switch (keycode) { + // MACROS + case BASE_QWER: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWER); + } + break; + + case BASE_WORK: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORK); + } + break; + + // TAP DANCES + case TD(N8_F8): + action = &tap_dance_actions[TD_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + break; + + case TD(N9_F9): + action = &tap_dance_actions[TD_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + break; + + case TD(N0_F10): + action = &tap_dance_actions[TD_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + break; + + case TD(MINS_F11): + action = &tap_dance_actions[TD_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + break; + + case TD(EQL_F12): + action = &tap_dance_actions[TD_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + break; + + case TD(DEL_BSLS): + action = &tap_dance_actions[TD_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + break; + + case TD(G_END): + action = &tap_dance_actions[TD_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + break; + + case TD(H_HOME): + action = &tap_dance_actions[TD_INDEX(keycode)]; + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + break; + + } + return true; +} + +void tap_dance_tap_hold_finished(tap_dance_state_t *state, void *user_data) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data; + + if (state->pressed) { + if (state->count == 1 +#ifndef PERMISSIVE_HOLD + && !state->interrupted +#endif + ) { + register_code16(tap_hold->hold); + tap_hold->held = tap_hold->hold; + } else { + register_code16(tap_hold->tap); + tap_hold->held = tap_hold->tap; + } + } +} + +void tap_dance_tap_hold_reset(tap_dance_state_t *state, void *user_data) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data; + + if (tap_hold->held) { + unregister_code16(tap_hold->held); + tap_hold->held = 0; + } +} + +#define ACTION_TAP_DANCE_TAP_HOLD(tap, hold) \ + { .fn = {NULL, tap_dance_tap_hold_finished, tap_dance_tap_hold_reset}, .user_data = (void *)&((tap_dance_tap_hold_t){tap, hold, 0}), } + +tap_dance_action_t tap_dance_actions[] = { + [N8_F8] = ACTION_TAP_DANCE_TAP_HOLD(KC_8, KC_F8), + [N9_F9] = ACTION_TAP_DANCE_TAP_HOLD(KC_9, KC_F9), + [N0_F10] = ACTION_TAP_DANCE_TAP_HOLD(KC_0, KC_F10), + [MINS_F11] = ACTION_TAP_DANCE_TAP_HOLD(KC_MINS, KC_F11), + [EQL_F12] = ACTION_TAP_DANCE_TAP_HOLD(KC_EQL, KC_F12), + [DEL_BSLS] = ACTION_TAP_DANCE_TAP_HOLD(KC_DEL, KC_BSLS), + [G_END] = ACTION_TAP_DANCE_TAP_HOLD(KC_G, KC_END), + [H_HOME] = ACTION_TAP_DANCE_TAP_HOLD(KC_H, KC_HOME) +}; diff --git a/keyboards/bioi/g60ble/keymaps/chemicalwill/rules.mk b/keyboards/bioi/g60ble/keymaps/chemicalwill/rules.mk new file mode 100644 index 00000000000..c86c7b33406 --- /dev/null +++ b/keyboards/bioi/g60ble/keymaps/chemicalwill/rules.mk @@ -0,0 +1,7 @@ +# features enabled by default that I want to turn off +BACKLIGHT_ENABLE = no +MOUSEKEY_ENABLE = no +RGBLIGHT_ENABLE = no + +# features I want to add +TAP_DANCE_ENABLE = yes diff --git a/keyboards/bioi/g60ble/matrix_diagram.md b/keyboards/bioi/g60ble/matrix_diagram.md new file mode 100644 index 00000000000..b7cfaa76869 --- /dev/null +++ b/keyboards/bioi/g60ble/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Basic IO Instruments G60BLE + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │49 │ │0D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌─────┴┬──┴┬───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3C │ │3D │47 │3C │ 1.75u/1u/1u RShift +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤ └──────┴───┴───┘ +│40 │41 │42 │45 │4A │4B │48 │4C │4D │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ +┌────────┐ ┌─────────────┐ +│30 │ 2.25u LShift │3D │ 2.75u RShift +└────────┘ └─────────────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│40 │41 │42 │45 │4A │4B │4C │4D │ Standard +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │45 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/bioi/g60ble/rules.mk b/keyboards/bioi/g60ble/rules.mk index e3420b4a28a..31cc2c22b69 100644 --- a/keyboards/bioi/g60ble/rules.mk +++ b/keyboards/bioi/g60ble/rules.mk @@ -4,12 +4,17 @@ F_CPU = 8000000 # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes LTO_ENABLE = yes + +# these lines are all for bluetooth +BLUETOOTH_ENABLE = yes +SRC += usart.c ble.c +OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 +OPT_DEFS += -DUSART1_ENABLED diff --git a/keyboards/bioi/morgan65/config.h b/keyboards/bioi/morgan65/config.h index 93ab008b66a..2e78cc2a3e1 100644 --- a/keyboards/bioi/morgan65/config.h +++ b/keyboards/bioi/morgan65/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB Underglow */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 // Number of LEDs -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/bioi/morgan65/info.json b/keyboards/bioi/morgan65/info.json index c3fced4f783..6cf66b843ac 100644 --- a/keyboards/bioi/morgan65/info.json +++ b/keyboards/bioi/morgan65/info.json @@ -17,9 +17,29 @@ "pin": "B6", "levels": 12 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, + "bluetooth": { + "driver": "custom" + }, "processor": "atmega32u4", "bootloader": "qmk-dfu", "community_layouts": [ diff --git a/keyboards/bioi/morgan65/rules.mk b/keyboards/bioi/morgan65/rules.mk index a22a56ecec3..2b955ce793b 100644 --- a/keyboards/bioi/morgan65/rules.mk +++ b/keyboards/bioi/morgan65/rules.mk @@ -15,7 +15,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes # Reduce firmware size BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = custom VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. diff --git a/keyboards/bioi/s65/config.h b/keyboards/bioi/s65/config.h index 13f5533c9f6..8134bd96cfa 100644 --- a/keyboards/bioi/s65/config.h +++ b/keyboards/bioi/s65/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB Underglow */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/bioi/s65/info.json b/keyboards/bioi/s65/info.json index a3a783b61ff..a2d63ae3f97 100644 --- a/keyboards/bioi/s65/info.json +++ b/keyboards/bioi/s65/info.json @@ -17,6 +17,23 @@ "pin": "B6", "levels": 12 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/black_hellebore/info.json b/keyboards/black_hellebore/info.json index 649bc63f238..bc70e3eb984 100644 --- a/keyboards/black_hellebore/info.json +++ b/keyboards/black_hellebore/info.json @@ -29,7 +29,7 @@ "vid": "0x3141" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 7, "y": 5}, {"flags": 4, "matrix": [0, 1], "x": 22, "y": 5}, diff --git a/keyboards/blackplum/config.h b/keyboards/blackplum/config.h index ec4300c811d..5f360813239 100644 --- a/keyboards/blackplum/config.h +++ b/keyboards/blackplum/config.h @@ -5,21 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 -#define RGBLIGHT_SLEEP diff --git a/keyboards/blackplum/info.json b/keyboards/blackplum/info.json index bc9786c09a6..ba93091bcc6 100644 --- a/keyboards/blackplum/info.json +++ b/keyboards/blackplum/info.json @@ -8,6 +8,25 @@ "pid": "0x4250", "device_version": "10.0.1" }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/blockboy/ac980mini/config.h b/keyboards/blockboy/ac980mini/config.h index 57ba70ec110..b98cb7964fd 100644 --- a/keyboards/blockboy/ac980mini/config.h +++ b/keyboards/blockboy/ac980mini/config.h @@ -6,7 +6,6 @@ // RGB configuration // The number of LEDs connected #define RGB_MATRIX_LED_COUNT 81 -# define RGBLED_NUM 81 #ifdef RGB_MATRIX_ENABLE //# define RGB_MATRIX_KEYPRESSES // reacts to keypresses @@ -16,10 +15,6 @@ // # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 /* Enable the animations you want/need. You may need to enable only a small number of these because * * they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */ diff --git a/keyboards/blockboy/ac980mini/info.json b/keyboards/blockboy/ac980mini/info.json index c7541768246..36d6fe5ba9e 100644 --- a/keyboards/blockboy/ac980mini/info.json +++ b/keyboards/blockboy/ac980mini/info.json @@ -19,7 +19,10 @@ "pin": "B7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "layouts": { "LAYOUT": { diff --git a/keyboards/blockey/config.h b/keyboards/blockey/config.h index 9b796dcece8..a93b381c85b 100644 --- a/keyboards/blockey/config.h +++ b/keyboards/blockey/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/blockey/info.json b/keyboards/blockey/info.json index 044d1e9e1a4..2ed60f6e69a 100644 --- a/keyboards/blockey/info.json +++ b/keyboards/blockey/info.json @@ -8,6 +8,22 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/blockey/keymaps/eucalyn/keymap.c b/keyboards/blockey/keymaps/eucalyn/keymap.c index 3a6d1fecd12..20ab8ed1175 100644 --- a/keyboards/blockey/keymaps/eucalyn/keymap.c +++ b/keyboards/blockey/keymaps/eucalyn/keymap.c @@ -37,19 +37,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/bluebell/swoop/config.h b/keyboards/bluebell/swoop/config.h index c34ab85ecfd..48d63003252 100644 --- a/keyboards/bluebell/swoop/config.h +++ b/keyboards/bluebell/swoop/config.h @@ -22,17 +22,3 @@ #define OLED_DISPLAY_128X32 #define OLED_TIMEOUT 30000 #endif - -// RGB underglow and per key - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLED_NUM 36 - #define RGBLED_SPLIT \ - { 18, 18 } - #define RGBLIGHT_SPLIT - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 - #define RGBLIGHT_SLEEP diff --git a/keyboards/bluebell/swoop/info.json b/keyboards/bluebell/swoop/info.json index e319754f785..52c859c1540 100644 --- a/keyboards/bluebell/swoop/info.json +++ b/keyboards/bluebell/swoop/info.json @@ -12,7 +12,17 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 150 + "hue_steps": 10, + "led_count": 36, + "max_brightness": 150, + "sleep": true, + "split_count": [18, 18], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } }, "matrix_pins": { "cols": ["B1", "F7", "F6", "F5", "F4"], diff --git a/keyboards/bluebell/swoop/keymaps/kyek/rules.mk b/keyboards/bluebell/swoop/keymaps/kyek/rules.mk index 6b5678dd27c..fb46c2589d3 100644 --- a/keyboards/bluebell/swoop/keymaps/kyek/rules.mk +++ b/keyboards/bluebell/swoop/keymaps/kyek/rules.mk @@ -6,7 +6,6 @@ LTO_ENABLE = no EXTRAKEY_ENABLE = no # ENCODER_ENABLE = no -# OLED_DRIVER_ENABLE = no # WPM_ENABLE = no # Enable keyboard underlight functionality diff --git a/keyboards/boardrun/bizarre/config.h b/keyboards/boardrun/bizarre/config.h index a367b59dd31..1b4e5a6d87e 100644 --- a/keyboards/boardrun/bizarre/config.h +++ b/keyboards/boardrun/bizarre/config.h @@ -35,19 +35,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 15 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/boardrun/bizarre/info.json b/keyboards/boardrun/bizarre/info.json index 8c6253965be..428ca3bac60 100644 --- a/keyboards/boardrun/bizarre/info.json +++ b/keyboards/boardrun/bizarre/info.json @@ -9,6 +9,24 @@ "pid": "0x5339", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 15, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/boardrun/classic/config.h b/keyboards/boardrun/classic/config.h index a1d1a3a5441..1b4e5a6d87e 100644 --- a/keyboards/boardrun/classic/config.h +++ b/keyboards/boardrun/classic/config.h @@ -35,19 +35,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/boardrun/classic/info.json b/keyboards/boardrun/classic/info.json index 8259afcdcc9..4518961b4ae 100644 --- a/keyboards/boardrun/classic/info.json +++ b/keyboards/boardrun/classic/info.json @@ -9,6 +9,24 @@ "pid": "0x5338", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/boardsource/beiwagon/info.json b/keyboards/boardsource/beiwagon/info.json index 08fcffc024f..b02c5288678 100644 --- a/keyboards/boardsource/beiwagon/info.json +++ b/keyboards/boardsource/beiwagon/info.json @@ -25,7 +25,7 @@ "vid": "0x4273" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 16, "y": 38}, {"flags": 2, "x": 16, "y": 113}, diff --git a/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/rules.mk b/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/rules.mk +++ b/keyboards/boardsource/holiday/spooky/keymaps/rip_mx/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/rules.mk b/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/rules.mk +++ b/keyboards/boardsource/holiday/spooky/keymaps/rip_my_wallet/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/boardsource/lulu/info.json b/keyboards/boardsource/lulu/info.json index 8272c163008..f0eb661d7b9 100644 --- a/keyboards/boardsource/lulu/info.json +++ b/keyboards/boardsource/lulu/info.json @@ -22,7 +22,7 @@ "enabled": true }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "split_count": [35, 35], "max_brightness": 150, "animations": { diff --git a/keyboards/boardsource/lulu/lulu.c b/keyboards/boardsource/lulu/lulu.c index be6d565a329..8d011268c4b 100644 --- a/keyboards/boardsource/lulu/lulu.c +++ b/keyboards/boardsource/lulu/lulu.c @@ -1,6 +1,6 @@ // Copyright 2022 Cole Smith // SPDX-License-Identifier: GPL-2.0-or-later -#include "encoder.h" +#include "quantum.h" #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { diff --git a/keyboards/boardsource/microdox/v2/info.json b/keyboards/boardsource/microdox/v2/info.json index 8d68b964c16..dccecb4980e 100644 --- a/keyboards/boardsource/microdox/v2/info.json +++ b/keyboards/boardsource/microdox/v2/info.json @@ -35,7 +35,7 @@ } }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 12, "y": 11}, {"flags": 2, "x": 86, "y": 11}, diff --git a/keyboards/boardsource/technik_o/config.h b/keyboards/boardsource/technik_o/config.h index 1148c13ebc6..4d7d053cfbc 100644 --- a/keyboards/boardsource/technik_o/config.h +++ b/keyboards/boardsource/technik_o/config.h @@ -41,12 +41,12 @@ along with this program. If not, see . #define ENABLE_RGB_MATRIX_PIXEL_RAIN #define ENABLE_RGB_MATRIX_PIXEL_FLOW #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_SPLASH diff --git a/keyboards/boardsource/technik_o/info.json b/keyboards/boardsource/technik_o/info.json index 79ade753b1d..91840eeb4fc 100644 --- a/keyboards/boardsource/technik_o/info.json +++ b/keyboards/boardsource/technik_o/info.json @@ -26,7 +26,7 @@ "vid": "0x4273" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 220, "y": 17}, {"flags": 2, "x": 172, "y": 17}, diff --git a/keyboards/boardsource/technik_s/config.h b/keyboards/boardsource/technik_s/config.h index fe6518356e5..b01542d77b7 100644 --- a/keyboards/boardsource/technik_s/config.h +++ b/keyboards/boardsource/technik_s/config.h @@ -41,12 +41,12 @@ along with this program. If not, see . #define ENABLE_RGB_MATRIX_PIXEL_RAIN #define ENABLE_RGB_MATRIX_PIXEL_FLOW #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_SPLASH diff --git a/keyboards/boardsource/technik_s/info.json b/keyboards/boardsource/technik_s/info.json index 7c6086db749..0c8b101b20e 100644 --- a/keyboards/boardsource/technik_s/info.json +++ b/keyboards/boardsource/technik_s/info.json @@ -26,7 +26,7 @@ "vid": "0x4273" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 220, "y": 17}, {"flags": 2, "x": 172, "y": 17}, diff --git a/keyboards/boardsource/the_mark/info.json b/keyboards/boardsource/the_mark/info.json index be130dc94df..c574f7ab66f 100644 --- a/keyboards/boardsource/the_mark/info.json +++ b/keyboards/boardsource/the_mark/info.json @@ -43,7 +43,7 @@ "pin": "C6" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 224, "y": 42}, {"flags": 2, "x": 224, "y": 21}, diff --git a/keyboards/boardsource/unicorne/config.h b/keyboards/boardsource/unicorne/config.h new file mode 100644 index 00000000000..d0d466bb54a --- /dev/null +++ b/keyboards/boardsource/unicorne/config.h @@ -0,0 +1,26 @@ +// Copyright 2023 jack (@waffle87) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define RGB_MATRIX_LED_COUNT 54 +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_ALPHAS_MODS +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET + +#define SPLIT_LAYER_STATE_ENABLE + +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP22 +#define I2C1_SCL_PIN GP23 + +#define AUDIO_PIN GP28 +#define AUDIO_PWM_DRIVER PWMD6 +#define AUDIO_INIT_DELAY +#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_A +#define STARTUP_SONG SONG(ODE_TO_JOY) + +#define ANALOG_JOYSTICK_Y_AXIS_PIN GP26 +#define ANALOG_JOYSTICK_X_AXIS_PIN GP27 +#define POINTING_DEVICE_INVERT_Y +#define POINTING_DEVICE_INVERT_X diff --git a/keyboards/boardsource/unicorne/halconf.h b/keyboards/boardsource/unicorne/halconf.h new file mode 100644 index 00000000000..21ed454e506 --- /dev/null +++ b/keyboards/boardsource/unicorne/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 jack (@waffle87) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/boardsource/unicorne/info.json b/keyboards/boardsource/unicorne/info.json new file mode 100644 index 00000000000..aeeb3481253 --- /dev/null +++ b/keyboards/boardsource/unicorne/info.json @@ -0,0 +1,161 @@ +{ + "manufacturer": "Boardsource", + "maintainer": "waffle87", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "audio": true, + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "pointing_device": true, + "rgb_matrix": true + }, + "indicators": { + "caps": "GP24" + }, + "split": { + "enabled": true, + "soft_serial_pin": "GP0" + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x7563", + "vid": "0x4273" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"], + "rows": ["GP14", "GP15", "GP16", "GP17"] + }, + "encoder": { + "rotary": [ + {"pin_a": "GP8", "pin_b": "GP9"} + ] + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_sat": true, + "band_val": true, + "breathing": true, + "gradient_left_right": true, + "gradient_up_down": true + }, + "max_brightness": 150, + "split_count": [27, 27], + "driver": "ws2812", + "layout": [ + {"x": 85, "y": 16, "flags": 2}, + {"x": 50, "y": 13, "flags": 2}, + {"x": 16, "y": 20, "flags": 2}, + {"x": 16, "y": 38, "flags": 2}, + {"x": 50, "y": 48, "flags": 2}, + {"x": 85, "y": 52, "flags": 2}, + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, + {"x": 139, "y": 16, "flags": 2}, + {"x": 174, "y": 13, "flags": 2}, + {"x": 208, "y": 20, "flags": 2}, + {"x": 208, "y": 38, "flags": 2}, + {"x": 174, "y": 48, "flags": 2}, + {"x": 139, "y": 52, "flags": 2}, + {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [6, 0], "x": 0, "y": 41, "flags": 1} + ] + }, + "community_layouts": ["split_3x6_3"], + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.3}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + {"matrix": [4, 5], "x": 9, "y": 0.2}, + {"matrix": [4, 4], "x": 10, "y": 0.1}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0.1}, + {"matrix": [4, 1], "x": 13, "y": 0.3}, + {"matrix": [4, 0], "x": 14, "y": 0.3}, + {"matrix": [1, 0], "x": 0, "y": 1.3}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + {"matrix": [5, 5], "x": 9, "y": 1.2}, + {"matrix": [5, 4], "x": 10, "y": 1.1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1.1}, + {"matrix": [5, 1], "x": 13, "y": 1.3}, + {"matrix": [5, 0], "x": 14, "y": 1.3}, + {"matrix": [2, 0], "x": 0, "y": 2.3}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + {"matrix": [6, 5], "x": 9, "y": 2.2}, + {"matrix": [6, 4], "x": 10, "y": 2.1}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2.1}, + {"matrix": [6, 1], "x": 13, "y": 2.3}, + {"matrix": [6, 0], "x": 14, "y": 2.3}, + {"matrix": [3, 3], "x": 4, "y": 3.7}, + {"matrix": [3, 4], "x": 5, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, + {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, + {"matrix": [7, 4], "x": 9, "y": 3.7}, + {"matrix": [7, 3], "x": 10, "y": 3.7} + ] + } + } +} diff --git a/keyboards/boardsource/unicorne/keymaps/default/keymap.json b/keyboards/boardsource/unicorne/keymaps/default/keymap.json new file mode 100644 index 00000000000..1980bc3c873 --- /dev/null +++ b/keyboards/boardsource/unicorne/keymaps/default/keymap.json @@ -0,0 +1,25 @@ +{ + "keyboard": "boardsource/unicorne", + "keymap": "default", + "layout": "LAYOUT_split_3x6_3", + "layers": [ + [ + "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", "KC_ESC", + "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT" + ], + [ + "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______", + "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______", + "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "CK_TOGG", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/boardsource/unicorne/keymaps/via/keymap.json b/keyboards/boardsource/unicorne/keymaps/via/keymap.json new file mode 100644 index 00000000000..230fc6e3620 --- /dev/null +++ b/keyboards/boardsource/unicorne/keymaps/via/keymap.json @@ -0,0 +1,30 @@ +{ + "keyboard": "boardsource/unicorne", + "keymap": "via", + "layout": "LAYOUT_split_3x6_3", + "config": { + "features": { + "via": true + } + }, + "layers": [ + [ + "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", "KC_ESC", + "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT" + ], + [ + "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______", + "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______", + "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "CK_TOGG", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/boardsource/unicorne/mcuconf.h b/keyboards/boardsource/unicorne/mcuconf.h new file mode 100644 index 00000000000..60e7b5812f8 --- /dev/null +++ b/keyboards/boardsource/unicorne/mcuconf.h @@ -0,0 +1,13 @@ +// Copyright 2022 jack (@waffle87) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#include_next + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE + +#undef RP_PWM_USE_PWM6 +#define RP_PWM_USE_PWM6 TRUE + +#undef RP_ADC_USE_ADC1 +#define RP_ADC_USE_ADC1 TRUE diff --git a/keyboards/boardsource/unicorne/readme.md b/keyboards/boardsource/unicorne/readme.md new file mode 100644 index 00000000000..3f4472b882c --- /dev/null +++ b/keyboards/boardsource/unicorne/readme.md @@ -0,0 +1,25 @@ +# Unicorne + +![image](https://i.imgur.com/akJJFUmh.jpeg) + +* Keyboard Maintainer: [waffle87](https://github.com/waffle87) +* Hardware Supported: Unicorne PCBs w/ integrated RP2040 microcontroller +* Hardware Availability: [boardsource.xyz](https://boardsource.xyz) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/unicorne:default + +Flashing example for this keyboard: + + make boardsource/unicorne:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/boardsource/unicorne/rules.mk b/keyboards/boardsource/unicorne/rules.mk new file mode 100644 index 00000000000..d123b2a2fa8 --- /dev/null +++ b/keyboards/boardsource/unicorne/rules.mk @@ -0,0 +1,3 @@ +SERIAL_DRIVER = vendor +AUDIO_DRIVER = pwm_hardware +POINTING_DEVICE_DRIVER = analog_joystick diff --git a/keyboards/boardsource/unicorne/unicorne.c b/keyboards/boardsource/unicorne/unicorne.c new file mode 100644 index 00000000000..0c443722e02 --- /dev/null +++ b/keyboards/boardsource/unicorne/unicorne.c @@ -0,0 +1,37 @@ +// Copyright 2023 jack (@waffle87) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "unicorne.h" + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; + } + return rotation; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_raw(layer_zero, sizeof(layer_zero)); + break; + case 1: + oled_write_raw(layer_zero, sizeof(layer_zero)); + break; + case 2: + oled_write_raw(layer_zero, sizeof(layer_zero)); + break; + case 3: + oled_write_raw(layer_zero, sizeof(layer_zero)); + break; + } + } else { + oled_write_raw(logo, sizeof(logo)); + } + return false; +} +#endif diff --git a/keyboards/boardsource/unicorne/unicorne.h b/keyboards/boardsource/unicorne/unicorne.h new file mode 100644 index 00000000000..68bbeeb18ab --- /dev/null +++ b/keyboards/boardsource/unicorne/unicorne.h @@ -0,0 +1,194 @@ +// Copyright 2023 jack (@waffle87) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#include "quantum.h" + +#ifdef OLED_ENABLE +// clang-format off +static const char PROGMEM logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x01, 0xe3, 0xe7, 0xe7, 0xe3, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, + 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, + 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x7e, 0xff, 0xff, 0xff, 0xe7, 0xc1, 0x81, 0x81, 0x81, 0xc1, 0x00, 0x00, 0x7f, + 0xff, 0xff, 0xff, 0xe3, 0xc1, 0x81, 0x81, 0xc1, 0xe3, 0xff, 0xff, 0xff, 0xff, 0x3c, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x03, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, + 0xcd, 0x8c, 0x8c, 0x8c, 0x8d, 0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 layer_zero[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 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, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, + 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xfc, 0x0e, 0x07, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00, + 0xf0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf8, 0xf0, 0x60, + 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07, + 0x07, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, + 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + +static const char PROGMEM layer_one[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, + 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00, + 0xf0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x3f, 0x70, 0xe0, 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, 0xf8, 0xf0, 0x60, + 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07, + 0x07, 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, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, + 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + +static const char PROGMEM layer_two[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, + 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00, + 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x38, 0x1f, 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, 0xf8, 0xf0, 0x60, + 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07, + 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, + 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + +static const char PROGMEM layer_three[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, + 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0x07, 0x0e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00, + 0xf0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf8, 0xf0, 0x60, + 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07, + 0x07, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, + 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +// clang-format on +#endif diff --git a/keyboards/boardwalk/config.h b/keyboards/boardwalk/config.h index a1d1a3a5441..1b4e5a6d87e 100644 --- a/keyboards/boardwalk/config.h +++ b/keyboards/boardwalk/config.h @@ -35,19 +35,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/boardwalk/info.json b/keyboards/boardwalk/info.json index 8a04fc121ee..82b8fb23e40 100644 --- a/keyboards/boardwalk/info.json +++ b/keyboards/boardwalk/info.json @@ -8,6 +8,24 @@ "pid": "0x5337", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/bolsa/bolsalice/config.h b/keyboards/bolsa/bolsalice/config.h deleted file mode 100644 index ad199d65786..00000000000 --- a/keyboards/bolsa/bolsalice/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2022 CMM.Studio Freather - * - * This 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 RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 diff --git a/keyboards/bolsa/bolsalice/info.json b/keyboards/bolsa/bolsalice/info.json index 25ef2f617bc..51e342b10b3 100644 --- a/keyboards/bolsa/bolsalice/info.json +++ b/keyboards/bolsa/bolsalice/info.json @@ -6,6 +6,23 @@ "vid": "0x4253", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/bolsa/damapad/rules.mk b/keyboards/bolsa/damapad/rules.mk index 395f25f859e..9c75f75d52d 100644 --- a/keyboards/bolsa/damapad/rules.mk +++ b/keyboards/bolsa/damapad/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/boston/config.h b/keyboards/boston/config.h index 1dcbcdb5b87..483c57940c3 100644 --- a/keyboards/boston/config.h +++ b/keyboards/boston/config.h @@ -25,25 +25,11 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGBLED */ -#define RGBLED_NUM 1 -#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 //The 3D-printed version of Boston uses APA106 LEDs, which are reversed #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB -#define TAP_CODE_DELAY 15 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/boston/info.json b/keyboards/boston/info.json index 76d6cb41abf..39c5a7c160d 100644 --- a/keyboards/boston/info.json +++ b/keyboards/boston/info.json @@ -18,11 +18,29 @@ {"pin_a": "C13", "pin_b": "F1", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 15 + }, "backlight": { "pin": "A6", "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A5" }, diff --git a/keyboards/boston/rules.mk b/keyboards/boston/rules.mk index 176d6b7982e..80d17a2dfd1 100644 --- a/keyboards/boston/rules.mk +++ b/keyboards/boston/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/boston_meetup/2019/config.h b/keyboards/boston_meetup/2019/config.h index d609409cb56..7d53f90b150 100644 --- a/keyboards/boston_meetup/2019/config.h +++ b/keyboards/boston_meetup/2019/config.h @@ -38,66 +38,54 @@ /* Haptic Driver initialization settings * Feedback Control Settings */ -#define FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ -#define FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ +#define DRV2605L_FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* default 3V ERM vibration motor voltage and library*/ -#if FB_ERM_LRA == 0 -#define RATED_VOLTAGE 3 -#define V_RMS 2.3 -#define V_PEAK 3.30 +#if DRV2605L_FB_ERM_LRA == 0 +#define DRV2605L_RATED_VOLTAGE 3 +#define DRV2605L_V_RMS 2.3 +#define DRV2605L_V_PEAK 3.30 /* Library Selection */ -#define LIB_SELECTION 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ +#define DRV2605L_LIBRARY 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ /* default 2V LRA voltage and library */ -#elif FB_ERM_LRA == 1 -#define RATED_VOLTAGE 2 -#define V_RMS 2.0 -#define V_PEAK 2.85 -#define F_LRA 200 +#elif DRV2605L_FB_ERM_LRA == 1 +#define DRV2605L_RATED_VOLTAGE 2 +#define DRV2605L_V_RMS 2.0 +#define DRV2605L_V_PEAK 2.85 +#define DRV2605L_F_LRA 200 /* Library Selection */ -#define LIB_SELECTION 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ +#define DRV2605L_LIBRARY 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ #endif /* Control 1 register settings */ -#define DRIVE_TIME 25 -#define AC_COUPLE 0 -#define STARTUP_BOOST 1 +#define DRV2605L_DRIVE_TIME 25 +#define DRV2605L_AC_COUPLE 0 +#define DRV2605L_STARTUP_BOOST 1 /* Control 2 Settings */ -#define BIDIR_INPUT 1 -#define BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ -#define SAMPLE_TIME 3 -#define BLANKING_TIME 1 -#define IDISS_TIME 1 +#define DRV2605L_BIDIR_INPUT 1 +#define DRV2605L_BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ +#define DRV2605L_SAMPLE_TIME 3 +#define DRV2605L_BLANKING_TIME 1 +#define DRV2605L_IDISS_TIME 1 /* Control 3 settings */ -#define NG_THRESH 2 -#define ERM_OPEN_LOOP 1 -#define SUPPLY_COMP_DIS 0 -#define DATA_FORMAT_RTO 0 -#define LRA_DRIVE_MODE 0 -#define N_PWM_ANALOG 0 -#define LRA_OPEN_LOOP 0 +#define DRV2605L_NG_THRESH 2 +#define DRV2605L_ERM_OPEN_LOOP 1 +#define DRV2605L_SUPPLY_COMP_DIS 0 +#define DRV2605L_DATA_FORMAT_RTO 0 +#define DRV2605L_LRA_DRIVE_MODE 0 +#define DRV2605L_N_PWM_ANALOG 0 +#define DRV2605L_LRA_OPEN_LOOP 0 /* Control 4 settings */ -#define ZC_DET_TIME 0 -#define AUTO_CAL_TIME 3 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - -#define RGBLED_NUM 10 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define DRV2605L_ZC_DET_TIME 0 +#define DRV2605L_AUTO_CAL_TIME 3 + +#define RGB_MATRIX_LED_COUNT 10 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/boston_meetup/2019/info.json b/keyboards/boston_meetup/2019/info.json index d50e92e17c9..981d4de7c8d 100644 --- a/keyboards/boston_meetup/2019/info.json +++ b/keyboards/boston_meetup/2019/info.json @@ -3,7 +3,7 @@ "device_version": "20.1.9" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A7", "A8", "B2", "B10"], @@ -15,6 +15,21 @@ {"pin_a": "B13", "pin_b": "B14"} ] }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/boston_meetup/2019/rules.mk b/keyboards/boston_meetup/2019/rules.mk index b2f1131ffd4..f5ef6ba5a26 100644 --- a/keyboards/boston_meetup/2019/rules.mk +++ b/keyboards/boston_meetup/2019/rules.mk @@ -12,6 +12,5 @@ AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = no HAPTIC_ENABLE = yes -HAPTIC_DRIVER = DRV2605L +HAPTIC_DRIVER = drv2605l OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/box75/rules.mk b/keyboards/box75/rules.mk index 93f25a13d8d..5b6b0c92991 100644 --- a/keyboards/box75/rules.mk +++ b/keyboards/box75/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/bpiphany/four_banger/config.h b/keyboards/bpiphany/four_banger/config.h index 2dae864ddb2..5f360813239 100644 --- a/keyboards/bpiphany/four_banger/config.h +++ b/keyboards/bpiphany/four_banger/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/bpiphany/four_banger/info.json b/keyboards/bpiphany/four_banger/info.json index ce9b4a7ec5f..e267922ab88 100644 --- a/keyboards/bpiphany/four_banger/info.json +++ b/keyboards/bpiphany/four_banger/info.json @@ -8,6 +8,23 @@ "pid": "0x2004", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/bpiphany/hid_liber/config.h b/keyboards/bpiphany/hid_liber/config.h index f567c3e12a1..2e41e1f7005 100755 --- a/keyboards/bpiphany/hid_liber/config.h +++ b/keyboards/bpiphany/hid_liber/config.h @@ -23,7 +23,6 @@ #define MATRIX_COLS 8 // HID Liberation Device uses custom matrix code to accomodate a 74HC238 3 to 8 decoder on pins B1, B2 and B3. -//#define DIODE_DIRECTION /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c index c0439912ffa..f0c75284f74 100644 --- a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c +++ b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c @@ -3,8 +3,6 @@ #define MEDAPP LT(MEDIA, KC_APP) -uint8_t current_layer_global = 255; - enum layers { DEFAULT, PROG1, @@ -87,25 +85,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______, LT(MISC, KC_SPC), _______,_______,_______,_______, _______,_______,_______, _______,_______), }; -void matrix_scan_user(void) { - uint8_t layer; - layer = get_highest_layer(layer_state); - - if (current_layer_global != layer) { - current_layer_global = layer; - - // unset CAPSLOCK and SCROLL LOCK LEDs - led_set(host_keyboard_leds() & ~(1<event.pressed) { if (record->tap.count > 0 && !record->tap.interrupted) { diff --git a/keyboards/bpiphany/pegasushoof/2013/info.json b/keyboards/bpiphany/pegasushoof/2013/info.json index 585d417688b..abbeeb0f364 100644 --- a/keyboards/bpiphany/pegasushoof/2013/info.json +++ b/keyboards/bpiphany/pegasushoof/2013/info.json @@ -6,7 +6,7 @@ "scroll_lock": "C5", "on_state": 0 }, - "community_layouts": ["tkl_ansi"], + "community_layouts": ["tkl_ansi", "tkl_jis"], "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bpiphany/pegasushoof/2015/info.json b/keyboards/bpiphany/pegasushoof/2015/info.json index bed39668e8c..a3b5f667844 100644 --- a/keyboards/bpiphany/pegasushoof/2015/info.json +++ b/keyboards/bpiphany/pegasushoof/2015/info.json @@ -6,7 +6,7 @@ "scroll_lock": "C5", "on_state": 0 }, - "community_layouts": ["tkl_ansi"], + "community_layouts": ["tkl_ansi", "tkl_jis"], "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bschwind/key_ripper/info.json b/keyboards/bschwind/key_ripper/info.json new file mode 100644 index 00000000000..ee30687d4f1 --- /dev/null +++ b/keyboards/bschwind/key_ripper/info.json @@ -0,0 +1,112 @@ +{ + "manufacturer": "bschwind", + "keyboard_name": "key-ripper", + "maintainer": "bschwind", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP29", "GP16", "GP17", "GP18", "GP9", "GP10", "GP19", "GP11", "GP12", "GP13", "GP14", "GP20", "GP22", "GP23"], + "rows": ["GP26", "GP25", "GP27", "GP28", "GP15", "GP24"] + }, + "processor": "RP2040", + "url": "https://github.com/bschwind/key-ripper", + "usb": { + "device_version": "0.2.0", + "pid": "0x0001", + "vid": "0xB501" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "ESC", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 1.875, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 2.875, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 3.875, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 4.875, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 10], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 11], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 12], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 13], "x": 14, "y": 0 }, + + { "label": "`", "matrix": [1, 0], "x": 0, "y": 1 }, + { "label": "1", "matrix": [1, 1], "x": 1, "y": 1 }, + { "label": "2", "matrix": [1, 2], "x": 2, "y": 1 }, + { "label": "3", "matrix": [1, 3], "x": 3, "y": 1 }, + { "label": "4", "matrix": [1, 4], "x": 4, "y": 1 }, + { "label": "5", "matrix": [1, 5], "x": 5, "y": 1 }, + { "label": "6", "matrix": [1, 6], "x": 6, "y": 1 }, + { "label": "7", "matrix": [1, 7], "x": 7, "y": 1 }, + { "label": "8", "matrix": [1, 8], "x": 8, "y": 1 }, + { "label": "9", "matrix": [1, 9], "x": 9, "y": 1 }, + { "label": "0", "matrix": [1, 10], "x": 10, "y": 1 }, + { "label": "-", "matrix": [1, 11], "x": 11, "y": 1 }, + { "label": "=", "matrix": [1, 12], "x": 12, "y": 1 }, + { "label": "BACKSPACE", "matrix": [1, 13], "x": 13, "y": 1, "w": 2.00 }, + + { "label": "TAB", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.5 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2 }, + { "label": "[", "matrix": [2, 11], "x": 11.5, "y": 2 }, + { "label": "]", "matrix": [2, 12], "x": 12.5, "y": 2 }, + { "label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5 }, + + { "label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.75 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3 }, + { "label": ";", "matrix": [3, 10], "x": 10.75, "y": 3 }, + { "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3 }, + { "label": "RETURN", "matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25 }, + + { "label": "SHIFT", "matrix": [4, 0], "x": 0, "y": 4, "w": 2.25 }, + { "label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4 }, + { "label": "X", "matrix": [4, 3], "x": 3.25, "y": 4 }, + { "label": "C", "matrix": [4, 4], "x": 4.25, "y": 4 }, + { "label": "V", "matrix": [4, 5], "x": 5.25, "y": 4 }, + { "label": "B", "matrix": [4, 6], "x": 6.25, "y": 4 }, + { "label": "N", "matrix": [4, 7], "x": 7.25, "y": 4 }, + { "label": "M", "matrix": [4, 8], "x": 8.25, "y": 4 }, + { "label": ",", "matrix": [4, 9], "x": 9.25, "y": 4 }, + { "label": ".", "matrix": [4, 10], "x": 10.25, "y": 4 }, + { "label": "/", "matrix": [4, 11], "x": 11.25, "y": 4 }, + { "label": "UP", "matrix": [4, 12], "x": 13, "y": 4 }, + + { "label": "FN", "matrix": [5, 0], "x": 0, "y": 5 }, + { "label": "CTRL", "matrix": [5, 1], "x": 1, "y": 5 }, + { "label": "ALT", "matrix": [5, 2], "x": 2, "y": 5 }, + { "label": "GUI", "matrix": [5, 3], "x": 3, "y": 5, "w": 1.25 }, + { "label": "SPACE", "matrix": [5, 6], "x": 4.25, "y": 5, "w": 6.25 }, + { "label": "GUI", "matrix": [5, 10], "x": 10.5, "y": 5, "w": 1.25 }, + { "label": "LEFT", "matrix": [5, 11], "x": 12, "y": 5 }, + { "label": "DOWN", "matrix": [5, 12], "x": 13, "y": 5 }, + { "label": "RIGHT", "matrix": [5, 13], "x": 14, "y": 5 } + ] + } + } +} diff --git a/keyboards/bschwind/key_ripper/keymaps/default/keymap.c b/keyboards/bschwind/key_ripper/keymaps/default/keymap.c new file mode 100644 index 00000000000..3a8107ad67a --- /dev/null +++ b/keyboards/bschwind/key_ripper/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2023 bschwind + +This 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_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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + MO(1), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/bschwind/key_ripper/keymaps/via/keymap.c b/keyboards/bschwind/key_ripper/keymaps/via/keymap.c new file mode 100644 index 00000000000..3a8107ad67a --- /dev/null +++ b/keyboards/bschwind/key_ripper/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2023 bschwind + +This 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_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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, + MO(1), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/bschwind/key_ripper/keymaps/via/rules.mk b/keyboards/bschwind/key_ripper/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/bschwind/key_ripper/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/bschwind/key_ripper/readme.md b/keyboards/bschwind/key_ripper/readme.md new file mode 100644 index 00000000000..84306af968a --- /dev/null +++ b/keyboards/bschwind/key_ripper/readme.md @@ -0,0 +1,29 @@ +# key_ripper + +A 75-key keyboard which has a similar layout to a MacBook keyboard, and sacrifices +the right shift key to keep a compact size. Based on the RP2040 microcontroller. + +![key_ripper](https://imgur.com/pL26kVSh.png) +![key_ripper](https://imgur.com/FnvZREyh.png) +![key_ripper](https://imgur.com/xe8wImMh.png) + +* Keyboard Maintainer: [Brian Schwind](https://github.com/bschwind) +* Hardware Supported: The key-ripper PCB +* Hardware Availability: You can find production files in the [releases](https://github.com/bschwind/key-ripper/releases) page used for ordering from JLCPCB. + +Make example for this keyboard (after setting up your build environment): + + make bschwind/key_ripper:default + +Flashing example for this keyboard: + + make bschwind/key_ripper: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 Escape key and plug in the keyboard +* **Physical reset button**: Hold down the USB BOOT button on the PCB, and briefly press the RESET button on the PCB. diff --git a/keyboards/bschwind/key_ripper/rules.mk b/keyboards/bschwind/key_ripper/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/bschwind/key_ripper/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/bt66tech/bt66tech60/config.h b/keyboards/bt66tech/bt66tech60/config.h index 687baec5094..45693628a6f 100644 --- a/keyboards/bt66tech/bt66tech60/config.h +++ b/keyboards/bt66tech/bt66tech60/config.h @@ -25,17 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 9 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 /* diff --git a/keyboards/bt66tech/bt66tech60/info.json b/keyboards/bt66tech/bt66tech60/info.json index e4a2d5b1d6c..adb45b95f31 100644 --- a/keyboards/bt66tech/bt66tech60/info.json +++ b/keyboards/bt66tech/bt66tech60/info.json @@ -19,6 +19,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/bt66tech/bt66tech60/rules.mk b/keyboards/bt66tech/bt66tech60/rules.mk index bfd3bcd1b49..0f238804a19 100644 --- a/keyboards/bt66tech/bt66tech60/rules.mk +++ b/keyboards/bt66tech/bt66tech60/rules.mk @@ -14,5 +14,3 @@ SLEEP_LED_ENABLE = yes DEFAULT_FOLDER = bt66tech/bt66tech60 -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/bubble75/hotswap/config.h b/keyboards/bubble75/hotswap/config.h index df83257ebd9..7ecadd00762 100644 --- a/keyboards/bubble75/hotswap/config.h +++ b/keyboards/bubble75/hotswap/config.h @@ -24,11 +24,7 @@ /* WS2812 RGB */ #ifdef RGB_MATRIX_ENABLE -#define RGBLED_NUM 81 #define RGB_MATRIX_LED_COUNT 81 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_LAYERS //#define RGBLIGHT_LAYER_BLINK #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/bubble75/hotswap/info.json b/keyboards/bubble75/hotswap/info.json index a12e4ca7944..c9757847b03 100644 --- a/keyboards/bubble75/hotswap/info.json +++ b/keyboards/bubble75/hotswap/info.json @@ -13,7 +13,7 @@ "pin": "B7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "E6", "F0", "D0", "D1", "D4", "D6", "D7", "B4", "B5", "B6", "C6"], diff --git a/keyboards/buildakb/potato65/config.h b/keyboards/buildakb/potato65/config.h index 17e3e9a4817..5b25baa8c4b 100644 --- a/keyboards/buildakb/potato65/config.h +++ b/keyboards/buildakb/potato65/config.h @@ -37,19 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/buildakb/potato65/info.json b/keyboards/buildakb/potato65/info.json index effaf6cbcae..7fee44a1cea 100644 --- a/keyboards/buildakb/potato65/info.json +++ b/keyboards/buildakb/potato65/info.json @@ -12,7 +12,23 @@ "pin": "B1" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F6", "B0", "F1", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"], diff --git a/keyboards/buildakb/potato65hs/config.h b/keyboards/buildakb/potato65hs/config.h index d0bdbb2258b..d60fc7af019 100644 --- a/keyboards/buildakb/potato65hs/config.h +++ b/keyboards/buildakb/potato65hs/config.h @@ -22,19 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP diff --git a/keyboards/buildakb/potato65hs/info.json b/keyboards/buildakb/potato65hs/info.json index fa3b5d2bfeb..2b6a22179eb 100644 --- a/keyboards/buildakb/potato65hs/info.json +++ b/keyboards/buildakb/potato65hs/info.json @@ -12,7 +12,23 @@ "pin": "D5" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["D3", "D4", "D6", "D7", "B4", "B5", "B6", "F1", "B0", "B1", "B2", "B3", "B7", "D0", "D1"], diff --git a/keyboards/buildakb/potato65s/config.h b/keyboards/buildakb/potato65s/config.h index 3b512642a26..d60fc7af019 100644 --- a/keyboards/buildakb/potato65s/config.h +++ b/keyboards/buildakb/potato65s/config.h @@ -22,19 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP diff --git a/keyboards/buildakb/potato65s/info.json b/keyboards/buildakb/potato65s/info.json index d4efe4aac66..fcd6cbf56f1 100644 --- a/keyboards/buildakb/potato65s/info.json +++ b/keyboards/buildakb/potato65s/info.json @@ -12,7 +12,23 @@ "pin": "D5" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["D3", "D4", "D6", "D7", "B4", "B5", "B6", "F1", "B0", "B1", "B2", "B3", "B7", "D0", "D1"], diff --git a/keyboards/butterkeebs/pocketpad/info.json b/keyboards/butterkeebs/pocketpad/info.json index db525828304..0b42d5fb17e 100644 --- a/keyboards/butterkeebs/pocketpad/info.json +++ b/keyboards/butterkeebs/pocketpad/info.json @@ -25,28 +25,28 @@ "layouts": { "LAYOUT": { "layout": [ - {"x": 0, "y": 0, "matrix": [0, 0]}, - {"x": 1, "y": 0, "matrix": [0, 1]}, - {"x": 2, "y": 0, "matrix": [0, 2]}, - {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 1, "y": 0, "matrix": [0, 0]}, + {"x": 2, "y": 0, "matrix": [0, 1]}, + {"x": 3, "y": 0, "matrix": [0, 2]}, + {"x": 4, "y": 0, "matrix": [0, 3]}, - {"x": 0, "y": 1, "matrix": [1, 0]}, - {"x": 1, "y": 1, "matrix": [1, 1]}, - {"x": 2, "y": 1, "matrix": [1, 2]}, - {"x": 3, "y": 1, "matrix": [1, 3]}, + {"x": 1, "y": 1, "matrix": [1, 0]}, + {"x": 2, "y": 1, "matrix": [1, 1]}, + {"x": 3, "y": 1, "matrix": [1, 2]}, + {"x": 4, "y": 1.5, "matrix": [1, 3]}, - {"x": 0, "y": 2, "matrix": [2, 0]}, - {"x": 1, "y": 2, "matrix": [2, 1]}, - {"x": 2, "y": 2, "matrix": [2, 2]}, - {"x": 3, "y": 2, "matrix": [2, 3]}, + {"x": 1, "y": 2, "matrix": [2, 0]}, + {"x": 2, "y": 2, "matrix": [2, 1]}, + {"x": 3, "y": 2, "matrix": [2, 2]}, + {"x": 4, "y": 3.5, "matrix": [2, 3]}, - {"x": 0, "y": 3, "matrix": [3, 0]}, - {"x": 1, "y": 3, "matrix": [3, 1]}, - {"x": 2, "y": 3, "matrix": [3, 2]}, - {"x": 3, "y": 3, "matrix": [3, 3]}, + {"x": 1, "y": 3, "matrix": [3, 0]}, + {"x": 2, "y": 3, "matrix": [3, 1]}, + {"x": 3, "y": 3, "matrix": [3, 2]}, + {"x": 3, "y": 4, "matrix": [3, 3]}, {"x": 0, "y": 4, "matrix": [4, 0]}, - {"x": 1, "y": 4, "matrix": [4, 1]} + {"x": 1.5, "y": 4, "matrix": [4, 1]} ] } } diff --git a/keyboards/buzzard/keymaps/crehmann/config.h b/keyboards/buzzard/keymaps/crehmann/config.h index 181396ad26f..446ae01d346 100644 --- a/keyboards/buzzard/keymaps/crehmann/config.h +++ b/keyboards/buzzard/keymaps/crehmann/config.h @@ -25,8 +25,8 @@ #define NO_HAPTIC_PUNCTUATION #define NO_HAPTIC_NAV #define NO_HAPTIC_NUMERIC -#define DRV_GREETING alert_750ms -#define DRV_MODE_DEFAULT sharp_tick1 +#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_SHARP_TICK_1_100 #endif #ifdef PS2_MOUSE_ENABLE diff --git a/keyboards/buzzard/keymaps/crehmann/features/haptic_utils.c b/keyboards/buzzard/keymaps/crehmann/features/haptic_utils.c index 37fa2902c5c..941d559f429 100644 --- a/keyboards/buzzard/keymaps/crehmann/features/haptic_utils.c +++ b/keyboards/buzzard/keymaps/crehmann/features/haptic_utils.c @@ -4,7 +4,7 @@ #include "haptic_utils.h" #ifdef HAPTIC_ENABLE -#include "drivers/haptic/DRV2605L.h" +#include "drivers/haptic/drv2605l.h" #endif #ifdef HAPTIC_ENABLE @@ -23,19 +23,19 @@ void process_layer_pulse(layer_state_t state) { #ifdef HAPTIC_ENABLE switch (get_highest_layer(state)) { case 1: - DRV_pulse(soft_bump); + drv2605l_pulse(DRV2605L_EFFECT_SOFT_BUMP_100); break; case 2: - DRV_pulse(sh_dblsharp_tick); + drv2605l_pulse(DRV2605L_EFFECT_SHORT_DOUBLE_SHARP_TICK_1_100); break; case 3: - DRV_pulse(lg_dblclick_str); + drv2605l_pulse(DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_STRONG_1_100); break; case 4: - DRV_pulse(soft_bump); + drv2605l_pulse(DRV2605L_EFFECT_SOFT_BUMP_100); break; case 5: - DRV_pulse(pulsing_sharp); + drv2605l_pulse(DRV2605L_EFFECT_PULSING_SHARP_1_100); break; } #endif diff --git a/keyboards/buzzard/keymaps/crehmann/rules.mk b/keyboards/buzzard/keymaps/crehmann/rules.mk index 484e7d84a6b..98a83af5497 100644 --- a/keyboards/buzzard/keymaps/crehmann/rules.mk +++ b/keyboards/buzzard/keymaps/crehmann/rules.mk @@ -3,7 +3,7 @@ SRC += features/haptic_utils.c OLED_ENABLE = yes HAPTIC_ENABLE = yes -HAPTIC_DRIVER = DRV2605L +HAPTIC_DRIVER = drv2605l PS2_MOUSE_ENABLE = yes MOUSEKEY_ENABLE = yes diff --git a/keyboards/buzzard/keymaps/default/config.h b/keyboards/buzzard/keymaps/default/config.h index 2a42e17d0cc..0a2776afd15 100644 --- a/keyboards/buzzard/keymaps/default/config.h +++ b/keyboards/buzzard/keymaps/default/config.h @@ -25,8 +25,8 @@ #define NO_HAPTIC_PUNCTUATION #define NO_HAPTIC_NAV #define NO_HAPTIC_NUMERIC -#define DRV_GREETING alert_750ms -#define DRV_MODE_DEFAULT sharp_tick1 +#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_SHARP_TICK_1_100 #endif diff --git a/keyboards/buzzard/keymaps/default/rules.mk b/keyboards/buzzard/keymaps/default/rules.mk index e8124aebb9e..46728f38033 100644 --- a/keyboards/buzzard/keymaps/default/rules.mk +++ b/keyboards/buzzard/keymaps/default/rules.mk @@ -1,7 +1,7 @@ OLED_ENABLE = yes # uncomment if you are using an OLED display #HAPTIC_ENABLE = yes # uncomment only on the master side if you are using a Pimoroni haptic buzz -#HAPTIC_DRIVER = DRV2605L # uncomment only on the master side if you are using a Pimoroni haptic buzz +#HAPTIC_DRIVER = drv2605l # uncomment only on the master side if you are using a Pimoroni haptic buzz #PS2_MOUSE_ENABLE = yes # uncomment only on the master side if you are usin a TrackPoint MOUSEKEY_ENABLE = yes \ No newline at end of file diff --git a/keyboards/buzzard/rev1/rev1.c b/keyboards/buzzard/rev1/rev1.c index c6cdc66187b..03c3269a7e4 100644 --- a/keyboards/buzzard/rev1/rev1.c +++ b/keyboards/buzzard/rev1/rev1.c @@ -3,7 +3,7 @@ #include "quantum.h" #ifdef HAPTIC_ENABLE -#include "drivers/haptic/DRV2605L.h" +#include "drivers/haptic/drv2605l.h" #endif #ifdef SWAP_HANDS_ENABLE @@ -100,27 +100,27 @@ __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case 1: #ifdef HAPTIC_ENABLE - DRV_pulse(soft_bump); + drv2605l_pulse(DRV2605L_EFFECT_SOFT_BUMP_100); #endif break; case 2: #ifdef HAPTIC_ENABLE - DRV_pulse(sh_dblsharp_tick); + drv2605l_pulse(DRV2605L_EFFECT_SHORT_DOUBLE_SHARP_TICK_1_100); #endif break; case 3: #ifdef HAPTIC_ENABLE - DRV_pulse(lg_dblclick_str); + drv2605l_pulse(DRV2605L_EFFECT_LONG_DOUBLE_SHARP_CLICK_STRONG_1_100); #endif break; case 4: #ifdef HAPTIC_ENABLE - DRV_pulse(soft_bump); + drv2605l_pulse(DRV2605L_EFFECT_SOFT_BUMP_100); #endif break; case 5: #ifdef HAPTIC_ENABLE - DRV_pulse(pulsing_sharp); + drv2605l_pulse(DRV2605L_EFFECT_PULSING_SHARP_1_100); #endif break; } diff --git a/keyboards/buzzard/rev1/rules.mk b/keyboards/buzzard/rev1/rules.mk index 13c63d5b176..2beb545ece1 100644 --- a/keyboards/buzzard/rev1/rules.mk +++ b/keyboards/buzzard/rev1/rules.mk @@ -1,4 +1,2 @@ -OLED_DRIVER = SSD1306 - PS2_ENABLE = yes PS2_DRIVER = interrupt diff --git a/keyboards/cablecardesigns/cypher/rev6/config.h b/keyboards/cablecardesigns/cypher/rev6/config.h index 5a697f88053..791ecc26877 100644 --- a/keyboards/cablecardesigns/cypher/rev6/config.h +++ b/keyboards/cablecardesigns/cypher/rev6/config.h @@ -6,19 +6,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - #define RGBLED_NUM 3 - #define RGBLIGHT_HUE_STEP 12 - #define RGBLIGHT_SAT_STEP 25 - #define RGBLIGHT_VAL_STEP 12 - #define RGBLIGHT_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 - #define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/cablecardesigns/cypher/rev6/info.json b/keyboards/cablecardesigns/cypher/rev6/info.json index 5974c492a1f..9bc6e26814b 100644 --- a/keyboards/cablecardesigns/cypher/rev6/info.json +++ b/keyboards/cablecardesigns/cypher/rev6/info.json @@ -14,10 +14,30 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D0", "levels": 5, "breathing": true }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 3, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/cablecardesigns/phoenix/rules.mk b/keyboards/cablecardesigns/phoenix/rules.mk old mode 100755 new mode 100644 index 7ce6edcba90..6dd24d8e068 --- a/keyboards/cablecardesigns/phoenix/rules.mk +++ b/keyboards/cablecardesigns/phoenix/rules.mk @@ -1,7 +1,3 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/canary/canary60rgb/info.json b/keyboards/canary/canary60rgb/info.json index 1d3b2d693bc..7f19520ac34 100644 --- a/keyboards/canary/canary60rgb/info.json +++ b/keyboards/canary/canary60rgb/info.json @@ -8,11 +8,29 @@ "pid": "0x0621", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["C7", "F7", "F6", "F0", "B0", "B1", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "B7"], diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h index c269ae51724..e8d0808384f 100644 --- a/keyboards/canary/canary60rgb/v1/config.h +++ b/keyboards/canary/canary60rgb/v1/config.h @@ -15,22 +15,6 @@ */ #pragma once -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP - #ifdef RGB_MATRIX_ENABLE # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/cannonkeys/adelie/config.h b/keyboards/cannonkeys/adelie/config.h index 4333289e824..9027c44df53 100644 --- a/keyboards/cannonkeys/adelie/config.h +++ b/keyboards/cannonkeys/adelie/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 3 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/cannonkeys/adelie/info.json b/keyboards/cannonkeys/adelie/info.json index 717bf3f3f8b..798c5996926 100644 --- a/keyboards/cannonkeys/adelie/info.json +++ b/keyboards/cannonkeys/adelie/info.json @@ -8,6 +8,24 @@ "pid": "0x0005", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 3, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/cannonkeys/aella/rules.mk b/keyboards/cannonkeys/aella/rules.mk index f56120695ac..480e8661799 100644 --- a/keyboards/cannonkeys/aella/rules.mk +++ b/keyboards/cannonkeys/aella/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h index aced1f333cc..bea77ceac29 100644 --- a/keyboards/cannonkeys/an_c/config.h +++ b/keyboards/cannonkeys/an_c/config.h @@ -26,17 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/an_c/info.json b/keyboards/cannonkeys/an_c/info.json index d3b73e31092..9de1ff5fff6 100644 --- a/keyboards/cannonkeys/an_c/info.json +++ b/keyboards/cannonkeys/an_c/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/an_c/rules.mk b/keyboards/cannonkeys/an_c/rules.mk index b7ab91a3393..8d3de1b8b23 100644 --- a/keyboards/cannonkeys/an_c/rules.mk +++ b/keyboards/cannonkeys/an_c/rules.mk @@ -13,5 +13,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/atlas/config.h b/keyboards/cannonkeys/atlas/config.h index 1296ad8dcc7..e8d571f7a9d 100644 --- a/keyboards/cannonkeys/atlas/config.h +++ b/keyboards/cannonkeys/atlas/config.h @@ -22,20 +22,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 WS2812_SPI SPID2 -#define RGBLED_NUM 22 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/atlas/info.json b/keyboards/cannonkeys/atlas/info.json index 6fc7724b2b2..8173ec6a8fa 100644 --- a/keyboards/cannonkeys/atlas/info.json +++ b/keyboards/cannonkeys/atlas/info.json @@ -8,6 +8,21 @@ "pid": "0xA7A5", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 22, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/atlas_alps/config.h b/keyboards/cannonkeys/atlas_alps/config.h index 7e6ce9cdb95..876e59daa07 100644 --- a/keyboards/cannonkeys/atlas_alps/config.h +++ b/keyboards/cannonkeys/atlas_alps/config.h @@ -21,20 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 36 -#define RGBLIGHT_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_VAL_STEP 12 diff --git a/keyboards/cannonkeys/atlas_alps/info.json b/keyboards/cannonkeys/atlas_alps/info.json index ee584b24d24..7166206f051 100644 --- a/keyboards/cannonkeys/atlas_alps/info.json +++ b/keyboards/cannonkeys/atlas_alps/info.json @@ -12,7 +12,23 @@ "pin": "D4" }, "rgblight": { - "max_brightness": 230 + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 36, + "max_brightness": 230, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B6", "C6", "D2", "E6", "C7", "B3", "F7", "F6", "F5", "F4", "F1", "F0"], diff --git a/keyboards/cannonkeys/bakeneko60_iso_hs/rules.mk b/keyboards/cannonkeys/bakeneko60_iso_hs/rules.mk index 2a5031cd320..6dd24d8e068 100644 --- a/keyboards/cannonkeys/bakeneko60_iso_hs/rules.mk +++ b/keyboards/cannonkeys/bakeneko60_iso_hs/rules.mk @@ -1,5 +1,3 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/bakeneko65_iso_hs/rules.mk b/keyboards/cannonkeys/bakeneko65_iso_hs/rules.mk index 2a5031cd320..6dd24d8e068 100644 --- a/keyboards/cannonkeys/bakeneko65_iso_hs/rules.mk +++ b/keyboards/cannonkeys/bakeneko65_iso_hs/rules.mk @@ -1,5 +1,3 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/balance/config.h b/keyboards/cannonkeys/balance/config.h index f9c629dad82..0f2582901b1 100644 --- a/keyboards/cannonkeys/balance/config.h +++ b/keyboards/cannonkeys/balance/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAP_CODE_DELAY 25 - #define DYNAMIC_KEYMAP_LAYER_COUNT 3 /* diff --git a/keyboards/cannonkeys/balance/info.json b/keyboards/cannonkeys/balance/info.json index 8be2cee0c58..9565795169c 100644 --- a/keyboards/cannonkeys/balance/info.json +++ b/keyboards/cannonkeys/balance/info.json @@ -18,6 +18,9 @@ {"pin_a": "B5", "pin_b": "B6", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 25 + }, "indicators": { "caps_lock": "B12", "num_lock": "B14", diff --git a/keyboards/cannonkeys/balance/rules.mk b/keyboards/cannonkeys/balance/rules.mk index aa1b707d431..5afdd3772f5 100644 --- a/keyboards/cannonkeys/balance/rules.mk +++ b/keyboards/cannonkeys/balance/rules.mk @@ -15,5 +15,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/bastion60/config.h b/keyboards/cannonkeys/bastion60/config.h new file mode 100644 index 00000000000..206ca9cf564 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/config.h @@ -0,0 +1,14 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A + +#define WS2812_PIO_USE_PIO1 diff --git a/keyboards/cannonkeys/bastion60/halconf.h b/keyboards/cannonkeys/bastion60/halconf.h new file mode 100644 index 00000000000..8c1197b84c6 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2022 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cannonkeys/bastion60/info.json b/keyboards/cannonkeys/bastion60/info.json new file mode 100644 index 00000000000..07443b50b78 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/info.json @@ -0,0 +1,750 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Bastion60", + "maintainer": "awkannan", + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "GP22" + }, + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "GP29", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"], + "rows": ["GP26", "GP27", "GP15", "GP16", "GP17"] + }, + "processor": "RP2040", + "rgblight": { + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "twinkle": true + }, + "hue_steps": 17, + "led_count": 20 + }, + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x0020", + "vid": "0xCA04" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP7" + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], + "layouts": { + "LAYOUT_60_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, 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, 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, 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": 2.75}, + {"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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "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": [2, 12], "x": 14, "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, 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, 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, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "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, 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, 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, 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": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "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": [2, 12], "x": 14, "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, 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, 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "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": [2, 12], "x": 14, "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, 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, 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, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_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, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": 2.75}, + + {"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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "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": [2, 12], "x": 14, "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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "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, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "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": [2, 12], "x": 14, "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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "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": [2, 12], "x": 14, "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, 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, 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, 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, 5], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 7.25, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/bastion60/keymaps/default/keymap.c b/keyboards/cannonkeys/bastion60/keymaps/default/keymap.c new file mode 100644 index 00000000000..9dbc210e199 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_all( + 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/bastion60/keymaps/via/keymap.c b/keyboards/cannonkeys/bastion60/keymaps/via/keymap.c new file mode 100644 index 00000000000..9dbc210e199 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/keymaps/via/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_all( + 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/bastion60/keymaps/via/rules.mk b/keyboards/cannonkeys/bastion60/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cannonkeys/bastion60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/bastion60/matrix_diagram.md b/keyboards/cannonkeys/bastion60/matrix_diagram.md new file mode 100644 index 00000000000..fe29d0eea91 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for CannonKeys Bastion60 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/cannonkeys/bastion60/mcuconf.h b/keyboards/cannonkeys/bastion60/mcuconf.h new file mode 100644 index 00000000000..49015d4dbf5 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM3 +#define RP_PWM_USE_PWM3 TRUE diff --git a/keyboards/cannonkeys/bastion60/readme.md b/keyboards/cannonkeys/bastion60/readme.md new file mode 100644 index 00000000000..1fee68cdc84 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/readme.md @@ -0,0 +1,26 @@ +# Bastion60 PCB + +Bastion60 PCB from CannonKeys + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: RP2040 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/bastion60:default + +Flashing example for this keyboard: + + make cannonkeys/bastion60: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**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/bastion60/rules.mk b/keyboards/cannonkeys/bastion60/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/cannonkeys/bastion65/config.h b/keyboards/cannonkeys/bastion65/config.h new file mode 100644 index 00000000000..0b93d1434be --- /dev/null +++ b/keyboards/cannonkeys/bastion65/config.h @@ -0,0 +1,28 @@ +/* +Copyright 2015 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 . +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A + +#define WS2812_PIO_USE_PIO1 diff --git a/keyboards/cannonkeys/bastion65/halconf.h b/keyboards/cannonkeys/bastion65/halconf.h new file mode 100644 index 00000000000..8c1197b84c6 --- /dev/null +++ b/keyboards/cannonkeys/bastion65/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2022 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cannonkeys/bastion65/info.json b/keyboards/cannonkeys/bastion65/info.json new file mode 100644 index 00000000000..dd7dd4516eb --- /dev/null +++ b/keyboards/cannonkeys/bastion65/info.json @@ -0,0 +1,746 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Bastion65", + "maintainer": "awkannan", + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "GP22" + }, + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "GP29", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP26", "GP27", "GP15", "GP16", "GP17"] + }, + "processor": "RP2040", + "rgblight": { + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "twinkle": true + }, + "hue_steps": 17, + "led_count": 20 + }, + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x0021", + "vid": "0xCA04" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP7" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "65_ansi_blocker", + "65_ansi_blocker_split_bs", + "65_ansi_blocker_tsangan", + "65_ansi_blocker_tsangan_split_bs", + "65_iso_blocker", + "65_iso_blocker_split_bs", + "65_iso_blocker_tsangan", + "65_iso_blocker_tsangan_split_bs" + ], + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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": [1, 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": [2, 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": [3, 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, 5], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 7.25, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "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": [0, 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": [1, 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": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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": [1, 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": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "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": [0, 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": [1, 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": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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": [1, 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": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "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": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "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": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c b/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c new file mode 100644 index 00000000000..111633864cf --- /dev/null +++ b/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 + + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_BSLS, 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_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_all( + 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_DEL, _______, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c b/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c new file mode 100644 index 00000000000..66b6c1c1f72 --- /dev/null +++ b/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* +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 + + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_BSLS, 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_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_all( + 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_DEL, _______, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) + +}; diff --git a/keyboards/cannonkeys/bastion65/keymaps/via/rules.mk b/keyboards/cannonkeys/bastion65/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cannonkeys/bastion65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/bastion65/matrix_diagram.md b/keyboards/cannonkeys/bastion65/matrix_diagram.md new file mode 100644 index 00000000000..12d7734d5a0 --- /dev/null +++ b/keyboards/cannonkeys/bastion65/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for CannonKeys Bastion65 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│40 │41 │42 │45 │46 │49 │4B │ │4C │4D │4E │ +└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│40 │41 │42 │46 │4A │4B │ Blocker +└────┴────┴────┴────────────────────────┴────┴────┘ +``` diff --git a/keyboards/cannonkeys/bastion65/mcuconf.h b/keyboards/cannonkeys/bastion65/mcuconf.h new file mode 100644 index 00000000000..49015d4dbf5 --- /dev/null +++ b/keyboards/cannonkeys/bastion65/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM3 +#define RP_PWM_USE_PWM3 TRUE diff --git a/keyboards/cannonkeys/bastion65/readme.md b/keyboards/cannonkeys/bastion65/readme.md new file mode 100644 index 00000000000..da2d79b3bc1 --- /dev/null +++ b/keyboards/cannonkeys/bastion65/readme.md @@ -0,0 +1,26 @@ +# Bastion65 PCB + +Bastion65 PCB from CannonKeys + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: RP2040 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/bastion65:default + +Flashing example for this keyboard: + + make cannonkeys/bastion65: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**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/bastion65/rules.mk b/keyboards/cannonkeys/bastion65/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/cannonkeys/bastion65/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/cannonkeys/bastion75/config.h b/keyboards/cannonkeys/bastion75/config.h new file mode 100644 index 00000000000..0b93d1434be --- /dev/null +++ b/keyboards/cannonkeys/bastion75/config.h @@ -0,0 +1,28 @@ +/* +Copyright 2015 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 . +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A + +#define WS2812_PIO_USE_PIO1 diff --git a/keyboards/cannonkeys/bastion75/halconf.h b/keyboards/cannonkeys/bastion75/halconf.h new file mode 100644 index 00000000000..8c1197b84c6 --- /dev/null +++ b/keyboards/cannonkeys/bastion75/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2022 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cannonkeys/bastion75/info.json b/keyboards/cannonkeys/bastion75/info.json new file mode 100644 index 00000000000..276cc03c514 --- /dev/null +++ b/keyboards/cannonkeys/bastion75/info.json @@ -0,0 +1,870 @@ +{ + "keyboard_name": "Bastion75", + "maintainer": "awkannan", + "manufacturer": "CannonKeys", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0xCA04", + "pid": "0x0022", + "device_version": "0.0.1" + }, + "url": "https://cannonkeys.com", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP25", "GP26", "GP27", "GP15", "GP16", "GP17"] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "backlight": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "GP29", + "on_state": 0 + }, + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "GP22" + }, + "ws2812": { + "pin": "GP7", + "driver": "vendor" + }, + "rgblight": { + "led_count": 20, + "hue_steps": 17, + "animations": { + "static_gradient": true, + "twinkle": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1.5, "y": 0 }, + { "matrix": [0, 2], "x": 2.5, "y": 0 }, + { "matrix": [0, 3], "x": 3.5, "y": 0 }, + { "matrix": [0, 4], "x": 4.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.5, "y": 0 }, + { "matrix": [0, 11], "x": 11.5, "y": 0 }, + { "matrix": [0, 12], "x": 12.5, "y": 0 }, + { "matrix": [0, 13], "x": 13.5, "y": 0 }, + { "matrix": [0, 14], "x": 15, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [1, 13], "x": 13, "y": 1.25 }, + { "matrix": [3, 12], "x": 14, "y": 1.25 }, + { "matrix": [1, 14], "x": 15, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 14], "x": 15, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [3, 14], "x": 15, "y": 3.25 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 13], "x": 14, "y": 4.25 }, + { "matrix": [4, 14], "x": 15, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 5], "w": 2.25, "x": 3.75, "y": 5.25 }, + { "matrix": [5, 6], "w": 1.25, "x": 6, "y": 5.25 }, + { "matrix": [5, 9], "w": 2.75, "x": 7.25, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, + { "matrix": [5, 12], "x": 13, "y": 5.25 }, + { "matrix": [5, 13], "x": 14, "y": 5.25 }, + { "matrix": [5, 14], "x": 15, "y": 5.25 } + ] + }, + "LAYOUT_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.25}, + {"matrix": [5, 13], "x": 14, "y": 5.25}, + {"matrix": [5, 14], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.25}, + {"matrix": [5, 13], "x": 14, "y": 5.25}, + {"matrix": [5, 14], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.25}, + {"matrix": [5, 13], "x": 14, "y": 5.25}, + {"matrix": [5, 14], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.25}, + {"matrix": [5, 13], "x": 14, "y": 5.25}, + {"matrix": [5, 14], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.25}, + {"matrix": [5, 13], "x": 14, "y": 5.25}, + {"matrix": [5, 14], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.25}, + {"matrix": [5, 13], "x": 14, "y": 5.25}, + {"matrix": [5, 14], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.25}, + {"matrix": [5, 13], "x": 14, "y": 5.25}, + {"matrix": [5, 14], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.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.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.25}, + {"matrix": [5, 13], "x": 14, "y": 5.25}, + {"matrix": [5, 14], "x": 15, "y": 5.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c b/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c new file mode 100644 index 00000000000..b0da09f0b8d --- /dev/null +++ b/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* +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 + + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_MPLY, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_BSLS, 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_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + 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_DEL, _______, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c b/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c new file mode 100644 index 00000000000..493fea3c9a6 --- /dev/null +++ b/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +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 + + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_MPLY, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_BSLS, 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_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + 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_DEL, _______, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) + +}; diff --git a/keyboards/cannonkeys/bastion75/keymaps/via/rules.mk b/keyboards/cannonkeys/bastion75/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cannonkeys/bastion75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/bastion75/matrix_diagram.md b/keyboards/cannonkeys/bastion75/matrix_diagram.md new file mode 100644 index 00000000000..756c26c3b38 --- /dev/null +++ b/keyboards/cannonkeys/bastion75/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for CannonKeys Bastion75 + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ +│00 │ │01 │02 │03 │04 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │1E │ │1D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐3D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ │2D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │ +├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│50 │51 │52 │55 │56 │59 │5B │ │5C │5D │5E │ +└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│50 │51 │52 │56 │5B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│50 │51 │52 │56 │5A │5B │ Blocker +└────┴────┴────┴────────────────────────┴────┴────┘ +``` diff --git a/keyboards/cannonkeys/bastion75/mcuconf.h b/keyboards/cannonkeys/bastion75/mcuconf.h new file mode 100644 index 00000000000..49015d4dbf5 --- /dev/null +++ b/keyboards/cannonkeys/bastion75/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM3 +#define RP_PWM_USE_PWM3 TRUE diff --git a/keyboards/cannonkeys/bastion75/readme.md b/keyboards/cannonkeys/bastion75/readme.md new file mode 100644 index 00000000000..06674d847bb --- /dev/null +++ b/keyboards/cannonkeys/bastion75/readme.md @@ -0,0 +1,26 @@ +# Bastion75 PCB + +Bastion75 PCB from CannonKeys + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: RP2040 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/bastion75:default + +Flashing example for this keyboard: + + make cannonkeys/bastion75: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**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/bastion75/rules.mk b/keyboards/cannonkeys/bastion75/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/cannonkeys/bastion75/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/cannonkeys/bastiontkl/config.h b/keyboards/cannonkeys/bastiontkl/config.h new file mode 100644 index 00000000000..8b8e7f9aa55 --- /dev/null +++ b/keyboards/cannonkeys/bastiontkl/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + diff --git a/keyboards/cannonkeys/bastiontkl/info.json b/keyboards/cannonkeys/bastiontkl/info.json new file mode 100644 index 00000000000..72733b3d8fe --- /dev/null +++ b/keyboards/cannonkeys/bastiontkl/info.json @@ -0,0 +1,1691 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "BastionTKL", + "maintainer": "awkannan", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP27", + "on_state": 0, + "scroll_lock": "GP1" + }, + "matrix_pins": { + "cols": ["GP14", "GP13", "GP12", "GP17", "GP18", "GP19", "GP20", "GP21", "GP26", "GP25", "GP24", "GP23", "GP22", "GP29", "GP16", "GP5", "GP4"], + "rows": ["GP0", "GP2", "GP3", "GP28", "GP10", "GP11"] + }, + "processor": "RP2040", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x0023", + "vid": "0xCA04" + }, + "community_layouts": [ + "tkl_ansi", + "tkl_ansi_split_bs_rshift", + "tkl_ansi_tsangan", + "tkl_ansi_tsangan_split_bs_rshift", + "tkl_f13_ansi", + "tkl_f13_ansi_split_bs_rshift", + "tkl_f13_ansi_tsangan", + "tkl_f13_ansi_tsangan_split_bs_rshift", + "tkl_iso", + "tkl_iso_split_bs_rshift", + "tkl_iso_tsangan", + "tkl_iso_tsangan_split_bs_rshift", + "tkl_f13_iso", + "tkl_f13_iso_split_bs_rshift", + "tkl_f13_iso_tsangan", + "tkl_f13_iso_tsangan_split_bs_rshift" + ], + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 12], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/bastiontkl/keymaps/default/keymap.c b/keyboards/cannonkeys/bastiontkl/keymaps/default/keymap.c new file mode 100644 index 00000000000..6daafc751f2 --- /dev/null +++ b/keyboards/cannonkeys/bastiontkl/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = 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_MPLY, 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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = 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_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_MPLY, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cannonkeys/bastiontkl/keymaps/via/keymap.c b/keyboards/cannonkeys/bastiontkl/keymaps/via/keymap.c new file mode 100644 index 00000000000..0d57c828c2b --- /dev/null +++ b/keyboards/cannonkeys/bastiontkl/keymaps/via/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = 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_MPLY, 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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = 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_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_MPLY, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cannonkeys/bastiontkl/keymaps/via/rules.mk b/keyboards/cannonkeys/bastiontkl/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cannonkeys/bastiontkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/bastiontkl/matrix_diagram.md b/keyboards/cannonkeys/bastiontkl/matrix_diagram.md new file mode 100644 index 00000000000..6b3e3f60dd0 --- /dev/null +++ b/keyboards/cannonkeys/bastiontkl/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for CannonKeys BastionTKL + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ +│00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D ││0E │0F │0G │ F12 Row +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ +│00 ││01 │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 │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐3D │ 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 │4B │4C │4D │ │4F │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│50 │51 │52 │56 │5A │5B │5C │5D ││5E │5F │5G │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│40 │ 2.25u LShift 2.75u RShift │4C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │56 │5B │5C │5D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/cannonkeys/bastiontkl/readme.md b/keyboards/cannonkeys/bastiontkl/readme.md new file mode 100644 index 00000000000..c28083f53e2 --- /dev/null +++ b/keyboards/cannonkeys/bastiontkl/readme.md @@ -0,0 +1,26 @@ +# BastionTKL PCB + +BastionTKL PCB from CannonKeys + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: RP2040 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/bastiontkl:default + +Flashing example for this keyboard: + + make cannonkeys/bastiontkl: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**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/bastiontkl/rules.mk b/keyboards/cannonkeys/bastiontkl/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/cannonkeys/bastiontkl/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/cannonkeys/brutalv2_65/rules.mk b/keyboards/cannonkeys/brutalv2_65/rules.mk index f56120695ac..480e8661799 100644 --- a/keyboards/cannonkeys/brutalv2_65/rules.mk +++ b/keyboards/cannonkeys/brutalv2_65/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/chimera65/rules.mk b/keyboards/cannonkeys/chimera65/rules.mk index 09c801a8491..9bdf6b80937 100644 --- a/keyboards/cannonkeys/chimera65/rules.mk +++ b/keyboards/cannonkeys/chimera65/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/chimera65_hs/rules.mk b/keyboards/cannonkeys/chimera65_hs/rules.mk index 2a5031cd320..6dd24d8e068 100644 --- a/keyboards/cannonkeys/chimera65_hs/rules.mk +++ b/keyboards/cannonkeys/chimera65_hs/rules.mk @@ -1,5 +1,3 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/cloudline/config.h b/keyboards/cannonkeys/cloudline/config.h index a3fc30fc3d6..cff0a03945e 100644 --- a/keyboards/cannonkeys/cloudline/config.h +++ b/keyboards/cannonkeys/cloudline/config.h @@ -12,25 +12,11 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 - -#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 - - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/cannonkeys/cloudline/info.json b/keyboards/cannonkeys/cloudline/info.json index 37fc5470f96..d1bbce929a1 100644 --- a/keyboards/cannonkeys/cloudline/info.json +++ b/keyboards/cannonkeys/cloudline/info.json @@ -8,6 +8,21 @@ "pid": "0x000A", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/cloudline/rules.mk b/keyboards/cannonkeys/cloudline/rules.mk index 42e73a46504..86794ca0f70 100644 --- a/keyboards/cannonkeys/cloudline/rules.mk +++ b/keyboards/cannonkeys/cloudline/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/crin/rules.mk b/keyboards/cannonkeys/crin/rules.mk index e58c5114355..a5906b6a90f 100644 --- a/keyboards/cannonkeys/crin/rules.mk +++ b/keyboards/cannonkeys/crin/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/db60/config.h b/keyboards/cannonkeys/db60/config.h index 20f73d95a2f..bea77ceac29 100644 --- a/keyboards/cannonkeys/db60/config.h +++ b/keyboards/cannonkeys/db60/config.h @@ -26,18 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 WS2812_SPI SPID2 -#define RGBLED_NUM 20 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/db60/info.json b/keyboards/cannonkeys/db60/info.json index 99a4425752b..112ebaddde7 100644 --- a/keyboards/cannonkeys/db60/info.json +++ b/keyboards/cannonkeys/db60/info.json @@ -16,6 +16,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/db60/rules.mk b/keyboards/cannonkeys/db60/rules.mk index 9a57c69c7e9..023b329ad22 100644 --- a/keyboards/cannonkeys/db60/rules.mk +++ b/keyboards/cannonkeys/db60/rules.mk @@ -15,5 +15,3 @@ RGBLIGHT_ENABLE = yes DEFAULT_FOLDER = cannonkeys/db60/rev2 -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/devastatingtkl/config.h b/keyboards/cannonkeys/devastatingtkl/config.h index 947648f59e7..bea77ceac29 100644 --- a/keyboards/cannonkeys/devastatingtkl/config.h +++ b/keyboards/cannonkeys/devastatingtkl/config.h @@ -26,17 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/devastatingtkl/info.json b/keyboards/cannonkeys/devastatingtkl/info.json index 13a1a2ef48a..a3b269f1cfe 100644 --- a/keyboards/cannonkeys/devastatingtkl/info.json +++ b/keyboards/cannonkeys/devastatingtkl/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/devastatingtkl/rules.mk b/keyboards/cannonkeys/devastatingtkl/rules.mk index b7ab91a3393..8d3de1b8b23 100644 --- a/keyboards/cannonkeys/devastatingtkl/rules.mk +++ b/keyboards/cannonkeys/devastatingtkl/rules.mk @@ -13,5 +13,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/gentoo/rules.mk b/keyboards/cannonkeys/gentoo/rules.mk index f56120695ac..480e8661799 100644 --- a/keyboards/cannonkeys/gentoo/rules.mk +++ b/keyboards/cannonkeys/gentoo/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/gentoo_hs/rules.mk b/keyboards/cannonkeys/gentoo_hs/rules.mk index 5b983f1f260..4ee7a29916a 100644 --- a/keyboards/cannonkeys/gentoo_hs/rules.mk +++ b/keyboards/cannonkeys/gentoo_hs/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/hoodrowg/config.h b/keyboards/cannonkeys/hoodrowg/config.h index 043ee2908a2..3b78decb277 100644 --- a/keyboards/cannonkeys/hoodrowg/config.h +++ b/keyboards/cannonkeys/hoodrowg/config.h @@ -17,18 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 16 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/cannonkeys/hoodrowg/info.json b/keyboards/cannonkeys/hoodrowg/info.json index 0ad5b9fbf63..1c1fbf59647 100644 --- a/keyboards/cannonkeys/hoodrowg/info.json +++ b/keyboards/cannonkeys/hoodrowg/info.json @@ -17,6 +17,21 @@ "caps_lock": "B6", "scroll_lock": "B2" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/cannonkeys/instant60/config.h b/keyboards/cannonkeys/instant60/config.h index aced1f333cc..bea77ceac29 100644 --- a/keyboards/cannonkeys/instant60/config.h +++ b/keyboards/cannonkeys/instant60/config.h @@ -26,17 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/instant60/info.json b/keyboards/cannonkeys/instant60/info.json index 31aeca1e8d7..355ae99f0c9 100644 --- a/keyboards/cannonkeys/instant60/info.json +++ b/keyboards/cannonkeys/instant60/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/instant60/rules.mk b/keyboards/cannonkeys/instant60/rules.mk index b7ab91a3393..8d3de1b8b23 100644 --- a/keyboards/cannonkeys/instant60/rules.mk +++ b/keyboards/cannonkeys/instant60/rules.mk @@ -13,5 +13,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/instant65/config.h b/keyboards/cannonkeys/instant65/config.h index 65ffa50103b..0adcfdfa928 100644 --- a/keyboards/cannonkeys/instant65/config.h +++ b/keyboards/cannonkeys/instant65/config.h @@ -26,17 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/instant65/info.json b/keyboards/cannonkeys/instant65/info.json index 23b667cf6cc..3c447a4bd3e 100644 --- a/keyboards/cannonkeys/instant65/info.json +++ b/keyboards/cannonkeys/instant65/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/instant65/rules.mk b/keyboards/cannonkeys/instant65/rules.mk index 42e73a46504..86794ca0f70 100644 --- a/keyboards/cannonkeys/instant65/rules.mk +++ b/keyboards/cannonkeys/instant65/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/iron165/rules.mk b/keyboards/cannonkeys/iron165/rules.mk index 09c801a8491..9bdf6b80937 100644 --- a/keyboards/cannonkeys/iron165/rules.mk +++ b/keyboards/cannonkeys/iron165/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/leviatan/info.json b/keyboards/cannonkeys/leviatan/info.json new file mode 100644 index 00000000000..7e8d6c6fdd1 --- /dev/null +++ b/keyboards/cannonkeys/leviatan/info.json @@ -0,0 +1,311 @@ +{ + "manufacturer": "CannonKeys", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "keyboard_name": "Leviatan", + "usb": { + "vid": "0xCA04", + "pid": "0x0024", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "A9", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15"], + "rows": ["B1", "B0", "A7", "A5", "A4"] + }, + "diode_direction": "COL2ROW", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 4, "y": 0, "matrix": [0, 4]}, + {"x": 5, "y": 0, "matrix": [0, 5]}, + {"x": 6, "y": 0, "matrix": [0, 6]}, + {"x": 7, "y": 0, "matrix": [0, 7]}, + {"x": 8, "y": 0, "matrix": [0, 8]}, + {"x": 9, "y": 0, "matrix": [0, 9]}, + {"x": 10, "y": 0, "matrix": [0, 10]}, + {"x": 11, "y": 0, "matrix": [0, 11]}, + {"x": 12, "y": 0, "matrix": [0, 12]}, + {"x": 13, "y": 0, "w": 2, "matrix": [0, 13]}, + + {"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]}, + {"x": 1.5, "y": 1, "matrix": [1, 1]}, + {"x": 2.5, "y": 1, "matrix": [1, 2]}, + {"x": 3.5, "y": 1, "matrix": [1, 3]}, + {"x": 4.5, "y": 1, "matrix": [1, 4]}, + {"x": 5.5, "y": 1, "matrix": [1, 5]}, + {"x": 6.5, "y": 1, "matrix": [1, 6]}, + {"x": 7.5, "y": 1, "matrix": [1, 7]}, + {"x": 8.5, "y": 1, "matrix": [1, 8]}, + {"x": 9.5, "y": 1, "matrix": [1, 9]}, + {"x": 10.5, "y": 1, "matrix": [1, 10]}, + {"x": 11.5, "y": 1, "matrix": [1, 11]}, + {"x": 12.5, "y": 1, "matrix": [1, 12]}, + {"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]}, + + {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]}, + {"x": 1.75, "y": 2, "matrix": [2, 1]}, + {"x": 2.75, "y": 2, "matrix": [2, 2]}, + {"x": 3.75, "y": 2, "matrix": [2, 3]}, + {"x": 4.75, "y": 2, "matrix": [2, 4]}, + {"x": 5.75, "y": 2, "matrix": [2, 5]}, + {"x": 6.75, "y": 2, "matrix": [2, 6]}, + {"x": 7.75, "y": 2, "matrix": [2, 7]}, + {"x": 8.75, "y": 2, "matrix": [2, 8]}, + {"x": 9.75, "y": 2, "matrix": [2, 9]}, + {"x": 10.75, "y": 2, "matrix": [2, 10]}, + {"x": 11.75, "y": 2, "matrix": [2, 11]}, + {"x": 12.75, "y": 2, "w": 2.25, "matrix": [2, 14]}, + + {"x": 0, "y": 3, "w": 2.25, "matrix": [3, 0]}, + {"x": 2.25, "y": 3, "matrix": [3, 2]}, + {"x": 3.25, "y": 3, "matrix": [3, 3]}, + {"x": 4.25, "y": 3, "matrix": [3, 4]}, + {"x": 5.25, "y": 3, "matrix": [3, 5]}, + {"x": 6.25, "y": 3, "matrix": [3, 6]}, + {"x": 7.25, "y": 3, "matrix": [3, 7]}, + {"x": 8.25, "y": 3, "matrix": [3, 8]}, + {"x": 9.25, "y": 3, "matrix": [3, 9]}, + {"x": 10.25, "y": 3, "matrix": [3, 10]}, + {"x": 11.25, "y": 3, "matrix": [3, 11]}, + {"x": 12.25, "y": 3, "w": 2.75, "matrix": [3, 12]}, + + {"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]}, + {"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]}, + {"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]}, + {"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]}, + {"x": 10, "y": 4, "w": 1.25, "matrix": [4, 10]}, + {"x": 11.25, "y": 4, "w": 1.25, "matrix": [4, 11]}, + {"x": 12.5, "y": 4, "w": 1.25, "matrix": [4, 12]}, + {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 4, "y": 0, "matrix": [0, 4]}, + {"x": 5, "y": 0, "matrix": [0, 5]}, + {"x": 6, "y": 0, "matrix": [0, 6]}, + {"x": 7, "y": 0, "matrix": [0, 7]}, + {"x": 8, "y": 0, "matrix": [0, 8]}, + {"x": 9, "y": 0, "matrix": [0, 9]}, + {"x": 10, "y": 0, "matrix": [0, 10]}, + {"x": 11, "y": 0, "matrix": [0, 11]}, + {"x": 12, "y": 0, "matrix": [0, 12]}, + {"x": 13, "y": 0, "matrix": [0, 13]}, + {"x": 14, "y": 0, "matrix": [0, 14]}, + + {"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]}, + {"x": 1.5, "y": 1, "matrix": [1, 1]}, + {"x": 2.5, "y": 1, "matrix": [1, 2]}, + {"x": 3.5, "y": 1, "matrix": [1, 3]}, + {"x": 4.5, "y": 1, "matrix": [1, 4]}, + {"x": 5.5, "y": 1, "matrix": [1, 5]}, + {"x": 6.5, "y": 1, "matrix": [1, 6]}, + {"x": 7.5, "y": 1, "matrix": [1, 7]}, + {"x": 8.5, "y": 1, "matrix": [1, 8]}, + {"x": 9.5, "y": 1, "matrix": [1, 9]}, + {"x": 10.5, "y": 1, "matrix": [1, 10]}, + {"x": 11.5, "y": 1, "matrix": [1, 11]}, + {"x": 12.5, "y": 1, "matrix": [1, 12]}, + {"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]}, + + {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]}, + {"x": 1.75, "y": 2, "matrix": [2, 1]}, + {"x": 2.75, "y": 2, "matrix": [2, 2]}, + {"x": 3.75, "y": 2, "matrix": [2, 3]}, + {"x": 4.75, "y": 2, "matrix": [2, 4]}, + {"x": 5.75, "y": 2, "matrix": [2, 5]}, + {"x": 6.75, "y": 2, "matrix": [2, 6]}, + {"x": 7.75, "y": 2, "matrix": [2, 7]}, + {"x": 8.75, "y": 2, "matrix": [2, 8]}, + {"x": 9.75, "y": 2, "matrix": [2, 9]}, + {"x": 10.75, "y": 2, "matrix": [2, 10]}, + {"x": 11.75, "y": 2, "matrix": [2, 11]}, + {"x": 12.75, "y": 2, "w": 2.25, "matrix": [2, 14]}, + + {"x": 0, "y": 3, "w": 2.25, "matrix": [3, 0]}, + {"x": 2.25, "y": 3, "matrix": [3, 2]}, + {"x": 3.25, "y": 3, "matrix": [3, 3]}, + {"x": 4.25, "y": 3, "matrix": [3, 4]}, + {"x": 5.25, "y": 3, "matrix": [3, 5]}, + {"x": 6.25, "y": 3, "matrix": [3, 6]}, + {"x": 7.25, "y": 3, "matrix": [3, 7]}, + {"x": 8.25, "y": 3, "matrix": [3, 8]}, + {"x": 9.25, "y": 3, "matrix": [3, 9]}, + {"x": 10.25, "y": 3, "matrix": [3, 10]}, + {"x": 11.25, "y": 3, "matrix": [3, 11]}, + {"x": 12.25, "y": 3, "w": 1.75, "matrix": [3, 12]}, + {"x": 14, "y": 3, "matrix": [3, 14]}, + + {"x": 0, "y": 4, "w": 1.5, "matrix": [4, 0]}, + {"x": 1.5, "y": 4, "matrix": [4, 1]}, + {"x": 2.5, "y": 4, "w": 1.5, "matrix": [4, 2]}, + {"x": 4, "y": 4, "w": 7, "matrix": [4, 6]}, + {"x": 11, "y": 4, "w": 1.5, "matrix": [4, 11]}, + {"x": 12.5, "y": 4, "matrix": [4, 12]}, + {"x": 13.5, "y": 4, "w": 1.5, "matrix": [4, 14]} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 4, "y": 0, "matrix": [0, 4]}, + {"x": 5, "y": 0, "matrix": [0, 5]}, + {"x": 6, "y": 0, "matrix": [0, 6]}, + {"x": 7, "y": 0, "matrix": [0, 7]}, + {"x": 8, "y": 0, "matrix": [0, 8]}, + {"x": 9, "y": 0, "matrix": [0, 9]}, + {"x": 10, "y": 0, "matrix": [0, 10]}, + {"x": 11, "y": 0, "matrix": [0, 11]}, + {"x": 12, "y": 0, "matrix": [0, 12]}, + {"x": 13, "y": 0, "w": 2, "matrix": [0, 13]}, + + {"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]}, + {"x": 1.5, "y": 1, "matrix": [1, 1]}, + {"x": 2.5, "y": 1, "matrix": [1, 2]}, + {"x": 3.5, "y": 1, "matrix": [1, 3]}, + {"x": 4.5, "y": 1, "matrix": [1, 4]}, + {"x": 5.5, "y": 1, "matrix": [1, 5]}, + {"x": 6.5, "y": 1, "matrix": [1, 6]}, + {"x": 7.5, "y": 1, "matrix": [1, 7]}, + {"x": 8.5, "y": 1, "matrix": [1, 8]}, + {"x": 9.5, "y": 1, "matrix": [1, 9]}, + {"x": 10.5, "y": 1, "matrix": [1, 10]}, + {"x": 11.5, "y": 1, "matrix": [1, 11]}, + {"x": 12.5, "y": 1, "matrix": [1, 12]}, + + {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]}, + {"x": 1.75, "y": 2, "matrix": [2, 1]}, + {"x": 2.75, "y": 2, "matrix": [2, 2]}, + {"x": 3.75, "y": 2, "matrix": [2, 3]}, + {"x": 4.75, "y": 2, "matrix": [2, 4]}, + {"x": 5.75, "y": 2, "matrix": [2, 5]}, + {"x": 6.75, "y": 2, "matrix": [2, 6]}, + {"x": 7.75, "y": 2, "matrix": [2, 7]}, + {"x": 8.75, "y": 2, "matrix": [2, 8]}, + {"x": 9.75, "y": 2, "matrix": [2, 9]}, + {"x": 10.75, "y": 2, "matrix": [2, 10]}, + {"x": 11.75, "y": 2, "matrix": [2, 11]}, + {"x": 12.75, "y": 2, "matrix": [2, 12]}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2, "matrix": [2, 14]}, + + {"x": 0, "y": 3, "w": 1.25, "matrix": [3, 0]}, + {"x": 1.25, "y": 3, "matrix": [3, 1]}, + {"x": 2.25, "y": 3, "matrix": [3, 2]}, + {"x": 3.25, "y": 3, "matrix": [3, 3]}, + {"x": 4.25, "y": 3, "matrix": [3, 4]}, + {"x": 5.25, "y": 3, "matrix": [3, 5]}, + {"x": 6.25, "y": 3, "matrix": [3, 6]}, + {"x": 7.25, "y": 3, "matrix": [3, 7]}, + {"x": 8.25, "y": 3, "matrix": [3, 8]}, + {"x": 9.25, "y": 3, "matrix": [3, 9]}, + {"x": 10.25, "y": 3, "matrix": [3, 10]}, + {"x": 11.25, "y": 3, "matrix": [3, 11]}, + {"x": 12.25, "y": 3, "w": 2.75, "matrix": [3, 12]}, + + {"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]}, + {"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]}, + {"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]}, + {"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]}, + {"x": 10, "y": 4, "w": 1.25, "matrix": [4, 10]}, + {"x": 11.25, "y": 4, "w": 1.25, "matrix": [4, 11]}, + {"x": 12.5, "y": 4, "w": 1.25, "matrix": [4, 12]}, + {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} + ] + }, + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 4, "y": 0, "matrix": [0, 4]}, + {"x": 5, "y": 0, "matrix": [0, 5]}, + {"x": 6, "y": 0, "matrix": [0, 6]}, + {"x": 7, "y": 0, "matrix": [0, 7]}, + {"x": 8, "y": 0, "matrix": [0, 8]}, + {"x": 9, "y": 0, "matrix": [0, 9]}, + {"x": 10, "y": 0, "matrix": [0, 10]}, + {"x": 11, "y": 0, "matrix": [0, 11]}, + {"x": 12, "y": 0, "matrix": [0, 12]}, + {"x": 13, "y": 0, "matrix": [0, 13]}, + {"x": 14, "y": 0, "matrix": [0, 14]}, + + {"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]}, + {"x": 1.5, "y": 1, "matrix": [1, 1]}, + {"x": 2.5, "y": 1, "matrix": [1, 2]}, + {"x": 3.5, "y": 1, "matrix": [1, 3]}, + {"x": 4.5, "y": 1, "matrix": [1, 4]}, + {"x": 5.5, "y": 1, "matrix": [1, 5]}, + {"x": 6.5, "y": 1, "matrix": [1, 6]}, + {"x": 7.5, "y": 1, "matrix": [1, 7]}, + {"x": 8.5, "y": 1, "matrix": [1, 8]}, + {"x": 9.5, "y": 1, "matrix": [1, 9]}, + {"x": 10.5, "y": 1, "matrix": [1, 10]}, + {"x": 11.5, "y": 1, "matrix": [1, 11]}, + {"x": 12.5, "y": 1, "matrix": [1, 12]}, + {"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]}, + + {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]}, + {"x": 1.75, "y": 2, "matrix": [2, 1]}, + {"x": 2.75, "y": 2, "matrix": [2, 2]}, + {"x": 3.75, "y": 2, "matrix": [2, 3]}, + {"x": 4.75, "y": 2, "matrix": [2, 4]}, + {"x": 5.75, "y": 2, "matrix": [2, 5]}, + {"x": 6.75, "y": 2, "matrix": [2, 6]}, + {"x": 7.75, "y": 2, "matrix": [2, 7]}, + {"x": 8.75, "y": 2, "matrix": [2, 8]}, + {"x": 9.75, "y": 2, "matrix": [2, 9]}, + {"x": 10.75, "y": 2, "matrix": [2, 10]}, + {"x": 11.75, "y": 2, "matrix": [2, 11]}, + {"x": 12.75, "y": 2, "matrix": [2, 12]}, + {"x": 13.75, "y": 2, "w": 1.25, "matrix": [2, 14]}, + + {"x": 0, "y": 3, "w": 1.25, "matrix": [3, 0]}, + {"x": 1.25, "y": 3, "matrix": [3, 1]}, + {"x": 2.25, "y": 3, "matrix": [3, 2]}, + {"x": 3.25, "y": 3, "matrix": [3, 3]}, + {"x": 4.25, "y": 3, "matrix": [3, 4]}, + {"x": 5.25, "y": 3, "matrix": [3, 5]}, + {"x": 6.25, "y": 3, "matrix": [3, 6]}, + {"x": 7.25, "y": 3, "matrix": [3, 7]}, + {"x": 8.25, "y": 3, "matrix": [3, 8]}, + {"x": 9.25, "y": 3, "matrix": [3, 9]}, + {"x": 10.25, "y": 3, "matrix": [3, 10]}, + {"x": 11.25, "y": 3, "matrix": [3, 11]}, + {"x": 12.25, "y": 3, "w": 1.75, "matrix": [3, 12]}, + {"x": 14, "y": 3, "matrix": [3, 14]}, + + {"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]}, + {"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]}, + {"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]}, + {"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]}, + {"x": 10, "y": 4, "w": 1.25, "matrix": [4, 10]}, + {"x": 11.25, "y": 4, "w": 1.25, "matrix": [4, 11]}, + {"x": 12.5, "y": 4, "w": 1.25, "matrix": [4, 12]}, + {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} + ] + } + } +} diff --git a/keyboards/cannonkeys/leviatan/keymaps/default/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/default/keymap.c new file mode 100644 index 00000000000..317eeab093d --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 + + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_ansi( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_60_ansi( + 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_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c new file mode 100644 index 00000000000..a0cacca0f5c --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c @@ -0,0 +1,45 @@ +/* +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 + + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_iso( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_60_iso( + 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_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c new file mode 100644 index 00000000000..d280f72d1ec --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c @@ -0,0 +1,46 @@ +/* +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 + + +// 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 layer_names { + _BASE, + _FN1 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_tsangan_hhkb( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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, 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(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = LAYOUT_60_tsangan_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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c new file mode 100644 index 00000000000..b3b684cf198 --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* +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 + + +// 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 layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), 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_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk b/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/leviatan/readme.md b/keyboards/cannonkeys/leviatan/readme.md new file mode 100644 index 00000000000..70b90e95516 --- /dev/null +++ b/keyboards/cannonkeys/leviatan/readme.md @@ -0,0 +1,25 @@ +# CannonKeys Leviatan for LaminarDesigns + +Leviatan Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 (or equivalent) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/leviatan:default + + +Flashing example for this keyboard: + + make cannonkeys/leviatan: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**: Toggle the switch on the back of the pcb to "0" and briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/leviatan/rules.mk b/keyboards/cannonkeys/leviatan/rules.mk new file mode 100644 index 00000000000..6dd24d8e068 --- /dev/null +++ b/keyboards/cannonkeys/leviatan/rules.mk @@ -0,0 +1,3 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + diff --git a/keyboards/cannonkeys/malicious_ergo/config.h b/keyboards/cannonkeys/malicious_ergo/config.h index 2c1baa101d0..70d39892fde 100644 --- a/keyboards/cannonkeys/malicious_ergo/config.h +++ b/keyboards/cannonkeys/malicious_ergo/config.h @@ -28,17 +28,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/malicious_ergo/info.json b/keyboards/cannonkeys/malicious_ergo/info.json index 3b54ee75b64..d5941f5f969 100644 --- a/keyboards/cannonkeys/malicious_ergo/info.json +++ b/keyboards/cannonkeys/malicious_ergo/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/malicious_ergo/rules.mk b/keyboards/cannonkeys/malicious_ergo/rules.mk index 42e73a46504..86794ca0f70 100644 --- a/keyboards/cannonkeys/malicious_ergo/rules.mk +++ b/keyboards/cannonkeys/malicious_ergo/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/meetuppad2023/info.json b/keyboards/cannonkeys/meetuppad2023/info.json new file mode 100644 index 00000000000..e55d4361d84 --- /dev/null +++ b/keyboards/cannonkeys/meetuppad2023/info.json @@ -0,0 +1,40 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Meetup Pad 2023", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B0"], + "rows": ["B1", "A7"] + }, + "processor": "STM32F072", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x2023", + "vid": "0xCA04" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 0, "y": 1}, + {"matrix": [0, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 0, "y": 2}, + {"matrix": [0, 2], "x": 1, "y": 2}, + {"matrix": [1, 3], "x": 0, "y": 3}, + {"matrix": [0, 3], "x": 1, "y": 3} + ] + } + } +} diff --git a/keyboards/cannonkeys/meetuppad2023/keymaps/default/keymap.c b/keyboards/cannonkeys/meetuppad2023/keymaps/default/keymap.c new file mode 100644 index 00000000000..790839f831e --- /dev/null +++ b/keyboards/cannonkeys/meetuppad2023/keymaps/default/keymap.c @@ -0,0 +1,20 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, + KC_3, KC_4, + KC_5, KC_6, + KC_7, MO(1) + ), + + [1] = LAYOUT( + QK_BOOT, KC_8, + KC_9, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c b/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c new file mode 100644 index 00000000000..8039eb260ea --- /dev/null +++ b/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + MYMACRO = QK_KB_0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + MYMACRO, KC_1, + KC_2, KC_3, + KC_4, KC_5, + KC_6, MO(1) + ), + + [1] = LAYOUT( + QK_BOOT, KC_7, + KC_8, KC_9, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MYMACRO: + if (record->event.pressed) { + SEND_STRING("I went to the CannonKeys 2023 meetup and all I got was this macropad"); + } + break; + } + return true; +}; diff --git a/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk b/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/meetuppad2023/readme.md b/keyboards/cannonkeys/meetuppad2023/readme.md new file mode 100644 index 00000000000..73312c1b697 --- /dev/null +++ b/keyboards/cannonkeys/meetuppad2023/readme.md @@ -0,0 +1,18 @@ +# CannonKeys Meetup Pad 2023 + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/meetuppad2023: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 (top right on this board) 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 `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/meetuppad2023/rules.mk b/keyboards/cannonkeys/meetuppad2023/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/cannonkeys/meetuppad2023/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/obliterated75/config.h b/keyboards/cannonkeys/obliterated75/config.h index 65ffa50103b..0adcfdfa928 100644 --- a/keyboards/cannonkeys/obliterated75/config.h +++ b/keyboards/cannonkeys/obliterated75/config.h @@ -26,17 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/obliterated75/info.json b/keyboards/cannonkeys/obliterated75/info.json index 678ca4457a0..d831eb1aca5 100644 --- a/keyboards/cannonkeys/obliterated75/info.json +++ b/keyboards/cannonkeys/obliterated75/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/obliterated75/rules.mk b/keyboards/cannonkeys/obliterated75/rules.mk index 42e73a46504..86794ca0f70 100644 --- a/keyboards/cannonkeys/obliterated75/rules.mk +++ b/keyboards/cannonkeys/obliterated75/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/onyx/rules.mk b/keyboards/cannonkeys/onyx/rules.mk index e58c5114355..a5906b6a90f 100644 --- a/keyboards/cannonkeys/onyx/rules.mk +++ b/keyboards/cannonkeys/onyx/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/ortho48/config.h b/keyboards/cannonkeys/ortho48/config.h index eaf33bbfa06..703975ab861 100644 --- a/keyboards/cannonkeys/ortho48/config.h +++ b/keyboards/cannonkeys/ortho48/config.h @@ -25,17 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 9 #define WS2812_SPI SPID2 /* diff --git a/keyboards/cannonkeys/ortho48/info.json b/keyboards/cannonkeys/ortho48/info.json index dd4879b5beb..c995210ba4e 100644 --- a/keyboards/cannonkeys/ortho48/info.json +++ b/keyboards/cannonkeys/ortho48/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/ortho48/rules.mk b/keyboards/cannonkeys/ortho48/rules.mk index 57a302eec3a..7b6ddd5ad36 100644 --- a/keyboards/cannonkeys/ortho48/rules.mk +++ b/keyboards/cannonkeys/ortho48/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes SLEEP_LED_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/ortho60/config.h b/keyboards/cannonkeys/ortho60/config.h index c8c8c93e51e..703975ab861 100644 --- a/keyboards/cannonkeys/ortho60/config.h +++ b/keyboards/cannonkeys/ortho60/config.h @@ -25,18 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 16 #define WS2812_SPI SPID2 /* diff --git a/keyboards/cannonkeys/ortho60/info.json b/keyboards/cannonkeys/ortho60/info.json index 3b672f4f6d7..18fcbc828be 100644 --- a/keyboards/cannonkeys/ortho60/info.json +++ b/keyboards/cannonkeys/ortho60/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/ortho60/rules.mk b/keyboards/cannonkeys/ortho60/rules.mk index 57a302eec3a..7b6ddd5ad36 100644 --- a/keyboards/cannonkeys/ortho60/rules.mk +++ b/keyboards/cannonkeys/ortho60/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes SLEEP_LED_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/ortho75/config.h b/keyboards/cannonkeys/ortho75/config.h index c8c8c93e51e..703975ab861 100644 --- a/keyboards/cannonkeys/ortho75/config.h +++ b/keyboards/cannonkeys/ortho75/config.h @@ -25,18 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 16 #define WS2812_SPI SPID2 /* diff --git a/keyboards/cannonkeys/ortho75/info.json b/keyboards/cannonkeys/ortho75/info.json index dd2b78b9989..1f9fa940865 100644 --- a/keyboards/cannonkeys/ortho75/info.json +++ b/keyboards/cannonkeys/ortho75/info.json @@ -23,6 +23,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/ortho75/rules.mk b/keyboards/cannonkeys/ortho75/rules.mk index 24078750628..5a1f61bac05 100644 --- a/keyboards/cannonkeys/ortho75/rules.mk +++ b/keyboards/cannonkeys/ortho75/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes SLEEP_LED_ENABLE = yes ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h index c766c83f65a..703975ab861 100644 --- a/keyboards/cannonkeys/practice60/config.h +++ b/keyboards/cannonkeys/practice60/config.h @@ -25,18 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 9 #define WS2812_SPI SPID2 /* diff --git a/keyboards/cannonkeys/practice60/info.json b/keyboards/cannonkeys/practice60/info.json index a1313242fa6..ae57bfbf06f 100644 --- a/keyboards/cannonkeys/practice60/info.json +++ b/keyboards/cannonkeys/practice60/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/practice60/rules.mk b/keyboards/cannonkeys/practice60/rules.mk index 01c330aeb6f..544fe68a886 100644 --- a/keyboards/cannonkeys/practice60/rules.mk +++ b/keyboards/cannonkeys/practice60/rules.mk @@ -14,5 +14,3 @@ SLEEP_LED_ENABLE = yes DEFAULT_FOLDER = cannonkeys/practice60 -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/practice65/config.h b/keyboards/cannonkeys/practice65/config.h index 0163604ead9..703975ab861 100644 --- a/keyboards/cannonkeys/practice65/config.h +++ b/keyboards/cannonkeys/practice65/config.h @@ -25,18 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 #define WS2812_SPI SPID2 /* diff --git a/keyboards/cannonkeys/practice65/info.json b/keyboards/cannonkeys/practice65/info.json index 28841b48a68..f86951bf5c9 100644 --- a/keyboards/cannonkeys/practice65/info.json +++ b/keyboards/cannonkeys/practice65/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/practice65/rules.mk b/keyboards/cannonkeys/practice65/rules.mk index 57a302eec3a..7b6ddd5ad36 100644 --- a/keyboards/cannonkeys/practice65/rules.mk +++ b/keyboards/cannonkeys/practice65/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes SLEEP_LED_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/rekt1800/rules.mk b/keyboards/cannonkeys/rekt1800/rules.mk index 32e7be7370a..01d0c0ade11 100644 --- a/keyboards/cannonkeys/rekt1800/rules.mk +++ b/keyboards/cannonkeys/rekt1800/rules.mk @@ -13,5 +13,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/ripple/rules.mk b/keyboards/cannonkeys/ripple/rules.mk index 2a5031cd320..6dd24d8e068 100644 --- a/keyboards/cannonkeys/ripple/rules.mk +++ b/keyboards/cannonkeys/ripple/rules.mk @@ -1,5 +1,3 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/ripple_hs/rules.mk b/keyboards/cannonkeys/ripple_hs/rules.mk index 2a5031cd320..6dd24d8e068 100644 --- a/keyboards/cannonkeys/ripple_hs/rules.mk +++ b/keyboards/cannonkeys/ripple_hs/rules.mk @@ -1,5 +1,3 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/sagittarius/config.h b/keyboards/cannonkeys/sagittarius/config.h index 29c78c23982..b48d66fd787 100644 --- a/keyboards/cannonkeys/sagittarius/config.h +++ b/keyboards/cannonkeys/sagittarius/config.h @@ -26,18 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 8 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/sagittarius/info.json b/keyboards/cannonkeys/sagittarius/info.json index 0980cb42751..d9236b39056 100644 --- a/keyboards/cannonkeys/sagittarius/info.json +++ b/keyboards/cannonkeys/sagittarius/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/sagittarius/rules.mk b/keyboards/cannonkeys/sagittarius/rules.mk index 42e73a46504..86794ca0f70 100644 --- a/keyboards/cannonkeys/sagittarius/rules.mk +++ b/keyboards/cannonkeys/sagittarius/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/satisfaction75/rules.mk b/keyboards/cannonkeys/satisfaction75/rules.mk index 9f6480ee0e4..8cee2da595e 100644 --- a/keyboards/cannonkeys/satisfaction75/rules.mk +++ b/keyboards/cannonkeys/satisfaction75/rules.mk @@ -16,10 +16,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 #BACKLIGHT_ENABLE = yes DEFAULT_FOLDER = cannonkeys/satisfaction75/rev1 - -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/satisfaction75/satisfaction75.c b/keyboards/cannonkeys/satisfaction75/satisfaction75.c index ce870c49af6..29fb6e76191 100644 --- a/keyboards/cannonkeys/satisfaction75/satisfaction75.c +++ b/keyboards/cannonkeys/satisfaction75/satisfaction75.c @@ -243,22 +243,22 @@ void via_custom_value_command(uint8_t *data, uint8_t length) { void read_host_led_state(void) { - uint8_t leds = host_keyboard_leds(); - if (leds & (1 << USB_LED_NUM_LOCK)) { + led_t led_state = host_keyboard_led_state(); + if (led_state.num_lock) { if (led_numlock == false){ led_numlock = true;} } else { if (led_numlock == true){ led_numlock = false;} } - if (leds & (1 << USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { if (led_capslock == false){ led_capslock = true;} } else { if (led_capslock == true){ led_capslock = false;} } - if (leds & (1 << USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { if (led_scrolllock == false){ led_scrolllock = true;} } else { diff --git a/keyboards/cannonkeys/savage65/config.h b/keyboards/cannonkeys/savage65/config.h index 6aac0aefb44..0adcfdfa928 100644 --- a/keyboards/cannonkeys/savage65/config.h +++ b/keyboards/cannonkeys/savage65/config.h @@ -26,18 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/savage65/info.json b/keyboards/cannonkeys/savage65/info.json index 540327c6b8d..0c2409713b9 100644 --- a/keyboards/cannonkeys/savage65/info.json +++ b/keyboards/cannonkeys/savage65/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/savage65/rules.mk b/keyboards/cannonkeys/savage65/rules.mk index b7ab91a3393..8d3de1b8b23 100644 --- a/keyboards/cannonkeys/savage65/rules.mk +++ b/keyboards/cannonkeys/savage65/rules.mk @@ -13,5 +13,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/tmov2/config.h b/keyboards/cannonkeys/tmov2/config.h index d344ffaee68..bea77ceac29 100644 --- a/keyboards/cannonkeys/tmov2/config.h +++ b/keyboards/cannonkeys/tmov2/config.h @@ -26,18 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 22 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/tmov2/info.json b/keyboards/cannonkeys/tmov2/info.json index 4d5d564e668..ed834c73cd9 100644 --- a/keyboards/cannonkeys/tmov2/info.json +++ b/keyboards/cannonkeys/tmov2/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 22, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/tmov2/rules.mk b/keyboards/cannonkeys/tmov2/rules.mk index b7ab91a3393..8d3de1b8b23 100644 --- a/keyboards/cannonkeys/tmov2/rules.mk +++ b/keyboards/cannonkeys/tmov2/rules.mk @@ -13,5 +13,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/tsukuyomi/config.h b/keyboards/cannonkeys/tsukuyomi/config.h index 6aac0aefb44..0adcfdfa928 100644 --- a/keyboards/cannonkeys/tsukuyomi/config.h +++ b/keyboards/cannonkeys/tsukuyomi/config.h @@ -26,18 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/cannonkeys/tsukuyomi/info.json b/keyboards/cannonkeys/tsukuyomi/info.json index e370e1acc0e..3542bca1f6b 100644 --- a/keyboards/cannonkeys/tsukuyomi/info.json +++ b/keyboards/cannonkeys/tsukuyomi/info.json @@ -18,6 +18,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/cannonkeys/tsukuyomi/rules.mk b/keyboards/cannonkeys/tsukuyomi/rules.mk index 42e73a46504..86794ca0f70 100644 --- a/keyboards/cannonkeys/tsukuyomi/rules.mk +++ b/keyboards/cannonkeys/tsukuyomi/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/vicious40/rules.mk b/keyboards/cannonkeys/vicious40/rules.mk index df232017195..9d14eaf9aa0 100644 --- a/keyboards/cannonkeys/vicious40/rules.mk +++ b/keyboards/cannonkeys/vicious40/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cantor/cantor.c b/keyboards/cantor/cantor.c deleted file mode 100644 index c0d2281888e..00000000000 --- a/keyboards/cantor/cantor.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2022 Diego Palacios (@diepala) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "cantor.h" diff --git a/keyboards/cantor/cantor.h b/keyboards/cantor/cantor.h deleted file mode 100644 index b203496d704..00000000000 --- a/keyboards/cantor/cantor.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2022 Diego Palacios (@diepala) -// 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. - */ - -// readability -#define ___ KC_NO - -#define LAYOUT_split_3x6_3( \ - L01, L02, L03, L04, L05, L06, R01, R02, R03, R04, R05, R06, \ - L07, L08, L09, L10, L11, L12, R07, R08, R09, R10, R11, R12, \ - L13, L14, L15, L16, L17, L18, R13, R14, R15, R16, R17, R18, \ - L19, L20, L21, R19, R20, R21 \ - ) \ - { \ - { L01, L02, L03, L04, L05, L06 }, \ - { L07, L08, L09, L10, L11, L12 }, \ - { L13, L14, L15, L16, L17, L18 }, \ - { L19, L20, L21, ___, ___, ___ }, \ - { R01, R02, R03, R04, R05, R06 }, \ - { R07, R08, R09, R10, R11, R12 }, \ - { R13, R14, R15, R16, R17, R18 }, \ - { R19, R20, R21, ___, ___, ___ } \ - } diff --git a/keyboards/capsunlocked/cu24/config.h b/keyboards/capsunlocked/cu24/config.h index 1d8a04fe70c..8ec34286fc3 100644 --- a/keyboards/capsunlocked/cu24/config.h +++ b/keyboards/capsunlocked/cu24/config.h @@ -16,19 +16,6 @@ #pragma once -/* RGB Glow */ -#define RGBLED_NUM 5 // Number of LEDs in your strip -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/capsunlocked/cu24/info.json b/keyboards/capsunlocked/cu24/info.json index c7d6660f132..f5d56e383ed 100644 --- a/keyboards/capsunlocked/cu24/info.json +++ b/keyboards/capsunlocked/cu24/info.json @@ -18,6 +18,21 @@ "levels": 5, "breathing": true }, + "rgblight": { + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/capsunlocked/cu7/config.h b/keyboards/capsunlocked/cu7/config.h index 8883514e5d2..b7767c19ec4 100644 --- a/keyboards/capsunlocked/cu7/config.h +++ b/keyboards/capsunlocked/cu7/config.h @@ -20,20 +20,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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_EFFECT_BREATHING -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/capsunlocked/cu7/info.json b/keyboards/capsunlocked/cu7/info.json index 61182fcb538..06deeacd692 100644 --- a/keyboards/capsunlocked/cu7/info.json +++ b/keyboards/capsunlocked/cu7/info.json @@ -12,7 +12,21 @@ "pin": "F1" }, "rgblight": { - "max_brightness": 50 + "hue_steps": 10, + "led_count": 6, + "max_brightness": 50, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F5", "F7", "F4"], diff --git a/keyboards/capsunlocked/cu75/config.h b/keyboards/capsunlocked/cu75/config.h index 67f1f43c44b..b8cd9eeebbc 100644 --- a/keyboards/capsunlocked/cu75/config.h +++ b/keyboards/capsunlocked/cu75/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 24 // Number of LEDs -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - #define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255} /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/capsunlocked/cu75/info.json b/keyboards/capsunlocked/cu75/info.json index 3ea17a46e1c..24aed787ef9 100644 --- a/keyboards/capsunlocked/cu75/info.json +++ b/keyboards/capsunlocked/cu75/info.json @@ -17,6 +17,23 @@ "driver": "custom", "levels": 8 }, + "rgblight": { + "driver": "custom", + "hue_steps": 10, + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/capsunlocked/cu75/keymaps/default/rules.mk b/keyboards/capsunlocked/cu75/keymaps/default/rules.mk index bbd4c8c9fdc..483baa79937 100644 --- a/keyboards/capsunlocked/cu75/keymaps/default/rules.mk +++ b/keyboards/capsunlocked/cu75/keymaps/default/rules.mk @@ -7,34 +7,7 @@ NKRO_ENABLE = yes BACKLIGHT_ENABLE = yes # Disable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Disable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms - - -ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE -endif - -ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE -endif - - -# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired -# # -# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight -# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB -# # -# # Set to B, C or D -# LFK_REV = D - -# ifeq ($(LFK_REV), B) -# MCU = atmega32u4 -# else -# MCU = at90usb1286 -# endif -# OPT_DEFS += -DLFK_REV_$(LFK_REV) -# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\" diff --git a/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk b/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk index be27fed69c1..00581136058 100644 --- a/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk +++ b/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk @@ -7,34 +7,7 @@ NKRO_ENABLE = yes # BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # Disable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms - - -ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE -endif - -ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE -endif - - -# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired -# # -# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight -# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB -# # -# # Set to B, C or D -# LFK_REV = D - -# ifeq ($(LFK_REV), B) -# MCU = atmega32u4 -# else -# MCU = at90usb1286 -# endif -# OPT_DEFS += -DLFK_REV_$(LFK_REV) -# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\" diff --git a/keyboards/capsunlocked/cu75/post_rules.mk b/keyboards/capsunlocked/cu75/post_rules.mk new file mode 100644 index 00000000000..a5d97466643 --- /dev/null +++ b/keyboards/capsunlocked/cu75/post_rules.mk @@ -0,0 +1,23 @@ +ifeq ($(strip $(ISSI_ENABLE)), yes) + OPT_DEFS += -DISSI_ENABLE +endif + +ifeq ($(strip $(WATCHDOG_ENABLE)), yes) + OPT_DEFS += -DWATCHDOG_ENABLE +endif + +# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired +# # +# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight +# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB +# # +# # Set to B, C or D +# LFK_REV = D + +# ifeq ($(LFK_REV), B) +# MCU = atmega32u4 +# else +# MCU = at90usb1286 +# endif +# OPT_DEFS += -DLFK_REV_$(LFK_REV) +# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\" diff --git a/keyboards/capsunlocked/cu80/v2/ansi/ansi.c b/keyboards/capsunlocked/cu80/v2/ansi/ansi.c new file mode 100644 index 00000000000..99673881533 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/ansi/ansi.c @@ -0,0 +1,20 @@ +// Copyright 2021 CapsUnlocked +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { + { + {0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, + {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, + {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, + {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50}, + {63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75}, + {86, 85, 84, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, NO_LED, 77, 76} + }, { + {0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 13}, {212, 13}, {198, 13}, {184, 13}, {169, 13}, {155, 13}, {141, 13}, {127, 13}, {113, 13}, {99, 13}, {85, 13}, {71, 13}, {56, 13}, {42, 13}, {28, 13}, {14, 13}, {0, 13}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64} + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 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, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1 + } +}; +#endif diff --git a/keyboards/capsunlocked/cu80/v2/ansi/config.h b/keyboards/capsunlocked/cu80/v2/ansi/config.h new file mode 100644 index 00000000000..638c9a820ff --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/ansi/config.h @@ -0,0 +1,8 @@ +// Copyright 2021 CapsUnlocked +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_LED_COUNT 87 +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/keyboards/capsunlocked/cu80/v2_ansi/base/info.json b/keyboards/capsunlocked/cu80/v2/ansi/info.json similarity index 100% rename from keyboards/capsunlocked/cu80/v2_ansi/base/info.json rename to keyboards/capsunlocked/cu80/v2/ansi/info.json diff --git a/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c new file mode 100644 index 00000000000..5e13e10d153 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2021 CapsUnlocked + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + ) +}; diff --git a/keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/keymap.c b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/keymap.c new file mode 100644 index 00000000000..aeef5a12559 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 CapsUnlocked + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + ) +}; diff --git a/keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/rules.mk b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2/ansi/rules.mk b/keyboards/capsunlocked/cu80/v2/ansi/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/ansi/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/capsunlocked/cu80/v2/info.json b/keyboards/capsunlocked/cu80/v2/info.json new file mode 100644 index 00000000000..c21572be66f --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/info.json @@ -0,0 +1,265 @@ +{ + "manufacturer": "CapsUnlocked", + "maintainer": "rys / maz0r", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B3", "F4", "F5", "F6", "F7", "B6", "B5", "D7", "B4", "D6", "F0", "D1", "C6", "D4"], + "rows": ["D3", "D2", "B7", "F1", "C7", "D5"] + }, + "rgb_matrix": { + "driver": "ws2812", + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_color": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + } + }, + "url": "https://caps-unlocked.com/cu80-round-2/", + "usb": { + "device_version": "0.0.1", + "vid": "0x4355", + "no_startup_check": true + }, + "ws2812": { + "pin": "E6" + }, + "community_layouts": ["tkl_ansi", "tkl_iso"], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [2, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/capsunlocked/cu80/v2/iso/config.h b/keyboards/capsunlocked/cu80/v2/iso/config.h new file mode 100644 index 00000000000..28086d61954 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/iso/config.h @@ -0,0 +1,8 @@ +// Copyright 2021 CapsUnlocked +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_LED_COUNT 88 +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/keyboards/capsunlocked/cu80/v2/iso/info.json b/keyboards/capsunlocked/cu80/v2/iso/info.json new file mode 100644 index 00000000000..33d49db64ab --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/iso/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "CU80 v2 ISO", + "usb": { + "pid": "0x0083" + } +} diff --git a/keyboards/capsunlocked/cu80/v2/iso/iso.c b/keyboards/capsunlocked/cu80/v2/iso/iso.c new file mode 100644 index 00000000000..cdc588160ec --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/iso/iso.c @@ -0,0 +1,20 @@ +// Copyright 2021 CapsUnlocked +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { + { + {0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, + {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, + {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, + {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50}, + {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76}, + {87, 86, 85, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 83, 82, 81, 80, 79, NO_LED, 78, 77} + }, { + {0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 26}, {212, 26}, {198, 26}, {184, 26}, {169, 26}, {155, 26}, {141, 26}, {127, 26}, {113, 26}, {99, 26}, {85, 26}, {71, 26}, {56, 26}, {42, 26}, {28, 26}, {14, 26}, {0, 26}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {14, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64} + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 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, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1 + } +}; +#endif diff --git a/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c new file mode 100644 index 00000000000..cf5886f457c --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2021 CapsUnlocked + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_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_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_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 + ), + [1] = LAYOUT_tkl_iso( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + ) +}; diff --git a/keyboards/capsunlocked/cu80/v2/iso/keymaps/via/keymap.c b/keyboards/capsunlocked/cu80/v2/iso/keymaps/via/keymap.c new file mode 100644 index 00000000000..947a0bd97a4 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/iso/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 CapsUnlocked + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_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_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_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 + ), + [1] = LAYOUT_tkl_iso( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + ) +}; diff --git a/keyboards/capsunlocked/cu80/v2/iso/keymaps/via/rules.mk b/keyboards/capsunlocked/cu80/v2/iso/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/iso/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2/iso/rules.mk b/keyboards/capsunlocked/cu80/v2/iso/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/iso/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/capsunlocked/cu80/v2/v2.c b/keyboards/capsunlocked/cu80/v2/v2.c new file mode 100644 index 00000000000..e450082ba23 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2/v2.c @@ -0,0 +1,23 @@ +// Copyright 2021 CapsUnlocked +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" + +void matrix_init_kb(void) { + setPinOutput(E6); + matrix_init_user(); +} + +#ifdef RGB_MATRIX_ENABLE +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; +} +#endif diff --git a/keyboards/capsunlocked/cu80/v2_ansi/config.h b/keyboards/capsunlocked/cu80/v2_ansi/config.h deleted file mode 100644 index 3199b57da4a..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2021 CapsUnlocked - -This 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 LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* Define RGB */ -#define RGB_MATRIX_LED_COUNT 87 -#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/capsunlocked/cu80/v2_ansi/info.json b/keyboards/capsunlocked/cu80/v2_ansi/info.json deleted file mode 100644 index c9d4b889263..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/info.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "manufacturer": "CapsUnlocked", - "maintainer": "rys / maz0r", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "audio": false, - "backlight": false, - "bluetooth": false, - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": false, - "nkro": true, - "rgblight": true, - "sleep_led": false, - "unicode": false - }, - "matrix_pins": { - "cols": ["B0", "B1", "B2", "B3", "F4", "F5", "F6", "F7", "B6", "B5", "D7", "B4", "D6", "F0", "D1", "C6", "D4"], - "rows": ["D3", "D2", "B7", "F1", "C7", "D5"] - }, - "processor": "atmega32u4", - "rgblight": { - "animations": { - "alternating": false, - "breathing": false, - "christmas": false, - "knight": false, - "rainbow_mood": false, - "rainbow_swirl": false, - "rgb_test": false, - "snake": false, - "static_gradient": false, - "twinkle": false - }, - "brightness_steps": 8, - "hue_steps": 8, - "led_count": 87, - "max_brightness": 50, - "saturation_steps": 8 - }, - "ws2812": { - "pin": "E6" - }, - "url": "https://caps-unlocked.com/cu80-round-2/", - "usb": { - "device_version": "0.0.1", - "vid": "0x4355" - }, - "community_layouts": ["tkl_ansi"], - "layouts": { - "LAYOUT_tkl_ansi": { - "c_macro": true, - "filename": "keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.h", - "layout": [ - {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 12], "x": 13.75, "y": 5.5, "w": 1.25}, - - {"matrix": [5, 13], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - } - } -} diff --git a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c deleted file mode 100644 index ee81be6561f..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright 2021 CapsUnlocked - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_tkl_ansi( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_SPD, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD - ), -}; diff --git a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/readme.md b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/readme.md deleted file mode 100644 index 717c2c283a4..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# The default ANSI keymap for the CU80 - -This CU80 is keymap is for the fixed ANSI variant with fully populated bottom row. diff --git a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c deleted file mode 100644 index 5ee09fadace..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright 2021 CapsUnlocked - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_tkl_ansi( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_SPD, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD - ), - [2] = LAYOUT_tkl_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT_tkl_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/capsunlocked/cu80/v2_ansi/readme.md b/keyboards/capsunlocked/cu80/v2_ansi/readme.md deleted file mode 100644 index 4768917fc8c..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -# CU80 v2 ANSI - -The CU80 v2 ANSI is the PCB for round 2 of the CU80 TKL keyboard, with fixed layout ANSI and VIA support. - -To place the keyboard into bootloader mode in order to flash it, hold the ESC key while plugging the board in, or use the reset button on the back of the PCB. - -* Keyboard maintainer: [rys](https://github.com/rys) & [maz0r](https://github.com/maz0r) -* Hardware supported: [CU80 v2 ANSI](https://imgur.com/gOWpJqe) -* Hardware availability: [CapsUnlocked](https://caps-unlocked.com/cu80-round-2/) - -Make and flash example for this keyboard (after setting up your build environment): - - make capsunlocked/cu80/v2_ansi:default:flash - make capsunlocked/cu80/v2_ansi/rgb:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h b/keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h deleted file mode 100644 index 48a12c0cdcf..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -Copyright 2021 CapsUnlocked - -This 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 - -/* enable RGB matrix */ -#define CU80_RGB - -/* moved to RGB specific */ -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 -// 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 - -/* RGB firmware override */ -#undef RGBLIGHT_HUE_STEP -#undef RGBLIGHT_SAT_STEP -#undef RGBLIGHT_VAL_STEP diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rgb/info.json b/keyboards/capsunlocked/cu80/v2_ansi/rgb/info.json deleted file mode 100644 index 45b4b9c8cd3..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/rgb/info.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard_name": "CU80 v2 ANSI RGB", - "features": { - "rgblight": false - }, - "rgb_matrix": { - "driver": "WS2812" - }, - "usb": { - "pid": "0x0082" - } -} diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rgb/readme.md b/keyboards/capsunlocked/cu80/v2_ansi/rgb/readme.md deleted file mode 100644 index 0919483592d..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/rgb/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# CU80 v2 ANSI RGB - -Overrides \ No newline at end of file diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rgb/rules.mk b/keyboards/capsunlocked/cu80/v2_ansi/rgb/rules.mk deleted file mode 100644 index 9470477f49e..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/rgb/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -RGB_MATRIX_ENABLE = yes # Enable RGB matrix - -LTO_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rules.mk b/keyboards/capsunlocked/cu80/v2_ansi/rules.mk deleted file mode 100644 index e96dd72928a..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -NO_USB_STARTUP_CHECK = yes # resolve possible sleep issue - -DEFAULT_FOLDER = capsunlocked/cu80/v2_ansi/base diff --git a/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c b/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c deleted file mode 100644 index f014479ef8a..00000000000 --- a/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright 2021 CapsUnlocked - -This 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 CU80_RGB - -void matrix_init_kb(void) { - setPinOutput(E6); - matrix_init_user(); -} - -/* Set LED 62 (Caps Lock) and LED 14 (Scroll Lock) when key active */ -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 */ -led_config_t g_led_config = {{{0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50}, {63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75}, {86, 85, 84, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, NO_LED, 77, 76} - - }, - /*board layout accounting for led directions */ - {{0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 13}, {212, 13}, {198, 13}, {184, 13}, {169, 13}, {155, 13}, {141, 13}, {127, 13}, {113, 13}, {99, 13}, {85, 13}, {71, 13}, {56, 13}, {42, 13}, {28, 13}, {14, 13}, {0, 13}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, - {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64} - - }, - /* marks scroll and caps as function modifiers for led effects */ - {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 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, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1}}; -#endif diff --git a/keyboards/capsunlocked/cu80/v2_iso/base/info.json b/keyboards/capsunlocked/cu80/v2_iso/base/info.json deleted file mode 100644 index 636e6e22761..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/base/info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "keyboard_name": "CU80 v2 ISO", - "usb": { - "pid": "0x0080" - } -} diff --git a/keyboards/capsunlocked/cu80/v2_iso/config.h b/keyboards/capsunlocked/cu80/v2_iso/config.h deleted file mode 100644 index 167bf871f1c..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright 2021 CapsUnlocked - -This 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 LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* Define RGB */ -#define RGB_MATRIX_LED_COUNT 88 -#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/capsunlocked/cu80/v2_iso/info.json b/keyboards/capsunlocked/cu80/v2_iso/info.json deleted file mode 100644 index b7225214ba9..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/info.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "manufacturer": "CapsUnlocked", - "maintainer": "rys / maz0r", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "audio": false, - "backlight": false, - "bluetooth": false, - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": false, - "nkro": true, - "rgblight": true, - "sleep_led": false, - "unicode": false - }, - "matrix_pins": { - "cols": ["B0", "B1", "B2", "B3", "F4", "F5", "F6", "F7", "B6", "B5", "D7", "B4", "D6", "F0", "D1", "C6", "D4"], - "rows": ["D3", "D2", "B7", "F1", "C7", "D5"] - }, - "processor": "atmega32u4", - "rgblight": { - "animations": { - "alternating": false, - "breathing": false, - "christmas": false, - "knight": false, - "rainbow_mood": false, - "rainbow_swirl": false, - "rgb_test": false, - "snake": false, - "static_gradient": false, - "twinkle": false - }, - "brightness_steps": 8, - "hue_steps": 8, - "led_count": 88, - "max_brightness": 50, - "saturation_steps": 8 - }, - "ws2812": { - "pin": "E6" - }, - "url": "https://caps-unlocked.com/cu80-round-2/", - "usb": { - "device_version": "0.0.1", - "vid": "0x4355" - }, - "community_layouts": ["tkl_iso"], - "layouts": { - "LAYOUT_tkl_iso": { - "c_macro": true, - "filename": "keyboards/capsunlocked/cu80/v2_iso/v2_iso.h", - "layout": [ - {"matrix": [0, 0], "x": 0, "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.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - - {"matrix": [0, 10], "x": 11, "y": 0}, - {"matrix": [0, 11], "x": 12, "y": 0}, - {"matrix": [0, 12], "x": 13, "y": 0}, - {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [1, 9], "x": 9, "y": 1.5}, - {"matrix": [1, 10], "x": 10, "y": 1.5}, - {"matrix": [1, 11], "x": 11, "y": 1.5}, - {"matrix": [1, 12], "x": 12, "y": 1.5}, - {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, - - {"matrix": [1, 14], "x": 15.25, "y": 1.5}, - {"matrix": [1, 15], "x": 16.25, "y": 1.5}, - {"matrix": [1, 16], "x": 17.25, "y": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [2, 9], "x": 9.5, "y": 2.5}, - {"matrix": [2, 10], "x": 10.5, "y": 2.5}, - {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5}, - - {"matrix": [2, 14], "x": 15.25, "y": 2.5}, - {"matrix": [2, 15], "x": 16.25, "y": 2.5}, - {"matrix": [2, 16], "x": 17.25, "y": 2.5}, - - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [3, 9], "x": 9.75, "y": 3.5}, - {"matrix": [3, 10], "x": 10.75, "y": 3.5}, - {"matrix": [3, 11], "x": 11.75, "y": 3.5}, - {"matrix": [3, 12], "x": 12.75, "y": 3.5}, - {"matrix": [2, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, - - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.5}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [4, 9], "x": 9.25, "y": 4.5}, - {"matrix": [4, 10], "x": 10.25, "y": 4.5}, - {"matrix": [4, 11], "x": 11.25, "y": 4.5}, - {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, - - {"matrix": [4, 15], "x": 16.25, "y": 4.5}, - - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 11], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 12], "x": 13.75, "y": 5.5, "w": 1.25}, - - {"matrix": [5, 13], "x": 15.25, "y": 5.5}, - {"matrix": [5, 15], "x": 16.25, "y": 5.5}, - {"matrix": [5, 16], "x": 17.25, "y": 5.5} - ] - } - } -} diff --git a/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c deleted file mode 100644 index d42f3533a45..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright 2021 CapsUnlocked - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_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_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_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 - ), - [1] = LAYOUT_tkl_iso( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD - ), -}; diff --git a/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/readme.md b/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/readme.md deleted file mode 100644 index bf55002afea..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# The default ISO keymap for the CU80 - -This CU80 is keymap is for the fixed ISO variant with fully populated bottom row. diff --git a/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c b/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c deleted file mode 100644 index a72f451b3f9..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright 2021 CapsUnlocked - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_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_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_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 - ), - [1] = LAYOUT_tkl_iso( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD - ), - [2] = LAYOUT_tkl_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT_tkl_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/capsunlocked/cu80/v2_iso/readme.md b/keyboards/capsunlocked/cu80/v2_iso/readme.md deleted file mode 100644 index cf8c5fc6fa9..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -# CU80 v2 ISO - -The CU80 v2 ISO is the PCB for round 2 of the CU80 TKL keyboard, with fixed layout ISO and VIA support. - -To place the keyboard into bootloader mode in order to flash it, hold the ESC key while plugging the board in, or use the reset button on the back of the PCB. - -* Keyboard maintainer: [rys](https://github.com/rys) & [maz0r](https://github.com/maz0r) -* Hardware supported: [CU80 v2 ISO](https://imgur.com/yMZMt6j) -* Hardware availability: [CapsUnlocked](https://caps-unlocked.com/cu80-round-2/) - -Make and flash example for this keyboard (after setting up your build environment): - - make capsunlocked/cu80/v2_iso:default:flash - make capsunlocked/cu80/v2_iso/rgb:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/config.h b/keyboards/capsunlocked/cu80/v2_iso/rgb/config.h deleted file mode 100644 index db6ab832b41..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/rgb/config.h +++ /dev/null @@ -1,78 +0,0 @@ -/* -Copyright 2021 CapsUnlocked - -This 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 - -/* enable RGB matrix */ -#define CU80_RGB - -/* moved to RGB specific */ -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 -// 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 - -/* RGB firmware override */ -#undef RGBLIGHT_HUE_STEP -#undef RGBLIGHT_SAT_STEP -#undef RGBLIGHT_VAL_STEP diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/info.json b/keyboards/capsunlocked/cu80/v2_iso/rgb/info.json deleted file mode 100644 index 4f08f6116a7..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/rgb/info.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard_name": "CU80 v2 ISO RGB", - "features": { - "rgblight": false - }, - "rgb_matrix": { - "driver": "WS2812" - }, - "usb": { - "pid": "0x0083" - } -} diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/readme.md b/keyboards/capsunlocked/cu80/v2_iso/rgb/readme.md deleted file mode 100644 index c53bf740784..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/rgb/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# CU80 v2 ISO RGB - -Overrides \ No newline at end of file diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/rules.mk b/keyboards/capsunlocked/cu80/v2_iso/rgb/rules.mk deleted file mode 100644 index 9470477f49e..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/rgb/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -RGB_MATRIX_ENABLE = yes # Enable RGB matrix - -LTO_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2_iso/rules.mk b/keyboards/capsunlocked/cu80/v2_iso/rules.mk deleted file mode 100644 index c0feb353070..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -NO_USB_STARTUP_CHECK = yes # resolve possible sleep issue - -DEFAULT_FOLDER = capsunlocked/cu80/v2_iso/base diff --git a/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c b/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c deleted file mode 100644 index acb1d835aa0..00000000000 --- a/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright 2021 CapsUnlocked - -This 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 CU80_RGB - -void matrix_init_kb(void) { - setPinOutput(E6); - matrix_init_user(); -} - -/* Set LED 62 (Caps Lock) and LED 14 (Scroll Lock) when key active */ -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 */ -led_config_t g_led_config = {{{0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50}, {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76}, {87, 86, 85, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 83, 82, 81, 80, 79, NO_LED, 78, 77}}, - /*board layout accounting for led directions */ - {{0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 26}, {212, 26}, {198, 26}, {184, 26}, {169, 26}, {155, 26}, {141, 26}, {127, 26}, {113, 26}, {99, 26}, {85, 26}, {71, 26}, {56, 26}, {42, 26}, {28, 26}, {14, 26}, {0, 26}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {14, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64}}, - /* marks scroll and caps as function modifiers for led effects */ - {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 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, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1}}; -#endif diff --git a/keyboards/carbo65/rules.mk b/keyboards/carbo65/rules.mk index d6ed15acc72..d3ca7b060e1 100644 --- a/keyboards/carbo65/rules.mk +++ b/keyboards/carbo65/rules.mk @@ -1,7 +1,3 @@ -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Build Options # change yes to no to disable diff --git a/keyboards/catch22/config.h b/keyboards/catch22/config.h index 98e0780698c..fb1ac6044de 100644 --- a/keyboards/catch22/config.h +++ b/keyboards/catch22/config.h @@ -20,17 +20,3 @@ along with this program. If not, see . #define IS_COMMAND() ( \ false \ ) - -#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 RGBLED_NUM 6 -#endif diff --git a/keyboards/catch22/info.json b/keyboards/catch22/info.json index 6ffd3117afc..baaee6ca98f 100644 --- a/keyboards/catch22/info.json +++ b/keyboards/catch22/info.json @@ -6,6 +6,21 @@ "pid": "0xCA22", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/cest73/tkm/info.json b/keyboards/cest73/tkm/info.json index 028e028159d..6447189b936 100644 --- a/keyboards/cest73/tkm/info.json +++ b/keyboards/cest73/tkm/info.json @@ -15,6 +15,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "E6" }, "indicators": { diff --git a/keyboards/chalice/config.h b/keyboards/chalice/config.h index 6bbd5af9bf9..f53b6e90992 100644 --- a/keyboards/chalice/config.h +++ b/keyboards/chalice/config.h @@ -17,21 +17,6 @@ #pragma once -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 14 - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/chalice/info.json b/keyboards/chalice/info.json index 6b447c1fe64..8e6a6f2ed63 100644 --- a/keyboards/chalice/info.json +++ b/keyboards/chalice/info.json @@ -8,6 +8,22 @@ "pid": "0x000C", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/charue/sunsetter/rules.mk b/keyboards/charue/sunsetter/rules.mk index 0aeca0dd9f3..7f4f202a1b7 100644 --- a/keyboards/charue/sunsetter/rules.mk +++ b/keyboards/charue/sunsetter/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/charue/sunsetter_r2/config.h b/keyboards/charue/sunsetter_r2/config.h index 4ef27597b39..bb09fb145c7 100644 --- a/keyboards/charue/sunsetter_r2/config.h +++ b/keyboards/charue/sunsetter_r2/config.h @@ -3,19 +3,6 @@ #pragma once -/* RGB */ -# define RGBLED_NUM 10 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/charue/sunsetter_r2/info.json b/keyboards/charue/sunsetter_r2/info.json index 502609402f9..9bbc6a7f94d 100644 --- a/keyboards/charue/sunsetter_r2/info.json +++ b/keyboards/charue/sunsetter_r2/info.json @@ -8,6 +8,21 @@ "pid": "0x5335", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/checkerboards/axon40/config.h b/keyboards/checkerboards/axon40/config.h index 530fa064135..21d76ea1ac7 100644 --- a/keyboards/checkerboards/axon40/config.h +++ b/keyboards/checkerboards/axon40/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 29 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/checkerboards/axon40/info.json b/keyboards/checkerboards/axon40/info.json index 6b47a8f679d..f9097042808 100644 --- a/keyboards/checkerboards/axon40/info.json +++ b/keyboards/checkerboards/axon40/info.json @@ -8,6 +8,23 @@ "pid": "0x1119", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 29, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D7" }, diff --git a/keyboards/checkerboards/candybar_ortho/config.h b/keyboards/checkerboards/candybar_ortho/config.h index 0033db5d2bd..e9b1b6d1052 100644 --- a/keyboards/checkerboards/candybar_ortho/config.h +++ b/keyboards/checkerboards/candybar_ortho/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/checkerboards/candybar_ortho/info.json b/keyboards/checkerboards/candybar_ortho/info.json index 3369eee53d4..c91f0d924d6 100644 --- a/keyboards/checkerboards/candybar_ortho/info.json +++ b/keyboards/checkerboards/candybar_ortho/info.json @@ -8,6 +8,23 @@ "pid": "0x3215", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/checkerboards/nop60/config.h b/keyboards/checkerboards/nop60/config.h index 3c52543d253..9b8adff3ecf 100644 --- a/keyboards/checkerboards/nop60/config.h +++ b/keyboards/checkerboards/nop60/config.h @@ -17,24 +17,6 @@ Copyright 2021 Nathan Spears #pragma once -#define BACKLIGHT_PWM_DRIVER PWMD3 - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/checkerboards/nop60/info.json b/keyboards/checkerboards/nop60/info.json index 9f44cfd41fe..f59c70ac29c 100644 --- a/keyboards/checkerboards/nop60/info.json +++ b/keyboards/checkerboards/nop60/info.json @@ -14,10 +14,29 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D1", "levels": 6, "breathing": true }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/checkerboards/plexus75/config.h b/keyboards/checkerboards/plexus75/config.h index 50aa6985248..c71a85e7db8 100644 --- a/keyboards/checkerboards/plexus75/config.h +++ b/keyboards/checkerboards/plexus75/config.h @@ -36,19 +36,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/plexus75/info.json b/keyboards/checkerboards/plexus75/info.json index 30d8df7edbc..943262b885c 100644 --- a/keyboards/checkerboards/plexus75/info.json +++ b/keyboards/checkerboards/plexus75/info.json @@ -8,6 +8,24 @@ "pid": "0x5338", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/checkerboards/plexus75_he/config.h b/keyboards/checkerboards/plexus75_he/config.h index bfa58783835..21d76ea1ac7 100644 --- a/keyboards/checkerboards/plexus75_he/config.h +++ b/keyboards/checkerboards/plexus75_he/config.h @@ -21,19 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 18 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/plexus75_he/info.json b/keyboards/checkerboards/plexus75_he/info.json index fc1dfc9fd5f..d9817cbbe13 100644 --- a/keyboards/checkerboards/plexus75_he/info.json +++ b/keyboards/checkerboards/plexus75_he/info.json @@ -8,6 +8,24 @@ "pid": "0x5339", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/checkerboards/pursuit40/config.h b/keyboards/checkerboards/pursuit40/config.h index 6fe6785edb0..4552a750928 100644 --- a/keyboards/checkerboards/pursuit40/config.h +++ b/keyboards/checkerboards/pursuit40/config.h @@ -37,19 +37,3 @@ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/pursuit40/info.json b/keyboards/checkerboards/pursuit40/info.json index 0f4394b87fa..f7a0be79e33 100644 --- a/keyboards/checkerboards/pursuit40/info.json +++ b/keyboards/checkerboards/pursuit40/info.json @@ -8,6 +8,24 @@ "pid": "0x1620", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/checkerboards/quark/config.h b/keyboards/checkerboards/quark/config.h index efa8f93d3eb..876e59daa07 100644 --- a/keyboards/checkerboards/quark/config.h +++ b/keyboards/checkerboards/quark/config.h @@ -21,19 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/quark/info.json b/keyboards/checkerboards/quark/info.json index 262cd6e60cc..ca844603484 100644 --- a/keyboards/checkerboards/quark/info.json +++ b/keyboards/checkerboards/quark/info.json @@ -8,6 +8,24 @@ "pid": "0x5340", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/checkerboards/quark_lp/config.h b/keyboards/checkerboards/quark_lp/config.h index 75345075e75..ca124775d72 100644 --- a/keyboards/checkerboards/quark_lp/config.h +++ b/keyboards/checkerboards/quark_lp/config.h @@ -22,17 +22,11 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAPPING_TOGGLE 2 - #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 51 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 125 // limits maximum brightness of LEDs to 125 out of 255. Higher may cause the controller to crash. -#define RGB_MATRIX_HUE_STEP 8 -#define RGB_MATRIX_SAT_STEP 8 -#define RGB_MATRIX_VAL_STEP 8 -#define RGB_MATRIX_SPD_STEP 10 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/checkerboards/quark_lp/info.json b/keyboards/checkerboards/quark_lp/info.json index 264bddad129..9712b63a389 100644 --- a/keyboards/checkerboards/quark_lp/info.json +++ b/keyboards/checkerboards/quark_lp/info.json @@ -12,7 +12,10 @@ "pin": "C2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "matrix_pins": { "cols": ["B6", "B5", "B4", "B3", "B0", "D6", "D5", "D4", "D3", "D2", "D1", "D0"], @@ -21,6 +24,9 @@ "diode_direction": "COL2ROW", "processor": "atmega32u2", "bootloader": "atmel-dfu", + "tapping": { + "toggle": 2 + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [ diff --git a/keyboards/checkerboards/quark_plus/config.h b/keyboards/checkerboards/quark_plus/config.h index 4136faaa7ae..07fe2e4c7b8 100644 --- a/keyboards/checkerboards/quark_plus/config.h +++ b/keyboards/checkerboards/quark_plus/config.h @@ -21,19 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/quark_plus/info.json b/keyboards/checkerboards/quark_plus/info.json index 0d47ec2ec47..dc5bc478ca4 100644 --- a/keyboards/checkerboards/quark_plus/info.json +++ b/keyboards/checkerboards/quark_plus/info.json @@ -8,6 +8,24 @@ "pid": "0x5344", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C5" }, @@ -25,6 +43,7 @@ ] }, "backlight": { + "driver": "timer", "pin": "C4", "levels": 6, "breathing": true diff --git a/keyboards/checkerboards/quark_squared/config.h b/keyboards/checkerboards/quark_squared/config.h index 514ce68f3f0..21d76ea1ac7 100644 --- a/keyboards/checkerboards/quark_squared/config.h +++ b/keyboards/checkerboards/quark_squared/config.h @@ -21,19 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/quark_squared/info.json b/keyboards/checkerboards/quark_squared/info.json index bd6233b2086..a47253d5b4a 100644 --- a/keyboards/checkerboards/quark_squared/info.json +++ b/keyboards/checkerboards/quark_squared/info.json @@ -8,6 +8,24 @@ "pid": "0x5342", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/checkerboards/snop60/config.h b/keyboards/checkerboards/snop60/config.h index d11757cc15e..e335720fd1e 100644 --- a/keyboards/checkerboards/snop60/config.h +++ b/keyboards/checkerboards/snop60/config.h @@ -17,22 +17,6 @@ Copyright 2022 Nathan Spears #pragma once -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/checkerboards/snop60/info.json b/keyboards/checkerboards/snop60/info.json index 94d40e6645b..f88186faddc 100644 --- a/keyboards/checkerboards/snop60/info.json +++ b/keyboards/checkerboards/snop60/info.json @@ -19,10 +19,29 @@ ] }, "backlight": { + "driver": "timer", "pin": "D1", "levels": 6, "breathing": true }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/checkerboards/ud40_ortho_alt/config.h b/keyboards/checkerboards/ud40_ortho_alt/config.h index 788fbe39a99..21d76ea1ac7 100644 --- a/keyboards/checkerboards/ud40_ortho_alt/config.h +++ b/keyboards/checkerboards/ud40_ortho_alt/config.h @@ -21,19 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/ud40_ortho_alt/info.json b/keyboards/checkerboards/ud40_ortho_alt/info.json index 7d49bdb5b45..c47c2c4c6bf 100644 --- a/keyboards/checkerboards/ud40_ortho_alt/info.json +++ b/keyboards/checkerboards/ud40_ortho_alt/info.json @@ -8,6 +8,24 @@ "pid": "0x7030", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/cherrybstudio/cb1800/config.h b/keyboards/cherrybstudio/cb1800/config.h deleted file mode 100644 index 21aeb17d77d..00000000000 --- a/keyboards/cherrybstudio/cb1800/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/cherrybstudio/cb1800/info.json b/keyboards/cherrybstudio/cb1800/info.json index 1b2fadd2a9c..e6819d40ee3 100644 --- a/keyboards/cherrybstudio/cb1800/info.json +++ b/keyboards/cherrybstudio/cb1800/info.json @@ -19,6 +19,23 @@ "scroll_lock": "F7", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/cherrybstudio/cb65/config.h b/keyboards/cherrybstudio/cb65/config.h deleted file mode 100644 index e463e1d6c70..00000000000 --- a/keyboards/cherrybstudio/cb65/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB Lighting */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/cherrybstudio/cb65/info.json b/keyboards/cherrybstudio/cb65/info.json index 37038b214fd..841dae6103d 100644 --- a/keyboards/cherrybstudio/cb65/info.json +++ b/keyboards/cherrybstudio/cb65/info.json @@ -18,6 +18,23 @@ "scroll_lock": "F4", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/cherrybstudio/cb87/config.h b/keyboards/cherrybstudio/cb87/config.h deleted file mode 100644 index ddb9102d365..00000000000 --- a/keyboards/cherrybstudio/cb87/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 22 /* 16 Bottom 6 top*/ -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/cherrybstudio/cb87/info.json b/keyboards/cherrybstudio/cb87/info.json index ac32d5f8eab..228cc030bbe 100644 --- a/keyboards/cherrybstudio/cb87/info.json +++ b/keyboards/cherrybstudio/cb87/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "B6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/cherrybstudio/cb87rgb/info.json b/keyboards/cherrybstudio/cb87rgb/info.json index 93eed315241..eefa7e73f0a 100644 --- a/keyboards/cherrybstudio/cb87rgb/info.json +++ b/keyboards/cherrybstudio/cb87rgb/info.json @@ -12,7 +12,7 @@ "pin": "E6" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "F5", "C6", "C7", "F7"], diff --git a/keyboards/cherrybstudio/cb87v2/config.h b/keyboards/cherrybstudio/cb87v2/config.h deleted file mode 100644 index 4c66b113e7b..00000000000 --- a/keyboards/cherrybstudio/cb87v2/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/cherrybstudio/cb87v2/info.json b/keyboards/cherrybstudio/cb87v2/info.json index 8c35532c321..1023cac5d18 100644 --- a/keyboards/cherrybstudio/cb87v2/info.json +++ b/keyboards/cherrybstudio/cb87v2/info.json @@ -21,6 +21,23 @@ "scroll_lock": "F4", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/cheshire/curiosity/config.h b/keyboards/cheshire/curiosity/config.h index 71b01464378..2687b628f58 100644 --- a/keyboards/cheshire/curiosity/config.h +++ b/keyboards/cheshire/curiosity/config.h @@ -17,19 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 14 - -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/cheshire/curiosity/info.json b/keyboards/cheshire/curiosity/info.json index fa8180e5af1..678305ae329 100644 --- a/keyboards/cheshire/curiosity/info.json +++ b/keyboards/cheshire/curiosity/info.json @@ -7,6 +7,21 @@ "pid": "0x0FAD", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/chlx/str_merro60/config.h b/keyboards/chlx/str_merro60/config.h index 62b31cf95bf..763f2a4d5cc 100644 --- a/keyboards/chlx/str_merro60/config.h +++ b/keyboards/chlx/str_merro60/config.h @@ -17,23 +17,7 @@ along with this program. If not, see . #pragma once -# 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_SWIRL + 5 -# define RGBLED_NUM 12 -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/chlx/str_merro60/info.json b/keyboards/chlx/str_merro60/info.json index add2f077fee..89fdd4baa12 100644 --- a/keyboards/chlx/str_merro60/info.json +++ b/keyboards/chlx/str_merro60/info.json @@ -8,6 +8,24 @@ "pid": "0x0602", "device_version": "1.0.0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/chosfox/cf81/cf81.c b/keyboards/chosfox/cf81/cf81.c new file mode 100644 index 00000000000..ab8afd0c636 --- /dev/null +++ b/keyboards/chosfox/cf81/cf81.c @@ -0,0 +1,188 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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" + +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, D_2, E_2, F_2}, + + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, A_15, B_15, C_15}, + {0, G_13, H_13, I_13}, + {1, D_3, E_3, F_3}, + + {0, J_1, K_1, L_1}, + {0, A_16, B_16, C_16}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, D_7, E_7, F_7}, + + + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + + {0, D_15, E_15, F_15}, + {1, D_6, E_6, F_6}, + {1, D_5, E_5, F_5}, + + + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + {1, G_4, H_4, I_4}, + {1, G_5, H_5, I_5}, + {1, G_6, H_6, I_6}, + {1, G_7, H_7, I_7}, + {1, G_8, H_8, I_8}, + {1, G_9, H_9, I_9}, + {1, G_10, H_10, I_10}, + {1, G_11, H_11, I_11}, + + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + {1, J_4, K_4, L_4}, + {1, J_5, K_5, L_5}, + {1, J_6, K_6, L_6}, + {1, J_7, K_7, L_7}, + {1, J_8, K_8, L_8}, + {1, J_9, K_9, L_9}, + {1, J_10, K_10, L_10}, + {1, J_11, K_11, L_11}, +}; +// clang-format on +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(44, 255, 255, 255); + } + if (keymap_config.no_gui) { + RGB_MATRIX_INDICATOR_SET_COLOR(74, 255, 255, 255); + } + return true; +} + +#endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { +#ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; +#endif + default: + return true; + } +} diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h new file mode 100644 index 00000000000..b1ea8bba200 --- /dev/null +++ b/keyboards/chosfox/cf81/config.h @@ -0,0 +1,52 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 + +/* Use 4 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 + +/* 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define DRIVER_1_LED_TOTAL 63 +#define DRIVER_2_LED_TOTAL 20 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + 22) + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/chosfox/cf81/halconf.h b/keyboards/chosfox/cf81/halconf.h new file mode 100644 index 00000000000..2f64e65393a --- /dev/null +++ b/keyboards/chosfox/cf81/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/chosfox/cf81/info.json b/keyboards/chosfox/cf81/info.json new file mode 100644 index 00000000000..827347f41e3 --- /dev/null +++ b/keyboards/chosfox/cf81/info.json @@ -0,0 +1,270 @@ +{ + "keyboard_name": "CHOSFOX CF81", + "manufacturer": "CHOSFOX", + "maintainer": "jonylee@hfd", + "usb": { + "force_nkro": true, + "vid": "0xFFFE", + "pid": "0x0012", + "device_version": "1.0.0", + "suspend_wakeup_delay": 400 + }, + "eeprom": { + "driver": "wear_leveling" + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "encoder": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4","C5","B0","B1","B2"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + { "pin_a": "B14", "pin_b": "B13" } + ] + }, + "rgb_matrix": { + "driver": "is31fl3733", + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "max_brightness": 200, + "val_steps": 20, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 14, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 29, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 44, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 59, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 74, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 89, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x":104, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x":119, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x":134, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x":149, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x":164, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x":179, "y": 0 }, + { "flags": 4, "matrix": [0, 13], "x":196, "y": 0 }, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 12}, + { "flags": 4, "matrix": [1, 1], "x": 14, "y": 12}, + { "flags": 4, "matrix": [1, 2], "x": 28, "y": 12}, + { "flags": 4, "matrix": [1, 3], "x": 42, "y": 12}, + { "flags": 4, "matrix": [1, 4], "x": 56, "y": 12}, + { "flags": 4, "matrix": [1, 5], "x": 70, "y": 12}, + { "flags": 4, "matrix": [1, 6], "x": 84, "y": 12}, + { "flags": 4, "matrix": [1, 7], "x": 98, "y": 12}, + { "flags": 4, "matrix": [1, 8], "x":112, "y": 12}, + { "flags": 4, "matrix": [1, 9], "x":126, "y": 12}, + { "flags": 4, "matrix": [1, 10], "x":140, "y": 12}, + { "flags": 4, "matrix": [1, 11], "x":154, "y": 12}, + { "flags": 4, "matrix": [1, 12], "x":168, "y": 12}, + { "flags": 4, "matrix": [1, 13], "x":182, "y": 12}, + { "flags": 4, "matrix": [1, 15], "x":224, "y": 12}, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 25}, + { "flags": 4, "matrix": [2, 1], "x": 14, "y": 25}, + { "flags": 4, "matrix": [2, 2], "x": 28, "y": 25}, + { "flags": 4, "matrix": [2, 3], "x": 42, "y": 25}, + { "flags": 4, "matrix": [2, 4], "x": 56, "y": 25}, + { "flags": 4, "matrix": [2, 5], "x": 70, "y": 25}, + { "flags": 4, "matrix": [2, 6], "x": 84, "y": 25}, + { "flags": 4, "matrix": [2, 7], "x": 98, "y": 25}, + { "flags": 4, "matrix": [2, 8], "x":112, "y": 25}, + { "flags": 4, "matrix": [2, 9], "x":126, "y": 25}, + { "flags": 4, "matrix": [2, 10], "x":140, "y": 25}, + { "flags": 4, "matrix": [2, 11], "x":154, "y": 25}, + { "flags": 4, "matrix": [2, 12], "x":168, "y": 25}, + { "flags": 4, "matrix": [2, 13], "x":182, "y": 25}, + { "flags": 4, "matrix": [2, 15], "x":224, "y": 25}, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38}, + { "flags": 4, "matrix": [3, 1], "x": 28, "y": 38}, + { "flags": 4, "matrix": [3, 2], "x": 42, "y": 38}, + { "flags": 4, "matrix": [3, 3], "x": 56, "y": 38}, + { "flags": 4, "matrix": [3, 4], "x": 70, "y": 38}, + { "flags": 4, "matrix": [3, 5], "x": 84, "y": 38}, + { "flags": 4, "matrix": [3, 6], "x": 98, "y": 38}, + { "flags": 4, "matrix": [3, 7], "x":112, "y": 38}, + { "flags": 4, "matrix": [3, 8], "x":126, "y": 38}, + { "flags": 4, "matrix": [3, 9], "x":140, "y": 38}, + { "flags": 4, "matrix": [3, 10], "x":154, "y": 38}, + { "flags": 4, "matrix": [3, 11], "x":168, "y": 38}, + { "flags": 4, "matrix": [3, 12], "x":182, "y": 38}, + { "flags": 4, "matrix": [3, 13], "x":196, "y": 38}, + { "flags": 4, "matrix": [3, 15], "x":224, "y": 38}, + + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 51}, + { "flags": 4, "matrix": [4, 11], "x": 14, "y": 51}, + { "flags": 4, "matrix": [4, 1], "x": 28, "y": 51}, + { "flags": 4, "matrix": [4, 2], "x": 37, "y": 51}, + { "flags": 4, "matrix": [4, 3], "x": 56, "y": 51}, + { "flags": 4, "matrix": [4, 4], "x": 74, "y": 51}, + { "flags": 4, "matrix": [4, 5], "x": 93, "y": 51}, + { "flags": 4, "matrix": [4, 6], "x":112, "y": 51}, + { "flags": 4, "matrix": [4, 7], "x":130, "y": 51}, + { "flags": 4, "matrix": [4, 8], "x":149, "y": 51}, + { "flags": 4, "matrix": [4, 9], "x":168, "y": 51}, + { "flags": 4, "matrix": [4, 10], "x":186, "y": 51}, + { "flags": 4, "matrix": [4, 13], "x":200, "y": 51}, + { "flags": 4, "matrix": [4, 14], "x":214, "y": 51}, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64}, + { "flags": 4, "matrix": [5, 1], "x": 18, "y": 64}, + { "flags": 4, "matrix": [5, 2], "x": 37, "y": 64}, + { "flags": 4, "matrix": [5, 5], "x": 92, "y": 64}, + { "flags": 4, "matrix": [5, 9], "x":140, "y": 64}, + { "flags": 4, "matrix": [5, 10], "x":154, "y": 64}, + { "flags": 4, "matrix": [5, 11], "x":168, "y": 64}, + { "flags": 4, "matrix": [5, 13], "x":196, "y": 64}, + { "flags": 4, "matrix": [5, 14], "x":210, "y": 64}, + { "flags": 4, "matrix": [5, 15], "x":224, "y": 64}, + + { "flags": 2, "x":0, "y":0}, + { "flags": 2, "x":0, "y":6}, + { "flags": 2, "x":0, "y":13}, + { "flags": 2, "x":0, "y":19}, + { "flags": 2, "x":0, "y":25}, + { "flags": 2, "x":0, "y":32}, + { "flags": 2, "x":0, "y":38}, + { "flags": 2, "x":0, "y":45}, + { "flags": 2, "x":0, "y":51}, + { "flags": 2, "x":0, "y":57}, + { "flags": 2, "x":0, "y":64}, + + { "flags": 2, "x":224, "y":0}, + { "flags": 2, "x":224, "y":6}, + { "flags": 2, "x":224, "y":13}, + { "flags": 2, "x":224, "y":19}, + { "flags": 2, "x":224, "y":25}, + { "flags": 2, "x":224, "y":32}, + { "flags": 2, "x":224, "y":38}, + { "flags": 2, "x":224, "y":45}, + { "flags": 2, "x":224, "y":51}, + { "flags": 2, "x":224, "y":57}, + { "flags": 2, "x":224, "y":64} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "label": "Del", "matrix": [0, 13], "x": 14, "y": 0 }, + { "label": "Mute", "matrix": [0, 15], "x": 15.5, "y": 0 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Bksp", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 15.5, "y": 1.25 }, + + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "label": "PageUp", "matrix": [2, 15], "x": 15.5, "y": 2.25 }, + + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 12], "x": 12.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "w": 1.25, "x": 13.75, "y": 3.25 }, + { "label": "PageDn", "matrix": [3, 15], "x": 15.5, "y": 3.25 }, + + { "label": "Shift", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "label": ":", "matrix": [4, 11], "x": 1.25, "y": 4.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.5 }, + + { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "label": "Space", "matrix": [5, 5], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25 }, + { "label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25 }, + { "label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25 }, + { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.5 }, + { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.5 }, + { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/chosfox/cf81/keymaps/default/keymap.c b/keyboards/chosfox/cf81/keymaps/default/keymap.c new file mode 100644 index 00000000000..030ef2e2c14 --- /dev/null +++ b/keyboards/chosfox/cf81/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_FN, + MAC_B, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, + _______, _______,DF(MAC_B),_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, EE_CLR, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUD), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( /* FN */ + _______, 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, + _______,DF(WIN_B),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, EE_CLR, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUD) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) } +}; +#endif + diff --git a/keyboards/chosfox/cf81/keymaps/default/rules.mk b/keyboards/chosfox/cf81/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/chosfox/cf81/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/chosfox/cf81/keymaps/via/keymap.c b/keyboards/chosfox/cf81/keymaps/via/keymap.c new file mode 100644 index 00000000000..030ef2e2c14 --- /dev/null +++ b/keyboards/chosfox/cf81/keymaps/via/keymap.c @@ -0,0 +1,71 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_FN, + MAC_B, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, + _______, _______,DF(MAC_B),_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, EE_CLR, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUD), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( /* FN */ + _______, 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, + _______,DF(WIN_B),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, EE_CLR, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUD) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) } +}; +#endif + diff --git a/keyboards/chosfox/cf81/keymaps/via/rules.mk b/keyboards/chosfox/cf81/keymaps/via/rules.mk new file mode 100644 index 00000000000..f1adcab005e --- /dev/null +++ b/keyboards/chosfox/cf81/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/chosfox/cf81/mcuconf.h b/keyboards/chosfox/cf81/mcuconf.h new file mode 100644 index 00000000000..e2884f3828f --- /dev/null +++ b/keyboards/chosfox/cf81/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/chosfox/cf81/readme.md b/keyboards/chosfox/cf81/readme.md new file mode 100644 index 00000000000..06522836fd8 --- /dev/null +++ b/keyboards/chosfox/cf81/readme.md @@ -0,0 +1,19 @@ +# CHOSFOX CF81 keyboard + +A customizable 75% encoder keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: CF81 +* Hardware Availability: [CHOSFOX](https://chosfox.com/) + +Make example for this keyboard (after setting up your build environment): + + make chosfox/cf81:default + +Flashing example for this keyboard: + + make chosfox/cf81:default:flash + +**Reset Key**: Hold down the key located at *K00*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/chosfox/cf81/rules.mk b/keyboards/chosfox/cf81/rules.mk new file mode 100644 index 00000000000..002458405ee --- /dev/null +++ b/keyboards/chosfox/cf81/rules.mk @@ -0,0 +1 @@ +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/chouchou/config.h b/keyboards/chouchou/config.h new file mode 100644 index 00000000000..405bd8b5ff4 --- /dev/null +++ b/keyboards/chouchou/config.h @@ -0,0 +1,7 @@ +// Copyright 2023 Dane Lipscombe (@dlip) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/chouchou/info.json b/keyboards/chouchou/info.json new file mode 100644 index 00000000000..726f190aab1 --- /dev/null +++ b/keyboards/chouchou/info.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "dlip", + "keyboard_name": "chouchou", + "maintainer": "dlip", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP26", "GP27", "GP28", "GP29"] + ] + }, + "processor": "RP2040", + "url": "https://github.com/dlip/chouchou", + "usb": { + "device_version": "1.0.0", + "pid": "0x0117", + "vid": "0xFABE" + }, + "layouts": { + "LAYOUT_split_2x4_2": { + "layout": [ + {"matrix": [0, 16], "x": 0, "y": 0.88}, + {"matrix": [0, 17], "x": 1, "y": 0.38}, + {"matrix": [0, 18], "x": 2, "y": 0}, + {"matrix": [0, 19], "x": 3, "y": 0.38}, + {"matrix": [0, 0], "x": 4, "y": 0.38}, + {"matrix": [0, 1], "x": 5, "y": 0}, + {"matrix": [0, 2], "x": 6, "y": 0.38}, + {"matrix": [0, 3], "x": 7, "y": 0.88}, + {"matrix": [0, 12], "x": 0, "y": 1.88}, + {"matrix": [0, 13], "x": 1, "y": 1.38}, + {"matrix": [0, 14], "x": 2, "y": 1}, + {"matrix": [0, 15], "x": 3, "y": 1.38}, + {"matrix": [0, 4], "x": 4, "y": 1.38}, + {"matrix": [0, 5], "x": 5, "y": 1}, + {"matrix": [0, 6], "x": 6, "y": 1.38}, + {"matrix": [0, 7], "x": 7, "y": 1.88}, + {"matrix": [0, 11], "x": 2, "y": 2.38}, + {"matrix": [0, 10], "x": 3, "y": 2.5}, + {"matrix": [0, 9], "x": 4, "y": 2.5}, + {"matrix": [0, 8], "x": 5, "y": 2.38} + ] + } + } +} diff --git a/keyboards/chouchou/keymaps/default/keymap.c b/keyboards/chouchou/keymaps/default/keymap.c new file mode 100644 index 00000000000..7a20b6e2159 --- /dev/null +++ b/keyboards/chouchou/keymaps/default/keymap.c @@ -0,0 +1,11 @@ +// Copyright 2023 Dane Lipscombe (@dlip) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_2x4_2( + KC_A, KC_B, KC_C, KC_D, KC_N, KC_M, KC_L, KC_K, + KC_E, KC_F, KC_G, KC_H, KC_R, KC_Q, KC_P, KC_O, + KC_I, KC_J, KC_T, KC_S + ), +}; diff --git a/keyboards/chouchou/readme.md b/keyboards/chouchou/readme.md new file mode 100644 index 00000000000..dcd0c903141 --- /dev/null +++ b/keyboards/chouchou/readme.md @@ -0,0 +1,26 @@ +# Chouchou + +![Chouchou](https://i.imgur.com/BYk2n5Ch.jpeg) + +Chouchou (Japanese for butterfly) is a minimalist unibody keyboard designed to be used with the [Taipo](https://inkeys.wiki/en/keymaps/taipo) layout. + +- [Github repo](https://github.com/dlip/chouchou) +- Keyboard Maintainer: [Dane Lipscombe](https://github.com/dlip) + +Make example for this keyboard (after setting up your build environment): + + make chouchou:default + +Flashing example for this keyboard: + + make chouchou:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/capsunlocked/cu80/v2_iso/base/rules.mk b/keyboards/chouchou/rules.mk similarity index 100% rename from keyboards/capsunlocked/cu80/v2_iso/base/rules.mk rename to keyboards/chouchou/rules.mk diff --git a/keyboards/chromatonemini/info.json b/keyboards/chromatonemini/info.json index e6f43331339..3dd10d7381c 100644 --- a/keyboards/chromatonemini/info.json +++ b/keyboards/chromatonemini/info.json @@ -21,7 +21,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "diode_direction": "COL2ROW", "matrix_pins": { diff --git a/keyboards/churrosoft/deck8/info.json b/keyboards/churrosoft/deck8/info.json new file mode 100644 index 00000000000..00fc2d1bad7 --- /dev/null +++ b/keyboards/churrosoft/deck8/info.json @@ -0,0 +1,43 @@ +{ + "keyboard_name": "Deck-8", + "manufacturer": "Churrosoft", + "url": "https://churrosoft.ar/deck", + "maintainer": "Polsaker", + "usb": { + "vid": "0xCBBC", + "device_version": "1.0.0" + }, + "build": { + "lto": true + }, + "features": { + "bootmagic": true, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + + }, + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "direct": [ + ["GP15", "GP18", "GP22", "GP24"], + ["GP13", "GP11", "GP0", "GP2"] + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0, "matrix": [0, 0]}, + {"x":1, "y":0, "matrix": [0, 1]}, + {"x":2, "y":0, "matrix": [0, 2]}, + {"x":3, "y":0, "matrix": [0, 3]}, + {"x":0, "y":1, "matrix": [1, 0]}, + {"x":1, "y":1, "matrix": [1, 1]}, + {"x":2, "y":1, "matrix": [1, 2]}, + {"x":3, "y":1, "matrix": [1, 3]} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/churrosoft/deck8/keymaps/default/keymap.c b/keyboards/churrosoft/deck8/keymaps/default/keymap.c new file mode 100644 index 00000000000..cc1bcea1097 --- /dev/null +++ b/keyboards/churrosoft/deck8/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2023 Churrosoft +* +* This 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( + MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D), + MEH(KC_E), MEH(KC_F), MEH(KC_G), MEH(KC_H) + ) +}; \ No newline at end of file diff --git a/keyboards/churrosoft/deck8/keymaps/via/keymap.c b/keyboards/churrosoft/deck8/keymaps/via/keymap.c new file mode 100644 index 00000000000..2a1b10d442b --- /dev/null +++ b/keyboards/churrosoft/deck8/keymaps/via/keymap.c @@ -0,0 +1,24 @@ +/* Copyright 2023 Churrosoft +* +* This 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( + MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D), + MEH(KC_E), MEH(KC_F), MEH(KC_G), MEH(KC_H) + ) +}; \ No newline at end of file diff --git a/keyboards/churrosoft/deck8/keymaps/via/rules.mk b/keyboards/churrosoft/deck8/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/churrosoft/deck8/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/churrosoft/deck8/noleds/info.json b/keyboards/churrosoft/deck8/noleds/info.json new file mode 100644 index 00000000000..fa1e2a420d8 --- /dev/null +++ b/keyboards/churrosoft/deck8/noleds/info.json @@ -0,0 +1,5 @@ +{ + "usb": { + "pid": "0xC100" + } +} \ No newline at end of file diff --git a/keyboards/churrosoft/deck8/noleds/readme.md b/keyboards/churrosoft/deck8/noleds/readme.md new file mode 100644 index 00000000000..c4e8d70c810 --- /dev/null +++ b/keyboards/churrosoft/deck8/noleds/readme.md @@ -0,0 +1,27 @@ +# Churrosoft Deck-8 (No LEDs version) + +![ChurroDeck-8](https://i.imgur.com/NNmq8hzh.png) + +A small 8-key macropad + +* Keyboard Maintainer: [Polsaker](https://github.com/Polsaker) +* Hardware Supported: ChurroDeck PCV rev. 1b, 1c and 1d +* Hardware Availability: [churrosoft.ar](https://churrosoft.ar/deck) + +Make example for this keyboard (after setting up your build environment): + + make churrosoft/deck8/noleds:default + +Flashing example for this keyboard: + + make churrosoft/deck8/noleds:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical reset button**: Short the `JP1` jumper in the back side of the PCB. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/churrosoft/deck8/noleds/rules.mk b/keyboards/churrosoft/deck8/noleds/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/churrosoft/deck8/noleds/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/churrosoft/deck8/rgb/config.h b/keyboards/churrosoft/deck8/rgb/config.h new file mode 100644 index 00000000000..2454c42fbab --- /dev/null +++ b/keyboards/churrosoft/deck8/rgb/config.h @@ -0,0 +1,74 @@ +/* Copyright 2023 Churrosoft +* +* This 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 RGB_MATRIX_LED_COUNT 8 +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR +#define RGB_MATRIX_DEFAULT_HUE 152 +#define RGB_MATRIX_DEFAULT_SAT 232 +#define RGB_MATRIX_DEFAULT_VAL 180 +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +#define ENABLE_RGB_MATRIX_SOLID_COLOR +#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 diff --git a/keyboards/churrosoft/deck8/rgb/info.json b/keyboards/churrosoft/deck8/rgb/info.json new file mode 100644 index 00000000000..546c17ca13d --- /dev/null +++ b/keyboards/churrosoft/deck8/rgb/info.json @@ -0,0 +1,27 @@ +{ + "keyboard_name": "Deck-8 RGB", + "usb": { + "pid": "0xC101" + }, + "ws2812": { + "pin": "GP17", + "driver": "vendor" + }, + "features": { + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 200, + "layout": [ + {"flags": 4, "matrix": [0, 0], "x": 45, "y": 21}, + {"flags": 4, "matrix": [0, 1], "x": 90, "y": 21}, + {"flags": 4, "matrix": [0, 2], "x": 135, "y": 21}, + {"flags": 4, "matrix": [0, 3], "x": 180, "y": 21}, + {"flags": 4, "matrix": [1, 0], "x": 45, "y": 42}, + {"flags": 4, "matrix": [1, 1], "x": 90, "y": 42}, + {"flags": 4, "matrix": [1, 2], "x": 135, "y": 42}, + {"flags": 4, "matrix": [1, 3], "x": 180, "y": 42} + ] + } +} \ No newline at end of file diff --git a/keyboards/churrosoft/deck8/rgb/readme.md b/keyboards/churrosoft/deck8/rgb/readme.md new file mode 100644 index 00000000000..87fe400c243 --- /dev/null +++ b/keyboards/churrosoft/deck8/rgb/readme.md @@ -0,0 +1,27 @@ +# Churrosoft Deck-8 (RGB Version) + +![ChurroDeck-8](https://i.imgur.com/NNmq8hzh.png) + +A small 8-key macropad with RGB + +* Keyboard Maintainer: [Polsaker](https://github.com/Polsaker) +* Hardware Supported: ChurroDeck PCV rev. 1b, 1c and 1d +* Hardware Availability: [churrosoft.ar](https://churrosoft.ar/deck) + +Make example for this keyboard (after setting up your build environment): + + make churrosoft/deck8/rgb:default + +Flashing example for this keyboard: + + make churrosoft/deck8/rgb:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical reset button**: Short the `JP1` jumper in the back side of the PCB. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/churrosoft/deck8/rgb/rules.mk b/keyboards/churrosoft/deck8/rgb/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/churrosoft/deck8/rgb/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/cipulot/common/via_apc.c b/keyboards/cipulot/common/via_apc.c new file mode 100644 index 00000000000..2a92052d883 --- /dev/null +++ b/keyboards/cipulot/common/via_apc.c @@ -0,0 +1,158 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "action.h" +#include "via.h" + +#ifdef VIA_ENABLE + +void apc_init_thresholds(void); +void apc_set_threshold(bool is_for_actuation); + +// Declaring an _apc_config_t struct that will store our data +typedef struct _apc_config_t { + uint16_t actuation_threshold; + uint16_t release_threshold; +} apc_config; + +// Check if the size of the reserved persistent memory is the same as the size of struct apc_config +_Static_assert(sizeof(apc_config) == EECONFIG_USER_DATA_SIZE, "Mismatch in keyboard EECONFIG stored data"); + +// Declaring a new variable apc of type apc_config +apc_config apc; + +// Declaring enums for VIA config menu +enum via_apc_enums { + // clang-format off + id_apc_actuation_threshold = 1, + id_apc_release_threshold = 2 + // clang-format on +}; + +// Initializing persistent memory configuration: default values are declared and stored in PMEM +void eeconfig_init_user(void) { + // Default values + apc.actuation_threshold = DEFAULT_ACTUATION_LEVEL; + apc.release_threshold = DEFAULT_RELEASE_LEVEL; + // Write default value to EEPROM now + eeconfig_update_user_datablock(&apc); +} + +// On Keyboard startup +void keyboard_post_init_user(void) { + // Read custom menu variables from memory + eeconfig_read_user_datablock(&apc); + apc_init_thresholds(); +} + +// Handle the data received by the keyboard from the VIA menus +void apc_config_set_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + apc.actuation_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(true); + break; + } + case id_apc_release_threshold: { + apc.release_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(false); + break; + } + } +} + +// Handle the data sent by the keyboard to the VIA menus +void apc_config_get_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + value_data[0] = apc.actuation_threshold >> 8; + value_data[1] = apc.actuation_threshold & 0xFF; + break; + } + case id_apc_release_threshold: { + value_data[0] = apc.release_threshold >> 8; + value_data[1] = apc.release_threshold & 0xFF; + break; + } + } +} + +// Save the data to persistent memory after changes are made +void apc_config_save(void) { + eeconfig_update_user_datablock(&apc); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + // data = [ command_id, channel_id, value_id, value_data ] + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if (*channel_id == id_custom_channel) { + switch (*command_id) { + case id_custom_set_value: { + apc_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: { + apc_config_get_value(value_id_and_data); + break; + } + case id_custom_save: { + apc_config_save(); + break; + } + default: { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + + *command_id = id_unhandled; +} + +// Initialize the thresholds +void apc_init_thresholds(void) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + ecsm_config.ecsm_release_threshold = apc.release_threshold; + + // Update the ecsm_config + ecsm_update(&ecsm_config); +} + +// Set the thresholds +void apc_set_threshold(bool is_for_actuation) { + if (is_for_actuation) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + + } else { + ecsm_config.ecsm_release_threshold = apc.release_threshold; + } + // Update the ecsm_config + ecsm_update(&ecsm_config); +} +#endif // VIA_ENABLE diff --git a/keyboards/cipulot/ec_alveus/1_0_0/config.h b/keyboards/cipulot/ec_alveus/1_0_0/config.h new file mode 100644 index 00000000000..1947c308026 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/config.h @@ -0,0 +1,45 @@ +/* Copyright 2023 Cipulot + * + * This 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 MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* Custom matrix pins and port select array */ +#define MATRIX_ROW_PINS \ + { A14, B3, A15, B5, B4 } +#define MATRIX_COL_CHANNELS \ + { 3, 0, 1, 2, 6, 5, 7, 4 } +#define MUX_SEL_PINS \ + { B7, B8, B9 } + +/* Hardware peripherals pins */ +#define APLEX_EN_PIN_0 C13 +#define APLEX_EN_PIN_1 C14 +#define DISCHARGE_PIN B1 +#define ANALOG_PORT A3 + +/* 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 DEFAULT_ACTUATION_LEVEL 550 +#define DEFAULT_RELEASE_LEVEL 500 + +#define DISCHARGE_TIME 10 diff --git a/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c b/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c new file mode 100644 index 00000000000..783c00457c7 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c @@ -0,0 +1,183 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "analog.h" +#include "atomic_util.h" +#include "print.h" +#include "wait.h" + +/* Pin and port array */ +const uint32_t row_pins[] = MATRIX_ROW_PINS; +const uint8_t col_channels[] = MATRIX_COL_CHANNELS; +const uint32_t mux_sel_pins[] = MUX_SEL_PINS; + +static ecsm_config_t config; +static uint16_t ecsm_sw_value[MATRIX_ROWS][MATRIX_COLS]; + +static adc_mux adcMux; + +static inline void discharge_capacitor(void) { + writePinLow(DISCHARGE_PIN); +} +static inline void charge_capacitor(uint8_t row) { + writePinHigh(DISCHARGE_PIN); + writePinHigh(row_pins[row]); +} + +static inline void init_mux_sel(void) { + for (int idx = 0; idx < 3; idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +static inline void select_mux(uint8_t col) { + uint8_t ch = col_channels[col]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +static inline void init_row(void) { + for (int idx = 0; idx < MATRIX_ROWS; idx++) { + setPinOutput(row_pins[idx]); + writePinLow(row_pins[idx]); + } +} + +/* Initialize the peripherals pins */ +int ecsm_init(ecsm_config_t const* const ecsm_config) { + // Initialize config + config = *ecsm_config; + + palSetLineMode(ANALOG_PORT, PAL_MODE_INPUT_ANALOG); + adcMux = pinToMux(ANALOG_PORT); + + // Dummy call to make sure that adcStart() has been called in the appropriate state + adc_read(adcMux); + + // Initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutputOpenDrain(DISCHARGE_PIN); + + // Initialize drive lines + init_row(); + + // Initialize multiplexer select pin + init_mux_sel(); + + // Enable AMUX + setPinOutput(APLEX_EN_PIN_0); + writePinLow(APLEX_EN_PIN_0); + setPinOutput(APLEX_EN_PIN_1); + writePinLow(APLEX_EN_PIN_1); + + return 0; +} + +int ecsm_update(ecsm_config_t const* const ecsm_config) { + // Save config + config = *ecsm_config; + return 0; +} + +// Read the capacitive sensor value +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { + uint16_t sw_value = 0; + + // Select the multiplexer + if (channel == 0) { + writePinHigh(APLEX_EN_PIN_0); + select_mux(col); + writePinLow(APLEX_EN_PIN_0); + } else { + writePinHigh(APLEX_EN_PIN_1); + select_mux(col); + writePinLow(APLEX_EN_PIN_1); + } + + // Set strobe pins to low state + writePinLow(row_pins[row]); + ATOMIC_BLOCK_FORCEON { + // Set the row pin to high state and have capacitor charge + charge_capacitor(row); + // Read the ADC value + sw_value = adc_read(adcMux); + } + // Discharge peak hold capacitor + discharge_capacitor(); + // Waiting for the ghost capacitor to discharge fully + wait_us(DISCHARGE_TIME); + + return sw_value; +} + +// Update press/release state of key +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { + bool current_state = (*current_row >> col) & 1; + + // Press to release + if (current_state && sw_value < config.ecsm_actuation_threshold) { + *current_row &= ~(1 << col); + return true; + } + + // Release to press + if ((!current_state) && sw_value > config.ecsm_release_threshold) { + *current_row |= (1 << col); + return true; + } + + return false; +} + +// Scan key values and update matrix state +bool ecsm_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_1); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col] = ecsm_readkey_raw(0, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col, ecsm_sw_value[row][col]); + } + } + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_0); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col + 8] = ecsm_readkey_raw(1, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col + 8, ecsm_sw_value[row][col + 8]); + } + } + return updated; +} + +// Debug print key values +void ecsm_print_matrix(void) { + for (int row = 0; row < MATRIX_ROWS; row++) { + for (int col = 0; col < MATRIX_COLS; col++) { + uprintf("%4d", ecsm_sw_value[row][col]); + if (col < (MATRIX_COLS - 1)) { + print(","); + } + } + print("\n"); + } + print("\n"); +} diff --git a/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h b/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h new file mode 100644 index 00000000000..9dcb216caa3 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h @@ -0,0 +1,36 @@ +/* Copyright 2023 Cipulot + * + * This 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 + +#include "matrix.h" + +typedef struct { + uint16_t ecsm_actuation_threshold; // threshold for key release + uint16_t ecsm_release_threshold; // threshold for key press +} ecsm_config_t; + +ecsm_config_t ecsm_config; + +int ecsm_init(ecsm_config_t const* const ecsm_config); +int ecsm_update(ecsm_config_t const* const ecsm_config); +bool ecsm_matrix_scan(matrix_row_t current_matrix[]); +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col); +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value); +void ecsm_print_matrix(void); diff --git a/keyboards/cipulot/ec_alveus/1_0_0/halconf.h b/keyboards/cipulot/ec_alveus/1_0_0/halconf.h new file mode 100644 index 00000000000..5b71acecbbc --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 Cipulot + * + * This 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_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_alveus/1_0_0/info.json b/keyboards/cipulot/ec_alveus/1_0_0/info.json new file mode 100644 index 00000000000..3e195460891 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/info.json @@ -0,0 +1,181 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC Alveus 1.0.0", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": false + }, + "mouse_key": { + "enabled": true + }, + "processor": "STM32F401", + "usb": { + "device_version": "1.0.0", + "pid": "0x6BA4", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "1,13", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,13", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,1", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,12", "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_wkl": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "1,13", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,13", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c new file mode 100644 index 00000000000..d111c6a6853 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + 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_ENTER, + 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + 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, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h new file mode 100644 index 00000000000..ebf954d07ac --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2023 Cipulot + * + * This 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 + +// This is the size of the EEPROM for the custom VIA-specific data +#define EECONFIG_USER_DATA_SIZE 4 diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c new file mode 100644 index 00000000000..5fc6c4d94e0 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [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_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_ENTER, + 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, MO(1), KC_RGUI, KC_RCTL, 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, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk new file mode 100644 index 00000000000..520b11f2031 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +SRC += via_apc.c diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c new file mode 100644 index 00000000000..5ea77af44c8 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c @@ -0,0 +1,156 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "action.h" +#include "via.h" + +void apc_init_thresholds(void); +void apc_set_threshold(bool is_for_actuation); + +// Declaring an _apc_config_t struct that will store our data +typedef struct _apc_config_t { + uint16_t actuation_threshold; + uint16_t release_threshold; +} apc_config; + +// Check if the size of the reserved persistent memory is the same as the size of struct apc_config +_Static_assert(sizeof(apc_config) == EECONFIG_USER_DATA_SIZE, "Mismatch in keyboard EECONFIG stored data"); + +// Declaring a new variable apc of type apc_config +apc_config apc; + +// Declaring enums for VIA config menu +enum via_apc_enums { + // clang-format off + id_apc_actuation_threshold = 1, + id_apc_release_threshold = 2 + // clang-format on +}; + +// Initializing persistent memory configuration: default values are declared and stored in PMEM +void eeconfig_init_user(void) { + // Default values + apc.actuation_threshold = DEFAULT_ACTUATION_LEVEL; + apc.release_threshold = DEFAULT_RELEASE_LEVEL; + // Write default value to EEPROM now + eeconfig_update_user_datablock(&apc); +} + +// On Keyboard startup +void keyboard_post_init_user(void) { + // Read custom menu variables from memory + eeconfig_read_user_datablock(&apc); + apc_init_thresholds(); +} + +// Handle the data received by the keyboard from the VIA menus +void apc_config_set_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + apc.actuation_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(true); + break; + } + case id_apc_release_threshold: { + apc.release_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(false); + break; + } + } +} + +// Handle the data sent by the keyboard to the VIA menus +void apc_config_get_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + value_data[0] = apc.actuation_threshold >> 8; + value_data[1] = apc.actuation_threshold & 0xFF; + break; + } + case id_apc_release_threshold: { + value_data[0] = apc.release_threshold >> 8; + value_data[1] = apc.release_threshold & 0xFF; + break; + } + } +} + +// Save the data to persistent memory after changes are made +void apc_config_save(void) { + eeconfig_update_user_datablock(&apc); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + // data = [ command_id, channel_id, value_id, value_data ] + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if (*channel_id == id_custom_channel) { + switch (*command_id) { + case id_custom_set_value: { + apc_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: { + apc_config_get_value(value_id_and_data); + break; + } + case id_custom_save: { + apc_config_save(); + break; + } + default: { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + + *command_id = id_unhandled; +} + +// Initialize the thresholds +void apc_init_thresholds(void) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + ecsm_config.ecsm_release_threshold = apc.release_threshold; + + // Update the ecsm_config + ecsm_update(&ecsm_config); +} + +// Set the thresholds +void apc_set_threshold(bool is_for_actuation) { + if (is_for_actuation) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + + } else { + ecsm_config.ecsm_release_threshold = apc.release_threshold; + } + // Update the ecsm_config + ecsm_update(&ecsm_config); +} diff --git a/keyboards/cipulot/ec_alveus/1_0_0/matrix.c b/keyboards/cipulot/ec_alveus/1_0_0/matrix.c new file mode 100644 index 00000000000..1850acf2641 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/matrix.c @@ -0,0 +1,44 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "matrix.h" + +/* matrix state(1:on, 0:off) */ +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +void matrix_init_custom(void) { + // Default values, overwritten by VIA if enabled later + ecsm_config.ecsm_actuation_threshold = DEFAULT_ACTUATION_LEVEL; + ecsm_config.ecsm_release_threshold = DEFAULT_RELEASE_LEVEL; + + ecsm_init(&ecsm_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ecsm_matrix_scan(current_matrix); + +// RAW matrix values on console +#ifdef CONSOLE_ENABLE + static int cnt = 0; + if (cnt++ == 350) { + cnt = 0; + ecsm_print_matrix(); + } +#endif + return updated; +} diff --git a/keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h b/keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h new file mode 100644 index 00000000000..d91f576bd48 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 Cipulot + * + * This 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_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_alveus/1_0_0/readme.md b/keyboards/cipulot/ec_alveus/1_0_0/readme.md new file mode 100644 index 00000000000..01e82a88055 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/readme.md @@ -0,0 +1,27 @@ +# EC Alveus + +![EC Alveus](https://i.imgur.com/J31LzzOh.jpg) + +EC FRL TKL keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC Alveus 1.0.0 +* Hardware Availability: Raffle Sale from [Densus](https://www.instagram.com/densusdesign/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_alveus/1_0_0:default + +Flashing example for this keyboard: + + make cipulot/ec_alveus/1_0_0: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**: Long short the exposed pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk new file mode 100644 index 00000000000..b8929fa590d --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += matrix.c ec_switch_matrix.c diff --git a/keyboards/cipulot/ec_alveus/1_2_0/config.h b/keyboards/cipulot/ec_alveus/1_2_0/config.h new file mode 100644 index 00000000000..1947c308026 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/config.h @@ -0,0 +1,45 @@ +/* Copyright 2023 Cipulot + * + * This 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 MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* Custom matrix pins and port select array */ +#define MATRIX_ROW_PINS \ + { A14, B3, A15, B5, B4 } +#define MATRIX_COL_CHANNELS \ + { 3, 0, 1, 2, 6, 5, 7, 4 } +#define MUX_SEL_PINS \ + { B7, B8, B9 } + +/* Hardware peripherals pins */ +#define APLEX_EN_PIN_0 C13 +#define APLEX_EN_PIN_1 C14 +#define DISCHARGE_PIN B1 +#define ANALOG_PORT A3 + +/* 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 DEFAULT_ACTUATION_LEVEL 550 +#define DEFAULT_RELEASE_LEVEL 500 + +#define DISCHARGE_TIME 10 diff --git a/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c b/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c new file mode 100644 index 00000000000..783c00457c7 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c @@ -0,0 +1,183 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "analog.h" +#include "atomic_util.h" +#include "print.h" +#include "wait.h" + +/* Pin and port array */ +const uint32_t row_pins[] = MATRIX_ROW_PINS; +const uint8_t col_channels[] = MATRIX_COL_CHANNELS; +const uint32_t mux_sel_pins[] = MUX_SEL_PINS; + +static ecsm_config_t config; +static uint16_t ecsm_sw_value[MATRIX_ROWS][MATRIX_COLS]; + +static adc_mux adcMux; + +static inline void discharge_capacitor(void) { + writePinLow(DISCHARGE_PIN); +} +static inline void charge_capacitor(uint8_t row) { + writePinHigh(DISCHARGE_PIN); + writePinHigh(row_pins[row]); +} + +static inline void init_mux_sel(void) { + for (int idx = 0; idx < 3; idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +static inline void select_mux(uint8_t col) { + uint8_t ch = col_channels[col]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +static inline void init_row(void) { + for (int idx = 0; idx < MATRIX_ROWS; idx++) { + setPinOutput(row_pins[idx]); + writePinLow(row_pins[idx]); + } +} + +/* Initialize the peripherals pins */ +int ecsm_init(ecsm_config_t const* const ecsm_config) { + // Initialize config + config = *ecsm_config; + + palSetLineMode(ANALOG_PORT, PAL_MODE_INPUT_ANALOG); + adcMux = pinToMux(ANALOG_PORT); + + // Dummy call to make sure that adcStart() has been called in the appropriate state + adc_read(adcMux); + + // Initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutputOpenDrain(DISCHARGE_PIN); + + // Initialize drive lines + init_row(); + + // Initialize multiplexer select pin + init_mux_sel(); + + // Enable AMUX + setPinOutput(APLEX_EN_PIN_0); + writePinLow(APLEX_EN_PIN_0); + setPinOutput(APLEX_EN_PIN_1); + writePinLow(APLEX_EN_PIN_1); + + return 0; +} + +int ecsm_update(ecsm_config_t const* const ecsm_config) { + // Save config + config = *ecsm_config; + return 0; +} + +// Read the capacitive sensor value +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { + uint16_t sw_value = 0; + + // Select the multiplexer + if (channel == 0) { + writePinHigh(APLEX_EN_PIN_0); + select_mux(col); + writePinLow(APLEX_EN_PIN_0); + } else { + writePinHigh(APLEX_EN_PIN_1); + select_mux(col); + writePinLow(APLEX_EN_PIN_1); + } + + // Set strobe pins to low state + writePinLow(row_pins[row]); + ATOMIC_BLOCK_FORCEON { + // Set the row pin to high state and have capacitor charge + charge_capacitor(row); + // Read the ADC value + sw_value = adc_read(adcMux); + } + // Discharge peak hold capacitor + discharge_capacitor(); + // Waiting for the ghost capacitor to discharge fully + wait_us(DISCHARGE_TIME); + + return sw_value; +} + +// Update press/release state of key +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { + bool current_state = (*current_row >> col) & 1; + + // Press to release + if (current_state && sw_value < config.ecsm_actuation_threshold) { + *current_row &= ~(1 << col); + return true; + } + + // Release to press + if ((!current_state) && sw_value > config.ecsm_release_threshold) { + *current_row |= (1 << col); + return true; + } + + return false; +} + +// Scan key values and update matrix state +bool ecsm_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_1); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col] = ecsm_readkey_raw(0, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col, ecsm_sw_value[row][col]); + } + } + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_0); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col + 8] = ecsm_readkey_raw(1, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col + 8, ecsm_sw_value[row][col + 8]); + } + } + return updated; +} + +// Debug print key values +void ecsm_print_matrix(void) { + for (int row = 0; row < MATRIX_ROWS; row++) { + for (int col = 0; col < MATRIX_COLS; col++) { + uprintf("%4d", ecsm_sw_value[row][col]); + if (col < (MATRIX_COLS - 1)) { + print(","); + } + } + print("\n"); + } + print("\n"); +} diff --git a/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h b/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h new file mode 100644 index 00000000000..9dcb216caa3 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h @@ -0,0 +1,36 @@ +/* Copyright 2023 Cipulot + * + * This 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 + +#include "matrix.h" + +typedef struct { + uint16_t ecsm_actuation_threshold; // threshold for key release + uint16_t ecsm_release_threshold; // threshold for key press +} ecsm_config_t; + +ecsm_config_t ecsm_config; + +int ecsm_init(ecsm_config_t const* const ecsm_config); +int ecsm_update(ecsm_config_t const* const ecsm_config); +bool ecsm_matrix_scan(matrix_row_t current_matrix[]); +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col); +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value); +void ecsm_print_matrix(void); diff --git a/keyboards/cipulot/ec_alveus/1_2_0/halconf.h b/keyboards/cipulot/ec_alveus/1_2_0/halconf.h new file mode 100644 index 00000000000..5b71acecbbc --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 Cipulot + * + * This 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_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_alveus/1_2_0/info.json b/keyboards/cipulot/ec_alveus/1_2_0/info.json new file mode 100644 index 00000000000..65af74e99ba --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/info.json @@ -0,0 +1,255 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC Alveus 1.2.0", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": false + }, + "mouse_key": { + "enabled": true + }, + "processor": "STM32F401", + "usb": { + "device_version": "1.2.0", + "pid": "0x6B90", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "1,13", "matrix": [1, 13], "x": 14, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,1", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,12", "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_wkl": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "1,13", "matrix": [1, 13], "w": 2, "x": 13, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "1,13", "matrix": [1, 13], "x": 14, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c new file mode 100644 index 00000000000..d111c6a6853 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + 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_ENTER, + 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + 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, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/tkl_nofrow_ansi_tsangan_wkl_split_bs/keymap.c b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/tkl_nofrow_ansi_tsangan_wkl_split_bs/keymap.c new file mode 100644 index 00000000000..4552cd64575 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/tkl_nofrow_ansi_tsangan_wkl_split_bs/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_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_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_ENTER, + 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs( + 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h new file mode 100644 index 00000000000..ebf954d07ac --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2023 Cipulot + * + * This 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 + +// This is the size of the EEPROM for the custom VIA-specific data +#define EECONFIG_USER_DATA_SIZE 4 diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c new file mode 100644 index 00000000000..54a8f3b4f00 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [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_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_ENTER, + 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, MO(1), KC_RGUI, KC_RCTL, 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk new file mode 100644 index 00000000000..520b11f2031 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +SRC += via_apc.c diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c new file mode 100644 index 00000000000..5ea77af44c8 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c @@ -0,0 +1,156 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "action.h" +#include "via.h" + +void apc_init_thresholds(void); +void apc_set_threshold(bool is_for_actuation); + +// Declaring an _apc_config_t struct that will store our data +typedef struct _apc_config_t { + uint16_t actuation_threshold; + uint16_t release_threshold; +} apc_config; + +// Check if the size of the reserved persistent memory is the same as the size of struct apc_config +_Static_assert(sizeof(apc_config) == EECONFIG_USER_DATA_SIZE, "Mismatch in keyboard EECONFIG stored data"); + +// Declaring a new variable apc of type apc_config +apc_config apc; + +// Declaring enums for VIA config menu +enum via_apc_enums { + // clang-format off + id_apc_actuation_threshold = 1, + id_apc_release_threshold = 2 + // clang-format on +}; + +// Initializing persistent memory configuration: default values are declared and stored in PMEM +void eeconfig_init_user(void) { + // Default values + apc.actuation_threshold = DEFAULT_ACTUATION_LEVEL; + apc.release_threshold = DEFAULT_RELEASE_LEVEL; + // Write default value to EEPROM now + eeconfig_update_user_datablock(&apc); +} + +// On Keyboard startup +void keyboard_post_init_user(void) { + // Read custom menu variables from memory + eeconfig_read_user_datablock(&apc); + apc_init_thresholds(); +} + +// Handle the data received by the keyboard from the VIA menus +void apc_config_set_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + apc.actuation_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(true); + break; + } + case id_apc_release_threshold: { + apc.release_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(false); + break; + } + } +} + +// Handle the data sent by the keyboard to the VIA menus +void apc_config_get_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + value_data[0] = apc.actuation_threshold >> 8; + value_data[1] = apc.actuation_threshold & 0xFF; + break; + } + case id_apc_release_threshold: { + value_data[0] = apc.release_threshold >> 8; + value_data[1] = apc.release_threshold & 0xFF; + break; + } + } +} + +// Save the data to persistent memory after changes are made +void apc_config_save(void) { + eeconfig_update_user_datablock(&apc); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + // data = [ command_id, channel_id, value_id, value_data ] + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if (*channel_id == id_custom_channel) { + switch (*command_id) { + case id_custom_set_value: { + apc_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: { + apc_config_get_value(value_id_and_data); + break; + } + case id_custom_save: { + apc_config_save(); + break; + } + default: { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + + *command_id = id_unhandled; +} + +// Initialize the thresholds +void apc_init_thresholds(void) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + ecsm_config.ecsm_release_threshold = apc.release_threshold; + + // Update the ecsm_config + ecsm_update(&ecsm_config); +} + +// Set the thresholds +void apc_set_threshold(bool is_for_actuation) { + if (is_for_actuation) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + + } else { + ecsm_config.ecsm_release_threshold = apc.release_threshold; + } + // Update the ecsm_config + ecsm_update(&ecsm_config); +} diff --git a/keyboards/cipulot/ec_alveus/1_2_0/matrix.c b/keyboards/cipulot/ec_alveus/1_2_0/matrix.c new file mode 100644 index 00000000000..1850acf2641 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/matrix.c @@ -0,0 +1,44 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "matrix.h" + +/* matrix state(1:on, 0:off) */ +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +void matrix_init_custom(void) { + // Default values, overwritten by VIA if enabled later + ecsm_config.ecsm_actuation_threshold = DEFAULT_ACTUATION_LEVEL; + ecsm_config.ecsm_release_threshold = DEFAULT_RELEASE_LEVEL; + + ecsm_init(&ecsm_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ecsm_matrix_scan(current_matrix); + +// RAW matrix values on console +#ifdef CONSOLE_ENABLE + static int cnt = 0; + if (cnt++ == 350) { + cnt = 0; + ecsm_print_matrix(); + } +#endif + return updated; +} diff --git a/keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h b/keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h new file mode 100644 index 00000000000..d91f576bd48 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 Cipulot + * + * This 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_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_alveus/1_2_0/readme.md b/keyboards/cipulot/ec_alveus/1_2_0/readme.md new file mode 100644 index 00000000000..e4c3ef86c3f --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/readme.md @@ -0,0 +1,27 @@ +# EC Alveus + +![EC Alveus](https://i.imgur.com/J31LzzOh.jpg) + +EC FRL TKL keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC Alveus 1.2.0 +* Hardware Availability: Raffle Sale from [Densus](https://www.instagram.com/densusdesign/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_alveus/1_2_0:default + +Flashing example for this keyboard: + + make cipulot/ec_alveus/1_2_0: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**: Long short the exposed pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk new file mode 100644 index 00000000000..b8929fa590d --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += matrix.c ec_switch_matrix.c diff --git a/keyboards/cipulot/ec_prox/jis/info.json b/keyboards/cipulot/ec_prox/jis/info.json index 84049679096..6016004b1ba 100644 --- a/keyboards/cipulot/ec_prox/jis/info.json +++ b/keyboards/cipulot/ec_prox/jis/info.json @@ -52,75 +52,79 @@ "layouts": { "LAYOUT_jp": { "layout": [ - {"label": "0,0", "matrix": [0, 0], "x": 0.0, "y": 0.0}, - {"label": "0,1", "matrix": [0, 1], "x": 1.0, "y": 0.0}, - {"label": "0,2", "matrix": [0, 2], "x": 2.0, "y": 0.0}, - {"label": "0,3", "matrix": [0, 3], "x": 3.0, "y": 0.0}, - {"label": "0,4", "matrix": [0, 4], "x": 4.0, "y": 0.0}, - {"label": "0,5", "matrix": [0, 5], "x": 5.0, "y": 0.0}, - {"label": "0,6", "matrix": [0, 6], "x": 6.0, "y": 0.0}, - {"label": "0,7", "matrix": [0, 7], "x": 7.0, "y": 0.0}, - {"label": "0,8", "matrix": [0, 8], "x": 8.0, "y": 0.0}, - {"label": "0,9", "matrix": [0, 9], "x": 9.0, "y": 0.0}, - {"label": "0,10", "matrix": [0, 10], "x": 10.0, "y": 0.0}, - {"label": "0,11", "matrix": [0, 11], "x": 11.0, "y": 0.0}, - {"label": "0,12", "matrix": [0, 12], "x": 12.0, "y": 0.0}, - {"label": "0,13", "matrix": [0, 13], "x": 13.0, "y": 0.0}, - {"label": "1,13", "matrix": [1, 13], "x": 14.0, "y": 0.0}, - {"label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0.0, "y": 1.0}, - {"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1.0}, - {"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1.0}, - {"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1.0}, - {"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1.0}, - {"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1.0}, - {"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1.0}, - {"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1.0}, - {"label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1.0}, - {"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1.0}, - {"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1.0}, - {"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1.0}, - {"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1.0}, - {"h": 2, "label": "2,13", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1.0}, - {"label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0.0, "y": 2.0}, - {"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2.0}, - {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2.0}, - {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2.0}, - {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2.0}, - {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2.0}, - {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2.0}, - {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2.0}, - {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2.0}, - {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2.0}, - {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2.0}, - {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2.0}, - {"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2.0}, - {"label": "3,0", "matrix": [3, 0], "w": 2, "x": 0.0, "y": 3.0}, - {"label": "3,1", "matrix": [3, 1], "x": 2.0, "y": 3.0}, - {"label": "3,2", "matrix": [3, 2], "x": 3.0, "y": 3.0}, - {"label": "3,3", "matrix": [3, 3], "x": 4.0, "y": 3.0}, - {"label": "3,4", "matrix": [3, 4], "x": 5.0, "y": 3.0}, - {"label": "3,5", "matrix": [3, 5], "x": 6.0, "y": 3.0}, - {"label": "3,6", "matrix": [3, 6], "x": 7.0, "y": 3.0}, - {"label": "3,7", "matrix": [3, 7], "x": 8.0, "y": 3.0}, - {"label": "3,8", "matrix": [3, 8], "x": 9.0, "y": 3.0}, - {"label": "3,9", "matrix": [3, 9], "x": 10.0, "y": 3.0}, - {"label": "3,10", "matrix": [3, 10], "x": 11.0, "y": 3.0}, - {"label": "3,11", "matrix": [3, 11], "x": 12.0, "y": 3.0}, - {"label": "3,12", "matrix": [3, 12], "x": 13.0, "y": 3.0}, - {"label": "3,13", "matrix": [3, 13], "x": 14.0, "y": 3.0}, - {"label": "4,0", "matrix": [4, 0], "x": 0.0, "y": 4.0}, - {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4.0}, - {"label": "4,2", "matrix": [4, 2], "x": 2.25, "y": 4.0}, - {"label": "4,3", "matrix": [4, 3], "x": 3.25, "y": 4.0}, - {"label": "4,4", "matrix": [4, 4], "x": 4.25, "y": 4.0}, - {"label": "4,5", "matrix": [4, 5], "w": 2.5, "x": 5.25, "y": 4.0}, - {"label": "4,7", "matrix": [4, 7], "x": 7.75, "y": 4.0}, - {"label": "4,8", "matrix": [4, 8], "x": 8.75, "y": 4.0}, - {"label": "4,9", "matrix": [4, 9], "x": 9.75, "y": 4.0}, - {"label": "4,10", "matrix": [4, 10], "x": 10.75, "y": 4.0}, - {"label": "4,11", "matrix": [4, 11], "x": 12.0, "y": 4.0}, - {"label": "4,12", "matrix": [4, 12], "x": 13.0, "y": 4.0}, - {"label": "4,13", "matrix": [4, 13], "x": 14.0, "y": 4.0} + {"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": [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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2}, + {"matrix": [3, 1], "x": 2, "y": 3}, + {"matrix": [3, 2], "x": 3, "y": 3}, + {"matrix": [3, 3], "x": 4, "y": 3}, + {"matrix": [3, 4], "x": 5, "y": 3}, + {"matrix": [3, 5], "x": 6, "y": 3}, + {"matrix": [3, 6], "x": 7, "y": 3}, + {"matrix": [3, 7], "x": 8, "y": 3}, + {"matrix": [3, 8], "x": 9, "y": 3}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4, "w": 2.5}, + {"matrix": [4, 7], "x": 7.75, "y": 4}, + {"matrix": [4, 8], "x": 8.75, "y": 4}, + {"matrix": [4, 9], "x": 9.75, "y": 4}, + {"matrix": [4, 10], "x": 10.75, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4} ] } } diff --git a/keyboards/cipulot/ec_prox/jis/keymaps/default/keymap.c b/keyboards/cipulot/ec_prox/jis/keymaps/default/keymap.c index 979319a6220..2a64063a0bc 100644 --- a/keyboards/cipulot/ec_prox/jis/keymaps/default/keymap.c +++ b/keyboards/cipulot/ec_prox/jis/keymaps/default/keymap.c @@ -21,14 +21,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off [0] = LAYOUT_jp( - 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, JP_YEN, 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_LCTL, 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, JP_UNDS, KC_UP, KC_RSFT, - MO(1), JP_ZKHK, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), 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, JP_YEN, 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_LCTL, 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, JP_UNDS, KC_UP, KC_RSFT, + MO(1), JP_ZKHK, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_jp( - _______, 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_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, _______, _______, _______, diff --git a/keyboards/cipulot/ec_prox/jis/keymaps/via/keymap.c b/keyboards/cipulot/ec_prox/jis/keymaps/via/keymap.c index cc9382531d2..2a64063a0bc 100644 --- a/keyboards/cipulot/ec_prox/jis/keymaps/via/keymap.c +++ b/keyboards/cipulot/ec_prox/jis/keymaps/via/keymap.c @@ -21,31 +21,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off [0] = LAYOUT_jp( - 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, JP_YEN, 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_LCTL, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_UNDS, KC_UP, KC_RSFT, - MO(1), JP_ZKHK, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), 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, JP_YEN, 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_LCTL, 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, JP_UNDS, KC_UP, KC_RSFT, + MO(1), JP_ZKHK, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_jp( - _______, 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_PENT, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______), [2] = LAYOUT_jp( RGB_TOG, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [3] = LAYOUT_jp( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) // clang-format on }; diff --git a/keyboards/cipulot/ec_theca/config.h b/keyboards/cipulot/ec_theca/config.h new file mode 100644 index 00000000000..481183b80c1 --- /dev/null +++ b/keyboards/cipulot/ec_theca/config.h @@ -0,0 +1,45 @@ +/* Copyright 2023 Cipulot + * + * This 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 MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +/* Custom matrix pins and port select array */ +#define MATRIX_ROW_PINS \ + { B4, A14, B3, A15, B6, B5 } +#define MATRIX_COL_CHANNELS \ + { 3, 0, 1, 2, 6, 5, 7, 4 } +#define MUX_SEL_PINS \ + { B7, B8, B9 } + +/* Hardware peripherals pins */ +#define APLEX_EN_PIN_0 C13 +#define APLEX_EN_PIN_1 C14 +#define DISCHARGE_PIN B1 +#define ANALOG_PORT A3 + +/* 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 DEFAULT_ACTUATION_LEVEL 550 +#define DEFAULT_RELEASE_LEVEL 500 + +#define DISCHARGE_TIME 10 diff --git a/keyboards/cipulot/ec_theca/ec_switch_matrix.c b/keyboards/cipulot/ec_theca/ec_switch_matrix.c new file mode 100644 index 00000000000..fdf4479423f --- /dev/null +++ b/keyboards/cipulot/ec_theca/ec_switch_matrix.c @@ -0,0 +1,191 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "analog.h" +#include "atomic_util.h" +#include "print.h" +#include "wait.h" + +/* Pin and port array */ +const uint32_t row_pins[] = MATRIX_ROW_PINS; +const uint8_t col_channels[] = MATRIX_COL_CHANNELS; +const uint32_t mux_sel_pins[] = MUX_SEL_PINS; + +static ecsm_config_t config; +static uint16_t ecsm_sw_value[MATRIX_ROWS][MATRIX_COLS]; + +static adc_mux adcMux; + +static inline void discharge_capacitor(void) { + writePinLow(DISCHARGE_PIN); +} +static inline void charge_capacitor(uint8_t row) { + writePinHigh(DISCHARGE_PIN); + writePinHigh(row_pins[row]); +} + +static inline void init_mux_sel(void) { + for (int idx = 0; idx < 3; idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +static inline void select_mux(uint8_t col) { + uint8_t ch = col_channels[col]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +static inline void init_row(void) { + for (int idx = 0; idx < MATRIX_ROWS; idx++) { + setPinOutput(row_pins[idx]); + writePinLow(row_pins[idx]); + } +} + +static inline void clear_row(void) { + for (int idx = 0; idx < MATRIX_ROWS; idx++) { + setPinOutput(row_pins[idx]); + writePinLow(row_pins[idx]); + } +} + +/* Initialize the peripherals pins */ +int ecsm_init(ecsm_config_t const* const ecsm_config) { + // Initialize config + config = *ecsm_config; + + palSetLineMode(ANALOG_PORT, PAL_MODE_INPUT_ANALOG); + adcMux = pinToMux(ANALOG_PORT); + + // Dummy call to make sure that adcStart() has been called in the appropriate state + adc_read(adcMux); + + // Initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutputOpenDrain(DISCHARGE_PIN); + + // Initialize drive lines + init_row(); + + // Initialize multiplexer select pin + init_mux_sel(); + + // Enable AMUX + setPinOutput(APLEX_EN_PIN_0); + writePinLow(APLEX_EN_PIN_0); + setPinOutput(APLEX_EN_PIN_1); + writePinLow(APLEX_EN_PIN_1); + + return 0; +} + +int ecsm_update(ecsm_config_t const* const ecsm_config) { + // Save config + config = *ecsm_config; + return 0; +} + +// Read the capacitive sensor value +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { + uint16_t sw_value = 0; + + // Select the multiplexer + if (channel == 0) { + writePinHigh(APLEX_EN_PIN_0); + select_mux(col); + writePinLow(APLEX_EN_PIN_0); + } else { + writePinHigh(APLEX_EN_PIN_1); + select_mux(col); + writePinLow(APLEX_EN_PIN_1); + } + + // Set strobe pins to low state + //writePinLow(row_pins[row]); + clear_row(); + ATOMIC_BLOCK_FORCEON { + // Set the row pin to high state and have capacitor charge + charge_capacitor(row); + // Read the ADC value + sw_value = adc_read(adcMux); + } + // Discharge peak hold capacitor + discharge_capacitor(); + // Waiting for the ghost capacitor to discharge fully + wait_us(DISCHARGE_TIME); + + return sw_value; +} + +// Update press/release state of key +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { + bool current_state = (*current_row >> col) & 1; + + // Press to release + if (current_state && sw_value < config.ecsm_actuation_threshold) { + *current_row &= ~(1 << col); + return true; + } + + // Release to press + if ((!current_state) && sw_value > config.ecsm_release_threshold) { + *current_row |= (1 << col); + return true; + } + + return false; +} + +// Scan key values and update matrix state +bool ecsm_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_1); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col] = ecsm_readkey_raw(0, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col, ecsm_sw_value[row][col]); + } + } + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_0); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col + 8] = ecsm_readkey_raw(1, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col + 8, ecsm_sw_value[row][col + 8]); + } + } + return updated; +} + +// Debug print key values +void ecsm_print_matrix(void) { + for (int row = 0; row < MATRIX_ROWS; row++) { + for (int col = 0; col < MATRIX_COLS; col++) { + uprintf("%4d", ecsm_sw_value[row][col]); + if (col < (MATRIX_COLS - 1)) { + print(","); + } + } + print("\n"); + } + print("\n"); +} diff --git a/keyboards/cipulot/ec_theca/ec_switch_matrix.h b/keyboards/cipulot/ec_theca/ec_switch_matrix.h new file mode 100644 index 00000000000..9dcb216caa3 --- /dev/null +++ b/keyboards/cipulot/ec_theca/ec_switch_matrix.h @@ -0,0 +1,36 @@ +/* Copyright 2023 Cipulot + * + * This 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 + +#include "matrix.h" + +typedef struct { + uint16_t ecsm_actuation_threshold; // threshold for key release + uint16_t ecsm_release_threshold; // threshold for key press +} ecsm_config_t; + +ecsm_config_t ecsm_config; + +int ecsm_init(ecsm_config_t const* const ecsm_config); +int ecsm_update(ecsm_config_t const* const ecsm_config); +bool ecsm_matrix_scan(matrix_row_t current_matrix[]); +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col); +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value); +void ecsm_print_matrix(void); diff --git a/keyboards/cipulot/ec_theca/halconf.h b/keyboards/cipulot/ec_theca/halconf.h new file mode 100644 index 00000000000..5b71acecbbc --- /dev/null +++ b/keyboards/cipulot/ec_theca/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 Cipulot + * + * This 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_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_theca/info.json b/keyboards/cipulot/ec_theca/info.json new file mode 100644 index 00000000000..a80a92a7f5d --- /dev/null +++ b/keyboards/cipulot/ec_theca/info.json @@ -0,0 +1,305 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC Theca", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F401", + "usb": { + "device_version": "0.0.1", + "pid": "0x6B7E", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_tkl_ansi", + "LAYOUT_tkl_ansi_tsangan_wkl": "LAYOUT_tkl_ansi_wkl" + }, + "community_layouts": [ + "tkl_ansi", + "tkl_ansi_tsangan" + ], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "x": 15.25, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 16.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "1,13", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "1,15", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1.25 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "2,12", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "label": "2,14", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 2.25 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 2.25 }, + { "label": "3,0", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "3,1", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "3,2", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "3,3", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "3,4", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "3,5", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "3,6", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "3,7", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "3,8", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "3,9", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": "3,10", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "3,11", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "label": "4,0", "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "label": "4,1", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "4,2", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "4,3", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "4,4", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "4,5", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "4,6", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "4,7", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "4,8", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": "4,9", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "4,10", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "4,13", "matrix": [4, 13], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "label": "4,14", "matrix": [4, 14], "x": 16.25, "y": 4.25 }, + { "label": "5,0", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "5,1", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "5,2", "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "label": "5,5", "matrix": [5, 5], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "label": "5,10", "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, + { "label": "5,11", "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, + { "label": "5,12", "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, + { "label": "5,13", "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, + { "label": "5,14", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "5,15", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "4,15", "matrix": [4, 15], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "x": 15.25, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 16.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "1,13", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "1,15", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1.25 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "2,12", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "label": "2,14", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 2.25 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 2.25 }, + { "label": "3,0", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "3,1", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "3,2", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "3,3", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "3,4", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "3,5", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "3,6", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "3,7", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "3,8", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "3,9", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": "3,10", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "3,11", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "label": "4,0", "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "label": "4,1", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "4,2", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "4,3", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "4,4", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "4,5", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "4,6", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "4,7", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "4,8", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": "4,9", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "4,10", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "4,13", "matrix": [4, 13], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "label": "4,14", "matrix": [4, 14], "x": 16.25, "y": 4.25 }, + { "label": "5,0", "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, + { "label": "5,1", "matrix": [5, 1], "x": 1.5, "y": 5.25 }, + { "label": "5,2", "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, + { "label": "5,5", "matrix": [5, 5], "w": 7, "x": 4, "y": 5.25 }, + { "label": "5,11", "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, + { "label": "5,12", "matrix": [5, 12], "x": 12.5, "y": 5.25 }, + { "label": "5,13", "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, + { "label": "5,14", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "5,15", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "4,15", "matrix": [4, 15], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "x": 15.25, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 16.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "1,13", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "1,15", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1.25 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "2,12", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "label": "2,14", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 2.25 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 2.25 }, + { "label": "3,0", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "3,1", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "3,2", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "3,3", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "3,4", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "3,5", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "3,6", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "3,7", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "3,8", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "3,9", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": "3,10", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "3,11", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "label": "4,0", "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "label": "4,1", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "4,2", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "4,3", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "4,4", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "4,5", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "4,6", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "4,7", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "4,8", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": "4,9", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "4,10", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "4,13", "matrix": [4, 13], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "label": "4,14", "matrix": [4, 14], "x": 16.25, "y": 4.25 }, + { "label": "5,0", "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, + { "label": "5,2", "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, + { "label": "5,5", "matrix": [5, 5], "w": 7, "x": 4, "y": 5.25 }, + { "label": "5,11", "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, + { "label": "5,13", "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, + { "label": "5,14", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "5,15", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "4,15", "matrix": [4, 15], "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/cipulot/ec_theca/keymaps/default/keymap.c b/keyboards/cipulot/ec_theca/keymaps/default/keymap.c new file mode 100644 index 00000000000..2ad75a0f3e4 --- /dev/null +++ b/keyboards/cipulot/ec_theca/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [0] = LAYOUT_tkl_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_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_ENTER, + 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_RIGHT), + + [1] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_theca/keymaps/tkl_ansi_tsangan/keymap.c b/keyboards/cipulot/ec_theca/keymaps/tkl_ansi_tsangan/keymap.c new file mode 100644 index 00000000000..a8f569b189d --- /dev/null +++ b/keyboards/cipulot/ec_theca/keymaps/tkl_ansi_tsangan/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_ENTER, + 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_tkl_ansi_tsangan( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_theca/keymaps/tkl_ansi_tsangan_wkl/keymap.c b/keyboards/cipulot/ec_theca/keymaps/tkl_ansi_tsangan_wkl/keymap.c new file mode 100644 index 00000000000..56548302ddc --- /dev/null +++ b/keyboards/cipulot/ec_theca/keymaps/tkl_ansi_tsangan_wkl/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [0] = LAYOUT_tkl_ansi_wkl( + 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_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_ENTER, + 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_RIGHT), + + [1] = LAYOUT_tkl_ansi_wkl( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_theca/keymaps/via/config.h b/keyboards/cipulot/ec_theca/keymaps/via/config.h new file mode 100644 index 00000000000..ebf954d07ac --- /dev/null +++ b/keyboards/cipulot/ec_theca/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2023 Cipulot + * + * This 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 + +// This is the size of the EEPROM for the custom VIA-specific data +#define EECONFIG_USER_DATA_SIZE 4 diff --git a/keyboards/cipulot/ec_theca/keymaps/via/keymap.c b/keyboards/cipulot/ec_theca/keymaps/via/keymap.c new file mode 100644 index 00000000000..a8fc1b961a6 --- /dev/null +++ b/keyboards/cipulot/ec_theca/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 Cipulot + * + * This 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] = { + // clang-format off + [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_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_ENTER, + 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), MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_theca/keymaps/via/rules.mk b/keyboards/cipulot/ec_theca/keymaps/via/rules.mk new file mode 100644 index 00000000000..72e314e6946 --- /dev/null +++ b/keyboards/cipulot/ec_theca/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +SRC += keyboards/cipulot/common/via_apc.c diff --git a/keyboards/cipulot/ec_theca/matrix.c b/keyboards/cipulot/ec_theca/matrix.c new file mode 100644 index 00000000000..1850acf2641 --- /dev/null +++ b/keyboards/cipulot/ec_theca/matrix.c @@ -0,0 +1,44 @@ +/* Copyright 2023 Cipulot + * + * This 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 "ec_switch_matrix.h" +#include "matrix.h" + +/* matrix state(1:on, 0:off) */ +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +void matrix_init_custom(void) { + // Default values, overwritten by VIA if enabled later + ecsm_config.ecsm_actuation_threshold = DEFAULT_ACTUATION_LEVEL; + ecsm_config.ecsm_release_threshold = DEFAULT_RELEASE_LEVEL; + + ecsm_init(&ecsm_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ecsm_matrix_scan(current_matrix); + +// RAW matrix values on console +#ifdef CONSOLE_ENABLE + static int cnt = 0; + if (cnt++ == 350) { + cnt = 0; + ecsm_print_matrix(); + } +#endif + return updated; +} diff --git a/keyboards/cipulot/ec_theca/mcuconf.h b/keyboards/cipulot/ec_theca/mcuconf.h new file mode 100644 index 00000000000..d91f576bd48 --- /dev/null +++ b/keyboards/cipulot/ec_theca/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 Cipulot + * + * This 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_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_theca/readme.md b/keyboards/cipulot/ec_theca/readme.md new file mode 100644 index 00000000000..c25e498434c --- /dev/null +++ b/keyboards/cipulot/ec_theca/readme.md @@ -0,0 +1,25 @@ +# EC Theca + +![EC Theca](https://i.imgur.com/ZdeJLVdh.png) + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC Theca +* Hardware Availability: [KLC](https://klc-playground.com/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_theca:default + +Flashing example for this keyboard: + + make cipulot/ec_theca: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**: Long short the exposed pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_theca/rules.mk b/keyboards/cipulot/ec_theca/rules.mk new file mode 100644 index 00000000000..b8929fa590d --- /dev/null +++ b/keyboards/cipulot/ec_theca/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += matrix.c ec_switch_matrix.c diff --git a/keyboards/cipulot/kallos/config.h b/keyboards/cipulot/kallos/config.h index bb51142311f..dfe6b13b066 100644 --- a/keyboards/cipulot/kallos/config.h +++ b/keyboards/cipulot/kallos/config.h @@ -17,19 +17,6 @@ along with this program. If not, see . #pragma once -/* Lightbar pin and LED count definitions*/ -#define RGBLED_NUM 13 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/cipulot/kallos/info.json b/keyboards/cipulot/kallos/info.json index f9fd74acfe2..b2f265c13fd 100644 --- a/keyboards/cipulot/kallos/info.json +++ b/keyboards/cipulot/kallos/info.json @@ -8,6 +8,21 @@ "pid": "0x6B7A", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 13, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/cipulot/rf_r1_8_9xu/info.json b/keyboards/cipulot/rf_r1_8_9xu/info.json index badf092c87e..eb0220f6779 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/info.json +++ b/keyboards/cipulot/rf_r1_8_9xu/info.json @@ -53,6 +53,7 @@ }, "vid": "0x6369" }, + "community_layouts": ["tkl_jis", "tkl_iso_tsangan", "tkl_ansi_tsangan"], "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/citrus/erdnuss65/rules.mk b/keyboards/citrus/erdnuss65/rules.mk index 80b5a0b8f5a..e69de29bb2d 100644 --- a/keyboards/citrus/erdnuss65/rules.mk +++ b/keyboards/citrus/erdnuss65/rules.mk @@ -1,2 +0,0 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE \ No newline at end of file diff --git a/keyboards/ck60i/config.h b/keyboards/ck60i/config.h index 07c7421d255..7506922b008 100644 --- a/keyboards/ck60i/config.h +++ b/keyboards/ck60i/config.h @@ -26,19 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 16 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/ck60i/info.json b/keyboards/ck60i/info.json index 38ae378ef4c..d35eac99200 100644 --- a/keyboards/ck60i/info.json +++ b/keyboards/ck60i/info.json @@ -24,7 +24,21 @@ "breathing": true }, "rgblight": { - "max_brightness": 200 + "led_count": 16, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "ws2812": { "pin": "B15" diff --git a/keyboards/ck60i/rules.mk b/keyboards/ck60i/rules.mk index e505cf44b4f..3ec023e5e84 100644 --- a/keyboards/ck60i/rules.mk +++ b/keyboards/ck60i/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ckeys/washington/keymaps/default/keymap.c b/keyboards/ckeys/washington/keymaps/default/keymap.c index 9ce0181fe42..8e1eb0e2728 100644 --- a/keyboards/ckeys/washington/keymaps/default/keymap.c +++ b/keyboards/ckeys/washington/keymaps/default/keymap.c @@ -75,10 +75,10 @@ bool oled_task_user(void) { } // Host Keyboard LED Status - uint8_t usb_led = host_keyboard_leds(); - oled_write_P(IS_LED_ON(usb_led, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(usb_led, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); return false; } #endif diff --git a/keyboards/ckeys/washington/rules.mk b/keyboards/ckeys/washington/rules.mk index 87154d95c9a..c6c08dda595 100644 --- a/keyboards/ckeys/washington/rules.mk +++ b/keyboards/ckeys/washington/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable support for encoders OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable support for OLED displays diff --git a/keyboards/clickety_split/leeloo/info.json b/keyboards/clickety_split/leeloo/info.json index 78794cbddb8..a2510f9f7f2 100644 --- a/keyboards/clickety_split/leeloo/info.json +++ b/keyboards/clickety_split/leeloo/info.json @@ -28,6 +28,9 @@ } } }, + "tapping": { + "term": 100 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/clickety_split/leeloo/rev1/config.h b/keyboards/clickety_split/leeloo/rev1/config.h deleted file mode 100644 index 96c6b71d374..00000000000 --- a/keyboards/clickety_split/leeloo/rev1/config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright 2022 Clickety Split Ltd. - * https://clicketysplit.ca - * - * This 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 tapping term */ -#define TAPPING_TERM 100 - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT diff --git a/keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json b/keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json index 1227020b297..10f557d7297 100644 --- a/keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json +++ b/keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json @@ -2,7 +2,7 @@ "version": 1, "author": "skullydazed", "notes": "", - "keyboard": "clueboard/2x1800/2018", + "keyboard": "clueboard/2x1800/2021", "keymap": "default", "layout": "LAYOUT_all", "layers": [ diff --git a/keyboards/clueboard/66_hotswap/gen1/info.json b/keyboards/clueboard/66_hotswap/gen1/info.json index 360f2e0e042..e497594685d 100644 --- a/keyboards/clueboard/66_hotswap/gen1/info.json +++ b/keyboards/clueboard/66_hotswap/gen1/info.json @@ -17,7 +17,7 @@ "nkro": true }, "led_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B10", "B2", "B1", "B0", "A7", "B4", "B3", "B7"], diff --git a/keyboards/cmm_studio/fuji65/config.h b/keyboards/cmm_studio/fuji65/config.h deleted file mode 100644 index 2460cac2cb7..00000000000 --- a/keyboards/cmm_studio/fuji65/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 CMM.Studio Freather - * - * This 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 RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/cmm_studio/fuji65/info.json b/keyboards/cmm_studio/fuji65/info.json index 2225bedad3d..860608042f6 100644 --- a/keyboards/cmm_studio/fuji65/info.json +++ b/keyboards/cmm_studio/fuji65/info.json @@ -8,6 +8,23 @@ "pid": "0x364D", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "E6" }, @@ -18,8 +35,86 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_ansi_blocker_split_bs" + }, "layouts": { - "LAYOUT": { + "LAYOUT_ansi_blocker": { + "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, 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": [1, 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, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 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": [3, 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, 6], "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_ansi_blocker_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -90,6 +185,459 @@ {"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_ansi_blocker_tsangan": { + "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, 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": [1, 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, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + + {"matrix": [4, 11], "x": 13, "y": 4}, + {"matrix": [4, 12], "x": 14, "y": 4}, + {"matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_ansi_blocker_tsangan_split_bs": { + "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, 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": [1, 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, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + + {"matrix": [4, 11], "x": 13, "y": 4}, + {"matrix": [4, 12], "x": 14, "y": 4}, + {"matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_iso_blocker": { + "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, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 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, 6], "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_blocker_split_bs": { + "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, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 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, 6], "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_blocker_tsangan": { + "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, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + + {"matrix": [4, 11], "x": 13, "y": 4}, + {"matrix": [4, 12], "x": 14, "y": 4}, + {"matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_iso_blocker_tsangan_split_bs": { + "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, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"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/cmm_studio/fuji65/keymaps/default/keymap.c b/keyboards/cmm_studio/fuji65/keymaps/default/keymap.c index da0538c82e9..ba93e7ae1e0 100644 --- a/keyboards/cmm_studio/fuji65/keymaps/default/keymap.c +++ b/keyboards/cmm_studio/fuji65/keymaps/default/keymap.c @@ -17,7 +17,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi_blocker_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_GRV, 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_TRNS, 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_TRNS, @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi_blocker_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, diff --git a/keyboards/cmm_studio/fuji65/keymaps/via/keymap.c b/keyboards/cmm_studio/fuji65/keymaps/via/keymap.c index 6b37798c9d5..88b3fa1f57f 100644 --- a/keyboards/cmm_studio/fuji65/keymaps/via/keymap.c +++ b/keyboards/cmm_studio/fuji65/keymaps/via/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi_blocker_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_GRV, 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_TRNS, 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_TRNS, @@ -26,21 +26,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_ansi_blocker_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 ), - [2] = LAYOUT( + [2] = LAYOUT_ansi_blocker_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 ), - [3] = LAYOUT( + [3] = LAYOUT_ansi_blocker_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, diff --git a/keyboards/cmm_studio/fuji65/matrix_diagram.md b/keyboards/cmm_studio/fuji65/matrix_diagram.md new file mode 100644 index 00000000000..b98ef38fa5f --- /dev/null +++ b/keyboards/cmm_studio/fuji65/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for CMM.Studio Fuji65 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┐ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2C │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│40 │41 │42 │46 │49 │4A │ │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4A │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` diff --git a/keyboards/coarse/cordillera/config.h b/keyboards/coarse/cordillera/config.h index ef26abfc02f..4282937c7cd 100644 --- a/keyboards/coarse/cordillera/config.h +++ b/keyboards/coarse/cordillera/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD1 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 1 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/coarse/cordillera/rules.mk b/keyboards/coarse/cordillera/rules.mk index 6e8451b10cd..d6cd9d5f0da 100644 --- a/keyboards/coarse/cordillera/rules.mk +++ b/keyboards/coarse/cordillera/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/coarse/ixora/rules.mk b/keyboards/coarse/ixora/rules.mk index ff4c3156fed..af1134ce298 100644 --- a/keyboards/coarse/ixora/rules.mk +++ b/keyboards/coarse/ixora/rules.mk @@ -11,5 +11,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/coarse/vinta/info.json b/keyboards/coarse/vinta/info.json index a430ea36b70..3dd9898f1aa 100644 --- a/keyboards/coarse/vinta/info.json +++ b/keyboards/coarse/vinta/info.json @@ -17,6 +17,9 @@ "bootloader": "stm32-dfu", "debounce": 0, "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT_67_ansi": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_69_ansi": { "layout": [ diff --git a/keyboards/coarse/vinta/rules.mk b/keyboards/coarse/vinta/rules.mk index 88f853eb44d..cedbfeb321f 100644 --- a/keyboards/coarse/vinta/rules.mk +++ b/keyboards/coarse/vinta/rules.mk @@ -10,5 +10,3 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/coban/pad3a/config.h b/keyboards/coban/pad3a/config.h index 9483086fb48..5299ccb4f1c 100644 --- a/keyboards/coban/pad3a/config.h +++ b/keyboards/coban/pad3a/config.h @@ -16,8 +16,5 @@ #pragma once -#define ENCODERS_PAD_A { GP5 } -#define ENCODERS_PAD_B { GP4 } - #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/coban/pad3a/info.json b/keyboards/coban/pad3a/info.json index 3eadcb7f50f..fc5c8ee71ee 100644 --- a/keyboards/coban/pad3a/info.json +++ b/keyboards/coban/pad3a/info.json @@ -9,6 +9,11 @@ "vid": "0xCB3A", "device_version": "1.1.0" }, + "encoder": { + "rotary": [ + {"pin_a": "GP5", "pin_b": "GP4"} + ] + }, "matrix_pins": { "direct": [ ["GP8", "GP7", "GP6"] diff --git a/keyboards/contender/config.h b/keyboards/contender/config.h index 971253f396a..4254bdc63c3 100644 --- a/keyboards/contender/config.h +++ b/keyboards/contender/config.h @@ -17,28 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 33 -#define RGBLIGHT_LED_MAP { \ - 0, 1, 2, 3, \ - 7, 6, 5, 4, \ - 8, 9, 10, 11, \ - 15, 14, 13, 12, \ - 16, 17, 18, 19, \ - 22, 21, 20, \ - 25, 24, 23, 26, 27, 28, 29, 30, 31, 32 } -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/contender/info.json b/keyboards/contender/info.json index 8a81ae164d7..b09556f3d6f 100644 --- a/keyboards/contender/info.json +++ b/keyboards/contender/info.json @@ -12,7 +12,22 @@ "pin": "C6" }, "rgblight": { - "max_brightness": 32 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 33, + "max_brightness": 32, + "sleep": true, + "led_map": [0, 1, 2, 3, 7, 6, 5, 4, 8, 9, 10, 11, 15, 14, 13, 12, 16, 17, 18, 19, 22, 21, 20, 25, 24, 23, 26, 27, 28, 29, 30, 31, 32], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "matrix_pins": { "cols": ["C7", "D6", "B3", "B0", "B1"], diff --git a/keyboards/contra/keymaps/bramver/README.md b/keyboards/contra/keymaps/bramver/README.md index 3c7028a933f..c5a887ce2c1 100644 --- a/keyboards/contra/keymaps/bramver/README.md +++ b/keyboards/contra/keymaps/bramver/README.md @@ -22,9 +22,9 @@ LOWER layer { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, EMOJI layer - { _______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ }, - { _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ }, - { _______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ }, + { _______ , UM(CLAP) , UM(CUM) , UM(BNIS) , UM(BUTT) , UM(CAR) , UM(FIRE) , UM(REDB) , UM(MONY) , UM(HNDR) , UM(SOS) , _______ }, + { _______ , UM(CELE) , UM(PRAY) , UM(NAIL) , UM(OK) , UM(THNK) , UM(UNAM) , UM(HEYE) , UM(COOL) , UM(EYES) , UM(SMIR) , _______ }, + { _______ , UM(TRIU) , UM(SCRM) , UM(VOMI) , UM(DTIV) , UM(EXPL) , UM(HAIR) , UM(DANC) , UM(STRN) , UM(LEFT) , UM(RGHT) , _______ }, { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, MOUSE layer diff --git a/keyboards/contra/keymaps/bramver/keymap.c b/keyboards/contra/keymaps/bramver/keymap.c index 3816ee629e2..08f25119c27 100644 --- a/keyboards/contra/keymaps/bramver/keymap.c +++ b/keyboards/contra/keymaps/bramver/keymap.c @@ -106,9 +106,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_EMOJI] = LAYOUT_ortho_4x12( - _______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ , - _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ , - _______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ , + _______ , UM(CLAP) , UM(CUM) , UM(BNIS) , UM(BUTT) , UM(CAR) , UM(FIRE) , UM(REDB) , UM(MONY) , UM(HNDR) , UM(SOS) , _______ , + _______ , UM(CELE) , UM(PRAY) , UM(NAIL) , UM(OK) , UM(THNK) , UM(UNAM) , UM(HEYE) , UM(COOL) , UM(EYES) , UM(SMIR) , _______ , + _______ , UM(TRIU) , UM(SCRM) , UM(VOMI) , UM(DTIV) , UM(EXPL) , UM(HAIR) , UM(DANC) , UM(STRN) , UM(LEFT) , UM(RGHT) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ), diff --git a/keyboards/contra/keymaps/maxr1998/keymap.c b/keyboards/contra/keymaps/maxr1998/keymap.c index 8a56c607461..0802a211f06 100644 --- a/keyboards/contra/keymaps/maxr1998/keymap.c +++ b/keyboards/contra/keymaps/maxr1998/keymap.c @@ -176,10 +176,11 @@ void update_tri_layer_user(void) { } } -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { // Force-enable Numlock - if (!(usb_led & (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 + +#define WS2812_PIO_USE_PIO1 +#define RGB_MATRIX_LED_COUNT 42 + +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define SPI_MISO_PIN GP16 +#define POINTING_DEVICE_CS_PIN GP17 + +#define CIRQUE_PINNACLE_DIAMETER_MM 40 +#define CIRQUE_PINNACLE_ATTENUATION EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_1X +#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE +#define CIRQUE_PINNACLE_TAP_ENABLE +#define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE \ No newline at end of file diff --git a/keyboards/controllerworks/city42/info.json b/keyboards/controllerworks/city42/info.json new file mode 100644 index 00000000000..914b716f111 --- /dev/null +++ b/keyboards/controllerworks/city42/info.json @@ -0,0 +1,160 @@ +{ + "manufacturer": "Controller Works", + "keyboard_name": "city42", + "maintainer": "controller-works", + "bootloader": "rp2040", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP0", "GP1", "GP2", "GP3", "GP4", "GP5"], + "rows": ["GP12", "GP13", "GP14", "GP15"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "rainbow_moving_chevron": true, + "raindrops": true, + "solid_reactive": true, + "solid_reactive_multinexus": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 5], "x": 80, "y": 17, "flags": 4}, + {"matrix": [0, 4], "x": 66, "y": 11, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 6, "flags": 4}, + {"matrix": [0, 2], "x": 37, "y": 4, "flags": 4}, + {"matrix": [0, 1], "x": 22, "y": 4, "flags": 4}, + {"matrix": [0, 0], "x": 8, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 13, "flags": 1}, + {"matrix": [1, 1], "x": 18, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 49, "y": 18, "flags": 4}, + {"matrix": [1, 4], "x": 63, "y": 24, "flags": 4}, + {"matrix": [1, 5], "x": 76, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 73, "y": 43, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 37, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 30, "flags": 4}, + {"matrix": [2, 1], "x": 15, "y": 29, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 1}, + {"matrix": [3, 3], "x": 49, "y": 50, "flags": 1}, + {"matrix": [3, 4], "x": 66, "y": 56, "flags": 1}, + {"matrix": [3, 5], "x": 76, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 148, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 158, "y": 56, "flags": 1}, + {"matrix": [3, 8], "x": 175, "y": 50, "flags": 1}, + {"matrix": [2, 11], "x": 224, "y": 26, "flags": 1}, + {"matrix": [2, 10], "x": 209, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 193, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 179, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 165, "y": 37, "flags": 4}, + {"matrix": [2, 6], "x": 151, "y": 43, "flags": 4}, + {"matrix": [1, 6], "x": 148, "y": 30, "flags": 4}, + {"matrix": [1, 7], "x": 161, "y": 24, "flags": 4}, + {"matrix": [1, 8], "x": 175, "y": 18, "flags": 4}, + {"matrix": [1, 9], "x": 190, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 206, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 220, "y": 13, "flags": 1}, + {"matrix": [0, 11], "x": 217, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 202, "y": 4, "flags": 4}, + {"matrix": [0, 9], "x": 187, "y": 4, "flags": 4}, + {"matrix": [0, 8], "x": 172, "y": 6, "flags": 4}, + {"matrix": [0, 7], "x": 158, "y": 11, "flags": 4}, + {"matrix": [0, 6], "x": 144, "y": 17, "flags": 4} + ], + "max_brightness": 150 + }, + "tags": ["RP2040", "choc v1", "choc spaced"], + "url": "https://controller.works/products/city42-ergonomic-keyboard", + "usb": { + "device_version": "1.0.0", + "pid": "0x0005", + "vid": "0x4357" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + }, + "community_layouts": ["split_3x6_3"], + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.4}, + {"matrix": [0, 1], "x": 1, "y": 0.4}, + {"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": [0, 6], "x": 8, "y": 0.25}, + {"matrix": [0, 7], "x": 9, "y": 0.125}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.125}, + {"matrix": [0, 10], "x": 12, "y": 0.4}, + {"matrix": [0, 11], "x": 13, "y": 0.4}, + {"matrix": [1, 0], "x": 0, "y": 1.4}, + {"matrix": [1, 1], "x": 1, "y": 1.4}, + {"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": [1, 6], "x": 8, "y": 1.25}, + {"matrix": [1, 7], "x": 9, "y": 1.125}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.125}, + {"matrix": [1, 10], "x": 12, "y": 1.4}, + {"matrix": [1, 11], "x": 13, "y": 1.4}, + {"matrix": [2, 0], "x": 0, "y": 2.4}, + {"matrix": [2, 1], "x": 1, "y": 2.4}, + {"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": [2, 6], "x": 8, "y": 2.25}, + {"matrix": [2, 7], "x": 9, "y": 2.125}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.125}, + {"matrix": [2, 10], "x": 12, "y": 2.4}, + {"matrix": [2, 11], "x": 13, "y": 2.4}, + {"matrix": [3, 3], "x": 3.5, "y": 3.25}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5}, + {"matrix": [3, 5], "x": 5.5, "y": 3.75, "h": 1.5}, + {"matrix": [3, 6], "x": 7.5, "y": 3.75, "h": 1.5}, + {"matrix": [3, 7], "x": 8.5, "y": 3.5}, + {"matrix": [3, 8], "x": 9.5, "y": 3.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/controllerworks/city42/keymaps/default/keymap.c b/keyboards/controllerworks/city42/keymaps/default/keymap.c new file mode 100644 index 00000000000..7f46648a7e8 --- /dev/null +++ b/keyboards/controllerworks/city42/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +/* + * Copyright 2023 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, KC_VOLU, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, 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, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/controllerworks/city42/keymaps/via/keymap.c b/keyboards/controllerworks/city42/keymaps/via/keymap.c new file mode 100644 index 00000000000..7f46648a7e8 --- /dev/null +++ b/keyboards/controllerworks/city42/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +/* + * Copyright 2023 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, KC_VOLU, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, 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, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/controllerworks/city42/keymaps/via/rules.mk b/keyboards/controllerworks/city42/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/controllerworks/city42/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/controllerworks/city42/readme.md b/keyboards/controllerworks/city42/readme.md new file mode 100644 index 00000000000..7dc382bffc6 --- /dev/null +++ b/keyboards/controllerworks/city42/readme.md @@ -0,0 +1,31 @@ +# city42 +![city42](https://i.imgur.com/YZNW4EZh.jpg) +*A pre-built, low profile, unibody split keyboard based on the RP2040 processor* +* Keyboard Maintainer: [Kevin Gee](https://github.com/controller-works) +* Hardware Supported: *city42 split unibody ergonomic keyboard* +* Hardware Availability: *[Controller Works Retail Site](https://controller.works/products/city42-ergonomic-keyboard)* Hardware is available as pre-built units only. +Make example for this keyboard (after setting up your build environment): +```sh + make controllerworks/city42:default +``` +Flashing example for this keyboard: + +```sh + make controllerworks/city42: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 and USB connectors on the main board +- RP2040 processor by Raspberry Pi Foundation running at 130 MHz with 16MB flash memory +- 40mm Cirque trackpad +- 42 per-key RGB LEDs +- ESD and over-current protection on USB +- 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 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 diff --git a/keyboards/controllerworks/city42/rules.mk b/keyboards/controllerworks/city42/rules.mk new file mode 100644 index 00000000000..2e0f2befbf4 --- /dev/null +++ b/keyboards/controllerworks/city42/rules.mk @@ -0,0 +1,2 @@ +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi \ No newline at end of file diff --git a/keyboards/controllerworks/mini36/config.h b/keyboards/controllerworks/mini36/config.h index c9da0d411b6..3a094c2fd10 100644 --- a/keyboards/controllerworks/mini36/config.h +++ b/keyboards/controllerworks/mini36/config.h @@ -18,8 +18,7 @@ #pragma once #define WS2812_PIO_USE_PIO1 -#define RGBLED_NUM 48 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 48 #define RGB_MATRIX_SPLIT \ { 24, 24 } diff --git a/keyboards/controllerworks/mini36/info.json b/keyboards/controllerworks/mini36/info.json index dcab8a1b97c..534dee94f10 100644 --- a/keyboards/controllerworks/mini36/info.json +++ b/keyboards/controllerworks/mini36/info.json @@ -55,7 +55,7 @@ "oled": true }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 71, "y": 4}, {"flags": 2, "x": 32, "y": 2}, diff --git a/keyboards/controllerworks/mini36/keymaps/vial/rules.mk b/keyboards/controllerworks/mini36/keymaps/vial/rules.mk index 6bc7063adc2..fae12e70165 100644 --- a/keyboards/controllerworks/mini36/keymaps/vial/rules.mk +++ b/keyboards/controllerworks/mini36/keymaps/vial/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes -VIAL_ENABLE = yes \ No newline at end of file +VIAL_ENABLE = yes +VIALRGB_ENABLE = yes \ No newline at end of file diff --git a/keyboards/controllerworks/mini36/rules.mk b/keyboards/controllerworks/mini36/rules.mk index ee37cd7f6f0..161ec22b16e 100644 --- a/keyboards/controllerworks/mini36/rules.mk +++ b/keyboards/controllerworks/mini36/rules.mk @@ -1,2 +1 @@ SERIAL_DRIVER = vendor -OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/config.h b/keyboards/controllerworks/mini42/config.h index 0a4d8c84b77..e7fc529592f 100644 --- a/keyboards/controllerworks/mini42/config.h +++ b/keyboards/controllerworks/mini42/config.h @@ -18,8 +18,7 @@ #pragma once #define WS2812_PIO_USE_PIO1 -#define RGBLED_NUM 54 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 54 #define SPLIT_TRANSPORT_MIRROR #define SPLIT_LAYER_STATE_ENABLE diff --git a/keyboards/controllerworks/mini42/info.json b/keyboards/controllerworks/mini42/info.json index 4aa0b8eeaf8..ae70408a9f4 100644 --- a/keyboards/controllerworks/mini42/info.json +++ b/keyboards/controllerworks/mini42/info.json @@ -56,7 +56,7 @@ "oled": true }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "split_count": [27, 27], "layout": [ {"flags": 2, "x": 75, "y": 4}, diff --git a/keyboards/controllerworks/mini42/keymaps/vial/config.h b/keyboards/controllerworks/mini42/keymaps/vial/config.h index bc02d405480..9f440bec931 100644 --- a/keyboards/controllerworks/mini42/keymaps/vial/config.h +++ b/keyboards/controllerworks/mini42/keymaps/vial/config.h @@ -20,68 +20,55 @@ #define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } #define VIAL_UNLOCK_COMBO_COLS { 0, 0 } -#ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 54 // Number of LEDs -# define RGB_MATRIX_LED_COUNT 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 (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) -// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# 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_FRAMEBUFFER_EFFECTS +#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_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 +#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 +#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 +#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/controllerworks/mini42/mini42.h b/keyboards/controllerworks/mini42/mini42.h deleted file mode 100644 index 8155798246f..00000000000 --- a/keyboards/controllerworks/mini42/mini42.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * 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 "quantum.h" diff --git a/keyboards/controllerworks/mini42/rules.mk b/keyboards/controllerworks/mini42/rules.mk index 71f52c4e4d2..161ec22b16e 100644 --- a/keyboards/controllerworks/mini42/rules.mk +++ b/keyboards/controllerworks/mini42/rules.mk @@ -1,2 +1 @@ SERIAL_DRIVER = vendor -OLED_DRIVER = SSD1306 diff --git a/keyboards/converter/a1200/mistress1200/config.h b/keyboards/converter/a1200/mistress1200/config.h index 21ba99e0b7f..bc137dc1856 100644 --- a/keyboards/converter/a1200/mistress1200/config.h +++ b/keyboards/converter/a1200/mistress1200/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define TAPPING_TOGGLE 3 - #undef LOCKING_SUPPORT_ENABLE #undef LOCKING_RESYNC_ENABLE #define LAYER_STATE_8BIT diff --git a/keyboards/converter/a1200/mistress1200/info.json b/keyboards/converter/a1200/mistress1200/info.json index c37bdadd617..28de092b3de 100644 --- a/keyboards/converter/a1200/mistress1200/info.json +++ b/keyboards/converter/a1200/mistress1200/info.json @@ -16,5 +16,8 @@ "on_state": 0 }, "processor": "atmega16u4", - "bootloader": "atmel-dfu" + "bootloader": "atmel-dfu", + "tapping": { + "toggle": 3 + } } diff --git a/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c b/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c index 0e11fa67797..3645dd7da72 100644 --- a/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c +++ b/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c @@ -226,9 +226,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY), X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV),XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN), X(HEART),X(BYE), X(KISS), X(CELEB),X(COOL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,X(SLEEP),X(CLAP), X(CRY), X(VIC), X(BHART),X(SUN), X(SMEYE),X(WINK), X(MOON), X(CONFU), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, UM(CRY2),UM(WEARY),UM(EYERT),UM(SMIRK), UM(TJOY), UM(RECYC),UM(UNAMU),UM(MUSIC),UM(OKHND),UM(PENSV),XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, UM(PRAY),UM(SMILE),UM(SMIL2),UM(FLUSH), UM(GRIN), UM(HEART),UM(BYE), UM(KISS), UM(CELEB),UM(COOL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,UM(SLEEP),UM(CLAP), UM(CRY), UM(VIC), UM(BHART),UM(SUN), UM(SMEYE),UM(WINK), UM(MOON), UM(CONFU), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), diff --git a/keyboards/converter/ibm_terminal/led.c b/keyboards/converter/ibm_terminal/led.c index e0f31ee4e15..1bcde277a21 100644 --- a/keyboards/converter/ibm_terminal/led.c +++ b/keyboards/converter/ibm_terminal/led.c @@ -20,14 +20,15 @@ along with this program. If not, see . #include "led.h" -void led_set(uint8_t usb_led) +bool led_update_kb(led_t led_state) { uint8_t ps2_led = 0; - if (usb_led & (1<. #include "print.h" #include "uart.h" -void led_set(uint8_t usb_led) +bool led_update_kb(led_t led_state) { - uint8_t sun_led = 0; - if (usb_led & (1<. -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - -/* - * 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/coseyfannitutti/mullet/info.json b/keyboards/coseyfannitutti/mullet/info.json index 695d0729c17..3b63ece2209 100644 --- a/keyboards/coseyfannitutti/mullet/info.json +++ b/keyboards/coseyfannitutti/mullet/info.json @@ -8,6 +8,24 @@ "pid": "0x6969", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/cosmo65/config.h b/keyboards/cosmo65/config.h deleted file mode 100644 index c97f9dbac4c..00000000000 --- a/keyboards/cosmo65/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2022 BentoBox 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 http://www.gnu.org/licenses/. -*/ - -#pragma once - - -/* RGB Lighting */ -#define RGBLED_NUM 16 -#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 diff --git a/keyboards/cosmo65/info.json b/keyboards/cosmo65/info.json index d20de266e47..1cc4ff4e637 100644 --- a/keyboards/cosmo65/info.json +++ b/keyboards/cosmo65/info.json @@ -8,6 +8,20 @@ "pid": "0x6331", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/cozykeys/bloomer/config.h b/keyboards/cozykeys/bloomer/config.h index 44f6aa36133..922dec71d15 100644 --- a/keyboards/cozykeys/bloomer/config.h +++ b/keyboards/cozykeys/bloomer/config.h @@ -16,26 +16,6 @@ along with this program. If not, see . */ #pragma once - -// Enable RGB backlight -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif - // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap #define LOCKING_SUPPORT_ENABLE // Locking resynchronize hack diff --git a/keyboards/cozykeys/bloomer/info.json b/keyboards/cozykeys/bloomer/info.json index 96db04787eb..dd0232bbcb5 100644 --- a/keyboards/cozykeys/bloomer/info.json +++ b/keyboards/cozykeys/bloomer/info.json @@ -7,6 +7,24 @@ "vid": "0xFEED", "pid": "0x1191" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D7" } diff --git a/keyboards/cozykeys/speedo/v3/config.h b/keyboards/cozykeys/speedo/v3/config.h index 8a13e5e509d..2643e4de4a1 100644 --- a/keyboards/cozykeys/speedo/v3/config.h +++ b/keyboards/cozykeys/speedo/v3/config.h @@ -16,24 +16,6 @@ along with this program. If not, see . */ #pragma once -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif - // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap #define LOCKING_SUPPORT_ENABLE // Locking resynchronize hack diff --git a/keyboards/cozykeys/speedo/v3/info.json b/keyboards/cozykeys/speedo/v3/info.json index d368fd25fc8..3a084b04baa 100644 --- a/keyboards/cozykeys/speedo/v3/info.json +++ b/keyboards/cozykeys/speedo/v3/info.json @@ -8,6 +8,24 @@ "pid": "0x1192", "device_version": "0.0.3" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/craftwalk/config.h b/keyboards/craftwalk/config.h index 40d79db10cd..4254bdc63c3 100644 --- a/keyboards/craftwalk/config.h +++ b/keyboards/craftwalk/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 19 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== or choose 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/craftwalk/info.json b/keyboards/craftwalk/info.json index b3f3fbbe577..51030e9e64b 100644 --- a/keyboards/craftwalk/info.json +++ b/keyboards/craftwalk/info.json @@ -8,6 +8,21 @@ "pid": "0x2E8F", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 19, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/crawlpad/config.h b/keyboards/crawlpad/config.h index 43784354713..cf006905ab2 100755 --- a/keyboards/crawlpad/config.h +++ b/keyboards/crawlpad/config.h @@ -13,17 +13,3 @@ #define IS_COMMAND() ( \ false \ ) - -#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 RGBLED_NUM 3 -#endif diff --git a/keyboards/crawlpad/info.json b/keyboards/crawlpad/info.json index 0d4d38d4ead..3eb3b329555 100644 --- a/keyboards/crawlpad/info.json +++ b/keyboards/crawlpad/info.json @@ -8,6 +8,21 @@ "pid": "0x6070", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 3, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/crazy_keyboard_68/config.h b/keyboards/crazy_keyboard_68/config.h index 50fbb5dcb9a..b5128c93651 100644 --- a/keyboards/crazy_keyboard_68/config.h +++ b/keyboards/crazy_keyboard_68/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 84 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/crazy_keyboard_68/info.json b/keyboards/crazy_keyboard_68/info.json index 5e7416545df..704bcb5897f 100644 --- a/keyboards/crazy_keyboard_68/info.json +++ b/keyboards/crazy_keyboard_68/info.json @@ -17,6 +17,24 @@ "caps_lock": "B0", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 84, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/crin/rules.mk b/keyboards/crin/rules.mk index 0aeca0dd9f3..7f4f202a1b7 100644 --- a/keyboards/crin/rules.mk +++ b/keyboards/crin/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/crkbd/info.json b/keyboards/crkbd/info.json index 198ef51d5f0..fa9abc574e6 100644 --- a/keyboards/crkbd/info.json +++ b/keyboards/crkbd/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "features": { "bootmagic": true, diff --git a/keyboards/crkbd/keymaps/ajarov/rules.mk b/keyboards/crkbd/keymaps/ajarov/rules.mk index 3e637d11da4..bc45ff83ba7 100644 --- a/keyboards/crkbd/keymaps/ajarov/rules.mk +++ b/keyboards/crkbd/keymaps/ajarov/rules.mk @@ -1,5 +1,4 @@ MOUSEKEY_ENABLE = yes RGBLIGHT_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/armand1m/rules.mk b/keyboards/crkbd/keymaps/armand1m/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/crkbd/keymaps/armand1m/rules.mk +++ b/keyboards/crkbd/keymaps/armand1m/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/benrestech/rules.mk b/keyboards/crkbd/keymaps/benrestech/rules.mk index c177a33cf52..462ceeb32b7 100644 --- a/keyboards/crkbd/keymaps/benrestech/rules.mk +++ b/keyboards/crkbd/keymaps/benrestech/rules.mk @@ -1,3 +1,2 @@ RGBLIGHT_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/bermeo/rules.mk b/keyboards/crkbd/keymaps/bermeo/rules.mk index e666f1f0cbc..369b90ce380 100644 --- a/keyboards/crkbd/keymaps/bermeo/rules.mk +++ b/keyboards/crkbd/keymaps/bermeo/rules.mk @@ -3,7 +3,6 @@ RGB_MATRIX_ENABLE = yes MOUSEKEY_ENABLE = no NKRO_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes SLEEP_LED_ENABLE = yes WPM_ENABLE = yes @@ -16,4 +15,4 @@ BOOTMAGIC_ENABLE = no COMBO_ENABLE = no AUDIO_ENABLE = no MIDI_ENABLE = no -BLUETOOTH_ENABLE = no \ No newline at end of file +BLUETOOTH_ENABLE = no diff --git a/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk b/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk index f5998494482..f0b00f3cf01 100644 --- a/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk +++ b/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk @@ -1,7 +1,6 @@ BOOTMAGIC_ENABLE = no BOOLOADER = atmel-dfu OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow COMMAND_ENABLE = no # Disables the command feature COMBO_ENABLE = yes @@ -12,4 +11,4 @@ MIDI_ENABLE = no BLUETOOTH_ENABLE = no BACKLIGHT_ENABLE = no CAPS_WORD_ENABLE = yes -CUSTOM_ONESHOT_ENABLE = yes \ No newline at end of file +CUSTOM_ONESHOT_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/colemad/config.h b/keyboards/crkbd/keymaps/colemad/config.h index b52c669ea9e..f23a3a4177f 100644 --- a/keyboards/crkbd/keymaps/colemad/config.h +++ b/keyboards/crkbd/keymaps/colemad/config.h @@ -2,6 +2,8 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once +#define SPLIT_USB_DETECT // Added for Elite-C to work + #define QUICK_TAP_TERM 0 #define TAPPING_TERM 200 diff --git a/keyboards/crkbd/keymaps/colemad/keycodes.h b/keyboards/crkbd/keymaps/colemad/keycodes.h index 6497f1662b1..0f75dabef6a 100644 --- a/keyboards/crkbd/keymaps/colemad/keycodes.h +++ b/keyboards/crkbd/keymaps/colemad/keycodes.h @@ -19,6 +19,6 @@ /* Macros */ enum custom_keycodes { - VSCTERM = SAFE_RANGE, + VSCTERM = QK_USER, CHNLANG }; diff --git a/keyboards/crkbd/keymaps/colemad/keymap.c b/keyboards/crkbd/keymaps/colemad/keymap.c index fb951370f2c..888499f5a2d 100644 --- a/keyboards/crkbd/keymaps/colemad/keymap.c +++ b/keyboards/crkbd/keymaps/colemad/keymap.c @@ -50,9 +50,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( //,-----------------------------------------------------. ,-----------------------------------------------------. - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, + XXXXXXX, XXXXXXX, KC_F13, KC_F14, KC_F15, XXXXXXX, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, VSCTERM, KC_PSCR, CHNLANG, XXXXXXX, XXXXXXX,RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, + XXXXXXX, KC_F16, KC_F17, KC_F18, KC_F19, XXXXXXX, XXXXXXX,RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/crkbd/keymaps/colemad/readme.md b/keyboards/crkbd/keymaps/colemad/readme.md index 404fa9e7980..fd216bea36a 100644 --- a/keyboards/crkbd/keymaps/colemad/readme.md +++ b/keyboards/crkbd/keymaps/colemad/readme.md @@ -1,21 +1,29 @@ # **COLEMAD** +Compiled and tested: `July 12, 2023` + ## Corne Keyboard (CRKBD) **Colemak** layout by [ACortesDev](https://github.com/ACortesDev) -1. **Fast navigation**. -2. **Fast symbols**. -3. **Fast numbers**. +1. **Ergonomic navigation keys**. +2. **Symbols where expected to be**. +3. **Numbers (numpad)**. Using the Telephone/ATM numpad layout. Easier to memorize/visualize as numbers follow *left-to-right, top-to-bottom* order. -4. **Fast capital letters**. +4. **Easy Capital letters**. Added a *CAPS Lock* key because... [There is no *CAPS Lock* key in the Colemak Layout](https://colemak.com/FAQ#Where_is_the_Caps_Lock_key.3F). --- ### **Flashing** -For *Pro Micro* execute: `sudo make crkbd:colemad:avrdude` +~~For *Pro Micro* execute: `sudo make crkbd:colemad:avrdude`~~ + +~~For *Elite-C* execute: `sudo make crkbd:colemad:dfu`~~ -For *Elite-C* execute: `sudo make crkbd:colemad:dfu` +For *Pro Micro* and *Elite-C* run: + +```sh +qmk flash -kb crkbd -km colemad -bl dfu +``` --- @@ -87,11 +95,15 @@ Notes: ##### Macros + Settings +Notes: + +- Function keys (from F13 to F19) to use for Linux/MacOS shortcuts. + ```text ,-----------------------------------------------------. ,-----------------------------------------------------. - | | | | | | | |RGB_TOG |RGB_MOD |RGB_VAI |RGB_HUI |RGB_SAI |RGB_SPI | + | | | F13 | F14 | F15 | | |RGB_TOG |RGB_MOD |RGB_VAI |RGB_HUI |RGB_SAI |RGB_SPI | |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - | | |VSCTERM | PSCR |CHNLANG | | | |RGB_RMOD|RGB_VAD |RGB_HUD |RGB_SAD |RGB_SPD | + | | F16 | F17 | F18 | F19 | | | |RGB_RMOD|RGB_VAD |RGB_HUD |RGB_SAD |RGB_SPD | |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | | | | | | | | | | | | | | `--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------' @@ -102,5 +114,9 @@ Notes: `--------+--------+--------' `--------+--------+--------' ``` +##### Ready to use Macro examples + +Checkout `keycodes.h` and `process_records.c/h` files. + - Macro **VSCTERM**: Toggles the vscode terminal (Ctrl + `) - Macro **CHNLANG**: Changes the OS keyboard layout (Ctrl + Shift + N) diff --git a/keyboards/crkbd/keymaps/colemad/rules.mk b/keyboards/crkbd/keymaps/colemad/rules.mk index 6f9d31a7551..70eb5c33188 100644 --- a/keyboards/crkbd/keymaps/colemad/rules.mk +++ b/keyboards/crkbd/keymaps/colemad/rules.mk @@ -4,7 +4,6 @@ SPLIT_KEYBOARD = yes TAP_DANCE_ENABLE = yes MOUSEKEY_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Link Time Optimization (Reduces compiled size) diff --git a/keyboards/crkbd/keymaps/colemak_luna/rules.mk b/keyboards/crkbd/keymaps/colemak_luna/rules.mk index a26c4eb8a31..9ff3128931a 100644 --- a/keyboards/crkbd/keymaps/colemak_luna/rules.mk +++ b/keyboards/crkbd/keymaps/colemak_luna/rules.mk @@ -3,6 +3,5 @@ RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes # Enable WS2812 RGB underlight. VIA_ENABLE = yes # Enable VIA OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes WPM_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/crkdves/rules.mk b/keyboards/crkbd/keymaps/crkdves/rules.mk index d3a964424fe..d95e1136bbb 100644 --- a/keyboards/crkbd/keymaps/crkdves/rules.mk +++ b/keyboards/crkbd/keymaps/crkdves/rules.mk @@ -3,6 +3,4 @@ RGB_MATRIX_ENABLE = yes MOUSEKEY_ENABLE = no NKRO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes - diff --git a/keyboards/crkbd/keymaps/crkqwes/config.h b/keyboards/crkbd/keymaps/crkqwes/config.h index 5be6a0449b4..b2209c7e6df 100644 --- a/keyboards/crkbd/keymaps/crkqwes/config.h +++ b/keyboards/crkbd/keymaps/crkqwes/config.h @@ -28,9 +28,7 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -// #define SSD1306OLED #undef USE_I2C -#undef SSD1306OLED #define QUICK_TAP_TERM 0 #define TAPPING_TERM 200 diff --git a/keyboards/crkbd/keymaps/crkqwes/rules.mk b/keyboards/crkbd/keymaps/crkqwes/rules.mk index d3a964424fe..d95e1136bbb 100644 --- a/keyboards/crkbd/keymaps/crkqwes/rules.mk +++ b/keyboards/crkbd/keymaps/crkqwes/rules.mk @@ -3,6 +3,4 @@ RGB_MATRIX_ENABLE = yes MOUSEKEY_ENABLE = no NKRO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes - diff --git a/keyboards/crkbd/keymaps/devdev/rules.mk b/keyboards/crkbd/keymaps/devdev/rules.mk index 4aaf22fd049..4d53cc75641 100644 --- a/keyboards/crkbd/keymaps/devdev/rules.mk +++ b/keyboards/crkbd/keymaps/devdev/rules.mk @@ -2,4 +2,3 @@ MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes RGBLIGHT_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/edvorakjp/rules.mk b/keyboards/crkbd/keymaps/edvorakjp/rules.mk index 1291d50e921..c019c307569 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/rules.mk +++ b/keyboards/crkbd/keymaps/edvorakjp/rules.mk @@ -17,7 +17,6 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing TAP_DANCE_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/crkbd/keymaps/gotham/rules.mk b/keyboards/crkbd/keymaps/gotham/rules.mk index 48a2c1d72aa..455cf708a6a 100644 --- a/keyboards/crkbd/keymaps/gotham/rules.mk +++ b/keyboards/crkbd/keymaps/gotham/rules.mk @@ -3,5 +3,4 @@ EXTRAKEY_ENABLE = yes AUDIO_ENABLE = yes RGBLIGHT_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/hvp/keymap.c b/keyboards/crkbd/keymaps/hvp/keymap.c index 7e1953e34d6..fc57fc1bb06 100644 --- a/keyboards/crkbd/keymaps/hvp/keymap.c +++ b/keyboards/crkbd/keymaps/hvp/keymap.c @@ -1,9 +1,5 @@ #include QMK_KEYBOARD_H #include "hvp.c" -#ifdef SSD1306OLED -# include "ssd1306.h" -# include -#endif #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings diff --git a/keyboards/crkbd/keymaps/hvp/rules.mk b/keyboards/crkbd/keymaps/hvp/rules.mk index c7ed029e3d4..3091ed20af4 100644 --- a/keyboards/crkbd/keymaps/hvp/rules.mk +++ b/keyboards/crkbd/keymaps/hvp/rules.mk @@ -10,5 +10,4 @@ SRC += ./lib/rgb_state_reader.c \ TAP_DANCE_ENABLE = yes EXTRAKEY_ENABLE = yes # Audio control and System control OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # LOCAL_GLCDFONT = yes diff --git a/keyboards/crkbd/keymaps/jarred/rules.mk b/keyboards/crkbd/keymaps/jarred/rules.mk index f18100d7ff4..efa378b0991 100644 --- a/keyboards/crkbd/keymaps/jarred/rules.mk +++ b/keyboards/crkbd/keymaps/jarred/rules.mk @@ -17,7 +17,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/crkbd/keymaps/jpe230/rules.mk b/keyboards/crkbd/keymaps/jpe230/rules.mk index b78c1d45f3c..459cf9c6917 100644 --- a/keyboards/crkbd/keymaps/jpe230/rules.mk +++ b/keyboards/crkbd/keymaps/jpe230/rules.mk @@ -1,6 +1,5 @@ # Shared rules for both of my Corne OLED_ENABLE = yes -OLED_DRIVER = SSD1306 VIA_ENABLE = yes RGB_MATRIX_ENABLE = yes @@ -22,4 +21,3 @@ else SRC += oled/avr/master/oled_master_handler.c \ oled/avr/slave/oled_slave_handler.c endif - diff --git a/keyboards/crkbd/keymaps/julian_turner/rules.mk b/keyboards/crkbd/keymaps/julian_turner/rules.mk index e6ddd80076d..1717383ec49 100644 --- a/keyboards/crkbd/keymaps/julian_turner/rules.mk +++ b/keyboards/crkbd/keymaps/julian_turner/rules.mk @@ -1,7 +1,6 @@ RGBLIGHT_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/kidbrazil/rules.mk b/keyboards/crkbd/keymaps/kidbrazil/rules.mk index d2c2f649e0e..c16efc66e30 100644 --- a/keyboards/crkbd/keymaps/kidbrazil/rules.mk +++ b/keyboards/crkbd/keymaps/kidbrazil/rules.mk @@ -6,7 +6,6 @@ MOUSEKEY_ENABLE = no RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # If you want to change the display of OLED, you need to change here SRC += logo_reader.c \ diff --git a/keyboards/crkbd/keymaps/madhatter/rules.mk b/keyboards/crkbd/keymaps/madhatter/rules.mk index 89a2791bcd6..ed64986331f 100644 --- a/keyboards/crkbd/keymaps/madhatter/rules.mk +++ b/keyboards/crkbd/keymaps/madhatter/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # If you want to change the display of OLED, you need to change here SRC += ./lib/rgb_state_reader.c \ diff --git a/keyboards/crkbd/keymaps/markstos/config.h b/keyboards/crkbd/keymaps/markstos/config.h index 24101724de0..0a3d7a360cf 100644 --- a/keyboards/crkbd/keymaps/markstos/config.h +++ b/keyboards/crkbd/keymaps/markstos/config.h @@ -16,9 +16,6 @@ This is the C configuration file for the keymap #define MASTER_RIGHT // #define EE_HANDS -//#define SSD1306OLED - - // By default, when holding a dual-function key shortly after tapping it, the // tapped key will begin repeating. This is handy for fast typists when typing // words with double letters, such as "happy". If you turn this setting ON, it diff --git a/keyboards/crkbd/keymaps/mcrown/rules.mk b/keyboards/crkbd/keymaps/mcrown/rules.mk index 922e246ba9a..8b6f82d5df3 100644 --- a/keyboards/crkbd/keymaps/mcrown/rules.mk +++ b/keyboards/crkbd/keymaps/mcrown/rules.mk @@ -7,7 +7,6 @@ MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = no # Audio control and System control(+450) RGB_MATRIX_ENABLE = yes # Enable RGB Matrix. OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend diff --git a/keyboards/crkbd/keymaps/nimishgautam/rules.mk b/keyboards/crkbd/keymaps/nimishgautam/rules.mk index 84ae6248cbd..dcb0007591b 100644 --- a/keyboards/crkbd/keymaps/nimishgautam/rules.mk +++ b/keyboards/crkbd/keymaps/nimishgautam/rules.mk @@ -1,6 +1,5 @@ RGB_MATRIX_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 COMBO_ENABLE = yes TAP_DANCE_ENABLE = yes # enable tap dance features EXTRAKEY_ENABLE = no diff --git a/keyboards/crkbd/keymaps/ninjonas/rules.mk b/keyboards/crkbd/keymaps/ninjonas/rules.mk index c40a827798a..6dd34f26d77 100644 --- a/keyboards/crkbd/keymaps/ninjonas/rules.mk +++ b/keyboards/crkbd/keymaps/ninjonas/rules.mk @@ -1,7 +1,6 @@ RGB_MATRIX_ENABLE = yes MOUSEKEY_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/crkbd/keymaps/oled_sample/keymap.c b/keyboards/crkbd/keymaps/oled_sample/keymap.c index 1a48165e3fa..84a4f9204f0 100644 --- a/keyboards/crkbd/keymaps/oled_sample/keymap.c +++ b/keyboards/crkbd/keymaps/oled_sample/keymap.c @@ -147,12 +147,12 @@ void render_layer_state(void) { oled_write_P(PSTR("Raise"), layer_state_is(_RAISE)); } -void render_keylock_status(uint8_t led_usb_state) { +void render_keylock_status(led_t led_state) { oled_write_P(PSTR("Lock:"), false); oled_write_P(PSTR(" "), false); - oled_write_P(PSTR("N"), led_usb_state & (1 << USB_LED_NUM_LOCK)); - oled_write_P(PSTR("C"), led_usb_state & (1 << USB_LED_CAPS_LOCK)); - oled_write_ln_P(PSTR("S"), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); + oled_write_P(PSTR("N"), led_state.num_lock); + oled_write_P(PSTR("C"), led_state.caps_lock); + oled_write_ln_P(PSTR("S"), led_state.scroll_lock); } void render_mod_status(uint8_t modifiers) { @@ -183,7 +183,7 @@ void render_bootmagic_status(void) { void render_status_main(void) { /* Show Keyboard Layout */ render_default_layer_state(); - render_keylock_status(host_keyboard_leds()); + render_keylock_status(host_keyboard_led_state()); render_mod_status(get_mods()); render_bootmagic_status(); diff --git a/keyboards/crkbd/keymaps/oled_sample/rules.mk b/keyboards/crkbd/keymaps/oled_sample/rules.mk index d9db223cfa5..676795847a3 100644 --- a/keyboards/crkbd/keymaps/oled_sample/rules.mk +++ b/keyboards/crkbd/keymaps/oled_sample/rules.mk @@ -5,4 +5,3 @@ # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/ollyhayes/rules.mk b/keyboards/crkbd/keymaps/ollyhayes/rules.mk index 2dcd9007e57..f2bf2ce07b8 100644 --- a/keyboards/crkbd/keymaps/ollyhayes/rules.mk +++ b/keyboards/crkbd/keymaps/ollyhayes/rules.mk @@ -1,7 +1,6 @@ SRC += oled.c OLED_ENABLE = yes -OLED_DRIVER = SSD1306 EXTRAKEY_ENABLE = yes UNICODE_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/oo/rules.mk b/keyboards/crkbd/keymaps/oo/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/crkbd/keymaps/oo/rules.mk +++ b/keyboards/crkbd/keymaps/oo/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/rarick/rules.mk b/keyboards/crkbd/keymaps/rarick/rules.mk index 775268a1d47..2528fec9b0f 100644 --- a/keyboards/crkbd/keymaps/rarick/rules.mk +++ b/keyboards/crkbd/keymaps/rarick/rules.mk @@ -4,9 +4,6 @@ BOOTLOADER = atmel-dfu # Enable RGB matric RGB_MATRIX_ENABLE = yes -# Enable OLED driver -OLED_DRIVER_ENABLE = yes - # Enable media keys EXTRAKEY_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/rjhilgefort/rules.mk b/keyboards/crkbd/keymaps/rjhilgefort/rules.mk index c6c258e255e..e7c9b4b9537 100644 --- a/keyboards/crkbd/keymaps/rjhilgefort/rules.mk +++ b/keyboards/crkbd/keymaps/rjhilgefort/rules.mk @@ -5,4 +5,3 @@ BOOTLOADER = atmel-dfu EXTRAKEY_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/rmeli/rules.mk b/keyboards/crkbd/keymaps/rmeli/rules.mk index 58a00ed6ba3..107c4939782 100644 --- a/keyboards/crkbd/keymaps/rmeli/rules.mk +++ b/keyboards/crkbd/keymaps/rmeli/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 TAP_DANCE_ENABLE = yes AUTO_SHIFT_ENABLE = no // disable auto-shift with home row mods diff --git a/keyboards/crkbd/keymaps/rpbaptist/config.h b/keyboards/crkbd/keymaps/rpbaptist/config.h index d0cda957946..82064abb575 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/config.h +++ b/keyboards/crkbd/keymaps/rpbaptist/config.h @@ -20,115 +20,103 @@ along with this program. If not, see . #pragma once -//#define USE_MATRIX_I2C - /* Select hand configuration */ #define EE_HANDS -#ifdef OLED_ENABLE -# define OLED_TIMEOUT 600000 -#endif - -// #define FORCE_NKRO +#define NO_ACTION_ONESHOT +#define NO_USB_STARTUP_CHECK -#define QMK_ESC_OUTPUT F4 // usually COL -#define QMK_ESC_INPUT D4 // usually ROW -#define QMK_LED B0 +#define LAYER_STATE_8BIT // 8 layer limit -#define NO_ACTION_ONESHOT +#define SPLIT_ACTIVITY_ENABLE +#define SPLIT_LAYER_STATE_ENABLE #ifdef RGB_MATRIX_ENABLE -# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 - -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 12 -# define RGB_MATRIX_VAL_STEP 10 -# define RGB_MATRIX_SPD_STEP 10 +// Undefine r2g effects # undef ENABLE_RGB_MATRIX_ALPHAS_MODS -# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# undef ENABLE_RGB_MATRIX_BREATHING +# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT # undef ENABLE_RGB_MATRIX_BAND_SAT # undef ENABLE_RGB_MATRIX_BAND_VAL -# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL # undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT # undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL - -// #undef ENABLE_RGB_MATRIX_CYCLE_ALL -// # undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN -# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL # undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL # undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# undef ENABLE_RGB_MATRIX_DUAL_BEACON -# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON -// #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS # undef ENABLE_RGB_MATRIX_RAINDROPS -# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# undef ENABLE_RGB_MATRIX_HUE_BREATHING +# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# undef ENABLE_RGB_MATRIX_SPLASH +# undef ENABLE_RGB_MATRIX_SOLID_SPLASH -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// #undef ENABLE_RGB_MATRIX_TYPING_HEATMAP -# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define SPLIT_TRANSACTION_IDS_USER USER_CONFIG_SYNC -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# 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 IDLE_TIMEOUT 60000 * 4 +# define GAMING_IDLE_TIMEOUT 10000 +# define RGB_MATRIX_TYPING_ACTIVE RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define RGB_MATRIX_TYPING_PASSIVE RGB_MATRIX_CYCLE_ALL +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 135 -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -// # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define RGB_MATRIX_HUE_STEP 6 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 10 +# define RGB_MATRIX_SPD_STEP 10 -# undef ENABLE_RGB_MATRIX_SPLASH -# undef ENABLE_RGB_MATRIX_MULTISPLASH -# undef ENABLE_RGB_MATRIX_SOLID_SPLASH -# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# define RGB_MATRIX_ANIMATION_SPEED_DEFAULT UINT8_MAX / 2 -# define RGB_MATRIX_ANIMATION_SPEED_SLOW RGB_MATRIX_ANIMATION_SPEED_DEFAULT / 4 -# define RGB_MATRIX_ANIMATION_SPEED_SLOWER RGB_MATRIX_ANIMATION_SPEED_SLOW / 3 +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP + +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses + +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + +# define RGB_MATRIX_ANIMATION_SPEED_FAST UINT8_MAX / 2 +# define RGB_MATRIX_ANIMATION_SPEED_MEDIUM UINT8_MAX / 4 +# define RGB_MATRIX_ANIMATION_SPEED_SLOW UINT8_MAX / 8 +# define RGB_MATRIX_ANIMATION_SPEED_SLOWER UINT8_MAX / 24 + +# if defined(THEME_GODSPEED) +# define THEME_HSV 132, 255, 125 +# elif defined(THEME_GODSPEED_ARES) +# define THEME_HSV HSV_ORANGE +# elif defined(THEME_LASER) +# undef RGB_MATRIX_TYPING_ACTIVE +# undef RGB_MATRIX_TYPING_PASSIVE +# define THEME_HSV HSV_PURPLE +# define RGB_MATRIX_TYPING_ACTIVE RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define RGB_MATRIX_TYPING_PASSIVE RGB_MATRIX_CYCLE_LEFT_RIGHT +# elif defined(THEME_MILKSHAKE) +# undef RGB_MATRIX_TYPING_ACTIVE +# undef RGB_MATRIX_TYPING_PASSIVE +# define THEME_HSV 30, 255, 218 +# define RGB_MATRIX_TYPING_ACTIVE RGB_MATRIX_TYPING_HEATMAP +# define RGB_MATRIX_TYPING_PASSIVE RGB_MATRIX_CYCLE_LEFT_RIGHT +# else +# define THEME_HSV 123, 255, 125 // default to PULSE +# endif #endif #define TAPPING_TERM 140 #define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY +#define TAP_CODE_DELAY 10 #define TAPPING_TOGGLE 2 -#ifdef MOUSEKEY_ENABLE -# define MOUSEKEY_DELAY 0 -# define MOUSEKEY_INTERVAL 16 -# define MOUSEKEY_MAX_SPEED 6 -# define MOUSEKEY_TIME_TO_MAX 36 -# define MOUSEKEY_WHEEL_MAX_SPEED 4 -# define MOUSEKEY_WHEEL_TIME_TO_MAX 100 -#endif - -#ifdef THEME_GODSPEED -# define OLED_FONT_H "keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c" -# define THEME_HSV 132, 255, 125 -#endif - -#ifdef THEME_PULSE -# define OLED_FONT_H "keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c" -# define THEME_HSV 123, 255, 125 -#endif - -#ifdef THEME_LASER -# define OLED_FONT_H "keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c" -# define THEME_HSV HSV_MAGENTA +#ifdef OLED_ENABLE +# define SPLIT_OLED_ENABLE +# define OLED_TIMEOUT 60000 * 10 +# define OLED_FONT_H "glcdfont_multi.c" #endif -#define NO_ACTION_ONESHOT - #undef PRODUCT #define PRODUCT "Corne Keyboard" - -#define LCPC_KEYS KC_LCTL, KC_LSFT, KC_9 -#define RCPC_KEYS KC_RCTL, KC_RSFT, KC_0 diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont.c deleted file mode 100644 index ac1f11dbbe2..00000000000 --- a/keyboards/crkbd/keymaps/rpbaptist/glcdfont.c +++ /dev/null @@ -1,231 +0,0 @@ -#include "progmem.h" - -// Helidox 8x6 font with QMK Firmware Logo -// Online editor: http://teripom.x0.com/ - -const unsigned char font[] PROGMEM = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, -0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, -0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, -0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, -0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, -0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, -0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, -0x00, 0x18, 0x24, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, -0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, -0x26, 0x29, 0x79, 0x29, 0x26, 0x00, -0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, -0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, -0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, -0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, -0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, -0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, -0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, -0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, -0x60, 0x60, 0x60, 0x60, 0x60, 0x00, -0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, -0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, -0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, -0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, -0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, -0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, -0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, -0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, -0x00, 0x07, 0x00, 0x07, 0x00, 0x00, -0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, -0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, -0x23, 0x13, 0x08, 0x64, 0x62, 0x00, -0x36, 0x49, 0x56, 0x20, 0x50, 0x00, -0x00, 0x08, 0x07, 0x03, 0x00, 0x00, -0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, -0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, -0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, -0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, -0x00, 0x80, 0x70, 0x30, 0x00, 0x00, -0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -0x00, 0x00, 0x60, 0x60, 0x00, 0x00, -0x20, 0x10, 0x08, 0x04, 0x02, 0x00, -0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, -0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, -0x72, 0x49, 0x49, 0x49, 0x46, 0x00, -0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, -0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, -0x27, 0x45, 0x45, 0x45, 0x39, 0x00, -0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, -0x41, 0x21, 0x11, 0x09, 0x07, 0x00, -0x36, 0x49, 0x49, 0x49, 0x36, 0x00, -0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, -0x00, 0x00, 0x14, 0x00, 0x00, 0x00, -0x00, 0x40, 0x34, 0x00, 0x00, 0x00, -0x00, 0x08, 0x14, 0x22, 0x41, 0x00, -0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -0x00, 0x41, 0x22, 0x14, 0x08, 0x00, -0x02, 0x01, 0x59, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, -0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, -0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, -0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, -0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, -0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, -0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, -0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, -0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, -0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, -0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, -0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, -0x26, 0x49, 0x49, 0x49, 0x32, 0x00, -0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, -0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, -0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, -0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, -0x63, 0x14, 0x08, 0x14, 0x63, 0x00, -0x03, 0x04, 0x78, 0x04, 0x03, 0x00, -0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, -0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, -0x02, 0x04, 0x08, 0x10, 0x20, 0x00, -0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, -0x04, 0x02, 0x01, 0x02, 0x04, 0x00, -0x40, 0x40, 0x40, 0x40, 0x40, 0x00, -0x00, 0x03, 0x07, 0x08, 0x00, 0x00, -0x20, 0x54, 0x54, 0x78, 0x40, 0x00, -0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, -0x38, 0x44, 0x44, 0x44, 0x28, 0x00, -0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, -0x38, 0x54, 0x54, 0x54, 0x18, 0x00, -0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, -0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, -0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, -0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, -0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, -0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, -0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, -0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, -0x38, 0x44, 0x44, 0x44, 0x38, 0x00, -0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, -0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, -0x48, 0x54, 0x54, 0x54, 0x24, 0x00, -0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, -0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, -0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, -0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, -0x44, 0x28, 0x10, 0x28, 0x44, 0x00, -0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, -0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, -0x00, 0x08, 0x36, 0x41, 0x00, 0x00, -0x00, 0x00, 0x77, 0x00, 0x00, 0x00, -0x00, 0x41, 0x36, 0x08, 0x00, 0x00, -0x02, 0x01, 0x02, 0x04, 0x02, 0x00, -0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, -0x38, 0x1C, 0x0C, 0x06, 0x03, 0x03, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x03, 0x03, 0x82, 0x86, 0xCC, 0xF8, -0xF0, 0xF0, 0x38, 0x1C, 0x0C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0x70, -0xF8, 0x0C, 0x04, 0xC6, 0xA2, 0xB3, -0x9F, 0x87, 0x01, 0x01, 0x1F, 0x66, -0x66, 0x44, 0x4C, 0x58, 0x70, 0xE0, -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, -0xE0, 0x78, 0x18, 0x8C, 0xC6, 0xE6, -0xE3, 0xE3, 0xC3, 0x83, 0x03, 0x03, -0x73, 0x76, 0x76, 0x0C, 0x18, 0xF8, -0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, -0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, -0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, -0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, -0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, -0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, -0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, -0xDE, 0xD7, 0xDC, 0x00, 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, 0x80, 0xC0, 0x40, 0x7F, 0xF3, -0x60, 0x20, 0x30, 0x30, 0x38, 0x18, -0x9C, 0xCC, 0x6C, 0x6E, 0x3E, 0x3E, -0x1F, 0x0F, 0x0F, 0x03, 0x03, 0x01, -0xC0, 0xFF, 0x3E, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x7F, 0xC1, 0x00, -0x1D, 0x67, 0xC0, 0x80, 0x01, 0x00, -0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, -0x0C, 0x1A, 0x32, 0xC2, 0x01, 0xC1, -0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF, -0x80, 0x00, 0x00, 0xC3, 0xC7, 0xC7, -0x8F, 0x0F, 0x07, 0x03, 0x80, 0xC0, -0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x07, -0x0F, 0xFF, 0x7F, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, -0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, -0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, -0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, -0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, -0x0F, 0x7F, 0x0F, 0x00, 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, -0x01, 0x01, 0x00, 0x40, 0x60, 0x31, -0x3B, 0x1E, 0x0C, 0x1E, 0x36, 0x23, -0x61, 0x60, 0x60, 0x60, 0x60, 0x60, -0x60, 0x30, 0x1C, 0x3E, 0x3E, 0x3F, -0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x07, -0x0C, 0x18, 0x10, 0x33, 0x3E, 0x38, -0x6E, 0x67, 0x60, 0x60, 0x60, 0x20, -0x30, 0x18, 0x08, 0x0F, 0x06, 0x03, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x06, 0x0C, 0x19, 0x31, 0x21, -0x60, 0x60, 0x60, 0x60, 0x61, 0x63, -0x67, 0x67, 0x33, 0x39, 0x18, 0x0E, -0x07, 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, 0x00, -}; diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c deleted file mode 100644 index ac1f11dbbe2..00000000000 --- a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c +++ /dev/null @@ -1,231 +0,0 @@ -#include "progmem.h" - -// Helidox 8x6 font with QMK Firmware Logo -// Online editor: http://teripom.x0.com/ - -const unsigned char font[] PROGMEM = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, -0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, -0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, -0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, -0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, -0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, -0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, -0x00, 0x18, 0x24, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, -0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, -0x26, 0x29, 0x79, 0x29, 0x26, 0x00, -0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, -0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, -0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, -0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, -0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, -0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, -0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, -0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, -0x60, 0x60, 0x60, 0x60, 0x60, 0x00, -0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, -0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, -0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, -0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, -0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, -0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, -0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, -0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, -0x00, 0x07, 0x00, 0x07, 0x00, 0x00, -0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, -0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, -0x23, 0x13, 0x08, 0x64, 0x62, 0x00, -0x36, 0x49, 0x56, 0x20, 0x50, 0x00, -0x00, 0x08, 0x07, 0x03, 0x00, 0x00, -0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, -0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, -0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, -0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, -0x00, 0x80, 0x70, 0x30, 0x00, 0x00, -0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -0x00, 0x00, 0x60, 0x60, 0x00, 0x00, -0x20, 0x10, 0x08, 0x04, 0x02, 0x00, -0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, -0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, -0x72, 0x49, 0x49, 0x49, 0x46, 0x00, -0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, -0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, -0x27, 0x45, 0x45, 0x45, 0x39, 0x00, -0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, -0x41, 0x21, 0x11, 0x09, 0x07, 0x00, -0x36, 0x49, 0x49, 0x49, 0x36, 0x00, -0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, -0x00, 0x00, 0x14, 0x00, 0x00, 0x00, -0x00, 0x40, 0x34, 0x00, 0x00, 0x00, -0x00, 0x08, 0x14, 0x22, 0x41, 0x00, -0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -0x00, 0x41, 0x22, 0x14, 0x08, 0x00, -0x02, 0x01, 0x59, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, -0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, -0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, -0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, -0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, -0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, -0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, -0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, -0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, -0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, -0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, -0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, -0x26, 0x49, 0x49, 0x49, 0x32, 0x00, -0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, -0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, -0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, -0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, -0x63, 0x14, 0x08, 0x14, 0x63, 0x00, -0x03, 0x04, 0x78, 0x04, 0x03, 0x00, -0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, -0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, -0x02, 0x04, 0x08, 0x10, 0x20, 0x00, -0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, -0x04, 0x02, 0x01, 0x02, 0x04, 0x00, -0x40, 0x40, 0x40, 0x40, 0x40, 0x00, -0x00, 0x03, 0x07, 0x08, 0x00, 0x00, -0x20, 0x54, 0x54, 0x78, 0x40, 0x00, -0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, -0x38, 0x44, 0x44, 0x44, 0x28, 0x00, -0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, -0x38, 0x54, 0x54, 0x54, 0x18, 0x00, -0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, -0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, -0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, -0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, -0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, -0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, -0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, -0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, -0x38, 0x44, 0x44, 0x44, 0x38, 0x00, -0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, -0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, -0x48, 0x54, 0x54, 0x54, 0x24, 0x00, -0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, -0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, -0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, -0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, -0x44, 0x28, 0x10, 0x28, 0x44, 0x00, -0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, -0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, -0x00, 0x08, 0x36, 0x41, 0x00, 0x00, -0x00, 0x00, 0x77, 0x00, 0x00, 0x00, -0x00, 0x41, 0x36, 0x08, 0x00, 0x00, -0x02, 0x01, 0x02, 0x04, 0x02, 0x00, -0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, -0x38, 0x1C, 0x0C, 0x06, 0x03, 0x03, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x03, 0x03, 0x82, 0x86, 0xCC, 0xF8, -0xF0, 0xF0, 0x38, 0x1C, 0x0C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0x70, -0xF8, 0x0C, 0x04, 0xC6, 0xA2, 0xB3, -0x9F, 0x87, 0x01, 0x01, 0x1F, 0x66, -0x66, 0x44, 0x4C, 0x58, 0x70, 0xE0, -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, -0xE0, 0x78, 0x18, 0x8C, 0xC6, 0xE6, -0xE3, 0xE3, 0xC3, 0x83, 0x03, 0x03, -0x73, 0x76, 0x76, 0x0C, 0x18, 0xF8, -0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, -0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, -0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, -0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, -0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, -0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, -0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, -0xDE, 0xD7, 0xDC, 0x00, 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, 0x80, 0xC0, 0x40, 0x7F, 0xF3, -0x60, 0x20, 0x30, 0x30, 0x38, 0x18, -0x9C, 0xCC, 0x6C, 0x6E, 0x3E, 0x3E, -0x1F, 0x0F, 0x0F, 0x03, 0x03, 0x01, -0xC0, 0xFF, 0x3E, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x7F, 0xC1, 0x00, -0x1D, 0x67, 0xC0, 0x80, 0x01, 0x00, -0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, -0x0C, 0x1A, 0x32, 0xC2, 0x01, 0xC1, -0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF, -0x80, 0x00, 0x00, 0xC3, 0xC7, 0xC7, -0x8F, 0x0F, 0x07, 0x03, 0x80, 0xC0, -0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x07, -0x0F, 0xFF, 0x7F, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, -0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, -0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, -0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, -0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, -0x0F, 0x7F, 0x0F, 0x00, 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, -0x01, 0x01, 0x00, 0x40, 0x60, 0x31, -0x3B, 0x1E, 0x0C, 0x1E, 0x36, 0x23, -0x61, 0x60, 0x60, 0x60, 0x60, 0x60, -0x60, 0x30, 0x1C, 0x3E, 0x3E, 0x3F, -0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x07, -0x0C, 0x18, 0x10, 0x33, 0x3E, 0x38, -0x6E, 0x67, 0x60, 0x60, 0x60, 0x20, -0x30, 0x18, 0x08, 0x0F, 0x06, 0x03, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x06, 0x0C, 0x19, 0x31, 0x21, -0x60, 0x60, 0x60, 0x60, 0x61, 0x63, -0x67, 0x67, 0x33, 0x39, 0x18, 0x0E, -0x07, 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, 0x00, -}; diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c deleted file mode 100644 index 612b7123b09..00000000000 --- a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c +++ /dev/null @@ -1,231 +0,0 @@ -#include "progmem.h" - -// Helidox 8x6 font with QMK Firmware Logo -// Online editor: http://teripom.x0.com/ - -const unsigned char font[] PROGMEM = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, -0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, -0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, -0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, -0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, -0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, -0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, -0x00, 0x18, 0x24, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, -0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, -0x26, 0x29, 0x79, 0x29, 0x26, 0x00, -0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, -0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, -0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, -0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, -0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, -0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, -0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, -0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, -0x60, 0x60, 0x60, 0x60, 0x60, 0x00, -0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, -0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, -0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, -0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, -0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, -0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, -0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, -0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, -0x00, 0x07, 0x00, 0x07, 0x00, 0x00, -0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, -0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, -0x23, 0x13, 0x08, 0x64, 0x62, 0x00, -0x36, 0x49, 0x56, 0x20, 0x50, 0x00, -0x00, 0x08, 0x07, 0x03, 0x00, 0x00, -0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, -0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, -0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, -0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, -0x00, 0x80, 0x70, 0x30, 0x00, 0x00, -0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -0x00, 0x00, 0x60, 0x60, 0x00, 0x00, -0x20, 0x10, 0x08, 0x04, 0x02, 0x00, -0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, -0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, -0x72, 0x49, 0x49, 0x49, 0x46, 0x00, -0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, -0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, -0x27, 0x45, 0x45, 0x45, 0x39, 0x00, -0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, -0x41, 0x21, 0x11, 0x09, 0x07, 0x00, -0x36, 0x49, 0x49, 0x49, 0x36, 0x00, -0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, -0x00, 0x00, 0x14, 0x00, 0x00, 0x00, -0x00, 0x40, 0x34, 0x00, 0x00, 0x00, -0x00, 0x08, 0x14, 0x22, 0x41, 0x00, -0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -0x00, 0x41, 0x22, 0x14, 0x08, 0x00, -0x02, 0x01, 0x59, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, -0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, -0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, -0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, -0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, -0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, -0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, -0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, -0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, -0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, -0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, -0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, -0x26, 0x49, 0x49, 0x49, 0x32, 0x00, -0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, -0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, -0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, -0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, -0x63, 0x14, 0x08, 0x14, 0x63, 0x00, -0x03, 0x04, 0x78, 0x04, 0x03, 0x00, -0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, -0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, -0x02, 0x04, 0x08, 0x10, 0x20, 0x00, -0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, -0x04, 0x02, 0x01, 0x02, 0x04, 0x00, -0x40, 0x40, 0x40, 0x40, 0x40, 0x00, -0x00, 0x03, 0x07, 0x08, 0x00, 0x00, -0x20, 0x54, 0x54, 0x78, 0x40, 0x00, -0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, -0x38, 0x44, 0x44, 0x44, 0x28, 0x00, -0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, -0x38, 0x54, 0x54, 0x54, 0x18, 0x00, -0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, -0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, -0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, -0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, -0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, -0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, -0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, -0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, -0x38, 0x44, 0x44, 0x44, 0x38, 0x00, -0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, -0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, -0x48, 0x54, 0x54, 0x54, 0x24, 0x00, -0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, -0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, -0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, -0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, -0x44, 0x28, 0x10, 0x28, 0x44, 0x00, -0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, -0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, -0x00, 0x08, 0x36, 0x41, 0x00, 0x00, -0x00, 0x00, 0x77, 0x00, 0x00, 0x00, -0x00, 0x41, 0x36, 0x08, 0x00, 0x00, -0x02, 0x01, 0x02, 0x04, 0x02, 0x00, -0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 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, -0xE0, 0xF8, 0x3E, 0x0F, 0x03, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, -0xE0, 0xF0, 0xF8, 0xFC, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xE0, 0xF0, 0x7C, -0x3F, 0x0F, 0x03, 0x03, 0x03, 0x03, -0x03, 0x03, 0x1B, 0x1F, 0x1F, 0x07, -0x03, 0xC0, 0xE0, 0xFC, 0x1C, 0x0F, -0x03, 0x03, 0x03, 0x03, 0x03, 0x03, -0x03, 0x03, 0x03, 0x03, 0x03, 0x03, -0xE7, 0xFF, 0xFF, 0x0F, 0x03, 0x03, -0x03, 0x03, 0x83, 0x83, 0xE3, 0xE7, -0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, -0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, -0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, -0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, -0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, -0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, -0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, -0xDE, 0xD7, 0xDC, 0x00, 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, -0x80, 0xC0, 0xF0, 0x7C, 0x1F, 0x07, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, -0x80, 0x90, 0x98, 0x9C, 0x8C, 0x80, -0x80, 0x80, 0x9C, 0x9C, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x10, -0x10, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x9C, 0x9C, 0x1C, 0x1C, -0x0C, 0x0C, 0x80, 0x90, 0x90, 0x10, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0C, -0x00, 0x00, 0x90, 0x90, 0x9C, 0x9C, -0x1C, 0x1C, 0x1C, 0x1C, 0x9C, 0x9C, -0x9C, 0x0C, 0x0C, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, -0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, -0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, -0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, -0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, -0x0F, 0x7F, 0x0F, 0x00, 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, 0x70, 0x7C, 0x7E, -0x6F, 0x63, 0x60, 0x60, 0x60, 0x60, -0x60, 0x60, 0x60, 0x60, 0x60, 0x60, -0x60, 0x70, 0x78, 0x3C, 0x1E, 0x0F, -0x07, 0x03, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x7F, 0x7F, 0x00, 0x00, -0x60, 0x70, 0x7C, 0x7C, 0x6C, 0x60, -0x60, 0x60, 0x60, 0x60, 0x60, 0x78, -0x3E, 0x0F, 0x03, 0x01, 0x00, 0x60, -0x78, 0x7E, 0x67, 0x61, 0x60, 0x60, -0x60, 0x60, 0x60, 0x60, 0x60, 0x60, -0x70, 0x00, 0x00, 0x00, 0x00, 0x60, -0x78, 0x7E, 0x0F, 0x07, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, -0x7F, 0x70, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_multi.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_multi.c new file mode 100644 index 00000000000..28d228190cb --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_multi.c @@ -0,0 +1,36 @@ +// Copyright 2023 Your Name (@rpbaptist) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "progmem.h" + +// Helidox 8x6 font with QMK Firmware Logo +// Online editor: https://joric.github.io/qle/ + +const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +#if defined(THEME_GODSPEED) || defined(THEME_GODSPEED_ARES) + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x38, 0x1C, 0x0C, 0x06, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x82, 0x86, 0xCC, 0xF8, 0xF0, 0xF0, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x70, 0xF8, 0x0C, 0x04, 0xC6, 0xA2, 0xB3, 0x9F, 0x87, 0x01, 0x01, 0x1F, 0x66, 0x66, 0x44, 0x4C, 0x58, 0x70, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x78, 0x18, 0x8C, 0xC6, 0xE6, 0xE3, 0xE3, 0xC3, 0x83, 0x03, 0x03, 0x73, 0x76, 0x76, 0x0C, 0x18, 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, + 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 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, 0x80, 0xC0, 0x40, 0x7F, 0xF3, 0x60, 0x20, 0x30, 0x30, 0x38, 0x18, 0x9C, 0xCC, 0x6C, 0x6E, 0x3E, 0x3E, 0x1F, 0x0F, 0x0F, 0x03, 0x03, 0x01, 0xC0, 0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC1, 0x00, 0x1D, 0x67, 0xC0, 0x80, 0x01, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x0C, 0x1A, 0x32, 0xC2, 0x01, 0xC1, 0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF, + 0x80, 0x00, 0x00, 0xC3, 0xC7, 0xC7, 0x8F, 0x0F, 0x07, 0x03, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x07, 0x0F, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 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, 0x01, 0x01, 0x00, 0x40, 0x60, 0x31, 0x3B, 0x1E, 0x0C, 0x1E, 0x36, 0x23, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x30, 0x1C, 0x3E, 0x3E, 0x3F, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0C, 0x18, 0x10, 0x33, 0x3E, 0x38, 0x6E, 0x67, 0x60, 0x60, 0x60, 0x20, 0x30, 0x18, 0x08, 0x0F, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x19, 0x31, 0x21, 0x60, 0x60, 0x60, 0x60, 0x61, 0x63, 0x67, 0x67, 0x33, 0x39, 0x18, 0x0E, 0x07, 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, 0x00, +#elif defined(THEME_LASER) + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xE0, 0xF8, 0x3E, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0x7C, 0x3F, 0x0F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x1B, 0x1F, 0x1F, 0x07, 0x03, 0xC0, 0xE0, 0xFC, 0x1C, 0x0F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xE7, 0xFF, 0xFF, 0x0F, 0x03, 0x03, 0x03, 0x03, 0x83, 0x83, 0xE3, 0xE7, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, + 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 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, 0x80, 0xC0, 0xF0, 0x7C, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x90, 0x98, 0x9C, 0x8C, 0x80, 0x80, 0x80, 0x9C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x9C, 0x9C, 0x1C, 0x1C, 0x0C, 0x0C, 0x80, 0x90, 0x90, 0x10, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0C, + 0x00, 0x00, 0x90, 0x90, 0x9C, 0x9C, 0x1C, 0x1C, 0x1C, 0x1C, 0x9C, 0x9C, 0x9C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 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, 0x70, 0x7C, 0x7E, 0x6F, 0x63, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x03, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x7F, 0x7F, 0x00, 0x00, 0x60, 0x70, 0x7C, 0x7C, 0x6C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x3E, 0x0F, 0x03, 0x01, 0x00, 0x60, 0x78, 0x7E, 0x67, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x7E, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x7F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#elif defined(THEME_MILKSHAKE) + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFC, 0xFE, 0xFE, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xF8, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFE, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xFC, 0x7C, 0x7C, 0x7C, 0xFC, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, + 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xF8, 0xFC, 0xFE, 0xFF, 0xDF, 0x8F, 0x07, 0x03, 0x00, 0x00, 0x70, 0xF8, 0xF8, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E, 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF1, 0xFB, 0xFF, 0xFF, 0x7F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFB, 0xF1, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x0E, 0x1F, 0x1F, 0x1F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xF0, 0xF0, 0xF0, 0xE0, 0xC1, 0x83, 0x03, 0x83, 0xC1, 0xE0, 0xF0, 0xF0, 0xF0, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1F, 0x1F, 0x1F, 0x0E, 0x00, 0x00, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xF1, 0xE0, 0xC0, 0xC0, 0xC0, 0xE0, 0xF1, 0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 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, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x0E, 0x00, 0x00, 0x00, 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, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x1F, 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, 0x01, 0x03, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#else // default PULSE + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xF0, 0xF8, 0xF8, 0xF0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFE, 0x7F, 0x7F, 0xFE, 0xF0, 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, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, + 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x0F, 0x03, 0x03, 0x1F, 0xFF, 0xFC, 0xE0, 0xE0, 0xFC, 0xFF, 0x1F, 0x03, 0x00, 0x00, 0x03, 0x1F, 0xFF, 0xFC, 0xE0, 0xE0, 0xF8, 0xFC, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, + 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 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, 0x07, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +}; diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c deleted file mode 100644 index 3699f4500b7..00000000000 --- a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c +++ /dev/null @@ -1,231 +0,0 @@ -#include "progmem.h" - -// Helidox 8x6 font with QMK Firmware Logo -// Online editor: http://teripom.x0.com/ - -const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 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, 0xF0, 0xF8, 0xF8, 0xF0, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xF0, 0xFE, 0x7F, 0x7F, 0xFE, 0xF0, - 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, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, - 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, - 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, - 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1F, 0x0F, 0x03, 0x03, 0x1F, - 0xFF, 0xFC, 0xE0, 0xE0, 0xFC, 0xFF, - 0x1F, 0x03, 0x00, 0x00, 0x03, 0x1F, - 0xFF, 0xFC, 0xE0, 0xE0, 0xF8, 0xFC, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, - 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, - 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, - 0x0F, 0x7F, 0x0F, 0x00, 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, 0x07, 0x0F, 0x0F, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x0F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/crkbd/keymaps/rpbaptist/keymap.c b/keyboards/crkbd/keymaps/rpbaptist/keymap.c index aeeae2cbd82..fc05a554036 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/keymap.c +++ b/keyboards/crkbd/keymaps/rpbaptist/keymap.c @@ -1,474 +1,152 @@ -#include QMK_KEYBOARD_H +// Copyright 2023 Your Name (@rpbaptist) +// SPDX-License-Identifier: GPL-2.0-or-later -static uint32_t oled_timer = 0; - -#ifdef RGB_MATRIX_ENABLE - static uint32_t hypno_timer; -#endif - -enum layer_names { - _COLEMAKDHM, - _GAMING, - _GAMING_EXT, - _NUMPAD, - _SYM, - _NAV, - _UTIL -}; - -enum custom_keycodes { - BSP_DEL = SAFE_RANGE, - RGB_RST, // Reset RGB - RGB_UND, // Toggle RGB underglow as layer indicator - RGB_IDL, // RGB Idling animations - RGB_MAP, // RGB_MATRIX_TYPING_HEATMAP - RGB_NXS, // RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS - RGB_SOL, // RGB_MATRIX_SOLID_COLOR - RGB_CYC, // RGB_MATRIX_CYCLE_ALL - RGB_DUO, // RGB_MATRIX_RAINBOW_PINWHEELS - RGB_SCR // RGB_MATRIX_CYCLE_LEFT_RIGHT -}; - -typedef union { - uint32_t raw; - struct { - bool rgb_layer_change : 1; - bool rgb_matrix_idle_anim : 1; - uint8_t rgb_matrix_active_mode : 4; - uint8_t rgb_matrix_idle_mode : 4; - uint8_t rgb_matrix_active_speed : 8; - uint8_t rgb_matrix_idle_speed : 8; - uint16_t rgb_matrix_idle_timeout : 16; - }; -} user_config_t; - -user_config_t user_config; - -// Base layers -#define COLEMAK DF(_COLEMAKDHM) -#define GAMING DF(_GAMING) - -// Layer toggle and switch -#define T_NAV TT(_NAV) -#define S_NAV MO(_NAV) - -#define T_SYM TT(_SYM) -#define S_SYM MO(_SYM) - -// Layer keys with functionality on tap -#define NAV_0 LT(_NAV, KC_0) -#define TAB_NUM LT(_NUMPAD, KC_TAB) - -#define EXT_SF LT(_GAMING_EXT, KC_LSFT) - -// Tap/mod keys -#define RCTL_BR RCTL_T(KC_RBRC) -#define LCTL_BR LCTL_T(KC_LBRC) - -#define SFT_SPC LSFT_T(KC_SPACE) -#define SFT_ENT RSFT_T(KC_ENTER) - -// Global tab forward and backward -#define TAB_FWD LCTL(KC_TAB) -#define TAB_BCK LCTL(LSFT(KC_TAB)) -#define TAB_CLS LCTL(KC_W) - -#define WIN_CLS LALT(KC_F4) - -// CTRL become parens keys on NAV and NUM layers -#define LCT_PRN SC_LCPO -#define RCT_PRN SC_RCPC - -// € -#define KC_EUR ALGR(KC_5) +#include "rpbaptist.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_COLEMAKDHM] = LAYOUT_split_3x6_3( + [_COLEMAKDH] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, BSP_DEL, + KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, BSP_DEL,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - TAB_NUM, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + TAB_NUM, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - LCTL_BR, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, RCTL_BR, + LCTL_BR, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, RCTL_BR,\ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LALT, T_SYM, SFT_SPC, SFT_ENT, T_NAV, KC_RGUI + KC_LALT, T_SYM, SFT_SPC, SFT_ENT, T_NAV, KC_RGUI \ //`--------------------------' `--------------------------' ), - [_GAMING] = LAYOUT_split_3x6_3( + [_GAMING] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RCTL, + KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RCTL,\ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, EXT_SF, KC_SPC, _______, _______, _______ + EXTALT, KC_LSFT, KC_SPC, _______, _______, _______ \ //`--------------------------' `--------------------------' ), - [_GAMING_EXT] = LAYOUT_split_3x6_3( + [_WASD] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_GRV, KC_1, KC_2, _______, KC_3, KC_4, _______, _______, _______, _______, _______, KC_DEL, + _______, KC_T, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LBRC, KC_RBRC, _______, _______, _______, KC_BSLS, _______, _______, _______, _______, _______, _______, + KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, _______, _______, + KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_M, _______, _______, _______, KC_RCTL,\ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, KC_ENT, _______, _______ + EXTALT, KC_LSFT, KC_SPC, _______, _______, _______ \ //`--------------------------' `--------------------------' ), - [_NUMPAD] = LAYOUT_split_3x6_3( + [_GAMING_EXT] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_EUR, KC_P7, KC_P8, KC_P9, XXXXXXX, _______, + KC_GRV, KC_Y, KC_I, KC_J, KC_M, KC_N, _______, _______, _______, _______, _______, KC_DEL,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PPLS, + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, KC_EQL, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PAST, + KC_CAPS, KC_6, KC_7, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______,\ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, KC_P0, KC_DOT + _______, KC_LALT, KC_ENT, KC_ENT, _______, _______ \ //`--------------------------' `--------------------------' ), - [_SYM] = LAYOUT_split_3x6_3( + [_NUMPAD] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, XXXXXXX, KC_MPRV, KC_VOLU, KC_MNXT, XXXXXXX, KC_EUR, KC_7, KC_8, KC_9, _______, _______,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_MINS, KC_PLUS, + S_NUM, XXXXXXX, KC_MSTP, KC_VOLD, KC_MPLY, XXXXXXX, KC_UNDS, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - LCT_PRN, XXXXXXX, XXXXXXX, XXXXXXX, KC_EUR, XXXXXXX, KC_EQL, KC_PIPE, KC_LT, KC_GT, KC_BSLS, RCT_PRN, + SC_LCPO, XXXXXXX, XXXXXXX, KC_MUTE, KC_PSCR, KC_NUM, KC_EQL, KC_1, KC_2, KC_3, KC_SLSH, KC_ASTR,\ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, S_SYM, _______, _______, _______, _______ + _______, _______, _______, _______, KC_0, KC_DOT \ //`--------------------------' `--------------------------' ), - [_NAV] = LAYOUT_split_3x6_3( + [_SYM] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TILD, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_MINS, KC_PLUS,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - LCT_PRN, KC_F11, KC_F12, KC_INS, KC_PSCR, KC_CAPS, WIN_CLS, TAB_BCK, TAB_CLS, TAB_FWD, XXXXXXX, RCT_PRN, + SC_LCPO, XXXXXXX, XXXXXXX, XXXXXXX, KC_EUR, XXXXXXX, KC_EQL, KC_PIPE, KC_LT, KC_GT, KC_EXLM, SC_RCPC,\ + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, S_SYM, _______, _______, _______, _______ \ + //`--------------------------' `--------------------------' + ), + + [_NAV] = LAYOUT_split_3x6_3( \ + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, KC_BSPC,\ + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TILD, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_RSFT,\ + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + SC_LCPO, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_CAPS, WIN_CLS, TAB_BCK, TAB_CLS, TAB_FWD, KC_BSLS, SC_RCPC,\ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+---------| - _______, _______, _______, _______, S_NAV, _______ + _______, _______, _______, _______, S_NAV, _______ \ //`--------------------------' `--------------------------' ), - [_UTIL] = LAYOUT_split_3x6_3( + [_UTIL] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. - QK_BOOT, XXXXXXX, KC_MPRV, KC_VOLU, KC_MNXT, COLEMAK, RGB_IDL, RGB_MAP, RGB_NXS, XXXXXXX, RGB_HUD, RGB_HUI, + QK_BOOT, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, TYPING, RGB_ATG, XXXXXXX, XXXXXXX, RGB_IDL, RGB_UND, RGB_TOG,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_RST, XXXXXXX, KC_MSTP, KC_VOLD, KC_MPLY, GAMING, RGB_UND, RGB_DUO, RGB_SCR, RGB_SPI, RGB_SAD, RGB_SAI, + LCK_NMP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, GAMING, RGB_PST, XXXXXXX, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - EE_CLR, KC_SLEP, XXXXXXX, KC_MUTE, XXXXXXX, XXXXXXX, RGB_TOG, RGB_SOL, RGB_CYC, RGB_SPD, RGB_VAD, RGB_VAI, + EE_CLR, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, WASD, RGB_PCT, XXXXXXX, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD,\ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______ \ //`--------------------------' `--------------------------' ) }; layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(default_layer_state)) { - case _COLEMAKDHM: + case _COLEMAKDH: state = update_tri_layer_state(state, _SYM, _NAV, _UTIL); break; case _GAMING: + case _WASD: state = update_tri_layer_state(state, _GAMING_EXT, _NAV, _UTIL); break; } return state; } +void suspend_power_down_keymap(void) { #ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_keyboard_master()) { - return OLED_ROTATION_270; - } else { - return OLED_ROTATION_180; - } -} - -void render_crkbd_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); -} - -# ifdef RGB_MATRIX_ENABLE -const char *rgb_matrix_anim_oled_text(uint8_t mode) { - switch (mode) { - case RGB_MATRIX_TYPING_HEATMAP: - return PSTR("Heat "); - case RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS: - return PSTR("Nexus"); - case RGB_MATRIX_SOLID_COLOR: - return PSTR("Solid"); - case RGB_MATRIX_CYCLE_ALL: - return PSTR("Cycle"); - case RGB_MATRIX_RAINBOW_PINWHEELS: - return PSTR("Wheel"); - case RGB_MATRIX_CYCLE_LEFT_RIGHT: - return PSTR("Wave "); - default: - return PSTR(""); - } -} -# endif - -void render_status(void) { - // oled_write_P(PSTR("Layout: "), false); - switch (get_highest_layer(default_layer_state)) { - case _COLEMAKDHM: - oled_write_P(PSTR("TYPE "), false); - break; - case _GAMING: - oled_write_P(PSTR("GAME "), false); - break; - } - - oled_write_P(PSTR("\n"), false); - - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_P(PSTR(" "), false); - break; - case _SYM: - oled_write_P(PSTR("Sym "), false); - break; - case _NAV: - oled_write_P(PSTR("Nav "), false); - break; - case _GAMING_EXT: - oled_write_P(PSTR("Ext "), false); - break; - case _NUMPAD: - oled_write_P(PSTR("Num "), false); - break; - case _UTIL: - oled_write_P(PSTR("Util "), false); - break; - default: - oled_write_P(PSTR("Unkn "), false); - break; - } - oled_write_P(PSTR("\n"), false); - - uint8_t modifiers = get_mods(); - - oled_write_P((modifiers & MOD_MASK_SHIFT) ? PSTR("SHIFT") : PSTR("\n"), false); - oled_write_P((modifiers & MOD_MASK_CTRL) ? PSTR("CTRL ") : PSTR("\n"), false); - oled_write_P((modifiers & MOD_MASK_ALT) ? PSTR("ALT ") : PSTR("\n"), false); - oled_write_P((modifiers & MOD_MASK_GUI) ? PSTR("SUPER") : PSTR("\n"), false); - - oled_write_P(PSTR("\n"), false); - - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(PSTR("Mode:"), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR(" NUM ") : PSTR("\n"), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR(" CAPS") : PSTR("\n"), false); - -# ifdef RGB_MATRIX_ENABLE - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR("\n"), false); - - if (rgb_matrix_config.enable) { - if (user_config.rgb_matrix_idle_anim) { - oled_write_P(rgb_matrix_anim_oled_text(user_config.rgb_matrix_active_mode), false); - oled_write_P(rgb_matrix_anim_oled_text(user_config.rgb_matrix_idle_mode), false); - } else { - oled_write_P(PSTR("\n"), false); - oled_write_P(rgb_matrix_anim_oled_text(rgb_matrix_get_mode()), false); - } - } else { - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR("\n"), false); - } -# endif -} - -bool oled_task_user(void) { - if (timer_elapsed32(oled_timer) > OLED_TIMEOUT) { - oled_off(); - return; - } else { - oled_on(); - } - - if (is_keyboard_master()) { - render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) - } else { - render_crkbd_logo(); - #ifdef RGB_MATRIX_ENABLE - if (user_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == user_config.rgb_matrix_idle_mode) { - oled_scroll_left(); // Turns on scrolling - } else { - oled_scroll_off(); - } - #endif - } - return false; -} + oled_off(); #endif - #ifdef RGB_MATRIX_ENABLE - -extern led_config_t g_led_config; -void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t led_type) { - HSV hsv = {hue, sat, val}; - if (hsv.v > rgb_matrix_config.hsv.v) { - hsv.v = rgb_matrix_config.hsv.v; - } - - RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - if (HAS_FLAGS(g_led_config.flags[i], led_type)) { - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - } -} - -void check_default_layer(uint8_t type) { - switch (get_highest_layer(default_layer_state)) { - case _COLEMAKDHM: - rgb_matrix_layer_helper(THEME_HSV, type); - break; - case _GAMING: - rgb_matrix_layer_helper(HSV_RED, type); - break; - } -} - -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) - ) - { - switch (get_highest_layer(layer_state)) { - case _GAMING_EXT: - rgb_matrix_layer_helper(HSV_PURPLE, LED_FLAG_UNDERGLOW); - break; - case _SYM: - rgb_matrix_layer_helper(HSV_GOLDENROD, LED_FLAG_UNDERGLOW); - break; - case _NAV: - rgb_matrix_layer_helper(HSV_SPRINGGREEN, LED_FLAG_UNDERGLOW); - break; - case _UTIL: - rgb_matrix_layer_helper(HSV_PINK, LED_FLAG_UNDERGLOW); - break; - case _NUMPAD: - rgb_matrix_layer_helper(HSV_CORAL, LED_FLAG_UNDERGLOW); - break; - default: { - check_default_layer(LED_FLAG_UNDERGLOW); - break; - } - } - } - return false; -} - -void rgb_matrix_update_current_mode(uint8_t mode, uint8_t speed) { - rgb_matrix_config.speed = speed; - rgb_matrix_mode_noeeprom(mode); - eeconfig_update_user(user_config.raw); -} - -void rgb_matrix_update_dynamic_mode(uint8_t mode, uint8_t speed, bool active) { - if (active) { - user_config.rgb_matrix_active_speed = speed; - user_config.rgb_matrix_active_mode = mode; - } else { - user_config.rgb_matrix_idle_speed = speed; - user_config.rgb_matrix_idle_mode = mode; - } -} - -void rgb_matrix_update_mode(uint8_t mode, uint8_t speed, bool active) { - if (user_config.rgb_matrix_idle_anim) { - rgb_matrix_update_dynamic_mode(mode, speed, active); - } - if (active || !user_config.rgb_matrix_idle_anim) { - rgb_matrix_update_current_mode(mode, speed); - } -} - -void rgb_matrix_set_defaults(void) { - rgb_matrix_config.enable = 1; - rgb_matrix_sethsv_noeeprom(THEME_HSV); - - user_config.rgb_layer_change = false; - user_config.rgb_matrix_idle_anim = true; - user_config.rgb_matrix_idle_timeout = 60000; - - rgb_matrix_update_dynamic_mode(RGB_MATRIX_CYCLE_ALL, RGB_MATRIX_ANIMATION_SPEED_SLOWER, false); - rgb_matrix_update_dynamic_mode(RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS, RGB_MATRIX_ANIMATION_SPEED_DEFAULT, true); - - eeprom_update_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); -} - -void matrix_scan_rgb(void) { - if (user_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == user_config.rgb_matrix_active_mode && timer_elapsed32(hypno_timer) > user_config.rgb_matrix_idle_timeout) { - if (user_config.rgb_layer_change) { - rgb_matrix_layer_helper(0, 0, 0, LED_FLAG_UNDERGLOW); - } - rgb_matrix_update_current_mode(user_config.rgb_matrix_idle_mode, user_config.rgb_matrix_idle_speed); - } -} - -void matrix_scan_user(void) { - static bool has_ran_yet; - if (!has_ran_yet) { - has_ran_yet = true; - startup_user(); - } - matrix_scan_rgb(); -} - -void eeconfig_init_user(void) { - user_config.raw = 0; - rgb_matrix_mode_noeeprom(user_config.rgb_matrix_active_mode); - keyboard_init(); -} - -void keyboard_post_init_user(void) { - user_config.raw = eeconfig_read_user(); - rgb_matrix_set_defaults(); - rgb_matrix_enable_noeeprom(); -} -#endif - -void suspend_power_down_keymap(void) { - oled_off(); rgb_matrix_set_suspend_state(true); +#endif } void suspend_wakeup_init_keymap(void) { +#ifdef OLED_ENABLE oled_on(); +#endif +#ifdef RGB_MATRIX_ENABLE rgb_matrix_set_suspend_state(false); +#endif +} + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SFT_ENT: + return TAPPING_TERM - 20; + default: + return TAPPING_TERM; + } } bool process_record_user(uint16_t keycode, keyrecord_t *record) { static uint8_t saved_mods = 0; uint16_t temp_keycode = keycode; - oled_timer = timer_read32(); - #ifdef RGB_MATRIX_ENABLE - if (user_config.rgb_matrix_idle_anim) { - hypno_timer = timer_read32(); - if (rgb_matrix_get_mode() == user_config.rgb_matrix_idle_mode) { - rgb_matrix_update_current_mode(user_config.rgb_matrix_active_mode, user_config.rgb_matrix_active_speed); - if (!user_config.rgb_layer_change) { - rgb_matrix_layer_helper(0, 0, 0, LED_FLAG_UNDERGLOW); - } - } - } + process_record_user_rgb_matrix(temp_keycode, record); #endif // Filter out the actual keycode from MT and LT keys. @@ -481,12 +159,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { saved_mods = get_mods() & MOD_MASK_SHIFT; - if (saved_mods == MOD_MASK_SHIFT) { // Both shifts pressed + if (saved_mods == MOD_MASK_SHIFT) { // Both shifts pressed register_code(KC_DEL); - } else if (saved_mods) { // One shift pressed - del_mods(saved_mods); // Remove any Shifts present + } else if (saved_mods) { // One shift pressed + del_mods(saved_mods); // Remove any Shifts present register_code(KC_DEL); - add_mods(saved_mods); // Add shifts again + add_mods(saved_mods); // Add shifts again } else { register_code(KC_BSPC); } @@ -495,80 +173,40 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(KC_BSPC); } return false; -#ifdef RGB_MATRIX_ENABLE - case COLEMAK: + case TYPING: if (record->event.pressed) { - user_config.rgb_matrix_idle_timeout = 60000; - rgb_matrix_update_mode(RGB_MATRIX_CYCLE_ALL, RGB_MATRIX_ANIMATION_SPEED_SLOWER, false); +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_set_typing_defaults(); +#endif + default_layer_set(1U << _COLEMAKDH); } return true; case GAMING: if (record->event.pressed) { - if (!user_config.rgb_layer_change) { - user_config.rgb_layer_change = true; - } - user_config.rgb_matrix_idle_timeout = 10000; - rgb_matrix_update_mode(RGB_MATRIX_RAINBOW_PINWHEELS, RGB_MATRIX_ANIMATION_SPEED_SLOW, false); +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_set_gaming_defaults(); +#endif + default_layer_set(1U << _GAMING); } return true; - case RGB_RST: - if (record->event.pressed) { - rgb_matrix_set_defaults(); - rgb_matrix_enable(); - } - break; - case RGB_UND: // Toggle separate underglow status - if (record->event.pressed) { - user_config.rgb_layer_change ^= 1; - eeconfig_update_user(user_config.raw); - if (user_config.rgb_layer_change) { - layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) - } else { - rgb_matrix_layer_helper(0, 0, 0, LED_FLAG_UNDERGLOW); - } - } - break; - case RGB_IDL: // Toggle idle/heatmap animation - if (record->event.pressed) { - user_config.rgb_matrix_idle_anim ^= 1; - if (user_config.rgb_matrix_idle_anim) { - rgb_matrix_update_mode(user_config.rgb_matrix_active_mode, user_config.rgb_matrix_active_speed, true); - } else { - rgb_matrix_update_current_mode(user_config.rgb_matrix_idle_mode, user_config.rgb_matrix_idle_speed); - } - } - break; - case RGB_MAP: - if (record->event.pressed) { - rgb_matrix_update_mode(RGB_MATRIX_TYPING_HEATMAP, rgb_matrix_config.speed, true); - } - break; - case RGB_NXS: + case WASD: if (record->event.pressed) { - rgb_matrix_update_mode(RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS, RGB_MATRIX_ANIMATION_SPEED_DEFAULT, true); - } - break; - case RGB_SOL: - if (record->event.pressed) { - rgb_matrix_update_mode(RGB_MATRIX_SOLID_COLOR, rgb_matrix_config.speed, false); - } - break; - case RGB_CYC: - if (record->event.pressed) { - rgb_matrix_update_mode(RGB_MATRIX_CYCLE_ALL, RGB_MATRIX_ANIMATION_SPEED_SLOWER, false); - } - break; - case RGB_DUO: - if (record->event.pressed) { - rgb_matrix_update_mode(RGB_MATRIX_RAINBOW_PINWHEELS, RGB_MATRIX_ANIMATION_SPEED_SLOW, false); - } - break; - case RGB_SCR: - if (record->event.pressed) { - rgb_matrix_update_mode(RGB_MATRIX_CYCLE_LEFT_RIGHT, RGB_MATRIX_ANIMATION_SPEED_SLOW, false); - } - break; +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_set_gaming_defaults(); #endif + default_layer_set(1U << _WASD); + } + return true; } return true; } + +// Override functions to save memory +// https://docs.qmk.fm/#/squeezing_avr?id=magic-keycodes +uint16_t keycode_config(uint16_t keycode) { + return keycode; +} + +uint8_t mod_config(uint8_t mod) { + return mod; +} diff --git a/keyboards/crkbd/keymaps/rpbaptist/oled.c b/keyboards/crkbd/keymaps/rpbaptist/oled.c new file mode 100644 index 00000000000..549826fac60 --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/oled.c @@ -0,0 +1,112 @@ +// Copyright 2023 Your Name (@rpbaptist) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "rpbaptist.h" + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } else { + return OLED_ROTATION_180; + } +} + +void render_crkbd_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); +} + +user_config_t user_config; + +void render_status(void) { + switch (get_highest_layer(default_layer_state)) { + case _COLEMAKDH: + oled_write_P(PSTR("TYPE "), false); + break; + case _GAMING: + oled_write_P(PSTR("GAME "), false); + break; + case _WASD: + oled_write_P(PSTR("WASD "), false); + break; + } + + oled_write_P(PSTR("\n"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR(" "), false); + break; + case _SYM: + oled_write_P(PSTR("Sym "), false); + break; + case _NAV: + oled_write_P(PSTR("Nav "), false); + break; + case _GAMING_EXT: + oled_write_P(PSTR("Ext "), false); + break; + case _NUMPAD: + oled_write_P(PSTR("Num "), false); + break; + case _UTIL: + oled_write_P(PSTR("Util "), false); + break; + default: + oled_write_P(PSTR("Unkn "), false); + break; + } + oled_write_P(PSTR("\n"), false); + + uint8_t modifiers = get_mods(); + + oled_write_P((modifiers & MOD_MASK_SHIFT) ? PSTR("SHIFT") : PSTR("\n"), false); + oled_write_P((modifiers & MOD_MASK_CTRL) ? PSTR("CTRL ") : PSTR("\n"), false); + oled_write_P((modifiers & MOD_MASK_ALT) ? PSTR("ALT ") : PSTR("\n"), false); + oled_write_P((modifiers & MOD_MASK_GUI) ? PSTR("SUPER") : PSTR("\n"), false); + + oled_write_P(PSTR("\n"), false); + + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Mode:"), false); + oled_write_P(led_state.num_lock ? PSTR(" NUM ") : PSTR("\n"), false); + oled_write_P(led_state.caps_lock ? PSTR(" CAPS") : PSTR("\n"), false); + +#ifdef RGB_MATRIX_ENABLE + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("\n"), false); + + if (rgb_matrix_config.enable) { + if (user_config.rgb_matrix_idle_anim) { + oled_write_P(rgb_matrix_anim_oled_text(user_config.rgb_matrix_active_mode), false); + oled_write_P(rgb_matrix_anim_oled_text(user_config.rgb_matrix_idle_mode), false); + } else { + oled_write_P(PSTR("\n"), false); + oled_write_P(rgb_matrix_anim_oled_text(rgb_matrix_get_mode()), false); + } + } else { + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("\n"), false); + } +#endif +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_crkbd_logo(); +#ifdef RGB_MATRIX_ENABLE + if (user_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == user_config.rgb_matrix_idle_mode) { + oled_scroll_left(); // Turns on scrolling + } else { + oled_scroll_off(); + } +#endif + } + return false; +} diff --git a/keyboards/crkbd/keymaps/rpbaptist/oled.h b/keyboards/crkbd/keymaps/rpbaptist/oled.h new file mode 100644 index 00000000000..d4a73992e0e --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/oled.h @@ -0,0 +1,8 @@ +// Copyright 2023 Your Name (@rpbaptist) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "oled_driver.h" + +void render_crkbd_logo(void); diff --git a/keyboards/crkbd/keymaps/rpbaptist/readme.md b/keyboards/crkbd/keymaps/rpbaptist/readme.md index 9525cf7cfe3..2312ec8c498 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/readme.md +++ b/keyboards/crkbd/keymaps/rpbaptist/readme.md @@ -1,6 +1,6 @@ # Corne keyboard layout -This is my highly personalized CRKBD layout. I use Colemak DHm as main typing layer. I use this keyboard and layout in my daily programming job and for everything at home, including gaming. +This is my highly personalized CRKBD layout. I use Colemak DH as main typing layer. I use this keyboard and layout in my daily programming job and for everything at home, including gaming. This keymap is the result of an evolution from Ultimate Hacking Keyboard to Iris, to Corne. It took many iterations and changes and only now I feel this is ready to be merged into the main QMK repository, because I think further changes will be minor. This is my 1.0 release so to speak. @@ -8,7 +8,7 @@ Many thanks to foostan for the keyboard, all QMK contributors and drashna specif ## Layers -### COLEMAKDHM +### COLEMAKDH Main typing layer. I really love having SHIFT available on thumbs. I am a left thumb space bar person, so I put SPACE there and ENTER on right. I use CTRL key combos lot in my text editor and desktop environment. That's why I have two of them. I also found them to be a great position for the square brackets. (`[` and `]`). These become parenthesis (`(` and `)`) on either of the layers. @@ -16,23 +16,23 @@ Holding SHIFT while tapping BACKSPACE will output DEL. Holding both SHIFT keys w I don't know about you but "lower" and "raise" don't mean that much to me. I named my layers `SYM`, short for symbols and `NAV`, short for navigation. Holding the key will activate the layer for as long as it is held, double tapping it will switch to it. Single tapping it once will switch to main layer again. -Holding TAB will access `NUM` layer which features a numpad. +Holding TAB will access `NUMPAD` layer which features a numpad. This is lockable by going to `ADJUST` layer and pressing the same key. ### SYM -Includes a number row, the symbols normally on SHIFT and numbers, as well as a numpad under right side homing keys. +Includes a number row, the symbols normally on SHIFT and numbers and a variety of other symbols used mostly for programming. ### NAV -This is where I access arrow keys, page up, down, home, end and F keys. I also added general tab forward and backward keys. Tab close and window close. I primarily use these in my browser, terminal and text editor. +This is where I access F keys, arrow keys, page up, down, home, end and F keys. I also added general tab forward and backward keys. Tab close and window close. I primarily use these in my browser, terminal and text editor. ### UTIL -Short for utility. This is accessed by pressing both `SYM` and `NAV` at the same time. It has a software `RESET` key, media keys, RGB control and switches main layer between Colemak and a gaming layer. +Short for utility. This is accessed by pressing both `SYM` and `NAV` at the same time. It has a software `QK_BOOT` key, control for RGB and switching the main layer. More on the RGB below. -### NUMPAD +### NUMPAD" -This gives access to a numpad on the right half with some additional symbols I find useful when using the numpad. +This gives access to a numpad on the right half with some additional symbols I find useful when using the numpad. The left half has media control. ### GAMING @@ -42,31 +42,41 @@ I put movement on FRST (would be ESDF on QWERTY), because it lines up more comfo Most notable here is that there are no tap and hold differences anymore on left hand side besides the new layer key. This is a different layer than `SYM`. +### WASD + +This is functionally the same as the `GAMING` layer, but uses traditional WASD layout. This is done for games where I don't need to type and want to just jump in without rebinding everything. + ### GAMING_EXT -This is the gaming extended layer where movement keys remain the same. This means I can keep moving while accessing second layer keys. All other keys are keys on which I can easily rebind something. Besides that it gives me an ENTER key which does not switch. This is good when a game requires you to hold ENTER. +This is the gaming extended layer. I moved this to most inner thumb instead of mid thumb position. Num row is now moved to the home row. Besides that it gives me an ENTER key which does not switch. This is good when a game requires you to hold ENTER. ## RGB I took a big inspiration from Drashna's RGB configuration and tweaked it. - `RGB_UND`: Toggles underglow indicators on and off. Each layer has its own color. -- `RGB_IDL`: This will enable/disable idle mode. By default, when typing, the `ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS` will be used. When the idle timeout has exceeded the secondary animation will be activated, which is `RGB_MATRIX_CYCLE_ALL` by default. When switching to `GAMING` layer the timeout will be reduced and the idle animation changed to `RGB_MATRIX_RAINBOW_PINWHEELS`. - When idle mode is enabled, `RGB_MATRIX_TYPING_HEATMAP` and `RGB_MATRIX_MULTISPLASH` will be used for active animation. All others for idle animation. When disabling idle mode, the current idle animation will be activated. Additionally, on idling, the underglow layer indication will be deactivated. -- There are no RGB mode cycle keys, but instead several keys to use a specific RGB directly. Each has their own default speed, although this can be changed. +- `RGB_IDL`: This will enable/disable idle mode. By default an "active" RGB mode will be used. When the idle timeout has exceeded the secondary animation will be activated, which is a passive animation. When switching to `GAMING` layer the timeout will be reduced and the idle animation changed to `RGB_MATRIX_RAINBOW_PINWHEELS`. + When disabling idle mode, the current idle animation will be activated. + On idling, on idling, the underglow layer indication will be deactivated and the animation RGB will be set instead. +- `RGB_ATG`: Cylces through three active modes: `RGB_MATRIX_SOLID_REACTIVE_SIMPLE` -> `RGB_MATRIX_TYPING_HEATMAP` -> `RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS` +- `RGB_PST`: Cycles through three passive modes: `RGB_MATRIX_SOLID_COLOR` -> `RGB_MATRIX_BREATHING` -> `RGB_MATRIX_CYCLE_ALL` +- `RGB_PCT`: Cycles through two, more colorful, passive modes: `RGB_MATRIX_RAINBOW_PINWHEELS` -> `RGB_MATRIX_CYCLE_LEFT_RIGHT` ## Building -`make crkbd/rev1:rpbaptist:dfu` +`qmk flash -bl dfu -kb crkbd -km rpbaptist` ## Notes I use several OLED slave side images, depending on the keycaps I am using. These also determine the default LED color and underglow. -`make crkbd/rev1:rpbaptist:dfu THEME=pulse` +Provide the theme like this: + +`THEME=laser qmk flash -bl dfu -kb crkbd -km rpbaptist` Current supported themes are: +- pulse (default) - godspeed - laser -- pulse +- milkshake diff --git a/keyboards/crkbd/keymaps/rpbaptist/rgb.c b/keyboards/crkbd/keymaps/rpbaptist/rgb.c new file mode 100644 index 00000000000..7f87d0a9eaa --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/rgb.c @@ -0,0 +1,350 @@ +// Copyright 2023 Your Name (@rpbaptist) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "rpbaptist.h" + +uint32_t transport_user_config = 0; + +void user_config_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { + if (initiator2target_buffer_size == sizeof(transport_user_config)) { + memcpy(&transport_user_config, initiator2target_buffer, initiator2target_buffer_size); + } +} + +#ifdef OLED_ENABLE +const char* rgb_matrix_anim_oled_text(uint8_t mode) { + switch (mode) { + case RGB_MATRIX_TYPING_HEATMAP: + return PSTR("Heat "); + case RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS: + return PSTR("Nexus"); + case RGB_MATRIX_SOLID_REACTIVE_SIMPLE: + return PSTR("Ease "); + case RGB_MATRIX_SOLID_COLOR: + return PSTR("Solid"); + case RGB_MATRIX_BREATHING: + return PSTR("Fade "); + case RGB_MATRIX_CYCLE_ALL: + return PSTR("Cycle"); + case RGB_MATRIX_RAINBOW_PINWHEELS: + return PSTR("Wheel"); + case RGB_MATRIX_CYCLE_LEFT_RIGHT: + return PSTR("Wave "); + default: + return PSTR(""); + } +} +#endif + +extern led_config_t g_led_config; + +void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t led_min, uint8_t led_max) { + HSV hsv = {hue, sat, val}; + if (hsv.v > rgb_matrix_get_val()) { + hsv.v = rgb_matrix_get_val(); + } + + RGB rgb = hsv_to_rgb(hsv); + for (uint8_t i = 0; i < led_max; i++) { + if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + } +} + +extern user_config_t user_config; + +bool rgb_matrix_in_idle(void) { + return (user_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == user_config.rgb_matrix_idle_mode); +} + +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (user_config.rgb_layer_indicator && !rgb_matrix_in_idle()) { + switch (get_highest_layer(layer_state | default_layer_state)) { + case _GAMING_EXT: + rgb_matrix_layer_helper(HSV_PURPLE, led_min, led_max); + break; + case _SYM: + rgb_matrix_layer_helper(HSV_YELLOW, led_min, led_max); + break; + case _NAV: + rgb_matrix_layer_helper(HSV_SPRINGGREEN, led_min, led_max); + break; + case _UTIL: + rgb_matrix_layer_helper(HSV_PINK, led_min, led_max); + break; + case _NUMPAD: + rgb_matrix_layer_helper(HSV_CORAL, led_min, led_max); + break; + case _GAMING: + case _WASD: + rgb_matrix_layer_helper(HSV_RED, led_min, led_max); + break; + default: + rgb_matrix_layer_helper(THEME_HSV, led_min, led_max); + break; + } + } + return false; +} + +void rgb_matrix_turn_off_underglow(void) { + rgb_matrix_layer_helper(0, 0, 0, 0, 54); +} + +uint8_t rgb_matrix_speed_for_mode(uint8_t mode) { + switch (mode) { + case RGB_MATRIX_SOLID_REACTIVE_SIMPLE: + case RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS: + return RGB_MATRIX_ANIMATION_SPEED_FAST; + case RGB_MATRIX_BREATHING: + case RGB_MATRIX_CYCLE_LEFT_RIGHT: + case RGB_MATRIX_RAINBOW_PINWHEELS: + return RGB_MATRIX_ANIMATION_SPEED_SLOW; + case RGB_MATRIX_CYCLE_ALL: + return RGB_MATRIX_ANIMATION_SPEED_SLOWER; + default: + return RGB_MATRIX_ANIMATION_SPEED_MEDIUM; + } +} + +bool rgb_matrix_mode_active(uint8_t mode) { + return (mode == RGB_MATRIX_SOLID_REACTIVE_SIMPLE || mode == RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS || mode == RGB_MATRIX_TYPING_HEATMAP); +} + +void rgb_matrix_update_current_mode(uint8_t mode) { + rgb_matrix_config.speed = rgb_matrix_speed_for_mode(mode); + rgb_matrix_mode_noeeprom(mode); +} + +void rgb_matrix_update_dynamic_mode(uint8_t mode) { + uint8_t speed; + speed = rgb_matrix_speed_for_mode(mode); + + if (rgb_matrix_mode_active(mode)) { + user_config.rgb_matrix_active_speed = speed; + user_config.rgb_matrix_active_mode = mode; + } else { + user_config.rgb_matrix_idle_speed = speed; + user_config.rgb_matrix_idle_mode = mode; + } +} + +void rgb_matrix_update_mode(uint8_t mode) { + if (user_config.rgb_matrix_idle_anim) { + rgb_matrix_update_dynamic_mode(mode); + } + if (rgb_matrix_mode_active(mode) || !user_config.rgb_matrix_idle_anim) { + rgb_matrix_update_current_mode(mode); + } +} + +uint8_t get_rgb_matrix_active_mode(void) { + if (user_config.rgb_matrix_idle_anim) { + return user_config.rgb_matrix_active_mode; + } else { + return rgb_matrix_get_mode(); + } +} + +void rgb_matrix_toggle_active_mode(void) { + switch (get_rgb_matrix_active_mode()) { + case RGB_MATRIX_SOLID_REACTIVE_SIMPLE: + rgb_matrix_update_mode(RGB_MATRIX_TYPING_HEATMAP); + break; + case RGB_MATRIX_TYPING_HEATMAP: + rgb_matrix_update_mode(RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS); + break; + default: + rgb_matrix_update_mode(RGB_MATRIX_SOLID_REACTIVE_SIMPLE); + break; + } +} + +uint8_t get_rgb_matrix_idle_mode(void) { + if (user_config.rgb_matrix_idle_anim) { + return user_config.rgb_matrix_idle_mode; + } else { + return rgb_matrix_get_mode(); + } +} + +void rgb_matrix_toggle_simple_passive_mode(void) { + switch (get_rgb_matrix_idle_mode()) { + case RGB_MATRIX_SOLID_COLOR: + rgb_matrix_update_mode(RGB_MATRIX_BREATHING); + break; + case RGB_MATRIX_BREATHING: + rgb_matrix_update_mode(RGB_MATRIX_CYCLE_ALL); + break; + default: + rgb_matrix_update_mode(RGB_MATRIX_SOLID_COLOR); + break; + } +} + +void rgb_matrix_toggle_color_passive_mode(void) { + switch (get_rgb_matrix_idle_mode()) { + case RGB_MATRIX_RAINBOW_PINWHEELS: + rgb_matrix_update_mode(RGB_MATRIX_CYCLE_LEFT_RIGHT); + break; + default: + rgb_matrix_update_mode(RGB_MATRIX_RAINBOW_PINWHEELS); + break; + } +} + +void rgb_matrix_toggle_underglow_layer_indicator(void) { + user_config.rgb_layer_indicator ^= 1; + if (user_config.rgb_layer_indicator) { + layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) + } else { + rgb_matrix_turn_off_underglow(); + } +} + +void rgb_matrix_toggle_idle_animation_change(void) { + user_config.rgb_matrix_idle_anim ^= 1; + if (user_config.rgb_matrix_idle_anim) { + rgb_matrix_update_mode(user_config.rgb_matrix_active_mode); + } else { + rgb_matrix_update_current_mode(user_config.rgb_matrix_idle_mode); + } +} + +void rgb_matrix_set_gaming_defaults(void) { + if (!user_config.rgb_layer_indicator) { + user_config.rgb_layer_indicator = true; + } + user_config.rgb_matrix_idle_timeout = GAMING_IDLE_TIMEOUT; + rgb_matrix_update_mode(RGB_MATRIX_RAINBOW_PINWHEELS); + rgb_matrix_update_mode(RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS); +} + +void rgb_matrix_set_typing_defaults(void) { + user_config.rgb_matrix_idle_timeout = IDLE_TIMEOUT; + rgb_matrix_update_mode(RGB_MATRIX_TYPING_PASSIVE); + rgb_matrix_update_mode(RGB_MATRIX_TYPING_ACTIVE); +} + +void rgb_matrix_set_defaults(void) { + rgb_matrix_enable_noeeprom(); + rgb_matrix_sethsv_noeeprom(THEME_HSV); + + user_config.rgb_layer_indicator = true; + user_config.rgb_matrix_idle_anim = true; + + rgb_matrix_set_typing_defaults(); + + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_SIMPLE); +} + +void matrix_scan_rgb(void) { + if (user_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == user_config.rgb_matrix_active_mode && last_input_activity_elapsed() > user_config.rgb_matrix_idle_timeout) { + if (user_config.rgb_layer_indicator) { + rgb_matrix_turn_off_underglow(); + } + rgb_matrix_update_current_mode(user_config.rgb_matrix_idle_mode); + } +} + +void user_transport_sync(void) { + // Keep track of the last state, so that we can tell if we need to propagate to slave + static uint32_t last_config = 0, last_sync = 0; + + // Check if the state values are different + // or if sync timer elapsed + if (memcmp(&user_config, &last_config, sizeof(transport_user_config)) || (timer_elapsed32(last_sync) > 250)) { + memcpy(&last_config, &user_config, sizeof(transport_user_config)); + + if (transaction_rpc_send(USER_CONFIG_SYNC, sizeof(transport_user_config), &transport_user_config)) { + last_sync = timer_read32(); + } + } +} + +void user_transport_update(void) { + if (is_keyboard_master()) { + transport_user_config = user_config.raw; + user_transport_sync(); + } else { + user_config.raw = transport_user_config; + } +} + +void housekeeping_task_user(void) { + static bool has_ran_yet; + if (!has_ran_yet) { + has_ran_yet = true; + startup_user(); + } + matrix_scan_rgb(); + + // Update config to slave + user_transport_update(); +} + +void eeconfig_init_user(void) { + user_config.raw = 0; + user_config.rgb_layer_indicator = true; + user_config.rgb_matrix_idle_anim = true; + + rgb_matrix_enable(); + rgb_matrix_sethsv(THEME_HSV); + rgb_matrix_mode(RGB_MATRIX_SOLID_REACTIVE_SIMPLE); + + eeconfig_update_user(user_config.raw); +} + +void keyboard_post_init_user(void) { + set_single_persistent_default_layer(_COLEMAKDH); + rgb_matrix_set_defaults(); + + // Register user config sync + transaction_register_rpc(USER_CONFIG_SYNC, user_config_sync); +} + +bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t* record) { + if (user_config.rgb_matrix_idle_anim) { + if (rgb_matrix_get_mode() == user_config.rgb_matrix_idle_mode) { + rgb_matrix_update_current_mode(user_config.rgb_matrix_active_mode); + if (!user_config.rgb_layer_indicator) { + rgb_matrix_turn_off_underglow(); + } + } + } + + switch (keycode) { + case RGB_RST: + if (record->event.pressed) { + rgb_matrix_set_defaults(); + } + break; + case RGB_UND: // Toggle separate underglow status + if (record->event.pressed) { + rgb_matrix_toggle_underglow_layer_indicator(); + } + break; + case RGB_IDL: // Toggle idle/heatmap animation + if (record->event.pressed) { + rgb_matrix_toggle_idle_animation_change(); + } + break; + case RGB_ATG: + if (record->event.pressed) { + rgb_matrix_toggle_active_mode(); + } + break; + case RGB_PST: + if (record->event.pressed) { + rgb_matrix_toggle_simple_passive_mode(); + } + break; + case RGB_PCT: + if (record->event.pressed) { + rgb_matrix_toggle_color_passive_mode(); + } + break; + } + return true; +} diff --git a/keyboards/crkbd/keymaps/rpbaptist/rgb.h b/keyboards/crkbd/keymaps/rpbaptist/rgb.h new file mode 100644 index 00000000000..91c25f5c287 --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/rgb.h @@ -0,0 +1,28 @@ +// Copyright 2023 Your Name (@rpbaptist) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "transactions.h" + +typedef union { + uint32_t raw; + struct { + bool rgb_layer_indicator : 1; + bool rgb_matrix_idle_anim : 1; + uint8_t rgb_matrix_active_mode : 4; + uint8_t rgb_matrix_idle_mode : 4; + uint8_t rgb_matrix_active_speed : 2; + uint8_t rgb_matrix_idle_speed : 2; + uint32_t rgb_matrix_idle_timeout : 18; + }; +} user_config_t; + +extern user_config_t user_config; + +_Static_assert(sizeof(user_config_t) == sizeof(uint32_t), "Userspace EECONFIG out of spec."); + +const char *rgb_matrix_anim_oled_text(uint8_t mode); +void rgb_matrix_set_gaming_defaults(void); +void rgb_matrix_set_typing_defaults(void); +bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/crkbd/keymaps/rpbaptist/rpbaptist.h b/keyboards/crkbd/keymaps/rpbaptist/rpbaptist.h new file mode 100644 index 00000000000..630ab5df49c --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/rpbaptist.h @@ -0,0 +1,73 @@ +// Copyright 2023 Your Name (@rpbaptist) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include QMK_KEYBOARD_H + +#include "quantum.h" + +#if defined(RGB_MATRIX_ENABLE) +# include "rgb.h" +#endif + +#if defined(OLED_ENABLE) +# include "oled.h" +#endif + +enum layer_names { + _COLEMAKDH, + _GAMING, + _WASD, + _GAMING_EXT, + _NUMPAD, + _SYM, + _NAV, + _UTIL +}; + +enum custom_keycodes { + BSP_DEL = SAFE_RANGE, +#if defined(RGB_MATRIX_ENABLE) + RGB_RST, // Reset RGB + RGB_UND, // Toggle RGB underglow as layer indicator + RGB_ATG, // Toggle active RGB mode + RGB_PST, // Toggle simple passive RGB mode + RGB_PCT, // Toggle colorful passive RGB mode + RGB_IDL, // RGB Idling animations +#endif + TYPING, // Switch to Colemak layer + GAMING, // Switch to gaming Colemak layer + WASD // Switch to gaming with WASD positions +}; + +// Layer toggle and switch +#define T_NAV TT(_NAV) +#define S_NAV MO(_NAV) + +#define T_SYM TT(_SYM) +#define S_SYM MO(_SYM) + +// Layer keys with functionality on tap +#define NAV_0 LT(_NAV, KC_0) +#define TAB_NUM LT(_NUMPAD, KC_TAB) +#define LCK_NMP TG(_NUMPAD) +#define S_NUM MO(_NUMPAD) + +#define EXTALT LT(_GAMING_EXT, KC_LALT) + +// Tap/mod keys +#define RCTL_BR RCTL_T(KC_RBRC) +#define LCTL_BR LCTL_T(KC_LBRC) + +#define SFT_SPC LSFT_T(KC_SPACE) +#define SFT_ENT RSFT_T(KC_ENTER) + +// Global tab forward and backward +#define TAB_FWD LCTL(KC_TAB) +#define TAB_BCK LCTL(LSFT(KC_TAB)) +#define TAB_CLS LCTL(KC_W) + +#define WIN_CLS LALT(KC_F4) + +// € +#define KC_EUR ALGR(KC_5) diff --git a/keyboards/crkbd/keymaps/rpbaptist/rules.mk b/keyboards/crkbd/keymaps/rpbaptist/rules.mk index 2366f669a0d..9620e41253a 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/rules.mk +++ b/keyboards/crkbd/keymaps/rpbaptist/rules.mk @@ -7,11 +7,11 @@ LTO_ENABLE = yes # EXTRAKEY_ENABLE = yes # Audio control and System control(+450) NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# DYNAMIC_MACRO_ENABLE = yes +DYNAMIC_MACRO_ENABLE = no MOUSEKEY_ENABLE = no # Mouse keys(+4700) RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality @@ -20,6 +20,9 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID SWAP_HANDS_ENABLE = no # Enable one-hand typing +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +MUSIC_ENABLE = no RGB_MATRIX_ENABLE = yes @@ -29,12 +32,17 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend BOOTLOADER = qmk-dfu OLED_ENABLE = yes -OLED_DRIVER = SSD1306 + +DEBOUNCE_TYPE = sym_eager_pk ifeq ($(strip $(THEME)), godspeed) OPT_DEFS += -DTHEME_GODSPEED endif +ifeq ($(strip $(THEME)), godspeed_ares) + OPT_DEFS += -DTHEME_GODSPEED_ARES +endif + ifeq ($(strip $(THEME)), pulse) OPT_DEFS += -DTHEME_PULSE endif @@ -42,3 +50,15 @@ endif ifeq ($(strip $(THEME)), laser) OPT_DEFS += -DTHEME_LASER endif + +ifeq ($(strip $(THEME)), milkshake) + OPT_DEFS += -DTHEME_MILKSHAKE +endif + +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + SRC += rgb.c +endif + +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC+= oled.c +endif diff --git a/keyboards/crkbd/keymaps/sharkby7e/rules.mk b/keyboards/crkbd/keymaps/sharkby7e/rules.mk index 38a8cf1bdb5..17406603fe2 100644 --- a/keyboards/crkbd/keymaps/sharkby7e/rules.mk +++ b/keyboards/crkbd/keymaps/sharkby7e/rules.mk @@ -1,6 +1,5 @@ MOUSEKEY_ENABLE = yes RGBLIGHT_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes BOOTLOADER = caterina diff --git a/keyboards/crkbd/keymaps/snowe/rules.mk b/keyboards/crkbd/keymaps/snowe/rules.mk index 96ae4bbf95f..10cf2fa97ca 100644 --- a/keyboards/crkbd/keymaps/snowe/rules.mk +++ b/keyboards/crkbd/keymaps/snowe/rules.mk @@ -14,7 +14,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID SWAP_HANDS_ENABLE = no # Enable one-hand typing RGBLIGHT_TWINKLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 RGB_MATRIX_ENABLE = yes OCEAN_DREAM_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/soundmonster/rules.mk b/keyboards/crkbd/keymaps/soundmonster/rules.mk index d3a964424fe..d95e1136bbb 100644 --- a/keyboards/crkbd/keymaps/soundmonster/rules.mk +++ b/keyboards/crkbd/keymaps/soundmonster/rules.mk @@ -3,6 +3,4 @@ RGB_MATRIX_ENABLE = yes MOUSEKEY_ENABLE = no NKRO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes - diff --git a/keyboards/crkbd/keymaps/sulrich/rules.mk b/keyboards/crkbd/keymaps/sulrich/rules.mk index 24d83947a9e..61b07ad0dfa 100644 --- a/keyboards/crkbd/keymaps/sulrich/rules.mk +++ b/keyboards/crkbd/keymaps/sulrich/rules.mk @@ -1,3 +1,2 @@ EXTRAKEY_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/thumb_ctrl/rules.mk b/keyboards/crkbd/keymaps/thumb_ctrl/rules.mk index 193aa14dac7..d3bbc97a236 100755 --- a/keyboards/crkbd/keymaps/thumb_ctrl/rules.mk +++ b/keyboards/crkbd/keymaps/thumb_ctrl/rules.mk @@ -17,7 +17,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/crkbd/keymaps/thunderbird2086/config.h b/keyboards/crkbd/keymaps/thunderbird2086/config.h index ad2bfcabc7c..8251bc9b8fc 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/config.h +++ b/keyboards/crkbd/keymaps/thunderbird2086/config.h @@ -14,6 +14,7 @@ # undef TAPPING_TERM #endif #define TAPPING_TERM 200 +#define VER_NEWLINE_WAIT 200 // in milliseconds #define NO_ACTION_ONESHOT @@ -32,63 +33,80 @@ #define RGBLIGHT_SLEEP #if defined(RGBLIGHT_ENABLE) +# define RGBLIGHT_LAYERS # define RGBLIGHT_LIMIT_VAL 150 # define RGBLIGHT_HUE_STEP 16 # define RGBLIGHT_SAT_STEP 32 # define RGBLIGHT_VAL_STEP 32 +# define RGBLIGHT_EFFECT_ALTERING +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_CHRISTMAS +# define RGBLIGHT_EFFECT_KNIGHT # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_KNIGHT +# define RGBLIGHT_EFFECT_RGB_TEST +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_TWINKLE #endif #if defined(RGB_MATRIX_ENABLE) -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 +# define SPLIT_LAYER_STATE_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# 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 32 -# define RGB_MATRIX_SAT_STEP 64 -# define RGB_MATRIX_VAL_STEP 64 -# define RGB_MATRIX_SPD_STEP 20 -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR +# define RGB_MATRIX_HUE_STEP 32 +# define RGB_MATRIX_SAT_STEP 64 +# define RGB_MATRIX_VAL_STEP 64 +# define RGB_MATRIX_SPD_STEP 20 +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR /* Disable the animations you don't want/need. You will need to disable a good number of these * * because they take up a lot of space. Disable until you can successfully compile your firmware. */ -# undef ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_ALPHAS_MODS # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_BREATHING +# undef ENABLE_RGB_MATRIX_BREATHING # undef ENABLE_RGB_MATRIX_BAND_SAT # undef ENABLE_RGB_MATRIX_BAND_VAL # undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT # undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL # undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT # undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# define ENABLE_RGB_MATRIX_CYCLE_ALL -# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# undef ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT # undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# undef ENABLE_RGB_MATRIX_DUAL_BEACON # undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL # undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON +# undef ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON # undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS # undef ENABLE_RGB_MATRIX_RAINDROPS # undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# undef ENABLE_RGB_MATRIX_HUE_BREATHING +# undef ENABLE_RGB_MATRIX_HUE_PENDULUM +# undef ENABLE_RGB_MATRIX_HUE_WAVE +# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# undef ENABLE_RGB_MATRIX_PIXEL_RAIN # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP -# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SPLASH -# undef ENABLE_RGB_MATRIX_MULTISPLASH -# undef ENABLE_RGB_MATRIX_SOLID_SPLASH -# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# undef ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# undef ENABLE_RGB_MATRIX_SOLID_SPLASH +# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif diff --git a/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h b/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h index cb10a3ac074..90b26b88a4e 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h +++ b/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h @@ -5,12 +5,15 @@ enum custom_keycodes { // Layer Macros - COLEMAK = SAFE_RANGE, + COLEMAK = QK_USER, QWERTY, FUNCTION, CODE, ADJUST, +# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) RGBRST, +# endif + VRSN, // Secret Macros M_XXX1, M_XXX2, diff --git a/keyboards/crkbd/keymaps/thunderbird2086/keymap.c b/keyboards/crkbd/keymaps/thunderbird2086/keymap.c index 7bc23db8aa7..69c5d25fd44 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/keymap.c +++ b/keyboards/crkbd/keymaps/thunderbird2086/keymap.c @@ -80,6 +80,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format off +#if defined(RGBLIGHT_ENABLE) +__attribute__((weak)) +void set_rgb_by_layer(layer_state_t state) { + return; +} +#endif + layer_state_t layer_state_set_user(layer_state_t state) { +# if defined(RGBLIGHT_ENABLE) + set_rgb_by_layer(state); +# endif return update_tri_layer_state(state, _FUNCTION, _ADJUST, _SECRET); } diff --git a/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h index ba41cd92234..db47ea65ed6 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h +++ b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h @@ -48,10 +48,10 @@ #if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) # define ________________________ADJUST_L2________________________ RGBRST , XXXXXXX , RGB_SPI , RGB_SAI , RGB_HUI , RGB_VAI -# define ________________________ADJUST_L3________________________ EE_CLR , XXXXXXX , RGB_SPD , RGB_SAD , RGB_HUD , RGB_VAD +# define ________________________ADJUST_L3________________________ EE_CLR , VRSN , RGB_SPD , RGB_SAD , RGB_HUD , RGB_VAD #else # define ________________________ADJUST_L2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX -# define ________________________ADJUST_L3________________________ EE_CLR , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +# define ________________________ADJUST_L3________________________ EE_CLR , VRSN , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX #endif #if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) diff --git a/keyboards/crkbd/keymaps/thunderbird2086/process_records.c b/keyboards/crkbd/keymaps/thunderbird2086/process_records.c index 381cf281e5c..46b9126677f 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/process_records.c +++ b/keyboards/crkbd/keymaps/thunderbird2086/process_records.c @@ -4,6 +4,7 @@ #include QMK_KEYBOARD_H #include "keycodes.h" +#include "version.h" __attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { @@ -23,18 +24,31 @@ bool process_record_oled(uint16_t keycode, keyrecord_t *record) { #endif bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - break; - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); + if (record->event.pressed) { + switch (keycode) { + case COLEMAK: + set_single_persistent_default_layer(_COLEMAK); + break; + case QWERTY: + set_single_persistent_default_layer(_QWERTY); + break; +# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) + case RGBRST: +# if defined(RGBLIGHT_ENABLE) + eeconfig_update_rgblight_default(); + rgblight_enable(); +# else + eeconfig_update_rgb_matrix_default(); +# endif + break; +# endif + case VRSN: + send_string( + "# qmk " QMK_VERSION "\n" SS_DELAY(VER_NEWLINE_WAIT) + "# " QMK_KEYBOARD "/" QMK_KEYMAP "\n" SS_DELAY(VER_NEWLINE_WAIT) + "# built on: " QMK_BUILDDATE "\n"); + break; } - break; } return process_record_keymap(keycode, record) && process_record_secrets(keycode, record) diff --git a/keyboards/crkbd/keymaps/thunderbird2086/readme.md b/keyboards/crkbd/keymaps/thunderbird2086/readme.md index 6400309fe8d..cb57f20aecb 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/readme.md +++ b/keyboards/crkbd/keymaps/thunderbird2086/readme.md @@ -54,7 +54,7 @@ The concept is Mac and **baby finger** friendly keymap. | --- | --- | --- | | ESC | Caps lock | | -- ADJUST: RGB control, Power control, default layer setting and reset +- ADJUST: RGB control, Power control, default layer setting, QMK version and reset ![adjust](https://i.imgur.com/uDIhigd.png) - SECRET: hold `ADJUST` and `FUNCTION` to activate diff --git a/keyboards/crkbd/keymaps/thunderbird2086/rgb.c b/keyboards/crkbd/keymaps/thunderbird2086/rgb.c new file mode 100644 index 00000000000..d9b0003c881 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/rgb.c @@ -0,0 +1,61 @@ +// Copyright 2023 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) +# include QMK_KEYBOARD_H + +# include "keycodes.h" + +# ifdef RGBLIGHT_ENABLE + +const rgblight_segment_t PROGMEM _rgb_layer_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 56, HSV_BLUE} +); +const rgblight_segment_t PROGMEM _rgb_layer_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 56, HSV_GREEN} +); +const rgblight_segment_t PROGMEM _rgb_layer_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 56, HSV_YELLOW} +); + +const rgblight_segment_t* const PROGMEM _rgb_layers[] = RGBLIGHT_LAYERS_LIST( + _rgb_layer_0, + _rgb_layer_1, + _rgb_layer_2 +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = _rgb_layers; +} + +void set_rgb_by_layer(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, _CODE)); + rgblight_set_layer_state(1, layer_state_cmp(state, _FUNCTION)); + rgblight_set_layer_state(2, layer_state_cmp(state, _ADJUST)); +} + +# else + +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 _CODE: + rgb_matrix_set_color(i, RGB_BLUE); + break; + case _FUNCTION: + rgb_matrix_set_color(i, RGB_GREEN); + break; + case _ADJUST: + rgb_matrix_set_color(i, RGB_YELLOW); + // RGB_WHITE caused crash + break; + default: + break; + } + } + return false; +} + +# endif +#endif diff --git a/keyboards/crkbd/keymaps/thunderbird2086/rules.mk b/keyboards/crkbd/keymaps/thunderbird2086/rules.mk index 4da48db08e3..0621b371e9c 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/rules.mk +++ b/keyboards/crkbd/keymaps/thunderbird2086/rules.mk @@ -4,13 +4,13 @@ AUDIO_ENABLE = no RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes TAP_DANCE_ENABLE = yes SRC += oled.c SRC += process_records.c +SRC += rgb.c SRC += tap_dances.c ifneq ("$(wildcard keyboards/crkbd/keymaps/thunderbird2086/secrets.c)","") diff --git a/keyboards/crkbd/keymaps/toinux/rules.mk b/keyboards/crkbd/keymaps/toinux/rules.mk index 07c98a08f80..59b90c792c2 100644 --- a/keyboards/crkbd/keymaps/toinux/rules.mk +++ b/keyboards/crkbd/keymaps/toinux/rules.mk @@ -2,7 +2,6 @@ MOUSEKEY_ENABLE = yes # Mouse keys RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes BOOTLOADER = atmel-dfu diff --git a/keyboards/crkbd/keymaps/vlukash_trackpad_left/rules.mk b/keyboards/crkbd/keymaps/vlukash_trackpad_left/rules.mk index ed4d34a70b8..d2e0957c499 100644 --- a/keyboards/crkbd/keymaps/vlukash_trackpad_left/rules.mk +++ b/keyboards/crkbd/keymaps/vlukash_trackpad_left/rules.mk @@ -1,7 +1,6 @@ # Build Options RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. OLED_ENABLE = yes -OLED_DRIVER = SSD1306 BOOTLOADER = atmel-dfu diff --git a/keyboards/crkbd/keymaps/vxid/rules.mk b/keyboards/crkbd/keymaps/vxid/rules.mk index 432e2194768..b14970fbf36 100644 --- a/keyboards/crkbd/keymaps/vxid/rules.mk +++ b/keyboards/crkbd/keymaps/vxid/rules.mk @@ -17,7 +17,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/crkbd/keymaps/xyverz/rules.mk b/keyboards/crkbd/keymaps/xyverz/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/crkbd/keymaps/xyverz/rules.mk +++ b/keyboards/crkbd/keymaps/xyverz/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/lib/host_led_state_reader.c b/keyboards/crkbd/lib/host_led_state_reader.c index a0684e4a277..2593ac5f8b7 100644 --- a/keyboards/crkbd/lib/host_led_state_reader.c +++ b/keyboards/crkbd/lib/host_led_state_reader.c @@ -5,11 +5,11 @@ char host_led_state_str[24]; const char *read_host_led_state(void) { - uint8_t leds = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); snprintf(host_led_state_str, sizeof(host_led_state_str), "NL:%s CL:%s SL:%s", - (leds & (1 << USB_LED_NUM_LOCK)) ? "on" : "- ", - (leds & (1 << USB_LED_CAPS_LOCK)) ? "on" : "- ", - (leds & (1 << USB_LED_SCROLL_LOCK)) ? "on" : "- "); + (led_state.num_lock) ? "on" : "- ", + (led_state.caps_lock) ? "on" : "- ", + (led_state.scroll_lock) ? "on" : "- "); return host_led_state_str; } diff --git a/keyboards/crkbd/r2g/config.h b/keyboards/crkbd/r2g/config.h index e44626739d4..4c2e3744151 100644 --- a/keyboards/crkbd/r2g/config.h +++ b/keyboards/crkbd/r2g/config.h @@ -19,27 +19,8 @@ along with this program. If not, see . #pragma once -#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 RGBLED_NUM 54 -# define RGBLED_SPLIT \ - { 27, 27 } -#endif - #ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 54 // Number of LEDs -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 54 # define RGB_MATRIX_SPLIT \ { 27, 27 } # define SPLIT_TRANSPORT_MIRROR @@ -58,12 +39,12 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_RAINDROPS # define ENABLE_RGB_MATRIX_HUE_BREATHING # define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SPLASH -# define ENABLE_RGB_MATRIX_SOLID_SPLASH +// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// # define ENABLE_RGB_MATRIX_SPLASH +// # define ENABLE_RGB_MATRIX_SOLID_SPLASH #endif #define SPLIT_USB_DETECT diff --git a/keyboards/crkbd/r2g/info.json b/keyboards/crkbd/r2g/info.json index cfd29368e61..8cdf07854e9 100644 --- a/keyboards/crkbd/r2g/info.json +++ b/keyboards/crkbd/r2g/info.json @@ -5,6 +5,22 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 54, + "split_count": [27, 27], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/crkbd/rev1/config.h b/keyboards/crkbd/rev1/config.h index 2378a8637fb..60a49100e3f 100644 --- a/keyboards/crkbd/rev1/config.h +++ b/keyboards/crkbd/rev1/config.h @@ -18,16 +18,8 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 54 // Number of LEDs -# define RGBLED_SPLIT \ - { 27, 27 } -# define RGBLIGHT_SPLIT -#endif - #ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 54 // Number of LEDs -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 54 # define RGB_MATRIX_SPLIT \ { 27, 27 } # define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/crkbd/rev1/info.json b/keyboards/crkbd/rev1/info.json index 4f63c95170c..48a27d11f34 100644 --- a/keyboards/crkbd/rev1/info.json +++ b/keyboards/crkbd/rev1/info.json @@ -5,6 +5,10 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 54, + "split_count": [27, 27] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk b/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk index b696e1de8bd..9fe565335ae 100644 --- a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk +++ b/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk @@ -5,5 +5,4 @@ MOUSEKEY_ENABLE = yes # Mouse keys RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. # RGB_MATRIX_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes diff --git a/keyboards/crypt_macro/config.h b/keyboards/crypt_macro/config.h index ecdef4acaa1..4d9d9bf5c26 100644 --- a/keyboards/crypt_macro/config.h +++ b/keyboards/crypt_macro/config.h @@ -27,18 +27,3 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 #define WS2812_DMA_CHANNEL 3 #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB - -#define RGBLED_NUM 11 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/crypt_macro/info.json b/keyboards/crypt_macro/info.json index 8dcd2e264ea..1b340ff74f6 100644 --- a/keyboards/crypt_macro/info.json +++ b/keyboards/crypt_macro/info.json @@ -8,6 +8,23 @@ "pid": "0x434D", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 11, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4", "driver": "pwm" diff --git a/keyboards/crypt_macro/rules.mk b/keyboards/crypt_macro/rules.mk index 000ee78e21a..cc9d7bb3f53 100644 --- a/keyboards/crypt_macro/rules.mk +++ b/keyboards/crypt_macro/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/custommk/ergostrafer/config.h b/keyboards/custommk/ergostrafer/config.h new file mode 100644 index 00000000000..9622315defe --- /dev/null +++ b/keyboards/custommk/ergostrafer/config.h @@ -0,0 +1,24 @@ +// Copyright 2023 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// FRAM configuration +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B7 +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz + +// SPI configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B3 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN B5 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN B4 +#define SPI_MISO_PAL_MODE 5 + +// Audio configuration +#define AUDIO_PIN B8 +#define AUDIO_PWM_DRIVER PWMD4 +#define AUDIO_PWM_CHANNEL 3 +#define AUDIO_PWM_PAL_MODE 2 +#define AUDIO_STATE_TIMER GPTD5 \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/halconf.h b/keyboards/custommk/ergostrafer/halconf.h new file mode 100644 index 00000000000..aed037ba2a4 --- /dev/null +++ b/keyboards/custommk/ergostrafer/halconf.h @@ -0,0 +1,30 @@ +/* Copyright 2023 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#define SERIAL_BUFFERS_SIZE 256 + +// This enables interrupt-driven mode +#define SPI_USE_WAIT TRUE + +#include_next diff --git a/keyboards/custommk/ergostrafer/info.json b/keyboards/custommk/ergostrafer/info.json new file mode 100644 index 00000000000..590925065e1 --- /dev/null +++ b/keyboards/custommk/ergostrafer/info.json @@ -0,0 +1,86 @@ +{ + "manufacturer": "customMK", + "keyboard_name": "ErgoStrafer", + "maintainer": "customMK", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "audio": true + }, + "matrix_pins": { + "cols": ["B0", "A1", "A2", "A3", "A6", "B6", "B10"], + "rows": ["C13", "C14", "C15", "B1", "A7", "A5"] + }, + "processor": "STM32F411", + "url": "https://shop.custommk.com/collections/ergostrafer/products/ergostrafer", + "usb": { + "device_version": "1.0.0", + "pid": "0xFAB8", + "vid": "0xF35B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "label":"F9", "x":7.5, "y":0 }, + { "matrix": [0, 1], "label":"7", "x":1.5, "y":1.25 }, + { "matrix": [0, 2], "label":"8", "x":2.5, "y":1.25 }, + { "matrix": [0, 3], "label":"9", "x":3.5, "y":1.25 }, + { "matrix": [0, 4], "label":"0", "x":4.5, "y":1.25 }, + { "matrix": [0, 5], "label":"-", "x":5.5, "y":1.25 }, + { "matrix": [0, 6], "label":"T", "x":7.25, "y":3.25, "w":1.5 }, + + { "matrix": [1, 0], "label":"PrtScr", "x":7.5, "y":1 }, + { "matrix": [1, 1], "label":"1", "x":1, "y":2.25 }, + { "matrix": [1, 2], "label":"2", "x":2, "y":2.25 }, + { "matrix": [1, 3], "label":"3", "x":3, "y":2.25 }, + { "matrix": [1, 4], "label":"5", "x":5, "y":2.25 }, + { "matrix": [1, 5], "label":"6", "x":6, "y":2.25 }, + { "matrix": [1, 6], "label":"G", "x":7.25, "y":4.25, "w":1.5 }, + + { "matrix": [2, 0], "label":"F5", "x":7.5, "y":2 }, + { "matrix": [2, 1], "label":"Tab", "x":1, "y":3.5 }, + { "matrix": [2, 2], "label":"Q", "x":2.5, "y":3.4 }, + { "matrix": [2, 3], "label":"4", "x":4, "y":2.25 }, + { "matrix": [2, 4], "label":"E", "x":4.5, "y":3.4 }, + { "matrix": [2, 5], "label":"R", "x":6, "y":3.3 }, + { "matrix": [2, 6], "label":"B", "x":6.5, "y":5.75, "w":1.5 }, + + { "matrix": [3, 0], "label":"Caps Lock", "x":0, "y":3.5 }, + { "matrix": [3, 1], "label":"L Alt", "x":0.25, "y":4.75, "w":1.5 }, + { "matrix": [3, 2], "label":"A", "x":2.5, "y":4.5 }, + { "matrix": [3, 3], "label":"W", "x":3.5, "y":3.4 }, + { "matrix": [3, 4], "label":"D", "x":4.5, "y":4.5 }, + { "matrix": [3, 5], "label":"F", "x":6, "y":4.3 }, + { "matrix": [3, 6], "label":"P", "x":8, "y":5.75 }, + + { "matrix": [4, 1], "label":"L Shift", "x":0.25, "y":5.75, "w":1.5 }, + { "matrix": [4, 2], "label":"Z", "x":2.5, "y":5.6 }, + { "matrix": [4, 3], "label":"S", "x":3.5, "y":4.5 }, + { "matrix": [4, 5], "label":"V", "x":5, "y":5.75, "w":1.5 }, + { "matrix": [4, 6], "label":"Space", "x":6.5, "y":6.85, "w":1.75 } + + { "matrix": [5, 1], "label":"L Ctrl Duck", "x":0.25, "y":6.75, "w":1.5 }, + { "matrix": [5, 3], "label":"X", "x":3.5, "y":5.6 }, + { "matrix": [5, 5], "label":"C", "x":4.75, "y":6.85, "w":1.75 }, + { "matrix": [5, 6], "label":"L Ctrl", "x":9.5, "y":5.75 } + ] + } + }, + "encoder": { + "rotary": [ + { "pin_a": "A8", "pin_b": "A4"}, + { "pin_a": "B12", "pin_b": "B14"}, + { "pin_a": "B15", "pin_b": "A15"} + ] + }, + "qmk": { + "tap_keycode_delay": 10 + } +} \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/keymaps/default/keymap.c b/keyboards/custommk/ergostrafer/keymaps/default/keymap.c new file mode 100644 index 00000000000..31ceb4f1e69 --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_F9, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_T, + KC_PSCR, KC_1, KC_2, KC_3, KC_5, KC_6, KC_G, + KC_F5, KC_TAB, KC_Q, KC_4, KC_E, KC_R, KC_B, + KC_CAPS, KC_LALT, KC_A, KC_W, KC_D, KC_F, KC_P, + KC_LSFT, KC_Z, KC_S, KC_V, KC_SPC, + KC_LCTL, KC_X, KC_C, KC_LCTL + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/keymaps/default/rules.mk b/keyboards/custommk/ergostrafer/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/keymaps/via/config.h b/keyboards/custommk/ergostrafer/keymaps/via/config.h new file mode 100644 index 00000000000..81f399d46ba --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/via/config.h @@ -0,0 +1,13 @@ +// Copyright 2023 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// With 8k FRAM, max out dynamic keymap layers and macros +// 7x6 matrix (84 bytes) and three encoders (12 bytes) consume 96 bytes per layer +// 32 layers consumes 3072 bytes +#define DYNAMIC_KEYMAP_LAYER_COUNT 32 + +// Most of the remaining space can be used for macros +// QMK Macro keycode range allows up to 128 macros +#define DYNAMIC_KEYMAP_MACRO_COUNT 128 diff --git a/keyboards/custommk/ergostrafer/keymaps/via/keymap.c b/keyboards/custommk/ergostrafer/keymaps/via/keymap.c new file mode 100644 index 00000000000..68f1df1c26d --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_F9, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_T, + KC_PSCR, KC_1, KC_2, KC_3, KC_5, KC_6, KC_G, + KC_F5, KC_TAB, KC_Q, KC_4, KC_E, KC_R, KC_B, + KC_CAPS, KC_LALT, KC_A, KC_W, KC_D, KC_F, KC_P, + KC_LSFT, KC_Z, KC_S, KC_V, KC_SPC, + KC_LCTL, KC_X, KC_C, KC_LCTL + ) +}; + +//#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +//#endif \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/keymaps/via/rules.mk b/keyboards/custommk/ergostrafer/keymaps/via/rules.mk new file mode 100644 index 00000000000..4253f570f0b --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/mcuconf.h b/keyboards/custommk/ergostrafer/mcuconf.h new file mode 100644 index 00000000000..160b94f786e --- /dev/null +++ b/keyboards/custommk/ergostrafer/mcuconf.h @@ -0,0 +1,27 @@ +/* Copyright 2023 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +// Used for audio +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE + +// Used for FRAM +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/readme.md b/keyboards/custommk/ergostrafer/readme.md new file mode 100644 index 00000000000..dab089647ff --- /dev/null +++ b/keyboards/custommk/ergostrafer/readme.md @@ -0,0 +1,27 @@ +# ergostrafer + +![ergostrafer](https://i.imgur.com/ncJgD3jh.jpeg) + +ErgoStrafer is a gaming mechanical keyboard that reproduces the layout of the discontinued SteelSeries Merc Stealth a.k.a. Zboard. + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: ErgoStrafer +* Hardware Availability: [customMK](https://shop.custommk.com/collections/ergostrafer/products/ergostrafer) + +Make example for this keyboard (after setting up your build environment): + + make custommk/ergostrafer:default + +Flashing example for this keyboard: + + make custommk/ergostrafer:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the "Load" key in the top right corner) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/custommk/ergostrafer/rules.mk b/keyboards/custommk/ergostrafer/rules.mk new file mode 100644 index 00000000000..ee519ea8b55 --- /dev/null +++ b/keyboards/custommk/ergostrafer/rules.mk @@ -0,0 +1,3 @@ +EEPROM_DRIVER = spi + +AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/custommk/evo70/config.h b/keyboards/custommk/evo70/config.h index 3010e4989d4..00f78c6339d 100644 --- a/keyboards/custommk/evo70/config.h +++ b/keyboards/custommk/evo70/config.h @@ -20,6 +20,4 @@ #define OLED_DISABLE_TIMEOUT -#define TAP_CODE_DELAY 10 - #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4 diff --git a/keyboards/custommk/evo70/info.json b/keyboards/custommk/evo70/info.json index 769e2e61188..95464e691a6 100644 --- a/keyboards/custommk/evo70/info.json +++ b/keyboards/custommk/evo70/info.json @@ -29,6 +29,9 @@ {"pin_a": "C7", "pin_b": "D5", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "backlight": { "pin": "B5", "levels": 17, @@ -65,94 +68,90 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [0, 0], "x": 2.5, "y": 1.1}, - {"matrix": [5, 0], "x": 3.5, "y": 1.1}, - {"matrix": [0, 1], "x": 4.5, "y": 1.1}, - {"matrix": [0, 2], "x": 5.5, "y": 1.1}, - {"matrix": [0, 3], "x": 6.5, "y": 1.1}, - {"matrix": [0, 4], "x": 7.5, "y": 1.1}, - {"matrix": [0, 5], "x": 8.5, "y": 1.1}, - {"matrix": [0, 6], "x": 9.5, "y": 1.1}, - {"matrix": [0, 7], "x": 10.5, "y": 1.1}, - {"matrix": [0, 8], "x": 11.5, "y": 1.1}, - {"matrix": [0, 9], "x": 12.5, "y": 1.1}, - {"matrix": [0, 10], "x": 13.5, "y": 1.1}, - {"matrix": [0, 11], "x": 14.5, "y": 1.1}, - {"matrix": [0, 12], "x": 15.5, "y": 1.1, "w": 2}, - {"matrix": [0, 13], "x": 17.5, "y": 1.1}, - - {"matrix": [5, 1], "x": 2.5, "y": 2.1, "w": 1.5}, - {"matrix": [1, 0], "x": 4, "y": 2.1}, - {"matrix": [1, 1], "x": 5, "y": 2.1}, - {"matrix": [1, 2], "x": 6, "y": 2.1}, - {"matrix": [1, 3], "x": 7, "y": 2.1}, - {"matrix": [1, 4], "x": 8, "y": 2.1}, - {"matrix": [1, 5], "x": 9, "y": 2.1}, - {"matrix": [1, 6], "x": 10, "y": 2.1}, - {"matrix": [1, 7], "x": 11, "y": 2.1}, - {"matrix": [1, 8], "x": 12, "y": 2.1}, - {"matrix": [1, 9], "x": 13, "y": 2.1}, - {"matrix": [1, 10], "x": 14, "y": 2.1}, - {"matrix": [1, 11], "x": 15, "y": 2.1}, - {"matrix": [1, 12], "x": 16, "y": 2.1, "w": 1.5}, - {"matrix": [1, 13], "x": 17.5, "y": 2.1}, - - {"matrix": [5, 5], "x": 0, "y": 3.1}, - {"matrix": [2, 0], "x": 1, "y": 3.1}, + {"matrix": [0, 0], "x": 2.5, "y": 0}, + {"matrix": [5, 0], "x": 3.5, "y": 0}, + {"matrix": [0, 1], "x": 4.5, "y": 0}, + {"matrix": [0, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [0, 4], "x": 7.5, "y": 0}, + {"matrix": [0, 5], "x": 8.5, "y": 0}, + {"matrix": [0, 6], "x": 9.5, "y": 0}, + {"matrix": [0, 7], "x": 10.5, "y": 0}, + {"matrix": [0, 8], "x": 11.5, "y": 0}, + {"matrix": [0, 9], "x": 12.5, "y": 0}, + {"matrix": [0, 10], "x": 13.5, "y": 0}, + {"matrix": [0, 11], "x": 14.5, "y": 0}, + {"matrix": [0, 12], "x": 15.5, "y": 0, "w": 2}, + {"matrix": [0, 13], "x": 17.5, "y": 0}, - {"matrix": [5, 2], "x": 2.5, "y": 3.1, "w": 1.75}, - {"matrix": [2, 1], "x": 4.25, "y": 3.1}, - {"matrix": [2, 2], "x": 5.25, "y": 3.1}, - {"matrix": [2, 3], "x": 6.25, "y": 3.1}, - {"matrix": [2, 4], "x": 7.25, "y": 3.1}, - {"matrix": [2, 5], "x": 8.25, "y": 3.1}, - {"matrix": [2, 6], "x": 9.25, "y": 3.1}, - {"matrix": [2, 7], "x": 10.25, "y": 3.1}, - {"matrix": [2, 8], "x": 11.25, "y": 3.1}, - {"matrix": [2, 9], "x": 12.25, "y": 3.1}, - {"matrix": [2, 10], "x": 13.25, "y": 3.1}, - {"matrix": [2, 11], "x": 14.25, "y": 3.1}, - {"matrix": [2, 12], "x": 15.25, "y": 3.1, "w": 2.25}, - {"matrix": [2, 13], "x": 17.5, "y": 3.1}, + {"matrix": [5, 1], "x": 2.5, "y": 1, "w": 1.5}, + {"matrix": [1, 0], "x": 4, "y": 1}, + {"matrix": [1, 1], "x": 5, "y": 1}, + {"matrix": [1, 2], "x": 6, "y": 1}, + {"matrix": [1, 3], "x": 7, "y": 1}, + {"matrix": [1, 4], "x": 8, "y": 1}, + {"matrix": [1, 5], "x": 9, "y": 1}, + {"matrix": [1, 6], "x": 10, "y": 1}, + {"matrix": [1, 7], "x": 11, "y": 1}, + {"matrix": [1, 8], "x": 12, "y": 1}, + {"matrix": [1, 9], "x": 13, "y": 1}, + {"matrix": [1, 10], "x": 14, "y": 1}, + {"matrix": [1, 11], "x": 15, "y": 1}, + {"matrix": [1, 12], "x": 16, "y": 1, "w": 1.5}, + {"matrix": [1, 13], "x": 17.5, "y": 1}, - {"matrix": [4, 6], "x": 0, "y": 4.1}, - {"matrix": [4, 4], "x": 1, "y": 4.1}, + {"matrix": [5, 5], "x": 0, "y": 2}, + {"matrix": [2, 0], "x": 1, "y": 2}, - {"matrix": [3, 0], "x": 2.5, "y": 4.1, "w": 2.25}, - {"matrix": [3, 1], "x": 4.75, "y": 4.1}, - {"matrix": [3, 2], "x": 5.75, "y": 4.1}, - {"matrix": [3, 3], "x": 6.75, "y": 4.1}, - {"matrix": [3, 4], "x": 7.75, "y": 4.1}, - {"matrix": [3, 5], "x": 8.75, "y": 4.1}, - {"matrix": [3, 6], "x": 9.75, "y": 4.1}, - {"matrix": [3, 7], "x": 10.75, "y": 4.1}, - {"matrix": [3, 8], "x": 11.75, "y": 4.1}, - {"matrix": [3, 9], "x": 12.75, "y": 4.1}, - {"matrix": [3, 10], "x": 13.75, "y": 4.1}, - {"matrix": [3, 11], "x": 14.75, "y": 4.1, "w": 1.75}, - {"matrix": [3, 12], "x": 16.5, "y": 4.1}, - {"matrix": [3, 13], "x": 17.5, "y": 4.1}, + {"matrix": [5, 2], "x": 2.5, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 4.25, "y": 2}, + {"matrix": [2, 2], "x": 5.25, "y": 2}, + {"matrix": [2, 3], "x": 6.25, "y": 2}, + {"matrix": [2, 4], "x": 7.25, "y": 2}, + {"matrix": [2, 5], "x": 8.25, "y": 2}, + {"matrix": [2, 6], "x": 9.25, "y": 2}, + {"matrix": [2, 7], "x": 10.25, "y": 2}, + {"matrix": [2, 8], "x": 11.25, "y": 2}, + {"matrix": [2, 9], "x": 12.25, "y": 2}, + {"matrix": [2, 10], "x": 13.25, "y": 2}, + {"matrix": [2, 11], "x": 14.25, "y": 2}, + {"matrix": [2, 12], "x": 15.25, "y": 2, "w": 2.25}, + {"matrix": [2, 13], "x": 17.5, "y": 2}, - {"matrix": [4, 1], "x": 0, "y": 5.1}, - {"matrix": [4, 3], "x": 1, "y": 5.1}, + {"matrix": [4, 6], "x": 0, "y": 3}, + {"matrix": [4, 4], "x": 1, "y": 3}, - {"matrix": [5, 4], "x": 2.5, "y": 5.1, "w": 1.25}, - {"matrix": [4, 0], "x": 3.75, "y": 5.1, "w": 1.25}, - {"matrix": [4, 2], "x": 5, "y": 5.1, "w": 1.25}, - {"matrix": [4, 5], "x": 6.25, "y": 5.1, "w": 6.25}, + {"matrix": [3, 0], "x": 2.5, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 4.75, "y": 3}, + {"matrix": [3, 2], "x": 5.75, "y": 3}, + {"matrix": [3, 3], "x": 6.75, "y": 3}, + {"matrix": [3, 4], "x": 7.75, "y": 3}, + {"matrix": [3, 5], "x": 8.75, "y": 3}, + {"matrix": [3, 6], "x": 9.75, "y": 3}, + {"matrix": [3, 7], "x": 10.75, "y": 3}, + {"matrix": [3, 8], "x": 11.75, "y": 3}, + {"matrix": [3, 9], "x": 12.75, "y": 3}, + {"matrix": [3, 10], "x": 13.75, "y": 3}, + {"matrix": [3, 11], "x": 14.75, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 16.5, "y": 3}, + {"matrix": [3, 13], "x": 17.5, "y": 3}, - {"matrix": [5, 6], "x": 0.5, "y": 1.1}, + {"matrix": [4, 1], "x": 0, "y": 4}, + {"matrix": [4, 3], "x": 1, "y": 4}, - {"matrix": [4, 7], "x": 0, "y": 0}, + {"matrix": [5, 4], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 0], "x": 3.75, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 6.25, "y": 4, "w": 6.25}, - {"matrix": [4, 8], "x": 12.5, "y": 5.1, "w": 1.25}, - {"matrix": [4, 9], "x": 13.75, "y": 5.1, "w": 1.25}, + {"matrix": [5, 6], "x": 0.5, "y": 0}, - {"matrix": [4, 10], "x": 1, "y": 0}, + {"matrix": [4, 8], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 13.75, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 15.5, "y": 5.1}, - {"matrix": [4, 12], "x": 16.5, "y": 5.1}, - {"matrix": [4, 13], "x": 17.5, "y": 5.1} + {"matrix": [4, 11], "x": 15.5, "y": 4}, + {"matrix": [4, 12], "x": 16.5, "y": 4}, + {"matrix": [4, 13], "x": 17.5, "y": 4} ] } } diff --git a/keyboards/custommk/evo70/keymaps/default/keymap.c b/keyboards/custommk/evo70/keymaps/default/keymap.c index 6f518dd9644..b577b885b23 100644 --- a/keyboards/custommk/evo70/keymaps/default/keymap.c +++ b/keyboards/custommk/evo70/keymaps/default/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_F1, KC_F2, 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_F3, 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_END, - KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_NO, KC_VOLD, KC_RALT, KC_RCTL, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT + KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_NO, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT( @@ -31,6 +31,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_TRNS, BL_TOGG, BL_STEP, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - 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_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) }; diff --git a/keyboards/custommk/evo70/keymaps/via/keymap.c b/keyboards/custommk/evo70/keymaps/via/keymap.c index 34de0889ee7..bff3309e639 100644 --- a/keyboards/custommk/evo70/keymaps/via/keymap.c +++ b/keyboards/custommk/evo70/keymaps/via/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_F1, KC_F2, 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_F3, 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_END, - KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_NO, KC_VOLD, KC_RALT, KC_RCTL, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT + KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_NO, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT( @@ -31,57 +31,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_TRNS, BL_TOGG, BL_STEP, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - 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_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; -static bool custom_encoder_mode = false; - -void set_custom_encoder_mode_user(bool custom_mode) { - custom_encoder_mode = custom_mode; -} - - -keyevent_t encoder_ccw = { - .key = (keypos_t){.row = 4, .col = 7}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder_cw = { - .key = (keypos_t){.row = 4, .col = 10}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, }; - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (custom_encoder_mode) { - if (clockwise) { - encoder_cw.pressed = true; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } - else { - encoder_ccw.pressed = true; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - return false; - } - return true; -} - -void matrix_scan_user(void) { - if (encoder_ccw.pressed) { - encoder_ccw.pressed = false; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - - if (encoder_cw.pressed) { - encoder_cw.pressed = false; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } -} +#endif diff --git a/keyboards/custommk/evo70/keymaps/via/rules.mk b/keyboards/custommk/evo70/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/custommk/evo70/keymaps/via/rules.mk +++ b/keyboards/custommk/evo70/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/custommk/evo70_r2/config.h b/keyboards/custommk/evo70_r2/config.h new file mode 100644 index 00000000000..25ab789d75f --- /dev/null +++ b/keyboards/custommk/evo70_r2/config.h @@ -0,0 +1,90 @@ +/* Copyright 2023 David Hoelscher (@customMK) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// No VBUS sense needed +#define BOARD_OTG_NOVBUSSENS 1 + +#define STM32_LSECLK 32768 + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 +#define MATRIX_ROW_PINS { A8, A1, A2, B1, A7 } + +// FRAM configuration +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A0 +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz + +// External flash configuration +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B12 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 1 // 48MHz; max supported by W25Q128JV is 133MHz +#define EXTERNAL_FLASH_SIZE (16 * 1024 * 1024) //128Mbit or 16MByte +#define EXTERNAL_FLASH_SPI_TIMEOUT 200000 //datasheet max is 200seconds for flash chip erase + +// SPI Configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B3 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN B5 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN B4 +#define SPI_MISO_PAL_MODE 5 + + +// SPI LCD Configuration +#define LCD_RST_PIN B2 +#define LCD_CS_PIN A9 +#define LCD_DC_PIN B0 +#ifndef LCD_ACTIVITY_TIMEOUT + #define LCD_ACTIVITY_TIMEOUT 30000 +#endif + +// I2C OLED Configuration +#define I2C1_SCL_PIN B6 +#define I2C1_SDA_PIN B9 + +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 + +#define OLED_DISABLE_TIMEOUT + +#define COL_SHIFT_IN_PIN B14 +#define COL_SHIFT_CLK_PIN B15 + +#define QUANTUM_PAINTER_SUPPORTS_256_PALETTE TRUE +#define QUANTUM_PAINTER_SUPPORTS_NATIVE_COLORS TRUE + +#define OLED_UPDATE_INTERVAL 66 + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 2 + +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 + +#define TAP_CODE_DELAY 10 + +#define AUDIO_PIN B8 +#define AUDIO_PWM_DRIVER PWMD4 +#define AUDIO_PWM_CHANNEL 3 +#define AUDIO_PWM_PAL_MODE 2 +#define AUDIO_STATE_TIMER GPTD5 +#define AUDIO_INIT_DELAY diff --git a/keyboards/custommk/evo70_r2/halconf.h b/keyboards/custommk/evo70_r2/halconf.h new file mode 100644 index 00000000000..5268fe5de6f --- /dev/null +++ b/keyboards/custommk/evo70_r2/halconf.h @@ -0,0 +1,36 @@ +/* Copyright 2023 David Hoelscher (@customMK) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#define HAL_USE_RTC TRUE + +#define HAL_USE_SPI TRUE + +#define HAL_USE_GPT TRUE + +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#define SERIAL_BUFFERS_SIZE 256 + +// This enables interrupt-driven mode +#define SPI_USE_WAIT TRUE + +#include_next diff --git a/keyboards/custommk/evo70_r2/info.json b/keyboards/custommk/evo70_r2/info.json new file mode 100644 index 00000000000..18c618abc6d --- /dev/null +++ b/keyboards/custommk/evo70_r2/info.json @@ -0,0 +1,320 @@ +{ + "keyboard_name": "EVO70 R2", + "url": "https://shop.custommk.com/collections/evo70/products/evo70", + "maintainer": "customMK", + "manufacturer": "customMK", + "tags": ["70%", "encoder", "underglow", "backlight"], + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "quantum_painter": true, + "oled": true, + "rgblight": true, + "backlight": true, + "audio": true + }, + "usb": { + "vid": "0xF35B", + "pid": "0xFAB6", + "device_version": "1.0.0" + }, + "diode_direction": "ROW2COL", + "processor": "STM32F411", + "bootloader": "stm32-dfu", + "rgblight": { + "led_count": 48, + "hue_steps": 4, + "saturation_steps": 8, + "brightness_steps": 4, + "max_brightness": 128, + "layers": { + "enabled": true + }, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbo_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "ws2812": { + "driver": "pwm", + "pin": "A10" + }, + "backlight": { + "driver": "pwm", + "breathing": true, + "breathing_period": 6, + "levels": 17, + "pin": "A6" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Encoder", "matrix": [1, 0], "x": 0.5, "y": 0}, + {"label": "Esc", "matrix": [0, 0], "x": 2.25, "y": 0}, + {"label": "1", "matrix": [0, 2], "x": 3.25, "y": 0}, + {"label": "2", "matrix": [0, 3], "x": 4.25, "y": 0}, + {"label": "3", "matrix": [0, 4], "x": 5.25, "y": 0}, + {"label": "4", "matrix": [0, 5], "x": 6.25, "y": 0}, + {"label": "5", "matrix": [0, 6], "x": 7.25, "y": 0}, + {"label": "6", "matrix": [0, 7], "x": 8.25, "y": 0}, + {"label": "7", "matrix": [0, 8], "x": 9.25, "y": 0}, + {"label": "8", "matrix": [0, 9], "x": 10.25, "y": 0}, + {"label": "9", "matrix": [0, 10], "x": 11.25, "y": 0}, + {"label": "0", "matrix": [0, 11], "x": 12.25, "y": 0}, + {"label": "-", "matrix": [0, 12], "x": 13.25, "y": 0}, + {"label": "=", "matrix": [0, 13], "x": 14.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 15.25, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [0, 15], "x": 17.25, "y": 0}, + + {"label": "Tab", "matrix": [1, 1], "x": 2.25, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 3.75, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 4.75, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 5.75, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 6.75, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 7.75, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 8.75, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 9.75, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 10.75, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 11.75, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 12.75, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 13.75, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 14.75, "y": 1}, + {"label": "\\", "matrix": [1, 14], "x": 15.75, "y": 1, "w": 1.5}, + {"label": "PgUp", "matrix": [1, 15], "x": 17.25, "y": 1}, + + {"label": "F1", "matrix": [2, 2], "x": 0, "y": 2}, + {"label": "F2", "matrix": [2, 0], "x": 1, "y": 2}, + {"label": "Caps Lock", "matrix": [2, 1], "x": 2.25, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "S", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "D", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "F", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "G", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "H", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "J", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "K", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": "L", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": ";", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "'", "matrix": [2, 13], "x": 14, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 15, "y": 2, "w": 2.25}, + {"label": "PgDn", "matrix": [2, 15], "x": 17.25, "y": 2}, + + {"label": "F3", "matrix": [3, 1], "x": 0, "y": 3}, + {"label": "F4", "matrix": [3, 0], "x": 1, "y": 3}, + {"label": "Shift", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"label": "\u2298", "matrix": [0, 1], "x": 3.5, "y": 3, "w": 1}, + {"label": "Z", "matrix": [3, 3], "x": 4.5, "y": 3}, + {"label": "X", "matrix": [3, 4], "x": 5.5, "y": 3}, + {"label": "C", "matrix": [3, 5], "x": 6.5, "y": 3}, + {"label": "V", "matrix": [3, 6], "x": 7.5, "y": 3}, + {"label": "B", "matrix": [3, 7], "x": 8.5, "y": 3}, + {"label": "N", "matrix": [3, 8], "x": 9.5, "y": 3}, + {"label": "M", "matrix": [3, 9], "x": 10.5, "y": 3}, + {"label": ",", "matrix": [3, 10], "x": 11.5, "y": 3}, + {"label": ".", "matrix": [3, 11], "x": 12.5, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 13.5, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 14.5, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 14], "x": 16.25, "y": 3}, + {"label": "End", "matrix": [3, 15], "x": 17.25, "y": 3}, + + {"label": "F5", "matrix": [4, 3], "x": 0, "y": 4}, + {"label": "F6", "matrix": [4, 0], "x": 1, "y": 4}, + {"label": "Ctrl", "matrix": [4, 1], "x": 2.25, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 2], "x": 3.5, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 6, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.25}, + {"label": "Left", "matrix": [4, 13], "x": 15.25, "y": 4}, + {"label": "Down", "matrix": [4, 14], "x": 16.25, "y": 4}, + {"label": "Right", "matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_ansi_blocker": { + "layout": [ + {"label": "Encoder", "matrix": [1, 0], "x": 0.5, "y": 0}, + {"label": "Esc", "matrix": [0, 0], "x": 2.25, "y": 0}, + {"label": "1", "matrix": [0, 2], "x": 3.25, "y": 0}, + {"label": "2", "matrix": [0, 3], "x": 4.25, "y": 0}, + {"label": "3", "matrix": [0, 4], "x": 5.25, "y": 0}, + {"label": "4", "matrix": [0, 5], "x": 6.25, "y": 0}, + {"label": "5", "matrix": [0, 6], "x": 7.25, "y": 0}, + {"label": "6", "matrix": [0, 7], "x": 8.25, "y": 0}, + {"label": "7", "matrix": [0, 8], "x": 9.25, "y": 0}, + {"label": "8", "matrix": [0, 9], "x": 10.25, "y": 0}, + {"label": "9", "matrix": [0, 10], "x": 11.25, "y": 0}, + {"label": "0", "matrix": [0, 11], "x": 12.25, "y": 0}, + {"label": "-", "matrix": [0, 12], "x": 13.25, "y": 0}, + {"label": "=", "matrix": [0, 13], "x": 14.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 15.25, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [0, 15], "x": 17.25, "y": 0}, + + {"label": "Tab", "matrix": [1, 1], "x": 2.25, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 3.75, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 4.75, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 5.75, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 6.75, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 7.75, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 8.75, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 9.75, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 10.75, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 11.75, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 12.75, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 13.75, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 14.75, "y": 1}, + {"label": "\\", "matrix": [1, 14], "x": 15.75, "y": 1, "w": 1.5}, + {"label": "PgUp", "matrix": [1, 15], "x": 17.25, "y": 1}, + + {"label": "F1", "matrix": [2, 2], "x": 0, "y": 2}, + {"label": "F2", "matrix": [2, 0], "x": 1, "y": 2}, + {"label": "Caps Lock", "matrix": [2, 1], "x": 2.25, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "S", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "D", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "F", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "G", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "H", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "J", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "K", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": "L", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": ";", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "'", "matrix": [2, 13], "x": 14, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 15, "y": 2, "w": 2.25}, + {"label": "PgDn", "matrix": [2, 15], "x": 17.25, "y": 2}, + + {"label": "F3", "matrix": [3, 1], "x": 0, "y": 3}, + {"label": "F4", "matrix": [3, 0], "x": 1, "y": 3}, + {"label": "Shift", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 3], "x": 4.5, "y": 3}, + {"label": "X", "matrix": [3, 4], "x": 5.5, "y": 3}, + {"label": "C", "matrix": [3, 5], "x": 6.5, "y": 3}, + {"label": "V", "matrix": [3, 6], "x": 7.5, "y": 3}, + {"label": "B", "matrix": [3, 7], "x": 8.5, "y": 3}, + {"label": "N", "matrix": [3, 8], "x": 9.5, "y": 3}, + {"label": "M", "matrix": [3, 9], "x": 10.5, "y": 3}, + {"label": ",", "matrix": [3, 10], "x": 11.5, "y": 3}, + {"label": ".", "matrix": [3, 11], "x": 12.5, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 13.5, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 14.5, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 14], "x": 16.25, "y": 3}, + {"label": "End", "matrix": [3, 15], "x": 17.25, "y": 3}, + + {"label": "F5", "matrix": [4, 3], "x": 0, "y": 4}, + {"label": "F6", "matrix": [4, 0], "x": 1, "y": 4}, + {"label": "Ctrl", "matrix": [4, 1], "x": 2.25, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 2], "x": 3.5, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 6, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.25}, + {"label": "Left", "matrix": [4, 13], "x": 15.25, "y": 4}, + {"label": "Down", "matrix": [4, 14], "x": 16.25, "y": 4}, + {"label": "Right", "matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_iso_blocker": { + "layout": [ + {"label": "Encoder", "matrix": [1, 0], "x": 0.5, "y": 0}, + {"label": "Esc", "matrix": [0, 0], "x": 2.25, "y": 0}, + {"label": "1", "matrix": [0, 2], "x": 3.25, "y": 0}, + {"label": "2", "matrix": [0, 3], "x": 4.25, "y": 0}, + {"label": "3", "matrix": [0, 4], "x": 5.25, "y": 0}, + {"label": "4", "matrix": [0, 5], "x": 6.25, "y": 0}, + {"label": "5", "matrix": [0, 6], "x": 7.25, "y": 0}, + {"label": "6", "matrix": [0, 7], "x": 8.25, "y": 0}, + {"label": "7", "matrix": [0, 8], "x": 9.25, "y": 0}, + {"label": "8", "matrix": [0, 9], "x": 10.25, "y": 0}, + {"label": "9", "matrix": [0, 10], "x": 11.25, "y": 0}, + {"label": "0", "matrix": [0, 11], "x": 12.25, "y": 0}, + {"label": "-", "matrix": [0, 12], "x": 13.25, "y": 0}, + {"label": "=", "matrix": [0, 13], "x": 14.25, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 15.25, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [0, 15], "x": 17.25, "y": 0}, + + {"label": "Tab", "matrix": [1, 1], "x": 2.25, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 3.75, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 4.75, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 5.75, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 6.75, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 7.75, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 8.75, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 9.75, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 10.75, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 11.75, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 12.75, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 13.75, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 14.75, "y": 1}, + {"label": "PgUp", "matrix": [1, 15], "x": 17.25, "y": 1}, + + {"label": "F1", "matrix": [2, 2], "x": 0, "y": 2}, + {"label": "F2", "matrix": [2, 0], "x": 1, "y": 2}, + {"label": "Caps Lock", "matrix": [2, 1], "x": 2.25, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "S", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "D", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "F", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "G", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "H", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "J", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "K", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": "L", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": ";", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "'", "matrix": [2, 13], "x": 14, "y": 2}, + {"label": "#", "matrix": [1, 14], "x": 15, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 16, "y": 1, "w": 1.25, "h": 2}, + {"label": "PgDn", "matrix": [2, 15], "x": 17.25, "y": 2}, + + {"label": "F3", "matrix": [3, 1], "x": 0, "y": 3}, + {"label": "F4", "matrix": [3, 0], "x": 1, "y": 3}, + {"label": "Shift", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"label": "\u2298", "matrix": [0, 1], "x": 3.5, "y": 3, "w": 1}, + {"label": "Z", "matrix": [3, 3], "x": 4.5, "y": 3}, + {"label": "X", "matrix": [3, 4], "x": 5.5, "y": 3}, + {"label": "C", "matrix": [3, 5], "x": 6.5, "y": 3}, + {"label": "V", "matrix": [3, 6], "x": 7.5, "y": 3}, + {"label": "B", "matrix": [3, 7], "x": 8.5, "y": 3}, + {"label": "N", "matrix": [3, 8], "x": 9.5, "y": 3}, + {"label": "M", "matrix": [3, 9], "x": 10.5, "y": 3}, + {"label": ",", "matrix": [3, 10], "x": 11.5, "y": 3}, + {"label": ".", "matrix": [3, 11], "x": 12.5, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 13.5, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 14.5, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 14], "x": 16.25, "y": 3}, + {"label": "End", "matrix": [3, 15], "x": 17.25, "y": 3}, + + {"label": "F5", "matrix": [4, 3], "x": 0, "y": 4}, + {"label": "F6", "matrix": [4, 0], "x": 1, "y": 4}, + {"label": "Ctrl", "matrix": [4, 1], "x": 2.25, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 2], "x": 3.5, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 6, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.25}, + {"label": "Left", "matrix": [4, 13], "x": 15.25, "y": 4}, + {"label": "Down", "matrix": [4, 14], "x": 16.25, "y": 4}, + {"label": "Right", "matrix": [4, 15], "x": 17.25, "y": 4} + ] + } + }, + "encoder": { + "rotary": [ + { "pin_a": "B7", "pin_b": "A4", "resolution": 2} + ] + } +} diff --git a/keyboards/custommk/evo70_r2/keymaps/default/keymap.c b/keyboards/custommk/evo70_r2/keymaps/default/keymap.c new file mode 100644 index 00000000000..9faf2088dd7 --- /dev/null +++ b/keyboards/custommk/evo70_r2/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2023 David Hoelscher (@customMK) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_F1, KC_F2, 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_F3, 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_END, + KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), +}; +#endif \ No newline at end of file diff --git a/keyboards/custommk/evo70_r2/keymaps/via/config.h b/keyboards/custommk/evo70_r2/keymaps/via/config.h new file mode 100644 index 00000000000..52e3afa69f3 --- /dev/null +++ b/keyboards/custommk/evo70_r2/keymaps/via/config.h @@ -0,0 +1,13 @@ +// Copyright 2023 David Hoelscher (@customMK) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// With 8k FRAM, max out dynamic keymap layers and macros +// 5x16 matrix (160 bytes) and one encoder (4 bytes) consume 164 bytes per layer +// 32 layers consumes 5248 bytes +#define DYNAMIC_KEYMAP_LAYER_COUNT 32 + +// Most of the remaining space can be used for macros +// QMK Macro keycode range allows up to 128 macros +#define DYNAMIC_KEYMAP_MACRO_COUNT 128 diff --git a/keyboards/custommk/evo70_r2/keymaps/via/keymap.c b/keyboards/custommk/evo70_r2/keymaps/via/keymap.c new file mode 100644 index 00000000000..4c467c018eb --- /dev/null +++ b/keyboards/custommk/evo70_r2/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2023 David Hoelscher (@customMK) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_F1, KC_F2, 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_F3, 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_END, + KC_F5, KC_F6, KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif \ No newline at end of file diff --git a/keyboards/custommk/evo70_r2/keymaps/via/rules.mk b/keyboards/custommk/evo70_r2/keymaps/via/rules.mk new file mode 100644 index 00000000000..4253f570f0b --- /dev/null +++ b/keyboards/custommk/evo70_r2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/evo70_r2/matrix.c b/keyboards/custommk/evo70_r2/matrix.c new file mode 100644 index 00000000000..99a23a4542e --- /dev/null +++ b/keyboards/custommk/evo70_r2/matrix.c @@ -0,0 +1,117 @@ +// Copyright 2023 David Hoelscher (@customMK) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" + +// Pin definitions +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; + +void matrix_wait_for_pin(pin_t pin, uint8_t target_state) { + rtcnt_t start = chSysGetRealtimeCounterX(); + rtcnt_t end = start + 5000; + while (chSysIsCounterWithinX(chSysGetRealtimeCounterX(), start, end)) { + if (readPin(pin) == target_state) { + break; + } + } +} + +void matrix_wait_for_port(stm32_gpio_t *port, uint32_t target_bitmask) { + rtcnt_t start = chSysGetRealtimeCounterX(); + rtcnt_t end = start + 5000; + while (chSysIsCounterWithinX(chSysGetRealtimeCounterX(), start, end)) { + if ((palReadPort(port) & target_bitmask) == target_bitmask) { + break; + } + } +} + +void shift_pulse_clock(void) { + writePinHigh(COL_SHIFT_CLK_PIN); + matrix_wait_for_pin(COL_SHIFT_CLK_PIN, 1); + writePinLow(COL_SHIFT_CLK_PIN); +} + +void matrix_init_custom(void) { + //set all row pins as input with pullups + for (int i = 0; i < MATRIX_ROWS; ++i) { + writePinHigh(row_pins[i]); + setPinInputHigh(row_pins[i]); + } + + //set all column pins high in ROW2COL matrix + setPinOutput(COL_SHIFT_IN_PIN); + setPinOutput(COL_SHIFT_CLK_PIN); + writePinHigh(COL_SHIFT_IN_PIN); + matrix_wait_for_pin(COL_SHIFT_IN_PIN, 1); + + for (int i = 0; i < MATRIX_COLS; ++i) { + shift_pulse_clock(); + } + +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + static matrix_row_t temp_matrix[MATRIX_ROWS] = {0}; + + writePinLow(COL_SHIFT_IN_PIN); + matrix_wait_for_pin(COL_SHIFT_IN_PIN, 0); + + // Setup the output column pin + shift_pulse_clock(); + + writePinHigh(COL_SHIFT_IN_PIN); + for (int current_col = 0; current_col < MATRIX_COLS; ++current_col) { + + // Read the column ports + uint32_t gpio_a = palReadPort(GPIOA); + uint32_t gpio_b = palReadPort(GPIOB); + + // row 0, pin A8 + int current_row = 0; + if ((gpio_a & (1 << 8)) >> 8) { + temp_matrix[current_row] &= ~(1ul << current_col); + } else { + temp_matrix[current_row] |= (1ul << current_col); + } + // row 1, pin A1 + current_row = 1; + if ((gpio_a & (1 << 1)) >> 1) { + temp_matrix[current_row] &= ~(1ul << current_col); + } else { + temp_matrix[current_row] |= (1ul << current_col); + } + // row 2, pin A2 + current_row = 2; + if ((gpio_a & (1 << 2)) >> 2) { + temp_matrix[current_row] &= ~(1ul << current_col); + } else { + temp_matrix[current_row] |= (1ul << current_col); + } + // row 3, pin B3 + current_row = 3; + if ((gpio_b & (1 << 1)) >> 1) { + temp_matrix[current_row] &= ~(1ul << current_col); + } else { + temp_matrix[current_row] |= (1ul << current_col); + } + // row 4, pin A7 + current_row = 4; + if ((gpio_a & (1 << 7)) >> 7) { + temp_matrix[current_row] &= ~(1ul << current_col); + } else { + temp_matrix[current_row] |= (1ul << current_col); + } + + // Setup the output column pin + shift_pulse_clock(); + + } + + // Check if matrix has 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)); + } + shift_pulse_clock(); + return changed; +} diff --git a/keyboards/custommk/evo70_r2/matrix_diagram.md b/keyboards/custommk/evo70_r2/matrix_diagram.md new file mode 100644 index 00000000000..e4ac5ef20ed --- /dev/null +++ b/keyboards/custommk/evo70_r2/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for customMK EVO70 R2 + +``` + ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + │10 │ │00 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ + └───┘ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ ┌─────┐ + │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │ │ +┌───┬───┐├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2E │ ISO Enter +│22 │20 ││21 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │2F │ │1E │ │ +├───┼───┤├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│31 │30 ││32 │01 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │3F │ +├───┼───┤├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│43 │40 ││41 │42 │44 │47 │4A │4B │ │4D │4E │4F │ +└───┴───┘└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + ┌────────┐ + │32 │ 2.25u LShift + └────────┘ +``` diff --git a/keyboards/custommk/evo70_r2/mcuconf.h b/keyboards/custommk/evo70_r2/mcuconf.h new file mode 100644 index 00000000000..afaa692ab85 --- /dev/null +++ b/keyboards/custommk/evo70_r2/mcuconf.h @@ -0,0 +1,58 @@ +/* Copyright 2023 David Hoelscher (@customMK) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_LSE_ENABLED +#define STM32_LSE_ENABLED TRUE + +#undef STM32_RTCSEL +#define STM32_RTCSEL STM32_RTCSEL_LSE + +// Used for underglow +#undef STM32_PWM_USE_TIM1 //timer 1 channel 3 +#define STM32_PWM_USE_TIM1 TRUE + +// Used for backlight +//#undef STM32_PWM_USE_TIM2 //timer 2 channel ? +//#define STM32_PWM_USE_TIM2 TRUE + +// Used for backlight +#undef STM32_PWM_USE_TIM3 //timer 3 channel 1 +#define STM32_PWM_USE_TIM3 TRUE + +// Used for backlight +//#undef STM32_GPT_USE_TIM3 //timer 3 channel 1 +//#define STM32_GPT_USE_TIM3 TRUE + +// Used for backlight +#undef STM32_PWM_USE_TIM4 //timer 4 channel ? +#define STM32_PWM_USE_TIM4 TRUE + +// Used for backlight +#undef STM32_GPT_USE_TIM5 //timer 5 channel ? +#define STM32_GPT_USE_TIM5 TRUE + +// Used for FRAM and flash in example code +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +// Used for OLED +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + diff --git a/keyboards/custommk/evo70_r2/readme.md b/keyboards/custommk/evo70_r2/readme.md new file mode 100644 index 00000000000..ac2f638cb26 --- /dev/null +++ b/keyboards/custommk/evo70_r2/readme.md @@ -0,0 +1,21 @@ +# EVO70 R2 + +EVO70 R2 is a 70% keyboard (65% w/left side function cluster) designed and produced by customMK. + +![EVO70 R2](https://i.imgur.com/B1QMuIxh.jpeg) + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: EVO70 R2 +* Hardware Availability: [customMK](https://shop.custommk.com/collections/evo70/products/evo70) + +Make example for this keyboard (after setting up your build environment): + + make custommk/evo70_r2:default + +Flashing example for this keyboard: + + make custommk/evo70_r2:default:flash + +To enter the bootloader, run the flashing command above, and then either plug in the USB connection while holding the top-left key, or alternatively, plug in the USB connection and then press the reset button on the PCB located under the space bar. + +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/custommk/evo70_r2/rules.mk b/keyboards/custommk/evo70_r2/rules.mk new file mode 100644 index 00000000000..b79d08c6b75 --- /dev/null +++ b/keyboards/custommk/evo70_r2/rules.mk @@ -0,0 +1,11 @@ +AUDIO_DRIVER = pwm_hardware + +# project specific files +SRC += matrix.c + +EEPROM_DRIVER = spi + +QUANTUM_PAINTER_DRIVERS = st7735_spi + +CUSTOM_MATRIX = lite +CIE1931_CURVE = yes \ No newline at end of file diff --git a/keyboards/custommk/genesis/rev1/config.h b/keyboards/custommk/genesis/rev1/config.h index d894b55edfc..95d39359040 100644 --- a/keyboards/custommk/genesis/rev1/config.h +++ b/keyboards/custommk/genesis/rev1/config.h @@ -16,21 +16,5 @@ #pragma once -#define TAP_CODE_DELAY 10 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 13 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4 diff --git a/keyboards/custommk/genesis/rev1/info.json b/keyboards/custommk/genesis/rev1/info.json index 4915497bb04..f859a6b9bf3 100644 --- a/keyboards/custommk/genesis/rev1/info.json +++ b/keyboards/custommk/genesis/rev1/info.json @@ -12,7 +12,22 @@ "pin": "E6" }, "rgblight": { - "max_brightness": 128 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 13, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F4", "F5", "D7", "B4"], @@ -25,6 +40,9 @@ {"pin_a": "D2", "pin_b": "D1", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "qmk-dfu", "layouts": { diff --git a/keyboards/custommk/genesis/rev2/config.h b/keyboards/custommk/genesis/rev2/config.h index 126caeab6af..b6e7c0cdf73 100644 --- a/keyboards/custommk/genesis/rev2/config.h +++ b/keyboards/custommk/genesis/rev2/config.h @@ -16,22 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 13 #define RGBLIGHT_LAYERS -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4 diff --git a/keyboards/custommk/genesis/rev2/info.json b/keyboards/custommk/genesis/rev2/info.json index 0ee3d9a5370..5760ba52cdc 100644 --- a/keyboards/custommk/genesis/rev2/info.json +++ b/keyboards/custommk/genesis/rev2/info.json @@ -12,7 +12,22 @@ "pin": "E6" }, "rgblight": { - "max_brightness": 128 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 13, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F4", "F5", "D7", "B4"], @@ -25,6 +40,9 @@ {"pin_a": "D2", "pin_b": "D1", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "qmk-dfu", "layouts": { @@ -80,39 +98,6 @@ {"matrix": [4, 2], "x": 0, "y": 4, "w": 2}, {"matrix": [4, 3], "x": 2, "y": 4} ] - }, - "LAYOUT_via_6x4": { - "layout": [ - {"matrix": [5, 0], "x": 0, "y": 0}, - {"matrix": [5, 1], "x": 1, "y": 0}, - {"matrix": [5, 2], "x": 3, "y": 0}, - {"matrix": [5, 3], "x": 4, "y": 0}, - - {"matrix": [0, 0], "x": 0.5, "y": 1.1}, - {"matrix": [0, 1], "x": 1.5, "y": 1.1}, - {"matrix": [0, 2], "x": 2.5, "y": 1.1}, - {"matrix": [0, 3], "x": 3.5, "y": 1.1}, - - {"matrix": [1, 0], "x": 0.5, "y": 2.1}, - {"matrix": [1, 1], "x": 1.5, "y": 2.1}, - {"matrix": [1, 2], "x": 2.5, "y": 2.1}, - {"matrix": [1, 3], "x": 3.5, "y": 2.1}, - - {"matrix": [2, 0], "x": 0.5, "y": 3.1}, - {"matrix": [2, 1], "x": 1.5, "y": 3.1}, - {"matrix": [2, 2], "x": 2.5, "y": 3.1}, - {"matrix": [2, 3], "x": 3.5, "y": 3.1}, - - {"matrix": [3, 0], "x": 0.5, "y": 4.1}, - {"matrix": [3, 1], "x": 1.5, "y": 4.1}, - {"matrix": [3, 2], "x": 2.5, "y": 4.1}, - {"matrix": [3, 3], "x": 3.5, "y": 4.1}, - - {"matrix": [4, 0], "x": 0.5, "y": 5.1}, - {"matrix": [4, 1], "x": 1.5, "y": 5.1}, - {"matrix": [4, 2], "x": 2.5, "y": 5.1}, - {"matrix": [4, 3], "x": 3.5, "y": 5.1} - ] } } } diff --git a/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c b/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c index 6739b8857d7..e49f614cb75 100644 --- a/keyboards/custommk/genesis/rev2/keymaps/via/keymap.c +++ b/keyboards/custommk/genesis/rev2/keymaps/via/keymap.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 QMK_KEYBOARD_H //#define GENESIS_LAYER_COLORS @@ -24,36 +24,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_via_6x4( - KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, - MO(1), KC_PSLS, KC_PAST, KC_PMNS, - KC_P7, KC_P8, KC_P9, KC_PGUP, - KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_P1, KC_P2, KC_P3, KC_PGDN, + [0] = LAYOUT_ortho_5x4( + MO(1), KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PGDN, KC_P0, KC_SPC, KC_PDOT, KC_PENT), - [1] = LAYOUT_via_6x4( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + [1] = LAYOUT_ortho_5x4( + KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS), - [2] = LAYOUT_via_6x4( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - 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_ortho_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_via_6x4( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - 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_5x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; @@ -92,80 +88,11 @@ void keyboard_post_init_user(void) { } #endif - -keyevent_t encoder_left_ccw = { - .key = (keypos_t){.row = 5, .col = 0}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder_left_cw = { - .key = (keypos_t){.row = 5, .col = 1}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder_right_ccw = { - .key = (keypos_t){.row = 5, .col = 2}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder_right_cw = { - .key = (keypos_t){.row = 5, .col = 3}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } }; - -void matrix_scan_user(void) { - if (encoder_left_ccw.pressed) { - encoder_left_ccw.pressed = false; - encoder_left_ccw.time = timer_read(); - action_exec(encoder_left_ccw); - } - - if (encoder_left_cw.pressed) { - encoder_left_cw.pressed = false; - encoder_left_cw.time = timer_read(); - action_exec(encoder_left_cw); - } - - if (encoder_right_ccw.pressed) { - encoder_right_ccw.pressed = false; - encoder_right_ccw.time = timer_read(); - action_exec(encoder_right_ccw); - } - - if (encoder_right_cw.pressed) { - encoder_right_cw.pressed = false; - encoder_right_cw.time = timer_read(); - action_exec(encoder_right_cw); - } - -} - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - encoder_left_cw.pressed = true; - encoder_left_cw.time = timer_read(); - action_exec(encoder_left_cw); - } else { - encoder_left_ccw.pressed = true; - encoder_left_ccw.time = timer_read(); - action_exec(encoder_left_ccw); - } - } else { - if (clockwise) { - encoder_right_cw.pressed = true; - encoder_right_cw.time = timer_read(); - action_exec(encoder_right_cw); - } else { - encoder_right_ccw.pressed = true; - encoder_right_ccw.time = timer_read(); - action_exec(encoder_right_ccw); - } - } - return false; -} +#endif diff --git a/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk b/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk index 43061db1dd4..1189f4ad192 100644 --- a/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk +++ b/keyboards/custommk/genesis/rev2/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cutie_club/fidelity/config.h b/keyboards/cutie_club/fidelity/config.h new file mode 100644 index 00000000000..6615bd2ab72 --- /dev/null +++ b/keyboards/cutie_club/fidelity/config.h @@ -0,0 +1,20 @@ +/* Copyright 2023 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 . + */ + +#pragma once + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cutie_club/fidelity/info.json b/keyboards/cutie_club/fidelity/info.json new file mode 100644 index 00000000000..0b06e1e5672 --- /dev/null +++ b/keyboards/cutie_club/fidelity/info.json @@ -0,0 +1,102 @@ +{ + "keyboard_name": "Fidelity", + "manufacturer": "HAND x KOEN", + "maintainer": "Cutie Club", + "url": "", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "command": false, + "console": false + }, + "usb": { + "vid": "0xFB9C", + "pid": "0x4D1B", + "device_version": "0.0.1" + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "A7", "A6", "A5", "A4", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0" ], + "rows": [ "A15", "B3", "B5", "B6", "B7" ] + }, + "indicators": { + "caps_lock": "B4" + }, + "layouts": { + "LAYOUT": { + "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": [0, 15], "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": [1, 15], "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, 12], "x": 12.75, "y": 2, "w": 1.25 }, + { "matrix": [1, 14], "x": 14, "y": 2 }, + { "matrix": [2, 15], "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, 14], "x": 14, "y": 3 }, + { "matrix": [3, 15], "x": 15, "y": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5 }, + { "matrix": [4, 7], "x": 3.75, "y": 4, "w": 7 }, + { "matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5 }, + { "matrix": [4, 13], "x": 13, "y": 4 }, + { "matrix": [4, 14], "x": 14, "y": 4 }, + { "matrix": [4, 15], "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/cutie_club/fidelity/keymaps/default/keymap.c b/keyboards/cutie_club/fidelity/keymaps/default/keymap.c new file mode 100644 index 00000000000..1f076a0e7d1 --- /dev/null +++ b/keyboards/cutie_club/fidelity/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 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 + +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_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cutie_club/fidelity/keymaps/via/keymap.c b/keyboards/cutie_club/fidelity/keymaps/via/keymap.c new file mode 100644 index 00000000000..1f076a0e7d1 --- /dev/null +++ b/keyboards/cutie_club/fidelity/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 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 + +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_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cutie_club/fidelity/keymaps/via/rules.mk b/keyboards/cutie_club/fidelity/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cutie_club/fidelity/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cutie_club/fidelity/readme.md b/keyboards/cutie_club/fidelity/readme.md new file mode 100644 index 00000000000..9cec49d2cf2 --- /dev/null +++ b/keyboards/cutie_club/fidelity/readme.md @@ -0,0 +1,26 @@ +# Fidelity + +![Fidelity](https://i.imgur.com/6xelfJeh.jpeg) + +The Fidelity is a custom 65% keyboard, a collaboration between HAND Engineering and Koen. + +* Keyboard Maintainer: [Cutie Club](https://github.com/cutie-club/) +* Hardware Supported: STM32F072 based PCB for the Fidelity keyboard + +Make example for this keyboard (after setting up your build environment): + + make cutie_club/fidelity:default + +Flashing example for this keyboard: + + make cutie_club/fidelity:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the front of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cutie_club/fidelity/rules.mk b/keyboards/cutie_club/fidelity/rules.mk new file mode 100644 index 00000000000..79986c3cede --- /dev/null +++ b/keyboards/cutie_club/fidelity/rules.mk @@ -0,0 +1 @@ +# Intentionally left blank, please see info.json diff --git a/keyboards/cutie_club/wraith/keymaps/amber/keymap.c b/keyboards/cutie_club/wraith/keymaps/amber/keymap.c index 41d5b39c408..f3ea61ba5e3 100644 --- a/keyboards/cutie_club/wraith/keymaps/amber/keymap.c +++ b/keyboards/cutie_club/wraith/keymaps/amber/keymap.c @@ -40,11 +40,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - -void matrix_init_user(void) { - -} - void matrix_scan_user(void) { // escape LED on layer 1 if (IS_LAYER_ON(1)) { @@ -53,7 +48,3 @@ void matrix_scan_user(void) { writePinHigh(B0); } } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/cx60/config.h b/keyboards/cx60/config.h deleted file mode 100644 index f14a164f57b..00000000000 --- a/keyboards/cx60/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2019 Rodrigo Feijao - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -/* RGB Underglow */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/cx60/info.json b/keyboards/cx60/info.json index 89da7fa8b37..e03587e3e46 100644 --- a/keyboards/cx60/info.json +++ b/keyboards/cx60/info.json @@ -21,6 +21,22 @@ "caps_lock": "B5", "on_state": 0 }, + "rgblight": { + "hue_steps": 10, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/cxt_studio/info.json b/keyboards/cxt_studio/info.json index 03679484304..6166ea22961 100644 --- a/keyboards/cxt_studio/info.json +++ b/keyboards/cxt_studio/info.json @@ -31,7 +31,7 @@ }, "processor": "atmega32u4", "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 3], "x": 3, "y": 0}, {"flags": 4, "matrix": [0, 2], "x": 2, "y": 0}, @@ -50,8 +50,8 @@ "url": "", "usb": { "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" + "pid": "0xC401", + "vid": "0x5754" }, "layouts": { "LAYOUT": { diff --git a/keyboards/cxt_studio/keymaps/via/keymap.c b/keyboards/cxt_studio/keymaps/via/keymap.c new file mode 100644 index 00000000000..1d58a60471c --- /dev/null +++ b/keyboards/cxt_studio/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2023 Brian McKenna + * + * This 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_F11, KC_NO, KC_MSTP, + KC_NO, KC_NO, KC_MRWD, KC_MFFD, + KC_NO, KC_MPLY, KC_MPLY, KC_MNXT, + + KC_MUTE, KC_NO, KC_NO, RGB_TOG + ) +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(RGB_HUD, RGB_HUI), + ENCODER_CCW_CW(RGB_VAD, RGB_VAI), + ENCODER_CCW_CW(RGB_MODE_REVERSE, RGB_MODE_FORWARD) + }, +}; +#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) diff --git a/keyboards/cxt_studio/keymaps/via/rules.mk b/keyboards/cxt_studio/keymaps/via/rules.mk new file mode 100644 index 00000000000..70cf4224c01 --- /dev/null +++ b/keyboards/cxt_studio/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/dailycraft/claw44/keymaps/oled/rules.mk b/keyboards/dailycraft/claw44/keymaps/oled/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/dailycraft/claw44/keymaps/oled/rules.mk +++ b/keyboards/dailycraft/claw44/keymaps/oled/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/dailycraft/owl8/info.json b/keyboards/dailycraft/owl8/info.json index b1bcacb60bc..9dc42c8fd78 100644 --- a/keyboards/dailycraft/owl8/info.json +++ b/keyboards/dailycraft/owl8/info.json @@ -18,31 +18,26 @@ "bootloader": "atmel-dfu", "matrix_pins": { "direct": [ - ["F4", "F7", "B3", "B6", "F5", "F6", "B1", "B2", "D4", "C6", "D7", "E6", null, null, null, null] + ["F4", "F7", "B3", "B6", "F5", "F6", "B1", "B2", "D4", "C6", "D7", "E6"] ] }, "layouts": { "LAYOUT": { "layout": [ - {"x": 0, "y": 0, "matrix": [0, 12]}, - {"x": 1, "y": 0, "matrix": [0, 13]}, - {"x": 2, "y": 0, "matrix": [0, 14]}, - {"x": 3, "y": 0, "matrix": [0, 15]}, + {"x":0, "y":0, "matrix": [0, 8]}, + {"x":1, "y":0, "matrix": [0, 9]}, + {"x":2, "y":0, "matrix": [0, 10]}, + {"x":3, "y":0, "matrix": [0, 11]}, - {"x": 0, "y": 1.25, "matrix": [0, 8]}, - {"x": 1, "y": 1.25, "matrix": [0, 9]}, - {"x": 2, "y": 1.25, "matrix": [0, 10]}, - {"x": 3, "y": 1.25, "matrix": [0, 11]}, + {"x": 0, "y": 1.25, "matrix": [0, 0]}, + {"x": 1, "y": 1.25, "matrix": [0, 1]}, + {"x": 2, "y": 1.25, "matrix": [0, 2]}, + {"x": 3, "y": 1.25, "matrix": [0, 3]}, - {"x": 0, "y": 2.5, "matrix": [0, 0]}, - {"x": 1, "y": 2.5, "matrix": [0, 1]}, - {"x": 2, "y": 2.5, "matrix": [0, 2]}, - {"x": 3, "y": 2.5, "matrix": [0, 3]}, - - {"x": 0, "y": 3.5, "matrix": [0, 4]}, - {"x": 1, "y": 3.5, "matrix": [0, 5]}, - {"x": 2, "y": 3.5, "matrix": [0, 6]}, - {"x": 3, "y": 3.5, "matrix": [0, 7]} + {"x": 0, "y": 2.25, "matrix": [0, 4]}, + {"x": 1, "y": 2.25, "matrix": [0, 5]}, + {"x": 2, "y": 2.25, "matrix": [0, 6]}, + {"x": 3, "y": 2.25, "matrix": [0, 7]} ] } } diff --git a/keyboards/dailycraft/owl8/keymaps/default/keymap.c b/keyboards/dailycraft/owl8/keymaps/default/keymap.c index e840263639d..7ff5519e5aa 100644 --- a/keyboards/dailycraft/owl8/keymaps/default/keymap.c +++ b/keyboards/dailycraft/owl8/keymaps/default/keymap.c @@ -25,25 +25,21 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, // for encoders KC_NO, KC_NO, KC_NO, KC_NO, // for ext keys MO(1), KC_BSPC, KC_SPC, KC_ENT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_FN1] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ), [_FN2] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ), [_FN3] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 @@ -64,5 +60,5 @@ bool encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_UP); } } - return true; + return false; } diff --git a/keyboards/dailycraft/owl8/keymaps/via/keymap.c b/keyboards/dailycraft/owl8/keymaps/via/keymap.c index 1a3bb0f0ae2..d010bbe10e9 100644 --- a/keyboards/dailycraft/owl8/keymaps/via/keymap.c +++ b/keyboards/dailycraft/owl8/keymaps/via/keymap.c @@ -25,103 +25,32 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, // for encoders KC_NO, KC_NO, KC_NO, KC_NO, // for ext keys MO(1), KC_BSPC, KC_SPC, KC_ENT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_FN1] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ), [_FN2] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ), [_FN3] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ) }; -keyevent_t encoder1_ccw = { - .key = (keypos_t){.row = 0, .col = 12}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder1_cw = { - .key = (keypos_t){.row = 0, .col = 13}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder2_ccw = { - .key = (keypos_t){.row = 0, .col = 14}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } }; - -keyevent_t encoder2_cw = { - .key = (keypos_t){.row = 0, .col = 15}, - .pressed = false, - .type = KEY_EVENT -}; - -void matrix_scan_user(void) { - if (encoder1_ccw.pressed) { - encoder1_ccw.pressed = false; - encoder1_ccw.time = timer_read(); - action_exec(encoder1_ccw); - } - - if (encoder1_cw.pressed) { - encoder1_cw.pressed = false; - encoder1_cw.time = timer_read(); - action_exec(encoder1_cw); - } - - if (encoder2_ccw.pressed) { - encoder2_ccw.pressed = false; - encoder2_ccw.time = timer_read(); - action_exec(encoder2_ccw); - } - - if (encoder2_cw.pressed) { - encoder2_cw.pressed = false; - encoder2_cw.time = timer_read(); - action_exec(encoder2_cw); - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - if (clockwise) { - encoder1_cw.pressed = true; - encoder1_cw.time = timer_read(); - action_exec(encoder1_cw); - } else { - encoder1_ccw.pressed = true; - encoder1_ccw.time = timer_read(); - action_exec(encoder1_ccw); - } - } else if (index == 1) { - if (clockwise) { - encoder2_cw.pressed = true; - encoder2_cw.time = timer_read(); - action_exec(encoder2_cw); - } else { - encoder2_ccw.pressed = true; - encoder2_ccw.time = timer_read(); - action_exec(encoder2_ccw); - } - } - - return true; -} +#endif diff --git a/keyboards/dailycraft/owl8/keymaps/via/rules.mk b/keyboards/dailycraft/owl8/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/dailycraft/owl8/keymaps/via/rules.mk +++ b/keyboards/dailycraft/owl8/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/dailycraft/stickey4/info.json b/keyboards/dailycraft/stickey4/info.json index c8d58037188..156a6d63a1f 100644 --- a/keyboards/dailycraft/stickey4/info.json +++ b/keyboards/dailycraft/stickey4/info.json @@ -18,7 +18,7 @@ "bootloader": "atmel-dfu", "matrix_pins": { "direct": [ - ["D4", "C6", "D7", "E6", null, null, null, null] + ["D4", "C6", "D7", "E6"] ] }, "layouts": { @@ -27,12 +27,7 @@ {"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 1, "y": 0, "matrix": [0, 1]}, {"x": 2, "y": 0, "matrix": [0, 2]}, - {"x": 3, "y": 0, "matrix": [0, 3]}, - - {"label": "Encoder 1 CCW", "x": 0, "y": 1, "matrix": [0, 4]}, - {"label": "Encoder 1 CW", "x": 1, "y": 1, "matrix": [0, 5]}, - {"label": "Encoder 2 CCW", "x": 2, "y": 1, "matrix": [0, 6]}, - {"label": "Encoder 2 CW", "x": 3, "y": 1, "matrix": [0, 7]} + {"x": 3, "y": 0, "matrix": [0, 3]} ] } } diff --git a/keyboards/dailycraft/stickey4/keymaps/default/keymap.c b/keyboards/dailycraft/stickey4/keymaps/default/keymap.c index 70de5dca448..40cfc22a0f5 100644 --- a/keyboards/dailycraft/stickey4/keymaps/default/keymap.c +++ b/keyboards/dailycraft/stickey4/keymaps/default/keymap.c @@ -25,19 +25,6 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( - KC_A, KC_B, KC_C, KC_D, - KC_NO, KC_NO, KC_NO, KC_NO // for encoders - ), - [_FN1] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO - ), - [_FN2] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO - ), - [_FN3] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO + KC_A, KC_B, KC_C, KC_D ) }; diff --git a/keyboards/dailycraft/stickey4/keymaps/via/keymap.c b/keyboards/dailycraft/stickey4/keymaps/via/keymap.c index 30de32fa600..0e577fcf621 100644 --- a/keyboards/dailycraft/stickey4/keymaps/via/keymap.c +++ b/keyboards/dailycraft/stickey4/keymaps/via/keymap.c @@ -25,95 +25,24 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( - KC_A, KC_B, KC_C, KC_D, - KC_NO, KC_NO, KC_NO, KC_NO // for encoders + KC_A, KC_B, KC_C, KC_D ), [_FN1] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO ), [_FN2] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO ), [_FN3] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO ) }; -keyevent_t encoder1_ccw = { - .key = (keypos_t){.row = 0, .col = 4}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } }; - -keyevent_t encoder1_cw = { - .key = (keypos_t){.row = 0, .col = 5}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder2_ccw = { - .key = (keypos_t){.row = 0, .col = 6}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder2_cw = { - .key = (keypos_t){.row = 0, .col = 7}, - .pressed = false, - .type = KEY_EVENT -}; - -void matrix_scan_user(void) { - if (encoder1_ccw.pressed) { - encoder1_ccw.pressed = false; - encoder1_ccw.time = timer_read(); - action_exec(encoder1_ccw); - } - - if (encoder1_cw.pressed) { - encoder1_cw.pressed = false; - encoder1_cw.time = timer_read(); - action_exec(encoder1_cw); - } - - if (encoder2_ccw.pressed) { - encoder2_ccw.pressed = false; - encoder2_ccw.time = timer_read(); - action_exec(encoder2_ccw); - } - - if (encoder2_cw.pressed) { - encoder2_cw.pressed = false; - encoder2_cw.time = timer_read(); - action_exec(encoder2_cw); - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - if (clockwise) { - encoder1_cw.pressed = true; - encoder1_cw.time = timer_read(); - action_exec(encoder1_cw); - } else { - encoder1_ccw.pressed = true; - encoder1_ccw.time = timer_read(); - action_exec(encoder1_ccw); - } - } else if (index == 1) { - if (clockwise) { - encoder2_cw.pressed = true; - encoder2_cw.time = timer_read(); - action_exec(encoder2_cw); - } else { - encoder2_ccw.pressed = true; - encoder2_ccw.time = timer_read(); - action_exec(encoder2_ccw); - } - } - - return true; -} +#endif diff --git a/keyboards/dailycraft/stickey4/keymaps/via/rules.mk b/keyboards/dailycraft/stickey4/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/dailycraft/stickey4/keymaps/via/rules.mk +++ b/keyboards/dailycraft/stickey4/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/dailycraft/wings42/rev2/info.json b/keyboards/dailycraft/wings42/rev2/info.json index 09cf423e931..261157627ac 100644 --- a/keyboards/dailycraft/wings42/rev2/info.json +++ b/keyboards/dailycraft/wings42/rev2/info.json @@ -16,6 +16,15 @@ "split": { "soft_serial_pin": "D2" }, + "features": { + "encoder": true + }, + "encoder": { + "rotary": [ + { "pin_a": "B5", "pin_b": "B4" }, + { "pin_a": "B6", "pin_b": "B2" } + ] + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { @@ -41,9 +50,7 @@ {"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [1, 4], "x": 4, "y": 1}, {"matrix": [1, 5], "x": 5, "y": 1.125}, - {"matrix": [3, 1], "x": 6, "y": 1.625}, - {"matrix": [8, 2], "x": 8, "y": 1.625}, {"matrix": [6, 5], "x": 9, "y": 1.125}, {"matrix": [6, 4], "x": 10, "y": 1}, {"matrix": [6, 3], "x": 11, "y": 1}, @@ -57,9 +64,7 @@ {"matrix": [2, 3], "x": 3, "y": 2}, {"matrix": [2, 4], "x": 4, "y": 2}, {"matrix": [2, 5], "x": 5, "y": 2.125}, - {"matrix": [3, 2], "x": 6, "y": 2.625}, - {"matrix": [8, 1], "x": 8, "y": 2.625}, {"matrix": [7, 5], "x": 9, "y": 2.125}, {"matrix": [7, 4], "x": 10, "y": 2}, {"matrix": [7, 3], "x": 11, "y": 2}, diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c b/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c index 501b5d2e120..d809d59f4c1 100644 --- a/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c +++ b/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c @@ -35,9 +35,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------. KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| - KC_G_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_BSPC, KC_BSPC, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_G_BS, + KC_G_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_G_BS, //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| - KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_DEL , KC_DEL , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RCTL, + KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RCTL, //`--------+--------+--------+--------+--------+--------/ \--------+---------+--------+---------+--------+--------' KC_A_DEL,KC_S_EN ,KC_L_SPC, KC_R_ENT, KC_S_JA , KC_A_DEL // `+--------+--------+--------' `--------+---------+--------+' @@ -47,9 +47,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, KC_LCBR, KC_LBRC, _______, _______, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' _______, _______, _______, _______, _______, QK_BOOT // `+--------+--------+--------' `--------+-------+--------+' @@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' QK_BOOT , _______, _______, _______, _______, _______ // `+--------+--------+--------' `--------+--------+--------+' @@ -71,9 +71,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' _______, _______, _______, _______, _______, _______ // `+--------+--------+--------' `--------+--------+--------+' diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c b/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c index 7349bf2411b..362164c5ec0 100644 --- a/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c +++ b/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c @@ -35,9 +35,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------. KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| - KC_G_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_BSPC, KC_BSPC, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_G_BS, + KC_G_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_G_BS, //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| - KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_DEL , KC_DEL , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RCTL, + KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RCTL, //`--------+--------+--------+--------+--------+--------/ \--------+---------+--------+---------+--------+--------' KC_A_DEL,KC_S_EN ,KC_L_SPC, KC_R_ENT, KC_S_JA , KC_A_DEL // `+--------+--------+--------' `--------+---------+--------+' @@ -47,9 +47,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, KC_LCBR, KC_LBRC, _______, _______, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' _______, _______, _______, _______, _______, QK_BOOT // `+--------+--------+--------' `--------+-------+--------+' @@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' QK_BOOT , _______, _______, _______, _______, _______ // `+--------+--------+--------' `--------+--------+--------+' @@ -71,156 +71,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' _______, _______, _______, _______, _______, _______ // `+--------+--------+--------' `--------+--------+--------+' ), }; -keyevent_t encoder1_ccw = { - .key = (keypos_t){.row = 4, .col = 0}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder1_cw = { - .key = (keypos_t){.row = 4, .col = 1}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder2_ccw = { - .key = (keypos_t){.row = 4, .col = 2}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder2_cw = { - .key = (keypos_t){.row = 4, .col = 3}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder3_ccw = { - .key = (keypos_t){.row = 9, .col = 1}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder3_cw = { - .key = (keypos_t){.row = 9, .col = 0}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder4_ccw = { - .key = (keypos_t){.row = 9, .col = 3}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_BSPC, KC_DEL), ENCODER_CCW_CW(KC_BSPC, KC_DEL) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } }; - -keyevent_t encoder4_cw = { - .key = (keypos_t){.row = 9, .col = 2}, - .pressed = false, - .type = KEY_EVENT -}; - - -void matrix_scan_user(void) { - if (encoder1_ccw.pressed) { - encoder1_ccw.pressed = false; - encoder1_ccw.time = timer_read(); - action_exec(encoder1_ccw); - } - - if (encoder1_cw.pressed) { - encoder1_cw.pressed = false; - encoder1_cw.time = timer_read(); - action_exec(encoder1_cw); - } - - if (encoder2_ccw.pressed) { - encoder2_ccw.pressed = false; - encoder2_ccw.time = timer_read(); - action_exec(encoder2_ccw); - } - - if (encoder2_cw.pressed) { - encoder2_cw.pressed = false; - encoder2_cw.time = timer_read(); - action_exec(encoder2_cw); - } - - if (encoder3_ccw.pressed) { - encoder3_ccw.pressed = false; - encoder3_ccw.time = timer_read(); - action_exec(encoder3_ccw); - } - - if (encoder3_cw.pressed) { - encoder3_cw.pressed = false; - encoder3_cw.time = timer_read(); - action_exec(encoder3_cw); - } - - if (encoder4_ccw.pressed) { - encoder4_ccw.pressed = false; - encoder4_ccw.time = timer_read(); - action_exec(encoder4_ccw); - } - - if (encoder4_cw.pressed) { - encoder4_cw.pressed = false; - encoder4_cw.time = timer_read(); - action_exec(encoder4_cw); - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - encoder1_cw.pressed = true; - encoder1_cw.time = timer_read(); - action_exec(encoder1_cw); - } else { - encoder1_ccw.pressed = true; - encoder1_ccw.time = timer_read(); - action_exec(encoder1_ccw); - } - } else if (index == 1) { - if (clockwise) { - encoder2_cw.pressed = true; - encoder2_cw.time = timer_read(); - action_exec(encoder2_cw); - } else { - encoder2_ccw.pressed = true; - encoder2_ccw.time = timer_read(); - action_exec(encoder2_ccw); - } - } else if (index == 2) { - if (clockwise) { - encoder3_cw.pressed = true; - encoder3_cw.time = timer_read(); - action_exec(encoder3_cw); - } else { - encoder3_ccw.pressed = true; - encoder3_ccw.time = timer_read(); - action_exec(encoder3_ccw); - } - } else if (index == 3) { - if (clockwise) { - encoder4_cw.pressed = true; - encoder4_cw.time = timer_read(); - action_exec(encoder4_cw); - } else { - encoder4_ccw.pressed = true; - encoder4_ccw.time = timer_read(); - action_exec(encoder4_ccw); - } - } - - return true; -} +#endif diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk b/keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk index eea5e1e2a26..f1adcab005e 100644 --- a/keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk +++ b/keyboards/dailycraft/wings42/rev2/keymaps/via/rules.mk @@ -1,2 +1,2 @@ -ENCODER_ENABLE = yes VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/daji/seis_cinco/rules.mk b/keyboards/daji/seis_cinco/rules.mk index 9e42693cb69..c3b8e77d77a 100644 --- a/keyboards/daji/seis_cinco/rules.mk +++ b/keyboards/daji/seis_cinco/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/db/db63/config.h b/keyboards/db/db63/config.h deleted file mode 100644 index 7a7d3584de7..00000000000 --- a/keyboards/db/db63/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2020 Hung DO - -This 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 RGBLED_NUM 18 -#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/db/db63/info.json b/keyboards/db/db63/info.json index c8004a2bae1..30a94c2b9cf 100644 --- a/keyboards/db/db63/info.json +++ b/keyboards/db/db63/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/dekunukem/duckypad/config.h b/keyboards/dekunukem/duckypad/config.h index 692f679d24f..cc4c962462c 100644 --- a/keyboards/dekunukem/duckypad/config.h +++ b/keyboards/dekunukem/duckypad/config.h @@ -20,63 +20,11 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 15 -#define RGB_MATRIX_LED_COUNT 15 - #ifdef RGB_MATRIX_ENABLE - +#define RGB_MATRIX_LED_COUNT 15 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define RGB_MATRIX_DEFAULT_HUE 221 -// 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 - #endif #define I2C1_SCL_PIN B8 diff --git a/keyboards/dekunukem/duckypad/duckypad.c b/keyboards/dekunukem/duckypad/duckypad.c index d03d284b959..7e486c45507 100644 --- a/keyboards/dekunukem/duckypad/duckypad.c +++ b/keyboards/dekunukem/duckypad/duckypad.c @@ -20,32 +20,6 @@ along with this program. If not, see . #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { { - { 2, 1, 0, 3, 4, 5, 8, 7, 6, 9, 10, 11, 14, 13, 12, NO_LED, NO_LED } -}, { - {224, 0}, - {112, 0}, - {0, 0}, - {0, 16}, - {112, 16}, - {224, 16}, - {224, 32}, - {112, 32}, - {0, 32}, - {0, 48}, - {112, 48}, - {224, 48}, - {224, 64}, - {112, 64}, - {0, 64}, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -} }; - -#endif - void keyboard_pre_init_kb(void) { setPinOutput(A0); writePinHigh(A0); @@ -55,3 +29,21 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } + +#ifdef OLED_ENABLE +# define LOGO_SIZE 384 +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + static const char PROGMEM ducky_logo[LOGO_SIZE] = { + // clang-format off + 0, 0, 0, 0,128,128,128,128,128, 0, 0,252,252,252, 0, 0, 0,128,128,128, 0, 0, 0, 0, 0,128,128,128, 0, 0, 0, 0, 0,128,128,128,128,128, 0, 0, 0, 0, 0,252,252,252, 0, 0, 0, 0, 0,128,128,128,128,128,128, 0, 0, 0, 0, 0, 0,128,128,128,128, 0,248,248,248, 56, 56, 56, 56, 56, 56,120,240,224,192, 0, 0,128,128,128,128,128,128, 0, 0, 0, 0, 0, 0, 0, 0,128,128,128,128,128, 0, 0,252,252,252, 0, 0, 0, 0, 0,232, 24, 24,232, 0, 24, 48, 48, 24, 0,232, 24, 24,232, 0, 0, + 0,248,254,255,143, 7, 3, 3, 3, 7,142,255,255,255, 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,255,255,255, 0,248,254,255,143, 7, 3, 3, 3, 3,143, 7, 2, 0, 0,255,255,255,240,120,252,254,231,131, 1, 0, 1, 7, 63,254,240,192, 0,224,252,127, 31, 3, 0, 0,255,255,255,112,112,112,112,112,112, 56, 63, 31, 15,193,231,243,115, 51, 51, 51, 55,255,255,252, 0, 0,248,254,255,143, 7, 3, 3, 3, 7,142,255,255,255, 0, 0, 0, 0, 0, 21,127,127,252,252,252,253,253,252,252,252,255,255,255, 0, 0, + 0, 0, 3, 7, 15, 15, 14, 14, 14, 7, 3, 15, 15, 15, 0, 0, 0, 3, 7, 15, 15, 14, 14, 6, 3, 15, 15, 15, 0, 0, 3, 7, 7, 15, 14, 14, 14, 14, 7, 7, 2, 0, 0, 15, 15, 15, 0, 0, 0, 1, 3, 15, 15, 12,136,224,224,224,247,127,127, 31, 3, 0, 0, 0, 0, 0, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 14, 14, 14, 6, 3, 15, 15, 15, 0, 0, 0, 3, 7, 15, 15, 14, 14, 14, 7, 3, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 11, 3, 11, 7, 11, 7, 7, 31, 0, 0 + //clang-format on + }; + oled_write_raw_P(ducky_logo, LOGO_SIZE); + return false; +} +#endif diff --git a/keyboards/dekunukem/duckypad/info.json b/keyboards/dekunukem/duckypad/info.json index e5859b718a5..9ca8e7bc93f 100644 --- a/keyboards/dekunukem/duckypad/info.json +++ b/keyboards/dekunukem/duckypad/info.json @@ -8,11 +8,79 @@ "pid": "0x4450", "device_version": "0.0.1" }, + "features": { + "extrakey": true, + "rgb_matrix": true, + "oled": true + }, "ws2812": { "pin": "A10" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 0, "y": 16, "flags": 4}, + {"matrix": [0, 4], "x": 112, "y": 16, "flags": 4}, + {"matrix": [0, 5], "x": 224, "y": 16, "flags": 4}, + {"matrix": [0, 8], "x": 224, "y": 32, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [0, 6], "x": 0, "y": 32, "flags": 4}, + {"matrix": [0, 9], "x": 0, "y": 48, "flags": 4}, + {"matrix": [0, 10], "x": 112, "y": 48, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 48, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [0, 13], "x": 112, "y": 64, "flags": 4}, + {"matrix": [0, 12], "x": 0, "y": 64, "flags": 4} + ], + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_color": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + } }, "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/dekunukem/duckypad/keymaps/default/keymap.c b/keyboards/dekunukem/duckypad/keymaps/default/keymap.c index 3b74640fe6d..482f816fb33 100644 --- a/keyboards/dekunukem/duckypad/keymaps/default/keymap.c +++ b/keyboards/dekunukem/duckypad/keymaps/default/keymap.c @@ -40,9 +40,10 @@ enum my_keycodes { Z12, Z13, Z14 }; -#define _DEFAULT 0 -#define _RGB 1 - +enum layers { + _DEFAULT, + _RGB +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* diff --git a/keyboards/dekunukem/duckypad/keymaps/via/keymap.c b/keyboards/dekunukem/duckypad/keymaps/via/keymap.c index 01baaeb5937..c3bb88353fd 100644 --- a/keyboards/dekunukem/duckypad/keymaps/via/keymap.c +++ b/keyboards/dekunukem/duckypad/keymaps/via/keymap.c @@ -20,9 +20,6 @@ along with this program. If not, see . #include QMK_KEYBOARD_H -#define LOGO_SIZE 384 - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_KP_1, KC_KP_2, KC_KP_3, @@ -31,43 +28,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_KP_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS - ), - 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 - ), - 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 - ), + ) }; - -static void render_logo(void) { - static const char PROGMEM ducky_logo[LOGO_SIZE] = { - 0, 0, 0, 0,128,128,128,128,128, 0, 0,252,252,252, 0, 0, 0,128,128,128, 0, 0, 0, 0, 0,128,128,128, 0, 0, 0, 0, 0,128,128,128,128,128, 0, 0, 0, 0, 0,252,252,252, 0, 0, 0, 0, 0,128,128,128,128,128,128, 0, 0, 0, 0, 0, 0,128,128,128,128, 0,248,248,248, 56, 56, 56, 56, 56, 56,120,240,224,192, 0, 0,128,128,128,128,128,128, 0, 0, 0, 0, 0, 0, 0, 0,128,128,128,128,128, 0, 0,252,252,252, 0, 0, 0, 0, 0,232, 24, 24,232, 0, 24, 48, 48, 24, 0,232, 24, 24,232, 0, 0, - 0,248,254,255,143, 7, 3, 3, 3, 7,142,255,255,255, 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,255,255,255, 0,248,254,255,143, 7, 3, 3, 3, 3,143, 7, 2, 0, 0,255,255,255,240,120,252,254,231,131, 1, 0, 1, 7, 63,254,240,192, 0,224,252,127, 31, 3, 0, 0,255,255,255,112,112,112,112,112,112, 56, 63, 31, 15,193,231,243,115, 51, 51, 51, 55,255,255,252, 0, 0,248,254,255,143, 7, 3, 3, 3, 7,142,255,255,255, 0, 0, 0, 0, 0, 21,127,127,252,252,252,253,253,252,252,252,255,255,255, 0, 0, - 0, 0, 3, 7, 15, 15, 14, 14, 14, 7, 3, 15, 15, 15, 0, 0, 0, 3, 7, 15, 15, 14, 14, 6, 3, 15, 15, 15, 0, 0, 3, 7, 7, 15, 14, 14, 14, 14, 7, 7, 2, 0, 0, 15, 15, 15, 0, 0, 0, 1, 3, 15, 15, 12,136,224,224,224,247,127,127, 31, 3, 0, 0, 0, 0, 0, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 14, 14, 14, 6, 3, 15, 15, 15, 0, 0, 0, 3, 7, 15, 15, 14, 14, 14, 7, 3, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 11, 3, 11, 7, 11, 7, 7, 31, 0, 0 - }; - oled_write_raw_P(ducky_logo, LOGO_SIZE); -} - -bool oled_task_user(void) { - render_logo(); - return false; -} diff --git a/keyboards/dekunukem/duckypad/keymaps/via/rules.mk b/keyboards/dekunukem/duckypad/keymaps/via/rules.mk index 5085d50a04f..1e5b99807cb 100644 --- a/keyboards/dekunukem/duckypad/keymaps/via/rules.mk +++ b/keyboards/dekunukem/duckypad/keymaps/via/rules.mk @@ -1,3 +1 @@ VIA_ENABLE = yes -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = no diff --git a/keyboards/dekunukem/duckypad/rules.mk b/keyboards/dekunukem/duckypad/rules.mk index d9bd708a95f..6e7633bfe01 100644 --- a/keyboards/dekunukem/duckypad/rules.mk +++ b/keyboards/dekunukem/duckypad/rules.mk @@ -1,17 +1 @@ -# 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 - -RGB_MATRIX_ENABLE = yes - -OLED_ENABLE = yes -OLED_DRIVER = SSD1306 +# This file intentionally left blank diff --git a/keyboards/delikeeb/flatbread60/config.h b/keyboards/delikeeb/flatbread60/config.h index 545ce1fadb0..93fec1ee2da 100644 --- a/keyboards/delikeeb/flatbread60/config.h +++ b/keyboards/delikeeb/flatbread60/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 19 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/delikeeb/flatbread60/info.json b/keyboards/delikeeb/flatbread60/info.json index e43a3458ea2..ac581c2d0e6 100644 --- a/keyboards/delikeeb/flatbread60/info.json +++ b/keyboards/delikeeb/flatbread60/info.json @@ -8,6 +8,24 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 19, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/delikeeb/vaguettelite/config.h b/keyboards/delikeeb/vaguettelite/config.h index b2c1315f3ad..93fec1ee2da 100644 --- a/keyboards/delikeeb/vaguettelite/config.h +++ b/keyboards/delikeeb/vaguettelite/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 9 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/delikeeb/vaguettelite/info.json b/keyboards/delikeeb/vaguettelite/info.json index b6ddb96725a..45e17c432a0 100644 --- a/keyboards/delikeeb/vaguettelite/info.json +++ b/keyboards/delikeeb/vaguettelite/info.json @@ -19,6 +19,17 @@ {"pin_a": "F1", "pin_b": "F0"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 9, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/delikeeb/vanana/rev1/config.h b/keyboards/delikeeb/vanana/rev1/config.h index 984a14d94fd..f5d10c1915f 100644 --- a/keyboards/delikeeb/vanana/rev1/config.h +++ b/keyboards/delikeeb/vanana/rev1/config.h @@ -19,21 +19,6 @@ along with this program. If not, see . #define B7_AUDIO -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/delikeeb/vanana/rev1/info.json b/keyboards/delikeeb/vanana/rev1/info.json index 4a7d4c77180..a4c101ec237 100644 --- a/keyboards/delikeeb/vanana/rev1/info.json +++ b/keyboards/delikeeb/vanana/rev1/info.json @@ -3,6 +3,17 @@ "usb": { "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/delikeeb/vanana/rev2/config.h b/keyboards/delikeeb/vanana/rev2/config.h index 984a14d94fd..f5d10c1915f 100644 --- a/keyboards/delikeeb/vanana/rev2/config.h +++ b/keyboards/delikeeb/vanana/rev2/config.h @@ -19,21 +19,6 @@ along with this program. If not, see . #define B7_AUDIO -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/delikeeb/vanana/rev2/info.json b/keyboards/delikeeb/vanana/rev2/info.json index e8ff47d8552..252e111fb2a 100644 --- a/keyboards/delikeeb/vanana/rev2/info.json +++ b/keyboards/delikeeb/vanana/rev2/info.json @@ -3,6 +3,17 @@ "usb": { "device_version": "0.0.2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/delikeeb/waaffle/rev3/config.h b/keyboards/delikeeb/waaffle/rev3/config.h index 36ef7a27bf3..6450b251b79 100644 --- a/keyboards/delikeeb/waaffle/rev3/config.h +++ b/keyboards/delikeeb/waaffle/rev3/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 10 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/delikeeb/waaffle/rev3/info.json b/keyboards/delikeeb/waaffle/rev3/info.json index b251334154a..1201411d46b 100644 --- a/keyboards/delikeeb/waaffle/rev3/info.json +++ b/keyboards/delikeeb/waaffle/rev3/info.json @@ -8,6 +8,17 @@ "pid": "0x0012", "device_version": "0.0.3" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/deltasplit75/v2/config.h b/keyboards/deltasplit75/v2/config.h index 4d2439ad3c1..9b7700e0139 100644 --- a/keyboards/deltasplit75/v2/config.h +++ b/keyboards/deltasplit75/v2/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 12 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/deltasplit75/v2/info.json b/keyboards/deltasplit75/v2/info.json index 857fa12e9a9..d583f3bb65b 100644 --- a/keyboards/deltasplit75/v2/info.json +++ b/keyboards/deltasplit75/v2/info.json @@ -15,6 +15,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/demiurge/config.h b/keyboards/demiurge/config.h deleted file mode 100755 index 2d3108fae32..00000000000 --- a/keyboards/demiurge/config.h +++ /dev/null @@ -1,41 +0,0 @@ -/* -Copyright 2021 ojthetiny - -This 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 RGBLED_NUM 21 -#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 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT diff --git a/keyboards/demiurge/info.json b/keyboards/demiurge/info.json index 88c93813190..8fc707be2c2 100644 --- a/keyboards/demiurge/info.json +++ b/keyboards/demiurge/info.json @@ -17,7 +17,20 @@ "pin": "F1" }, "rgblight": { - "max_brightness": 153 + "led_count": 21, + "max_brightness": 153, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/deng/djam/info.json b/keyboards/deng/djam/info.json index c78e814505d..c7fe59ff0a4 100644 --- a/keyboards/deng/djam/info.json +++ b/keyboards/deng/djam/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], diff --git a/keyboards/deng/thirty/config.h b/keyboards/deng/thirty/config.h index d80983202fb..20e6673dd2c 100644 --- a/keyboards/deng/thirty/config.h +++ b/keyboards/deng/thirty/config.h @@ -15,6 +15,9 @@ */ #pragma once +#define BACKLIGHT_PWM_DRIVER PWMD2 +#define BACKLIGHT_PWM_CHANNEL 4 + /* RGB Matrix */ #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 30 diff --git a/keyboards/deng/thirty/halconf.h b/keyboards/deng/thirty/halconf.h new file mode 100644 index 00000000000..b107a87e75a --- /dev/null +++ b/keyboards/deng/thirty/halconf.h @@ -0,0 +1,20 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/deng/thirty/info.json b/keyboards/deng/thirty/info.json index 1d9b018e6bb..8836273865b 100644 --- a/keyboards/deng/thirty/info.json +++ b/keyboards/deng/thirty/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B13", "B14", "B3", "A4", "A6"], @@ -17,7 +17,6 @@ }, "diode_direction": "COL2ROW", "backlight": { - "driver": "software", "pin": "B11", "levels": 5, "on_state": 0 diff --git a/keyboards/deng/thirty/mcuconf.h b/keyboards/deng/thirty/mcuconf.h new file mode 100644 index 00000000000..8ff617051f0 --- /dev/null +++ b/keyboards/deng/thirty/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This 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 3 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_TIM2 +#define STM32_PWM_USE_TIM2 TRUE diff --git a/keyboards/deng/thirty/rules.mk b/keyboards/deng/thirty/rules.mk index e8ce9e854be..d1753c1e6c4 100644 --- a/keyboards/deng/thirty/rules.mk +++ b/keyboards/deng/thirty/rules.mk @@ -1,5 +1,3 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -p FFFF -v FFFF diff --git a/keyboards/deng/thirty/thirty.c b/keyboards/deng/thirty/thirty.c index 2e582d68337..7d49bc1b036 100644 --- a/keyboards/deng/thirty/thirty.c +++ b/keyboards/deng/thirty/thirty.c @@ -46,3 +46,8 @@ led_config_t g_led_config = { }; #endif + +void board_init(void) { + // Remap B11 AF to TIM2_CH4 + AFIO->MAPR |= AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2; +} diff --git a/keyboards/densus/alveus/mx/info.json b/keyboards/densus/alveus/mx/info.json new file mode 100644 index 00000000000..839c84fb453 --- /dev/null +++ b/keyboards/densus/alveus/mx/info.json @@ -0,0 +1,355 @@ +{ + "keyboard_name": "Alveus", + "manufacturer": "Mechlovin Studio", + "url": "", + "usb": { + "vid": "0xDE00", + "pid": "0x0F70", + "device_version": "0.0.1" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["B12", "B13", "B14", "A8", "A2"], + "cols": ["B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A15", "B9", "B8", "B7", "B6", "B5", "B4", "B3"] + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true + }, + "indicators": { + "caps_lock": "A1", + "on_state": 0 + }, + "processor": "STM32F103", + "bootloader": "stm32duino", + "layout_aliases": { + "LAYOUT_tkl_nofrow_ansi": "LAYOUT_ansi", + "LAYOUT_tkl_nofrow_iso": "LAYOUT_iso", + "LAYOUT_tkl_nofrow_tsangan": "LAYOUT_tsangan" + }, + "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": [2, 14], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + + {"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": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "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": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "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, 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": 2.75}, + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "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": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "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, 12], "x": 12.75, "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": 2.75}, + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tsangan": { + "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": [2, 14], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "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": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "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, 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": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + } + } +} diff --git a/keyboards/densus/alveus/mx/keymaps/default/keymap.c b/keyboards/densus/alveus/mx/keymaps/default/keymap.c new file mode 100644 index 00000000000..c785b42a7df --- /dev/null +++ b/keyboards/densus/alveus/mx/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +/* Copyright 2023 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_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_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 + ) +}; diff --git a/keyboards/densus/alveus/mx/keymaps/via/keymap.c b/keyboards/densus/alveus/mx/keymaps/via/keymap.c new file mode 100644 index 00000000000..9106258c027 --- /dev/null +++ b/keyboards/densus/alveus/mx/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 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_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_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_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + diff --git a/keyboards/densus/alveus/mx/keymaps/via/rules.mk b/keyboards/densus/alveus/mx/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/densus/alveus/mx/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/densus/alveus/mx/readme.md b/keyboards/densus/alveus/mx/readme.md new file mode 100644 index 00000000000..3a90c9b0f33 --- /dev/null +++ b/keyboards/densus/alveus/mx/readme.md @@ -0,0 +1,26 @@ +# Alveus + +![Alveus PCB](https://i.imgur.com/tZKcLiMh.png) + +A MX PCB for Alveus FRL keyboard. + +* Keyboard Maintainer: [Mechlovin' Studio](https://mechlovin.studio/) +* Hardware Supported: Alveus, APM32F103 +* Hardware Availability: [Densus](https://www.instagram.com/densusdesign/) + +Make example for this keyboard (after setting up your build environment): + + make densus/alveus/mx:default + +Flashing example for this keyboard: + + make densus/alveus/mx: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). + +Enter the bootloader in 4 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 reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available +* **Hardware reset**: Press reset button (located on the bottom side of the PCB) \ No newline at end of file diff --git a/keyboards/densus/alveus/mx/rules.mk b/keyboards/densus/alveus/mx/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/densus/alveus/mx/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/dinofizz/fnrow/v1/rules.mk b/keyboards/dinofizz/fnrow/v1/rules.mk index 2f7ef9fbe89..a1e56ea4862 100644 --- a/keyboards/dinofizz/fnrow/v1/rules.mk +++ b/keyboards/dinofizz/fnrow/v1/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/dm9records/ergoinu/config.h b/keyboards/dm9records/ergoinu/config.h index 7ca2b8cded0..d1c1201a548 100644 --- a/keyboards/dm9records/ergoinu/config.h +++ b/keyboards/dm9records/ergoinu/config.h @@ -24,8 +24,6 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -#define RGBLED_NUM 7 - #ifndef IOS_DEVICE_ENABLE #if RGBLED_NUM <= 7 #define RGBLIGHT_LIMIT_VAL 255 @@ -36,9 +34,6 @@ along with this program. If not, see . #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 500 #else diff --git a/keyboards/dm9records/ergoinu/info.json b/keyboards/dm9records/ergoinu/info.json index 1813baa2410..4f3b03b6f9e 100644 --- a/keyboards/dm9records/ergoinu/info.json +++ b/keyboards/dm9records/ergoinu/info.json @@ -16,6 +16,10 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "hue_steps": 10, + "led_count": 7 + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/dmqdesign/spin/config.h b/keyboards/dmqdesign/spin/config.h index 2a1bafaacf7..cc43876148b 100644 --- a/keyboards/dmqdesign/spin/config.h +++ b/keyboards/dmqdesign/spin/config.h @@ -17,9 +17,6 @@ along with this program. If not, see . #pragma once -//Number of RGB LEDs -#define RGBLED_NUM 3 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/dmqdesign/spin/info.json b/keyboards/dmqdesign/spin/info.json index 52fc9f40ea2..aeeb19299e2 100644 --- a/keyboards/dmqdesign/spin/info.json +++ b/keyboards/dmqdesign/spin/info.json @@ -20,6 +20,9 @@ {"pin_a": "D6", "pin_b": "D4"} ] }, + "rgblight": { + "led_count": 3 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/dmqdesign/spin/keymaps/gorbachev/rules.mk b/keyboards/dmqdesign/spin/keymaps/gorbachev/rules.mk index 6af3117b94f..cd11afc8d49 100644 --- a/keyboards/dmqdesign/spin/keymaps/gorbachev/rules.mk +++ b/keyboards/dmqdesign/spin/keymaps/gorbachev/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 MOUSEKEY_ENABLE = no MIDI_ENABLE = no diff --git a/keyboards/dnworks/frltkl/config.h b/keyboards/dnworks/frltkl/config.h new file mode 100644 index 00000000000..77970ce4d34 --- /dev/null +++ b/keyboards/dnworks/frltkl/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This 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 RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/dnworks/frltkl/info.json b/keyboards/dnworks/frltkl/info.json new file mode 100644 index 00000000000..dda394649b2 --- /dev/null +++ b/keyboards/dnworks/frltkl/info.json @@ -0,0 +1,113 @@ +{ + "keyboard_name": "DN FRLTKL", + "maintainer": "itsme-zeix", + "manufacturer": "dnworks", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x4C23", + "pid": "0x2935", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true + }, + "indicators": { + "caps_lock": "GP27", + "on_state": 1 + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["GP4","GP3","GP2","GP1","GP29","GP28","GP19","GP20","GP10","GP11"], + "cols": ["GP26","GP25","GP24","GP23","GP22","GP21","GP6","GP5","GP0"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [1, 0], "x": 0, "y": 0 }, + { "matrix": [0, 0], "x": 1, "y": 0 }, + { "matrix": [1, 1], "x": 2, "y": 0 }, + { "matrix": [0, 1], "x": 3, "y": 0 }, + { "matrix": [1, 2], "x": 4, "y": 0 }, + { "matrix": [0, 2], "x": 5, "y": 0 }, + { "matrix": [1, 3], "x": 6, "y": 0 }, + { "matrix": [0, 3], "x": 7, "y": 0 }, + { "matrix": [1, 4], "x": 8, "y": 0 }, + { "matrix": [0, 4], "x": 9, "y": 0 }, + { "matrix": [1, 5], "x": 10, "y": 0 }, + { "matrix": [0, 5], "x": 11, "y": 0 }, + { "matrix": [1, 6], "x": 12, "y": 0 }, + { "matrix": [0, 6], "x": 13, "y": 0 }, + { "matrix": [1, 7], "x": 14, "y": 0 }, + { "matrix": [0, 7], "x": 15.25, "y": 0 }, + { "matrix": [1, 8], "x": 16.25, "y": 0 }, + { "matrix": [0, 8], "x": 17.25, "y": 0 }, + + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [3, 0], "x": 1.5, "y": 1 }, + { "matrix": [2, 1], "x": 2.5, "y": 1 }, + { "matrix": [3, 1], "x": 3.5, "y": 1 }, + { "matrix": [2, 2], "x": 4.5, "y": 1 }, + { "matrix": [3, 2], "x": 5.5, "y": 1 }, + { "matrix": [2, 3], "x": 6.5, "y": 1 }, + { "matrix": [3, 3], "x": 7.5, "y": 1 }, + { "matrix": [2, 4], "x": 8.5, "y": 1 }, + { "matrix": [3, 4], "x": 9.5, "y": 1 }, + { "matrix": [2, 5], "x": 10.5, "y": 1 }, + { "matrix": [3, 5], "x": 11.5, "y": 1 }, + { "matrix": [2, 6], "x": 12.5, "y": 1 }, + { "matrix": [3, 7], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 7], "x": 15.25, "y": 1 }, + { "matrix": [3, 8], "x": 16.25, "y": 1 }, + { "matrix": [2, 8], "x": 17.25, "y": 1 }, + + { "matrix": [4, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [5, 0], "x": 1.75, "y": 2 }, + { "matrix": [4, 1], "x": 2.75, "y": 2 }, + { "matrix": [5, 1], "x": 3.75, "y": 2 }, + { "matrix": [4, 2], "x": 4.75, "y": 2 }, + { "matrix": [5, 2], "x": 5.75, "y": 2 }, + { "matrix": [4, 3], "x": 6.75, "y": 2 }, + { "matrix": [5, 3], "x": 7.75, "y": 2 }, + { "matrix": [4, 4], "x": 8.75, "y": 2 }, + { "matrix": [5, 4], "x": 9.75, "y": 2 }, + { "matrix": [4, 5], "x": 10.75, "y": 2 }, + { "matrix": [5, 5], "x": 11.75, "y": 2 }, + { "matrix": [4, 6], "w": 2.25, "x": 12.75, "y": 2 }, + + { "matrix": [6, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [7, 0], "x": 1.25, "y": 3 }, + { "matrix": [6, 1], "x": 2.25, "y": 3 }, + { "matrix": [7, 1], "x": 3.25, "y": 3 }, + { "matrix": [6, 2], "x": 4.25, "y": 3 }, + { "matrix": [7, 2], "x": 5.25, "y": 3 }, + { "matrix": [6, 3], "x": 6.25, "y": 3 }, + { "matrix": [7, 3], "x": 7.25, "y": 3 }, + { "matrix": [6, 4], "x": 8.25, "y": 3 }, + { "matrix": [7, 4], "x": 9.25, "y": 3 }, + { "matrix": [6, 5], "x": 10.25, "y": 3 }, + { "matrix": [7, 5], "x": 11.25, "y": 3 }, + { "matrix": [6, 6], "w": 1.75, "x": 12.25, "y": 3 }, + + { "matrix": [7, 7], "x": 14, "y": 3 }, + { "matrix": [6, 8], "x": 16.25, "y": 3 }, + { "matrix": [8, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [9, 0], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [8, 1], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [9, 3], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [8, 5], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [9, 5], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [8, 6], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [9, 7], "w": 1.25, "x": 13.75, "y": 4 }, + { "matrix": [8, 7], "x": 15.25, "y": 4 }, + { "matrix": [9, 8], "x": 16.25, "y": 4 }, + { "matrix": [8, 8], "x": 17.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/dnworks/frltkl/keymaps/default/keymap.c b/keyboards/dnworks/frltkl/keymaps/default/keymap.c new file mode 100644 index 00000000000..295066696d4 --- /dev/null +++ b/keyboards/dnworks/frltkl/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This 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_BSLS, 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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + +[1] = 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/dnworks/frltkl/keymaps/via/keymap.c b/keyboards/dnworks/frltkl/keymaps/via/keymap.c new file mode 100644 index 00000000000..295066696d4 --- /dev/null +++ b/keyboards/dnworks/frltkl/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This 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_BSLS, 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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + +[1] = 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/dnworks/frltkl/keymaps/via/rules.mk b/keyboards/dnworks/frltkl/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/dnworks/frltkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/dnworks/frltkl/readme.md b/keyboards/dnworks/frltkl/readme.md new file mode 100644 index 00000000000..cc9946284a7 --- /dev/null +++ b/keyboards/dnworks/frltkl/readme.md @@ -0,0 +1,25 @@ +# FRLTKL + +PCB that supports FRLTKLs designed by dnworks, such as DNDD and HITC. + +* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) +* Hardware Supported: DNDD Solder PCB rev1 & HITC Solder PCB rev1 +* Hardware Availability: [dnworks.co](https://dnworks.co/) + +Make example for this keyboard (after setting up your build environment): + + make dnworks/frltkl:default + +Flashing example for this keyboard: + + make dnworks/frltkl: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 `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/dnworks/frltkl/rules.mk b/keyboards/dnworks/frltkl/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/dnworks/frltkl/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/dnworks/sbl/info.json b/keyboards/dnworks/sbl/info.json index cf9f4a2dfdc..81461ead4d5 100644 --- a/keyboards/dnworks/sbl/info.json +++ b/keyboards/dnworks/sbl/info.json @@ -1,6 +1,6 @@ { "keyboard_name": "SBL", - "maintainer": "zeix", + "maintainer": "itsme-zeix", "manufacturer": "dnworks", "processor": "RP2040", "bootloader": "rp2040", @@ -26,76 +26,921 @@ "rows": ["GP6","GP5","GP4","GP0","GP12"], "cols": ["GP28","GP27","GP26","GP25","GP24","GP23","GP22","GP3","GP2","GP1","GP8","GP9","GP10","GP11","GP7"] }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], "layouts": { - "LAYOUT": { + "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, 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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + + {"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, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 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": 2.75}, + + {"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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "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, 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, 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, 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, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 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": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "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, 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, 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, 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl": { + "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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 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": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "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, 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, 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, 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": 2.75}, + + {"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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "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, 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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "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, 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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl": { + "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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl_split_bs_rshift": { "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, 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": [1, 13], "w": 1.5, "x": 13.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], "x": 16, "y": 2 }, - { "matrix": [2, 13], "w": 2.25, "x": 12.75, "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": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, - { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + {"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, 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, 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, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] } - } } diff --git a/keyboards/dnworks/sbl/keymaps/default/keymap.c b/keyboards/dnworks/sbl/keymaps/default/keymap.c index 91c381d8327..f9b8bc13f48 100644 --- a/keyboards/dnworks/sbl/keymaps/default/keymap.c +++ b/keyboards/dnworks/sbl/keymaps/default/keymap.c @@ -17,14 +17,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( +[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_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_NONUS_HASH, 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, MO(1), KC_RCTL), -[1] = LAYOUT( +[1] = LAYOUT_all( 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_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, diff --git a/keyboards/dnworks/sbl/keymaps/via/keymap.c b/keyboards/dnworks/sbl/keymaps/via/keymap.c index 91c381d8327..f9b8bc13f48 100644 --- a/keyboards/dnworks/sbl/keymaps/via/keymap.c +++ b/keyboards/dnworks/sbl/keymaps/via/keymap.c @@ -17,14 +17,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( +[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_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_NONUS_HASH, 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, MO(1), KC_RCTL), -[1] = LAYOUT( +[1] = LAYOUT_all( 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_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, diff --git a/keyboards/dnworks/sbl/matrix_diagram.md b/keyboards/dnworks/sbl/matrix_diagram.md new file mode 100644 index 00000000000..a3993e18d0b --- /dev/null +++ b/keyboards/dnworks/sbl/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for dnworks SBL + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + ┌───┬─────┬───────────────────────┬─────┬───┐ + │41 │42 │46 │4A │4B │ True HHKB + └───┴─────┴───────────────────────┴─────┴───┘ +``` diff --git a/keyboards/do60/config.h b/keyboards/do60/config.h index 21160e0a8da..5a870e5f7ee 100644 --- a/keyboards/do60/config.h +++ b/keyboards/do60/config.h @@ -17,26 +17,7 @@ along with this program. If not, see . #pragma once -/* RGB Underglow - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 15 -#define RGBLIGHT_VAL_STEP 15 - /* 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 TAPPING_TERM 200 diff --git a/keyboards/do60/info.json b/keyboards/do60/info.json index 9267a981412..e3cab833a04 100644 --- a/keyboards/do60/info.json +++ b/keyboards/do60/info.json @@ -21,6 +21,24 @@ "caps_lock": "B2", "on_state": 0 }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 15, + "brightness_steps": 15, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F5" }, diff --git a/keyboards/doio/kb04/rules.mk b/keyboards/doio/kb04/rules.mk index a7c5acf8f53..ab192232629 100644 --- a/keyboards/doio/kb04/rules.mk +++ b/keyboards/doio/kb04/rules.mk @@ -22,7 +22,7 @@ LTO_ENABLE = yes # RGB Matrix enabled RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 # Encoder enabled ENCODER_ENABLE = yes @@ -32,4 +32,4 @@ EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash # Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE \ No newline at end of file +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/doio/kb16/kb16.c b/keyboards/doio/kb16/kb16.c index 34b315a87b1..05f5792ea7e 100644 --- a/keyboards/doio/kb16/kb16.c +++ b/keyboards/doio/kb16/kb16.c @@ -20,6 +20,11 @@ // OLED animation #include "./lib/logo.h" +// Default timeout for displaying boot logo. +#ifndef OLED_LOGO_TIMEOUT + #define OLED_LOGO_TIMEOUT 5000 +#endif + #ifdef OLED_ENABLE uint16_t startup_timer; @@ -32,16 +37,14 @@ bool oled_task_kb(void) { static bool finished_logo = false; - if ((timer_elapsed(startup_timer) < 5000) && !finished_logo) { + if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) { render_logo(); } else { finished_logo = true; - if (!oled_task_user()) { return false; } } - return true; } #endif diff --git a/keyboards/doio/kb16/rev1/info.json b/keyboards/doio/kb16/rev1/info.json index 4d2852fe051..bcf2c2eb0ee 100644 --- a/keyboards/doio/kb16/rev1/info.json +++ b/keyboards/doio/kb16/rev1/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F5", "F4", "F1", "F0", "B7"], diff --git a/keyboards/doio/kb16/rev1/rules.mk b/keyboards/doio/kb16/rev1/rules.mk index 5c5ad3de8c2..b234c1ca6a9 100644 --- a/keyboards/doio/kb16/rev1/rules.mk +++ b/keyboards/doio/kb16/rev1/rules.mk @@ -20,7 +20,6 @@ SPACE_CADET_ENABLE = no # OLED enabled OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # RGB Matrix enabled RGB_MATRIX_ENABLE = yes diff --git a/keyboards/doio/kb16/rev2/info.json b/keyboards/doio/kb16/rev2/info.json index 1e83ca77cc4..c3cf6b9a12e 100644 --- a/keyboards/doio/kb16/rev2/info.json +++ b/keyboards/doio/kb16/rev2/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B14", "B13", "B12", "B0", "A7"], diff --git a/keyboards/doio/kb16/rev2/rules.mk b/keyboards/doio/kb16/rev2/rules.mk index f931af11e4f..88879a4ffae 100644 --- a/keyboards/doio/kb16/rev2/rules.mk +++ b/keyboards/doio/kb16/rev2/rules.mk @@ -19,7 +19,6 @@ AUDIO_ENABLE = no # Audio output # OLED enabled OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # RGB Matrix enabled RGB_MATRIX_ENABLE = yes diff --git a/keyboards/doio/kb30/info.json b/keyboards/doio/kb30/info.json index 3f3fa1c3327..cd3c7729947 100644 --- a/keyboards/doio/kb30/info.json +++ b/keyboards/doio/kb30/info.json @@ -2,14 +2,14 @@ "keyboard_name": "KB30-01", "manufacturer": "DOIO", "url": "", - "maintainer": "Alice", + "maintainer": "DOIO2022", "usb": { "vid": "0xD010", "pid": "0x3001", "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B14", "B13", "B12", "B0", "A7", "A9", "A8"], @@ -49,33 +49,31 @@ {"matrix": [1, 5], "x": 5.25, "y": 1}, {"matrix": [1, 6], "x": 6.25, "y": 1}, - {"matrix": [2, 0], "x": 8.25, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 1], "x": 0, "y": 2}, - {"matrix": [2, 2], "x": 1, "y": 2}, - {"matrix": [2, 3], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [3, 0], "x": 6.25, "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, "h": 2}, - {"matrix": [3, 1], "x": 11, "y": 2}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 2], "x": 0, "y": 3}, - {"matrix": [3, 3], "x": 1, "y": 3}, - {"matrix": [3, 5], "x": 2, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2}, + {"matrix": [4, 1], "x": 2, "y": 4}, - {"matrix": [4, 0], "x": 4.25, "y": 3, "h": 2}, - {"matrix": [4, 1], "x": 5.25, "y": 3}, + {"matrix": [4, 2], "x": 4.25, "y": 4}, + {"matrix": [4, 3], "x": 5.25, "y": 4}, + {"matrix": [4, 4], "x": 6.25, "y": 4}, - {"matrix": [4, 2], "x": 9, "y": 4}, - - {"matrix": [4, 3], "x": 0, "y": 4, "w": 2}, - {"matrix": [4, 4], "x": 2, "y": 4}, - - {"matrix": [5, 4], "x": 4.25, "y": 4}, - {"matrix": [5, 5], "x": 5.25, "y": 4}, - {"matrix": [5, 6], "x": 6.25, "y": 4} + {"matrix": [5, 4], "x": 7.75, "y": 1}, + {"matrix": [5, 5], "x": 9.75, "y": 1}, + {"matrix": [5, 6], "x": 7.75, "y": 2, "w": 3, "h": 3} ] } } diff --git a/keyboards/doio/kb30/keymaps/default/keymap.c b/keyboards/doio/kb30/keymaps/default/keymap.c index fb06acfd803..2e385d24e30 100644 --- a/keyboards/doio/kb30/keymaps/default/keymap.c +++ b/keyboards/doio/kb30/keymaps/default/keymap.c @@ -15,65 +15,47 @@ * along with this program. If not, see . */ - #include QMK_KEYBOARD_H - enum layer_names { -_LAY0, -_LAY1, -_LAY2, -_LAY3 + _LAY0, + _LAY1, + _LAY2, + _LAY3 }; - - - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY0] = LAYOUT( - KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUSE, - KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, - KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, - KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, - KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, - KC_MPLY, TO(1), KC_TRNS), + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUS, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, + KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, + KC_MPLY, TO(1), KC_TRNS), [_LAY1] = 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, TO(2), KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, TO(2), KC_TRNS), [_LAY2] = 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, TO(3), KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, TO(3), KC_TRNS), [_LAY3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, - KC_TRNS, TO(0), KC_TRNS) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, + KC_TRNS, TO(0), KC_TRNS) }; - - - - - - - - - - - - #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_LAY0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, diff --git a/keyboards/doio/kb30/keymaps/via/keymap.c b/keyboards/doio/kb30/keymaps/via/keymap.c index 2890fe604a1..2e385d24e30 100644 --- a/keyboards/doio/kb30/keymaps/via/keymap.c +++ b/keyboards/doio/kb30/keymaps/via/keymap.c @@ -15,54 +15,47 @@ * along with this program. If not, see . */ - #include QMK_KEYBOARD_H - enum layer_names { -_LAY0, -_LAY1, -_LAY2, -_LAY3 + _LAY0, + _LAY1, + _LAY2, + _LAY3 }; - - - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY0] = LAYOUT( - KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUSE, - KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, - KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, - KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, - KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, - KC_MPLY, TO(1), KC_TRNS), + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUS, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, + KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, + KC_MPLY, TO(1), KC_TRNS), [_LAY1] = 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, TO(2), KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, TO(2), KC_TRNS), [_LAY2] = 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, TO(3), KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, TO(3), KC_TRNS), [_LAY3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, - KC_TRNS, TO(0), KC_TRNS) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, + KC_TRNS, TO(0), KC_TRNS) }; - #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_LAY0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, diff --git a/keyboards/doio/kb30/keymaps/vial/config.h b/keyboards/doio/kb30/keymaps/vial/config.h new file mode 100644 index 00000000000..5b85aae927f --- /dev/null +++ b/keyboards/doio/kb30/keymaps/vial/config.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once +#define VIAL_TAP_DANCE_ENTRIES 16 +#define VIAL_COMBO_ENTRIES 16 +#define VIAL_KEY_OVERRIDE_ENTRIES 16 + +#define VIAL_KEYBOARD_UID {0xC3, 0xD7, 0xE9, 0x8D, 0x71, 0xBB, 0xA3, 0xEC} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 3 } + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +#undef OLED_TIMEOUT +#define OLED_TIMEOUT 60000 + +#undef ENCODERS_PAD_A +#undef ENCODERS_PAD_B +#define ENCODERS_PAD_A { B5, A1, A4 } +#define ENCODERS_PAD_B { B6, A2, A3 } +#define ENCODER_RESOLUTIONS { 4, 4, 4 } diff --git a/keyboards/doio/kb30/keymaps/vial/keymap.c b/keyboards/doio/kb30/keymaps/vial/keymap.c new file mode 100644 index 00000000000..0ee9ffda046 --- /dev/null +++ b/keyboards/doio/kb30/keymaps/vial/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUSE, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, + KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, + KC_MPLY, TO(1), KC_TRNS), + [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, TO(2), 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, TO(3), KC_TRNS), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, + KC_TRNS, TO(0), KC_TRNS) +}; + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), 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), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/doio/kb30/keymaps/vial/rules.mk b/keyboards/doio/kb30/keymaps/vial/rules.mk new file mode 100644 index 00000000000..51e77e59d25 --- /dev/null +++ b/keyboards/doio/kb30/keymaps/vial/rules.mk @@ -0,0 +1,9 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes + +LTO_ENABLE = yes + +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VIALRGB_ENABLE = yes diff --git a/keyboards/doio/kb30/keymaps/vial/vial.json b/keyboards/doio/kb30/keymaps/vial/vial.json new file mode 100644 index 00000000000..1f3dcb8f9f7 --- /dev/null +++ b/keyboards/doio/kb30/keymaps/vial/vial.json @@ -0,0 +1,101 @@ +{ + "name": "KB30-01", + "vendorId": "0xD010", + "productId": "0x3001", + "lighting": "vialrgb", + "matrix": { + "rows": 6, + "cols": 7 + }, + "layouts": { + "keymap": [ + [ + "0,0", + "0,1", + "0,2", + "0,3", + { + "x": 0.25 + }, + "0,4", + "0,5", + "0,6" + ], + [ + "1,0", + "1,1", + "1,2", + { + "h": 2 + }, + "1,3", + { + "x": 0.25 + }, + "1,4", + "1,5", + "1,6", + { + "x": 0.5 + }, + "0,0\n\n\n\n\n\n\n\n\ne", + "0,1\n\n\n\n\n\n\n\n\ne", + { + "x": 0.75 + }, + "1,0\n\n\n\n\n\n\n\n\ne", + "1,1\n\n\n\n\n\n\n\n\ne" + ], + [ + "2,0", + "2,1", + "2,2", + { + "x": 1.25 + }, + "2,3", + "2,4", + "2,5", + { + "x": 1 + }, + "5,4", + { + "x": 1.75 + }, + "5,5" + ], + [ + "3,0", + "3,1", + "3,2", + { + "h": 2 + }, + "3,3", + { + "x": 1.25 + }, + "3,5" + ], + [ + { + "w": 2 + }, + "4,0", + "4,1", + { + "x": 1.25 + }, + "4,2", + "4,3", + "4,4", + { + "x": 1.75 + }, + "2,0\n\n\n\n\n\n\n\n\ne", + "2,1\n\n\n\n\n\n\n\n\ne" + ] + ] + } +} diff --git a/keyboards/doio/kb30/readme.md b/keyboards/doio/kb30/readme.md new file mode 100644 index 00000000000..9e66c8993fa --- /dev/null +++ b/keyboards/doio/kb30/readme.md @@ -0,0 +1,27 @@ +# Megalodon DOIO 30% Designer Keyboard + +![Megalodon DOIO 30% Designer Keyboard](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/doio/kb30/KB30-01-_0000_778b3a43-228a-433d-94ae-9129f20b2ede_1024xc.jpg) + +A hotswappable 30-key macropad with 3 rotary encoders (2 are clickable), an OLED screen, and RGB lighting. + +* Keyboard Maintainer: [DOIO2022](https://github.com/DOIO2022) +* Hardware Supported: Megalodon DOIO 30% Designer Keyboard with STM32F103 +* Hardware Availability: [KeebMonkey](https://www.keebmonkey.com/products/megalodon-doio-30-designer-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make doio/kb30:default + +## Accessing Bootloader Mode and Flashing + +To access Bootloader Mode, do one of the following: + +* **Bootmagic reset**: Hold the top left key of the keyboard while connecting the USB cable. +* **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. + +Flashing example for this keyboard: + + make doio/kb30: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/doio/kb30/rules.mk b/keyboards/doio/kb30/rules.mk index b12899890e4..1e48f891f28 100644 --- a/keyboards/doio/kb30/rules.mk +++ b/keyboards/doio/kb30/rules.mk @@ -12,8 +12,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes - -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/doio/kb38/info.json b/keyboards/doio/kb38/info.json index 3f97ac6842a..95d3be13d39 100644 --- a/keyboards/doio/kb38/info.json +++ b/keyboards/doio/kb38/info.json @@ -36,7 +36,7 @@ "pin": "F6" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 4, "matrix": [0, 1], "x": 62.2, "y": 0}, @@ -94,51 +94,54 @@ "LAYOUT": { "layout": [ {"matrix": [0, 0], "label": "ESC", "x": 0, "y": 0}, - {"matrix": [0, 1], "label": "BSPC", "x": 1, "y": 0}, - {"matrix": [0, 2], "label": "RGB BACK", "x": 2, "y": 0}, - {"matrix": [0, 3], "label": "RGB OFF", "x": 3, "y": 0}, - {"matrix": [0, 4], "label": "RGB FORW", "x": 4, "y": 0}, - {"matrix": [0, 5], "label": "MAKE", "x": 5, "y": 0}, - {"matrix": [0, 6], "label": "REBOOT", "x": 6, "y": 0}, - {"matrix": [0, 7], "label": "BOOTLOAD", "x": 7, "y": 0}, + {"matrix": [0, 1], "label": "BSPC", "x": 2, "y": 0, "w": 2}, + {"matrix": [0, 2], "label": "RGB BACK", "x": 4.25, "y": 0}, + {"matrix": [0, 3], "label": "RGB OFF", "x": 5.25, "y": 0}, + {"matrix": [0, 4], "label": "RGB FORW", "x": 6.25, "y": 0}, + {"matrix": [0, 5], "label": "MAKE", "x": 7.5, "y": 0}, + {"matrix": [0, 6], "label": "REBOOT", "x": 8.5, "y": 0}, + {"matrix": [0, 7], "label": "BOOTLOAD", "x": 9.5, "y": 0}, - {"matrix": [1, 0], "label": "NUMLOCK", "x": 0, "y": 1}, - {"matrix": [1, 1], "label": "PSLS", "x": 1, "y": 1}, - {"matrix": [1, 2], "label": "PAST", "x": 2, "y": 1}, - {"matrix": [1, 3], "label": "PMNS", "x": 3, "y": 1}, - {"matrix": [1, 4], "label": "PAUS", "x": 3, "y": 1}, - {"matrix": [1, 5], "label": "SCRL", "x": 3, "y": 1}, - {"matrix": [1, 6], "label": "PSCR", "x": 3, "y": 1}, + {"matrix": [1, 0], "label": "NUMLOCK", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "PSLS", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "PAST", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "PMNS", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "PAUS", "x": 4.25, "y": 1.25}, + {"matrix": [1, 5], "label": "SCRL", "x": 5.25, "y": 1.25}, + {"matrix": [1, 6], "label": "PSCR", "x": 6.25, "y": 1.25}, - {"matrix": [2, 0], "label": "7", "x": 0, "y": 2}, - {"matrix": [2, 1], "label": "8", "x": 1, "y": 2}, - {"matrix": [2, 2], "label": "9", "x": 2, "y": 2}, - {"matrix": [2, 3], "label": "PPLS", "x": 3, "y": 2}, - {"matrix": [2, 4], "label": "INS", "x": 3, "y": 2}, - {"matrix": [2, 5], "label": "HOME", "x": 3, "y": 2}, - {"matrix": [2, 6], "label": "PGUP", "x": 3, "y": 2}, + {"matrix": [2, 0], "label": "7", "x": 0, "y": 2.25}, + {"matrix": [2, 1], "label": "8", "x": 1, "y": 2.25}, + {"matrix": [2, 2], "label": "9", "x": 2, "y": 2.25}, + {"matrix": [2, 3], "label": "PPLS", "x": 3, "y": 2.25, "h": 2}, + {"matrix": [2, 4], "label": "INS", "x": 4.25, "y": 2.25}, + {"matrix": [2, 5], "label": "HOME", "x": 5.25, "y": 2.25}, + {"matrix": [2, 6], "label": "PGUP", "x": 6.25, "y": 2.25}, - {"matrix": [3, 0], "label": "4", "x": 0, "y": 3}, - {"matrix": [3, 1], "label": "5", "x": 1, "y": 3}, - {"matrix": [3, 2], "label": "6", "x": 2, "y": 3}, - {"matrix": [3, 3], "label": "END", "x": 3, "y": 3}, - {"matrix": [3, 4], "label": "DEL", "x": 3, "y": 3}, - {"matrix": [3, 5], "label": "PGDN", "x": 3, "y": 3}, + {"matrix": [5, 5], "label": "KNOB_L", "x": 7.5, "y": 2.25}, - {"matrix": [4, 0], "label": "1", "x": 0, "y": 4}, - {"matrix": [4, 1], "label": "2", "x": 1, "y": 4}, - {"matrix": [4, 2], "label": "3", "x": 2, "y": 4}, - {"matrix": [4, 3], "label": "PENT", "x": 3, "y": 4}, - {"matrix": [4, 5], "label": "UP", "x": 3, "y": 4}, + {"matrix": [5, 6], "label": "KNOB_R", "x": 9.5, "y": 2.25}, - {"matrix": [5, 0], "label": "0", "x": 0, "y": 5}, - {"matrix": [5, 1], "label": "PDOT", "x": 1, "y": 5}, - {"matrix": [5, 2], "label": "LEFT", "x": 2, "y": 5}, - {"matrix": [5, 3], "label": "DOWN", "x": 3, "y": 5}, - {"matrix": [5, 4], "label": "RIGHT", "x": 4, "y": 5}, - {"matrix": [5, 5], "label": "KNOB_L", "x": 3, "y": 5}, - {"matrix": [5, 6], "label": "KNOB_R", "x": 3, "y": 5}, - {"matrix": [5, 7], "label": "KNOB_D", "x": 3, "y": 5} + {"matrix": [3, 0], "label": "4", "x": 0, "y": 3.25}, + {"matrix": [3, 1], "label": "5", "x": 1, "y": 3.25}, + {"matrix": [3, 2], "label": "6", "x": 2, "y": 3.25}, + {"matrix": [3, 3], "label": "END", "x": 4.25, "y": 3.25}, + {"matrix": [3, 4], "label": "DEL", "x": 5.25, "y": 3.25}, + {"matrix": [3, 5], "label": "PGDN", "x": 6.25, "y": 3.25}, + + {"matrix": [4, 0], "label": "1", "x": 0, "y": 4.25}, + {"matrix": [4, 1], "label": "2", "x": 1, "y": 4.25}, + {"matrix": [4, 2], "label": "3", "x": 2, "y": 4.25}, + {"matrix": [4, 3], "label": "PENT", "x": 3, "y": 4.25, "h": 2}, + {"matrix": [4, 5], "label": "UP", "x": 5.25, "y": 4.25}, + + {"matrix": [5, 7], "label": "KNOB_D", "x": 7.5, "y": 3.25, "w": 3, "h": 3} + + {"matrix": [5, 0], "label": "0", "x": 0, "y": 5.25, "w": 2}, + {"matrix": [5, 1], "label": "PDOT", "x": 2, "y": 5.25}, + {"matrix": [5, 2], "label": "LEFT", "x": 4.25, "y": 5.25}, + {"matrix": [5, 3], "label": "DOWN", "x": 5.25, "y": 5.25}, + {"matrix": [5, 4], "label": "RIGHT", "x": 6.25, "y": 5.25} ] } } diff --git a/keyboards/doio/kb38/keymaps/default/keymap.c b/keyboards/doio/kb38/keymaps/default/keymap.c index 2496fef0831..96a548e512e 100644 --- a/keyboards/doio/kb38/keymaps/default/keymap.c +++ b/keyboards/doio/kb38/keymaps/default/keymap.c @@ -27,35 +27,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───┘ └───────┘└───┴───┴───┘└───┴───┴───┘ * ┌───┬───┬───┬───┐┌───┬───┬───┐ * │NUM│ / │ * │ - ││PAS│SCR│PSC│ - * ├───┼───┼───┼───┤├───┼───┼───│ - * │ 7 │ 8 │ 9 │ ││INS│HOM│PGU│ - * ├───┼───┼───│ + │├───┼───┼───│ - * │ 4 │ 5 │ 6 │ ││END│DEL│PGD│ - * ├───┼───┼───┼───┤└───┼───┼───┘ - * │ 1 │ 2 │ 3 │ E │ │UP │ - * ├───┼───┼───│ N │┌───┼───┼───┐┌───┬───┬───┐ - * │ 0 │DEL│ T ││LFT│DWN│RHT││ O │ O │ O │ - * └───┴───┴───┴───┘└───┴───┴───┘└───┴───┴───┘ + * ├───┼───┼───┼───┤├───┼───┼───┤┌───┐ ┌───┐ + * │ 7 │ 8 │ 9 │ ││INS│HOM│PGU││HOM│ │END│ + * ├───┼───┼───┤ + │├───┼───┼───┤├───┴───┴───┤ + * │ 4 │ 5 │ 6 │ ││END│DEL│PGD││ │ + * ├───┼───┼───┼───┤└───┼───┼───┘│ │ + * │ 1 │ 2 │ 3 │ E │ │UP │ │ B │ + * ├───┴───┼───┤ N │┌───┼───┼───┐│ │ + * │ 0 │DEL│ T ││LFT│DWN│RHT││ │ + * └───────┴───┴───┘└───┴───┴───┘└───────────┘ */ [_QWERTY] = LAYOUT( - MO(1), KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_F1, KC_F2, KC_F3, - KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR, - KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, - KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN, - KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP, - KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, KC_B + MO(1), KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_F1, KC_F2, KC_F3, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, KC_HOME, KC_END, + KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN, + KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP, KC_B, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT ), [_LAYERTWO] = LAYOUT( - _______, KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_A, QK_REBOOT, QK_BOOTLOADER, - KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR, - KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, - KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN, - KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP, - KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, KC_B + _______, KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_A, QK_RBT, QK_BOOT, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, KC_HOME, KC_END, + KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN, + KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP, KC_B, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT ) }; /*NOTE FOR PERSON MODIFYING KEYMAP The large knob press is mapped as KC_B, despite it not having one. I'm not quite sure why, but the only reason it can't be clicked is because the potentiometer is different. -If you were to replace it with one that can be clicked, it would work. I shorted it and it does work.*/ \ No newline at end of file +If you were to replace it with one that can be clicked, it would work. I shorted it and it does work.*/ diff --git a/keyboards/doio/kb38/readme.md b/keyboards/doio/kb38/readme.md index fef8a33f8f1..7456316f159 100644 --- a/keyboards/doio/kb38/readme.md +++ b/keyboards/doio/kb38/readme.md @@ -1,5 +1,7 @@ # doio/kb38 +![Megalodon DOIO Triple Knob 38%](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/doio/kb38/2022-06-2917-52-00_A_R8_S4_1024xc.jpg) + QMK for Megalodon DOIO Triple Knob 38% with OLED Screen. * Keyboard Maintainer: [Katrina](https://github.com/PepperKats) diff --git a/keyboards/donutcables/budget96/config.h b/keyboards/donutcables/budget96/config.h deleted file mode 100644 index 398b0be3c84..00000000000 --- a/keyboards/donutcables/budget96/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2020 DonutCables - -This 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 RGBLED_NUM 18 - -#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/donutcables/budget96/info.json b/keyboards/donutcables/budget96/info.json index 98c878d12fc..42a817bfd60 100644 --- a/keyboards/donutcables/budget96/info.json +++ b/keyboards/donutcables/budget96/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/doodboard/duckboard/config.h b/keyboards/doodboard/duckboard/config.h deleted file mode 100644 index a73678faf25..00000000000 --- a/keyboards/doodboard/duckboard/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2020-2021 doodboard - * - * This 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 - -/* media key slowdown for windows */ -#define TAP_CODE_DELAY 20 - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 8 // Number of LEDs -#endif diff --git a/keyboards/doodboard/duckboard/info.json b/keyboards/doodboard/duckboard/info.json index 367a9b7d72c..3d457701121 100644 --- a/keyboards/doodboard/duckboard/info.json +++ b/keyboards/doodboard/duckboard/info.json @@ -18,6 +18,12 @@ {"pin_a": "F5", "pin_b": "F6", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 20 + }, + "rgblight": { + "led_count": 8 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/doodboard/duckboard/rules.mk b/keyboards/doodboard/duckboard/rules.mk index 4ddaccda461..0551c8b3709 100644 --- a/keyboards/doodboard/duckboard/rules.mk +++ b/keyboards/doodboard/duckboard/rules.mk @@ -13,4 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/doodboard/duckboard_r2/config.h b/keyboards/doodboard/duckboard_r2/config.h deleted file mode 100644 index a73678faf25..00000000000 --- a/keyboards/doodboard/duckboard_r2/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2020-2021 doodboard - * - * This 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 - -/* media key slowdown for windows */ -#define TAP_CODE_DELAY 20 - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 8 // Number of LEDs -#endif diff --git a/keyboards/doodboard/duckboard_r2/info.json b/keyboards/doodboard/duckboard_r2/info.json index 00d0fc64521..4c47e9a70ea 100644 --- a/keyboards/doodboard/duckboard_r2/info.json +++ b/keyboards/doodboard/duckboard_r2/info.json @@ -18,6 +18,12 @@ {"pin_a": "F6", "pin_b": "F5", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 20 + }, + "rgblight": { + "led_count": 8 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/doodboard/duckboard_r2/keymaps/vial/rules.mk b/keyboards/doodboard/duckboard_r2/keymaps/vial/rules.mk index f0daca5a9a7..9506340a670 100644 --- a/keyboards/doodboard/duckboard_r2/keymaps/vial/rules.mk +++ b/keyboards/doodboard/duckboard_r2/keymaps/vial/rules.mk @@ -4,7 +4,7 @@ MOUSEKEY_ENABLE = yes CONSOLE_ENABLE = no RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 LTO_ENABLE = yes # Vial settings diff --git a/keyboards/doodboard/duckboard_r2/rules.mk b/keyboards/doodboard/duckboard_r2/rules.mk index 4ddaccda461..0551c8b3709 100644 --- a/keyboards/doodboard/duckboard_r2/rules.mk +++ b/keyboards/doodboard/duckboard_r2/rules.mk @@ -13,4 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/doppelganger/config.h b/keyboards/doppelganger/config.h index bc64bd9001c..a18b4847465 100644 --- a/keyboards/doppelganger/config.h +++ b/keyboards/doppelganger/config.h @@ -21,10 +21,6 @@ along with this program. If not, see . // #define USE_I2C -#define RGBLED_NUM 2 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 1, 1 } - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/doppelganger/info.json b/keyboards/doppelganger/info.json index 83a3e68be75..ea53bfb9156 100644 --- a/keyboards/doppelganger/info.json +++ b/keyboards/doppelganger/info.json @@ -22,6 +22,10 @@ } } }, + "rgblight": { + "led_count": 2, + "split_count": [1, 1] + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/doro67/multi/info.json b/keyboards/doro67/multi/info.json index db8da861c13..10cd3bb652a 100644 --- a/keyboards/doro67/multi/info.json +++ b/keyboards/doro67/multi/info.json @@ -24,6 +24,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/doro67/regular/info.json b/keyboards/doro67/regular/info.json index 70997d3e1a3..863d935b0a6 100644 --- a/keyboards/doro67/regular/info.json +++ b/keyboards/doro67/regular/info.json @@ -19,6 +19,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/doro67/rgb/config.h b/keyboards/doro67/rgb/config.h index cca3e4d26fb..e18a2313807 100644 --- a/keyboards/doro67/rgb/config.h +++ b/keyboards/doro67/rgb/config.h @@ -70,8 +70,6 @@ along with this program. If not, see . #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define RGBLED_NUM 67 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/doro67/rgb/info.json b/keyboards/doro67/rgb/info.json index f4a7d40dcef..ad7661830a9 100644 --- a/keyboards/doro67/rgb/info.json +++ b/keyboards/doro67/rgb/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F5", "F6", "F7"], @@ -26,6 +26,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/dotmod/dymium65/config.h b/keyboards/dotmod/dymium65/config.h index 61ee7912f08..fa5999ca48d 100644 --- a/keyboards/dotmod/dymium65/config.h +++ b/keyboards/dotmod/dymium65/config.h @@ -1,9 +1,5 @@ -<<<<<<<< HEAD:keyboards/keychron/q7/ansi/keymaps/vial/config.h -/* Copyright 2022 @ Keychron (https://www.keychron.com) -======== /* Copyright 2023 Finalkey * Copyright 2023 LiWenLiu ->>>>>>>> qmk/master:keyboards/dotmod/dymium65/config.h * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,15 +17,6 @@ #pragma once -<<<<<<<< HEAD:keyboards/keychron/q7/ansi/keymaps/vial/config.h -#define VIAL_KEYBOARD_UID {0xF4, 0xB4, 0xCC, 0xD0, 0xA0, 0x27, 0xA9, 0xB3} - -#define VIAL_UNLOCK_COMBO_ROWS {0, 2} -#define VIAL_UNLOCK_COMBO_COLS {0, 13} - -/* Set dynamic keymap layer counts to 5 */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 -======== /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -43,4 +30,3 @@ #define RGB_DISABLE_AFTER_TIMEOUT 0 #define RGB_MATRIX_LED_FLUSH_LIMIT 16 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 ->>>>>>>> qmk/master:keyboards/dotmod/dymium65/config.h diff --git a/keyboards/dotmod/dymium65/info.json b/keyboards/dotmod/dymium65/info.json index 5149dd897fc..650260483c6 100644 --- a/keyboards/dotmod/dymium65/info.json +++ b/keyboards/dotmod/dymium65/info.json @@ -38,7 +38,7 @@ "pin": "D7" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "animations": { "breathing": true, "band_val": true, @@ -77,10 +77,10 @@ {"matrix": [1, 10], "x": 10, "y": 0}, {"matrix": [1, 11], "x": 11, "y": 0}, {"matrix": [1, 12], "x": 12, "y": 0}, - {"matrix": [1, 13], "w": 2, "x": 13, "y": 0}, - {"matrix": [4, 15], "x": 16, "y": 0}, + {"matrix": [1, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [4, 15], "x": 15.25, "y": 0}, - {"matrix": [2, 0], "w": 1.5, "x": 0, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [2, 1], "x": 1.5, "y": 1}, {"matrix": [2, 2], "x": 2.5, "y": 1}, {"matrix": [2, 3], "x": 3.5, "y": 1}, @@ -93,10 +93,10 @@ {"matrix": [2, 10], "x": 10.5, "y": 1}, {"matrix": [2, 11], "x": 11.5, "y": 1}, {"matrix": [2, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1}, - {"matrix": [3, 14], "x": 16, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [3, 14], "x": 15.25, "y": 1.25}, - {"matrix": [3, 0], "w": 1.75, "x": 0, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [3, 1], "x": 1.75, "y": 2}, {"matrix": [3, 2], "x": 2.75, "y": 2}, {"matrix": [3, 3], "x": 3.75, "y": 2}, @@ -108,10 +108,10 @@ {"matrix": [3, 9], "x": 9.75, "y": 2}, {"matrix": [3, 10], "x": 10.75, "y": 2}, {"matrix": [3, 11], "x": 11.75, "y": 2}, - {"matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 2}, - {"matrix": [3, 15], "x": 16, "y": 2}, + {"matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 15], "x": 15.25, "y": 2.25}, - {"matrix": [4, 0], "w": 2.25, "x": 0, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [4, 2], "x": 2.25, "y": 3}, {"matrix": [4, 3], "x": 3.25, "y": 3}, {"matrix": [4, 4], "x": 4.25, "y": 3}, @@ -122,19 +122,19 @@ {"matrix": [4, 9], "x": 9.25, "y": 3}, {"matrix": [4, 10], "x": 10.25, "y": 3}, {"matrix": [4, 11], "x": 11.25, "y": 3}, - {"matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 3}, - {"matrix": [4, 14], "x": 15.25, "y": 3}, + {"matrix": [4, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [4, 14], "x": 14.25, "y": 3.25}, - {"matrix": [5, 0], "w": 1.25, "x": 0, "y": 4}, - {"matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 4}, - {"matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 4}, - {"matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 4}, + {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 4, "w": 6.25}, {"matrix": [5, 9], "x": 10, "y": 4}, {"matrix": [5, 10], "x": 11, "y": 4}, {"matrix": [5, 12], "x": 12, "y": 4}, - {"matrix": [5, 13], "x": 14.25, "y": 4}, - {"matrix": [5, 14], "x": 15.25, "y": 4}, - {"matrix": [5, 15], "x": 16.25, "y": 4} + {"matrix": [5, 13], "x": 13.25, "y": 4.25}, + {"matrix": [5, 14], "x": 14.25, "y": 4.25}, + {"matrix": [5, 15], "x": 15.25, "y": 4.25} ] } } diff --git a/keyboards/dp3000/config.h b/keyboards/dp3000/config.h new file mode 100644 index 00000000000..26e9f037f58 --- /dev/null +++ b/keyboards/dp3000/config.h @@ -0,0 +1,25 @@ +/* + * Copyright 2023 deddia permana (@depermana12) + * + * This 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 RGB_MATRIX_LED_COUNT 8 +#define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/dp3000/dp3000.c b/keyboards/dp3000/dp3000.c new file mode 100644 index 00000000000..3d99670fe36 --- /dev/null +++ b/keyboards/dp3000/dp3000.c @@ -0,0 +1,34 @@ +/* Copyright 2023 deddia permana (@depermana12) + * + * This 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" + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + oled_write_P(PSTR("LAYER: "), false); + oled_write_char('0' + get_highest_layer(layer_state), false); + + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0, 1); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_set_cursor(0, 2); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_set_cursor(0, 3); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + + return false; +} diff --git a/keyboards/dp3000/info.json b/keyboards/dp3000/info.json new file mode 100644 index 00000000000..cdb9fe4547d --- /dev/null +++ b/keyboards/dp3000/info.json @@ -0,0 +1,98 @@ +{ + "manufacturer": "depermana12", + "keyboard_name": "dp3000", + "maintainer": "depermana12", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "encoder": true, + "rgb_matrix": true, + "oled": true, + "mousekey": false, + "nkro": false + }, + "build": { + "lto": true + }, + "url": "https://github.com/depermana12", + "usb": { + "device_version": "1.0.1", + "vid": "0x4450", + "pid": "0x6470" + }, + "encoder": { + "rotary": [ + { "pin_a": "B2", "pin_b": "B1"}, + { "pin_a": "F4", "pin_b": "F5"} + ] + }, + "ws2812": { + "pin": "B5" + }, + "rgb_matrix":{ + "driver":"ws2812", + "max_brightness": 180, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron":true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + }, + "layout":[ + { "matrix": [1, 0], "x": 0, "y": 32, "flags":4 }, + { "matrix": [1, 1], "x": 25, "y": 32, "flags":4 }, + { "matrix": [1, 2], "x": 37, "y": 32, "flags":4 }, + { "matrix": [1, 3], "x": 75, "y": 32, "flags":4 }, + { "matrix": [2, 0], "x": 75, "y": 16, "flags":4 }, + { "matrix": [2, 1], "x": 37, "y": 16, "flags":4 }, + { "matrix": [2, 2], "x": 25, "y": 16, "flags":4 }, + { "matrix": [2, 3], "x": 0, "y": 16, "flags":4 } + ] + }, + "matrix_pins": { + "cols": ["D4", "D7", "B4", "C6"], + "rows": ["F6", "F7", "B3"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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 } + ] + } + } +} diff --git a/keyboards/dp3000/keymaps/default/keymap.c b/keyboards/dp3000/keymaps/default/keymap.c new file mode 100644 index 00000000000..6d3561edbc5 --- /dev/null +++ b/keyboards/dp3000/keymaps/default/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2023 deddia permana (@depermana12) + +This 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] = { + /* + * ┌─────────┐ ┌─────────┐ + * │ mute │ │ MO(1) │ + * ├─────────┼─────────┬─────────┼─────────┤ + * │ 1 │ 2 │ 3 │ 4 │ + * ├─────────┼─────────┼─────────┼─────────┤ + * │ 5 │ 6 │ 7 │ 8 │ + * └─────────┴─────────┴─────────┴─────────┘ + */ + [0] = LAYOUT( + KC_MUTE, MO(1), + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + [1] = LAYOUT( + QK_BOOT, _______, + KC_1, KC_2, KC_3, KC_4, + TO(0), TO(2), TO(3), RGB_TOG + ), + [2] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) + }; +#if defined (ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)}, +}; +#endif diff --git a/keyboards/dp3000/keymaps/default/rules.mk b/keyboards/dp3000/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/dp3000/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/dp3000/keymaps/via/keymap.c b/keyboards/dp3000/keymaps/via/keymap.c new file mode 100644 index 00000000000..6d3561edbc5 --- /dev/null +++ b/keyboards/dp3000/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2023 deddia permana (@depermana12) + +This 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] = { + /* + * ┌─────────┐ ┌─────────┐ + * │ mute │ │ MO(1) │ + * ├─────────┼─────────┬─────────┼─────────┤ + * │ 1 │ 2 │ 3 │ 4 │ + * ├─────────┼─────────┼─────────┼─────────┤ + * │ 5 │ 6 │ 7 │ 8 │ + * └─────────┴─────────┴─────────┴─────────┘ + */ + [0] = LAYOUT( + KC_MUTE, MO(1), + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + [1] = LAYOUT( + QK_BOOT, _______, + KC_1, KC_2, KC_3, KC_4, + TO(0), TO(2), TO(3), RGB_TOG + ), + [2] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) + }; +#if defined (ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)}, +}; +#endif diff --git a/keyboards/dp3000/keymaps/via/rules.mk b/keyboards/dp3000/keymaps/via/rules.mk new file mode 100644 index 00000000000..f1adcab005e --- /dev/null +++ b/keyboards/dp3000/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/dp3000/readme.md b/keyboards/dp3000/readme.md new file mode 100644 index 00000000000..3844a66757d --- /dev/null +++ b/keyboards/dp3000/readme.md @@ -0,0 +1,27 @@ +# DP3000 + +![dp3000 macropad](https://i.imgur.com/uBHS8EYh.jpg) + +dp3000 is a simple yet elegant macropad, 2x4 (8 keys), dual encoder, embedded with an Atmel 32u4 chip, powered by QMK. + +* Keyboard Maintainer: [Deddia Permana](https://github.com/depermana12) +* Hardware Supported: DP3000 PCB, ATmega32u4 +* Hardware Availability: [tokopedia.com/gundamtricks](https://www.tokopedia.com/gundamtricks) + +Make example for this keyboard (after setting up your build environment): + + make dp3000:default + +Flashing example for this keyboard: + + make dp3000: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 reset button twice, located in front of the first rotary encoder (left rotary encoder) +* Keycode in layout: Press the key mapped to QK_BOOT if it is available diff --git a/keyboards/dp3000/rules.mk b/keyboards/dp3000/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/dp3000/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h index b1518cb5fb2..fd83fe2d680 100644 --- a/keyboards/dp60/config.h +++ b/keyboards/dp60/config.h @@ -32,22 +32,6 @@ /* disable print */ //#define NO_PRINT -//rgb light setting -#define RGBLED_NUM 18 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - //rgb matrix setting #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 @@ -88,18 +72,18 @@ #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define 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/dp60/info.json b/keyboards/dp60/info.json index 625ca2a2385..10af7cb6cac 100644 --- a/keyboards/dp60/info.json +++ b/keyboards/dp60/info.json @@ -8,11 +8,28 @@ "pid": "0x00BE", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D7" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/draculad/config.h b/keyboards/draculad/config.h index a9f78283d0c..aabdb63b8d1 100644 --- a/keyboards/draculad/config.h +++ b/keyboards/draculad/config.h @@ -22,17 +22,6 @@ along with this program. If not, see . #define OLED_TIMEOUT 30000 #endif -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLED_NUM 10 -#define RGBLIGHT_SPLIT -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - #define EE_HANDS #define LAYER_STATE_8BIT diff --git a/keyboards/draculad/info.json b/keyboards/draculad/info.json index 57250d57efe..cd157a0ed58 100644 --- a/keyboards/draculad/info.json +++ b/keyboards/draculad/info.json @@ -8,6 +8,19 @@ "pid": "0x1B1E", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "split": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/draculad/keymaps/pimoroni/rules.mk b/keyboards/draculad/keymaps/pimoroni/rules.mk index 66d3bf0e46b..72ace5a3df1 100644 --- a/keyboards/draculad/keymaps/pimoroni/rules.mk +++ b/keyboards/draculad/keymaps/pimoroni/rules.mk @@ -2,5 +2,4 @@ POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball OLED_ENABLE = yes -OLED_DRIVER = SSD1306 MOUSEKEY_ENABLE = yes diff --git a/keyboards/draculad/rules.mk b/keyboards/draculad/rules.mk index 453d3b26b1d..5f5fd002a1a 100644 --- a/keyboards/draculad/rules.mk +++ b/keyboards/draculad/rules.mk @@ -12,7 +12,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes ENCODER_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/draytronics/daisy/config.h b/keyboards/draytronics/daisy/config.h index 7b129153937..96a43955847 100644 --- a/keyboards/draytronics/daisy/config.h +++ b/keyboards/draytronics/daisy/config.h @@ -18,8 +18,6 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -37,21 +35,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -//Underglow - #define RGBLED_NUM 4 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /*== all animations 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 diff --git a/keyboards/draytronics/daisy/info.json b/keyboards/draytronics/daisy/info.json index ae0579b6678..4597ca9d178 100644 --- a/keyboards/draytronics/daisy/info.json +++ b/keyboards/draytronics/daisy/info.json @@ -19,6 +19,27 @@ {"pin_a": "D0", "pin_b": "D1"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/draytronics/elise/config.h b/keyboards/draytronics/elise/config.h index 9d350995526..0df48812aa3 100644 --- a/keyboards/draytronics/elise/config.h +++ b/keyboards/draytronics/elise/config.h @@ -22,21 +22,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// ws2812 options - #define RGBLED_NUM 7 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /*== all animations 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 diff --git a/keyboards/draytronics/elise/info.json b/keyboards/draytronics/elise/info.json index 81be5cffd7c..80f4fa69e53 100644 --- a/keyboards/draytronics/elise/info.json +++ b/keyboards/draytronics/elise/info.json @@ -13,6 +13,24 @@ "rows": ["B2", "B3", "B1", "F0", "F1"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/draytronics/elise_v2/config.h b/keyboards/draytronics/elise_v2/config.h index fdbdb23ce42..0df48812aa3 100644 --- a/keyboards/draytronics/elise_v2/config.h +++ b/keyboards/draytronics/elise_v2/config.h @@ -22,21 +22,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// ws2812 options - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /*== all animations 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 diff --git a/keyboards/draytronics/elise_v2/info.json b/keyboards/draytronics/elise_v2/info.json index faef95cbee0..966ca3faa42 100644 --- a/keyboards/draytronics/elise_v2/info.json +++ b/keyboards/draytronics/elise_v2/info.json @@ -8,6 +8,24 @@ "pid": "0x454C", "device_version": "2.0.0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/drewkeys/mercury65/info.json b/keyboards/drewkeys/mercury65/info.json new file mode 100644 index 00000000000..93f7b2ec3bc --- /dev/null +++ b/keyboards/drewkeys/mercury65/info.json @@ -0,0 +1,99 @@ +{ + "keyboard_name": "mercury65", + "maintainer": "Drewkeys", + "manufacturer": "RocketKeyboards", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "url": "https://www.rocketkeyboards.com/collections/mercury65/products/gb-mercury65-keyboard", + "usb": { + "vid": "0xDE43", + "pid": "0x1034", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B3", "B7", "D1", "D2", "D3", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5"], + "rows": ["D5", "D4", "D6", "D0", "E6"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "label":"`", "x":0, "y":0}, + {"matrix": [0, 1], "label":"!", "x":1, "y":0}, + {"matrix": [0, 2], "label":"@", "x":2, "y":0}, + {"matrix": [0, 3], "label":"#", "x":3, "y":0}, + {"matrix": [0, 4], "label":"$", "x":4, "y":0}, + {"matrix": [0, 5], "label":"%", "x":5, "y":0}, + {"matrix": [0, 6], "label":"^", "x":6, "y":0}, + {"matrix": [0, 7], "label":"&", "x":7, "y":0}, + {"matrix": [0, 8], "label":"*", "x":8, "y":0}, + {"matrix": [0, 9], "label":"(", "x":9, "y":0}, + {"matrix": [0, 10], "label":")", "x":10, "y":0}, + {"matrix": [0, 11], "label":"_", "x":11, "y":0}, + {"matrix": [0, 12], "label":"+", "x":12, "y":0}, + {"matrix": [0, 13], "label":"Del", "x":13, "y":0}, + {"matrix": [0, 14], "label":"Bsp", "x":14, "y":0}, + {"matrix": [1, 0], "label":"Tab", "x":0, "y":1, "w":1.5}, + {"matrix": [1, 2], "label":"Q", "x":1.5, "y":1}, + {"matrix": [1, 3], "label":"W", "x":2.5, "y":1}, + {"matrix": [1, 4], "label":"E", "x":3.5, "y":1}, + {"matrix": [1, 5], "label":"R", "x":4.5, "y":1}, + {"matrix": [1, 6], "label":"T", "x":5.5, "y":1}, + {"matrix": [1, 7], "label":"Y", "x":6.5, "y":1}, + {"matrix": [1, 8], "label":"U", "x":7.5, "y":1}, + {"matrix": [1, 9], "label":"I", "x":8.5, "y":1}, + {"matrix": [1, 10], "label":"O", "x":9.5, "y":1}, + {"matrix": [1, 11], "label":"P", "x":10.5, "y":1}, + {"matrix": [1, 12], "label":"{", "x":11.5, "y":1}, + {"matrix": [1, 13], "label":"}", "x":12.5, "y":1}, + {"matrix": [1, 14], "label":"|", "x":13.5, "y":1, "w":1.5}, + {"matrix": [1, 16], "label":"PgUp", "x":15.5, "y":1}, + {"matrix": [2, 0], "label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"matrix": [2, 2], "label":"A", "x":1.75, "y":2}, + {"matrix": [2, 3], "label":"S", "x":2.75, "y":2}, + {"matrix": [2, 4], "label":"D", "x":3.75, "y":2}, + {"matrix": [2, 5], "label":"F", "x":4.75, "y":2}, + {"matrix": [2, 6], "label":"G", "x":5.75, "y":2}, + {"matrix": [2, 7], "label":"H", "x":6.75, "y":2}, + {"matrix": [2, 8], "label":"J", "x":7.75, "y":2}, + {"matrix": [2, 9], "label":"K", "x":8.75, "y":2}, + {"matrix": [2, 10], "label":"L", "x":9.75, "y":2}, + {"matrix": [2, 11], "label":":", "x":10.75, "y":2}, + {"matrix": [2, 12], "label":"@", "x":11.75, "y":2}, + {"matrix": [2, 13], "label":"ISO", "x":12.75, "y":2}, + {"matrix": [2, 14], "label":"Enter", "x":13.75, "y":2, "w":1.25}, + {"matrix": [2, 16], "label":"Home", "x":15.5, "y":2}, + {"matrix": [3, 0], "label":"Shift", "x":0, "y":3, "w":1.25}, + {"matrix": [3, 1], "label":"\\", "x":1.25, "y":3}, + {"matrix": [3, 2], "label":"Z", "x":2.25, "y":3}, + {"matrix": [3, 3], "label":"X", "x":3.25, "y":3}, + {"matrix": [3, 4], "label":"C", "x":4.25, "y":3}, + {"matrix": [3, 5], "label":"V", "x":5.25, "y":3}, + {"matrix": [3, 6], "label":"B", "x":6.25, "y":3}, + {"matrix": [3, 7], "label":"N", "x":7.25, "y":3}, + {"matrix": [3, 8], "label":"M", "x":8.25, "y":3}, + {"matrix": [3, 9], "label":"<", "x":9.25, "y":3}, + {"matrix": [3, 10], "label":">", "x":10.25, "y":3}, + {"matrix": [3, 11], "label":"?", "x":11.25, "y":3}, + {"matrix": [3, 13], "label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"matrix": [3, 14], "label":"End", "x":15.5, "y":3}, + {"matrix": [3, 16], "label":"\u2191", "x":14.25, "y":3.25}, + {"matrix": [4, 0], "label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"matrix": [4, 1], "label":"Win", "x":1.25, "y":4, "w":1.25}, + {"matrix": [4, 2], "label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"matrix": [4, 6], "x":3.75, "y":4, "w":6.25}, + {"matrix": [4, 10], "label":"AltGr", "x":10, "y":4, "w":1.25}, + {"matrix": [4, 11], "label":"Win", "x":11.25, "y":4, "w":1.25}, + {"matrix": [4, 13], "label":"\u2190", "x":13.25, "y":4.25}, + {"matrix": [4, 14], "label":"\u2193", "x":14.25, "y":4.25}, + {"matrix": [4, 15], "label":"\u2192", "x":15.25, "y":4.25}] + } + } + +} diff --git a/keyboards/drewkeys/mercury65/keymaps/default/keymap.c b/keyboards/drewkeys/mercury65/keymaps/default/keymap.c new file mode 100644 index 00000000000..2f9cc945c9d --- /dev/null +++ b/keyboards/drewkeys/mercury65/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2023 Drewkeys + * + * This 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 + +// 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 layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base https://i.imgur.com/viQdtbB.png */ + [_BASE] = 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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + 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_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN] = 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_BSLS, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/drewkeys/mercury65/keymaps/via/keymap.c b/keyboards/drewkeys/mercury65/keymaps/via/keymap.c new file mode 100644 index 00000000000..2af6a064f29 --- /dev/null +++ b/keyboards/drewkeys/mercury65/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2023 Drewkeys + * + * This 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 + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base https://i.imgur.com/viQdtbB.png */ + [_BASE] = 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_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + 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_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = 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_BSLS, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/drewkeys/mercury65/keymaps/via/rules.mk b/keyboards/drewkeys/mercury65/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/drewkeys/mercury65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/drewkeys/mercury65/readme.md b/keyboards/drewkeys/mercury65/readme.md new file mode 100644 index 00000000000..be8f4c17843 --- /dev/null +++ b/keyboards/drewkeys/mercury65/readme.md @@ -0,0 +1,23 @@ +# Mercury65 + +![Mercury65](https://i.imgur.com/rjfARj3h.jpeg) + +*65% Form Factor with a Separated Arrow Cluster used for Mercury65* + + +* Keyboard Maintainer: [Drewkeys](https://github.com/drewpyun) +* Hardware Supported: Made specifically for Mercury65, 65% hotswap supported +* Hardware Availability: https://www.rocketkeyboards.com/collections/mercury65/products/gb-mercury65-keyboard + +Make example for this keyboard (after setting up your build environment): + + make drewkeys/mercury65:default + +Flashing example for this keyboard: + + make drewkeys/mercury65:default:flash +## Bootloader + +Resetting Board: Press the button on the PCB next to the spacebar to soft reset the board to reflash (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/drewkeys/mercury65/rules.mk b/keyboards/drewkeys/mercury65/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/drewkeys/mercury65/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/drop/alt/keymaps/default/keymap.c b/keyboards/drop/alt/keymaps/default/keymap.c new file mode 100644 index 00000000000..28d7232bcfc --- /dev/null +++ b/keyboards/drop/alt/keymaps/default/keymap.c @@ -0,0 +1,20 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_HOME, + 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_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MUTE, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD, + _______, _______, _______, EE_CLR, KC_APP, _______, KC_HOME, KC_PGDN, KC_END + ) +}; diff --git a/keyboards/drop/alt/keymaps/via/config.h b/keyboards/drop/alt/keymaps/via/config.h new file mode 100644 index 00000000000..616f8e32910 --- /dev/null +++ b/keyboards/drop/alt/keymaps/via/config.h @@ -0,0 +1,5 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/drop/alt/keymaps/via/keymap.c b/keyboards/drop/alt/keymaps/via/keymap.c new file mode 100644 index 00000000000..28d7232bcfc --- /dev/null +++ b/keyboards/drop/alt/keymaps/via/keymap.c @@ -0,0 +1,20 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_HOME, + 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_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MUTE, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD, + _______, _______, _______, EE_CLR, KC_APP, _______, KC_HOME, KC_PGDN, KC_END + ) +}; diff --git a/keyboards/drop/alt/keymaps/via/rules.mk b/keyboards/drop/alt/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/drop/alt/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/drop/alt/v2/board.h b/keyboards/drop/alt/v2/board.h new file mode 100644 index 00000000000..ed3ea4b1f77 --- /dev/null +++ b/keyboards/drop/alt/v2/board.h @@ -0,0 +1,8 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h new file mode 100644 index 00000000000..f3f432390e1 --- /dev/null +++ b/keyboards/drop/alt/v2/config.h @@ -0,0 +1,29 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define ADC_BUFFER_DEPTH 4 +#define ADC_SAMPLING_RATE ADC_SMPR_SMP_601P5 +#define ADC_RESOLUTION ADC_CFGR_RES_12BITS + +#define I2C_DRIVER I2CD2 +#define I2C1_SCL_PIN A9 +#define I2C1_SDA_PIN A10 + +#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10101000 +#define EXTERNAL_EEPROM_WP_PIN B5 +#define EEPROM_I2C_24LC256 + +#define DRIVER_ADDR_1 0b1010011 +#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 111 +#define ISSI_PWM_FREQUENCY 0b010 // 26k + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_DEFAULT_VAL 100 +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define RGB_MATRIX_CYCLE_ZONES_ENABLE +#define RGB_MATRIX_CAPS_LOCK_INDEX 30 diff --git a/keyboards/drop/alt/v2/halconf.h b/keyboards/drop/alt/v2/halconf.h new file mode 100644 index 00000000000..77495ecfa0d --- /dev/null +++ b/keyboards/drop/alt/v2/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/drop/alt/v2/info.json b/keyboards/drop/alt/v2/info.json new file mode 100644 index 00000000000..bfd7942fffd --- /dev/null +++ b/keyboards/drop/alt/v2/info.json @@ -0,0 +1,261 @@ +{ + "keyboard_name": "ALT v2", + "manufacturer": "Drop Inc.", + "maintainer": "zvecr", + "processor": "STM32F303", + "bootloader": "tinyuf2", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["C0", "C1", "C2", "C3", "B4", "B3", "C6", "C7", "C8", "C9", "C10", "C11", "C12", "C13", "C14"], + "rows": ["A0", "A1", "A2", "A3", "B10"] + }, + "usb": { + "vid": "0x359B", + "pid": "0x0006", + "device_version": "2.0.0" + }, + "eeprom": { + "driver": "i2c" + }, + "features": { + "rgb_matrix": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "label":"ESCAPE", "x":0, "y":0}, + {"matrix": [0, 1], "label":"1", "x":1, "y":0}, + {"matrix": [0, 2], "label":"2", "x":2, "y":0}, + {"matrix": [0, 3], "label":"3", "x":3, "y":0}, + {"matrix": [0, 4], "label":"4", "x":4, "y":0}, + {"matrix": [0, 5], "label":"5", "x":5, "y":0}, + {"matrix": [0, 6], "label":"6", "x":6, "y":0}, + {"matrix": [0, 7], "label":"7", "x":7, "y":0}, + {"matrix": [0, 8], "label":"8", "x":8, "y":0}, + {"matrix": [0, 9], "label":"9", "x":9, "y":0}, + {"matrix": [0, 10], "label":"0", "x":10, "y":0}, + {"matrix": [0, 11], "label":"MINUS", "x":11, "y":0}, + {"matrix": [0, 12], "label":"EQUALS", "x":12, "y":0}, + {"matrix": [0, 13], "label":"BACKSPACE", "x":13, "y":0, "w":2}, + {"matrix": [0, 14], "label":"DELETE", "x":15, "y":0}, + {"matrix": [1, 0], "label":"TAB", "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "label":"Q", "x":1.5, "y":1}, + {"matrix": [1, 2], "label":"W", "x":2.5, "y":1}, + {"matrix": [1, 3], "label":"E", "x":3.5, "y":1}, + {"matrix": [1, 4], "label":"R", "x":4.5, "y":1}, + {"matrix": [1, 5], "label":"T", "x":5.5, "y":1}, + {"matrix": [1, 6], "label":"Y", "x":6.5, "y":1}, + {"matrix": [1, 7], "label":"U", "x":7.5, "y":1}, + {"matrix": [1, 8], "label":"I", "x":8.5, "y":1}, + {"matrix": [1, 9], "label":"O", "x":9.5, "y":1}, + {"matrix": [1, 10], "label":"P", "x":10.5, "y":1}, + {"matrix": [1, 11], "label":"LEFT BRACKET", "x":11.5, "y":1}, + {"matrix": [1, 12], "label":"RIGHT BRACKET", "x":12.5, "y":1}, + {"matrix": [1, 13], "label":"BACK SLASH", "x":13.5, "y":1, "w":1.5}, + {"matrix": [1, 14], "label":"HOME", "x":15, "y":1}, + {"matrix": [2, 0], "label":"CAPS LOCK", "x":0, "y":2, "w":1.75}, + {"matrix": [2, 1], "label":"A", "x":1.75, "y":2}, + {"matrix": [2, 2], "label":"S", "x":2.75, "y":2}, + {"matrix": [2, 3], "label":"D", "x":3.75, "y":2}, + {"matrix": [2, 4], "label":"F", "x":4.75, "y":2}, + {"matrix": [2, 5], "label":"G", "x":5.75, "y":2}, + {"matrix": [2, 6], "label":"H", "x":6.75, "y":2}, + {"matrix": [2, 7], "label":"J", "x":7.75, "y":2}, + {"matrix": [2, 8], "label":"K", "x":8.75, "y":2}, + {"matrix": [2, 9], "label":"L", "x":9.75, "y":2}, + {"matrix": [2, 10], "label":"SEMICOLON", "x":10.75, "y":2}, + {"matrix": [2, 11], "label":"SINGLE TICK", "x":11.75, "y":2}, + {"matrix": [2, 13], "label":"ENTER", "x":12.75, "y":2, "w":2.25}, + {"matrix": [2, 14], "label":"PAGE UP", "x":15, "y":2}, + {"matrix": [3, 0], "label":"LEFT SHIFT", "x":0, "y":3, "w":2.25}, + {"matrix": [3, 2], "label":"Z", "x":2.25, "y":3}, + {"matrix": [3, 3], "label":"X", "x":3.25, "y":3}, + {"matrix": [3, 4], "label":"C", "x":4.25, "y":3}, + {"matrix": [3, 5], "label":"V", "x":5.25, "y":3}, + {"matrix": [3, 6], "label":"B", "x":6.25, "y":3}, + {"matrix": [3, 7], "label":"N", "x":7.25, "y":3}, + {"matrix": [3, 8], "label":"M", "x":8.25, "y":3}, + {"matrix": [3, 9], "label":"COMMA", "x":9.25, "y":3}, + {"matrix": [3, 10], "label":"PERIOD", "x":10.25, "y":3}, + {"matrix": [3, 11], "label":"FORWARD SLASH", "x":11.25, "y":3}, + {"matrix": [3, 12], "label":"RIGHT SHIFT", "x":12.25, "y":3, "w":1.75}, + {"matrix": [3, 13], "label":"UP ARROW", "x":14, "y":3}, + {"matrix": [3, 14], "label":"PAGE DOWN", "x":15, "y":3}, + {"matrix": [4, 0], "label":"LEFT CTRL", "x":0, "y":4, "w":1.25}, + {"matrix": [4, 1], "label":"LEFT WIN", "x":1.25, "y":4, "w":1.25}, + {"matrix": [4, 2], "label":"LEFT ALT", "x":2.5, "y":4, "w":1.25}, + {"matrix": [4, 6], "label":"SPACEBAR", "x":3.75, "y":4, "w":6.25}, + {"matrix": [4, 10], "label":"RIGHT ALT", "x":10, "y":4, "w":1.25}, + {"matrix": [4, 11], "label":"FN", "x":11.25, "y":4, "w":1.25}, + {"matrix": [4, 12], "label":"LEFT ARROW", "x":13, "y":4}, + {"matrix": [4, 13], "label":"DOWN ARROW", "x":14, "y":4}, + {"matrix": [4, 14], "label":"RIGHT ARROW", "x":15, "y":4} + ] + } + }, + "rgb_matrix": { + "driver": "is31fl3733", + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 8, "y": 56 }, + { "flags": 4, "matrix": [0, 1], "x": 22, "y": 56 }, + { "flags": 4, "matrix": [0, 2], "x": 35, "y": 56 }, + { "flags": 4, "matrix": [0, 3], "x": 49, "y": 56 }, + { "flags": 4, "matrix": [0, 4], "x": 63, "y": 56 }, + { "flags": 4, "matrix": [0, 5], "x": 77, "y": 56 }, + { "flags": 4, "matrix": [0, 6], "x": 91, "y": 56 }, + { "flags": 4, "matrix": [0, 7], "x": 105, "y": 56 }, + { "flags": 4, "matrix": [0, 8], "x": 118, "y": 56 }, + { "flags": 4, "matrix": [0, 9], "x": 132, "y": 56 }, + { "flags": 4, "matrix": [0, 10], "x": 146, "y": 56 }, + { "flags": 4, "matrix": [0, 11], "x": 160, "y": 56 }, + { "flags": 4, "matrix": [0, 12], "x": 174, "y": 56 }, + { "flags": 4, "matrix": [0, 13], "x": 195, "y": 56 }, + { "flags": 4, "matrix": [0, 14], "x": 215, "y": 56 }, + { "flags": 4, "matrix": [1, 0], "x": 11, "y": 44 }, + { "flags": 4, "matrix": [1, 1], "x": 28, "y": 44 }, + { "flags": 4, "matrix": [1, 2], "x": 42, "y": 44 }, + { "flags": 4, "matrix": [1, 3], "x": 56, "y": 44 }, + { "flags": 4, "matrix": [1, 4], "x": 70, "y": 44 }, + { "flags": 4, "matrix": [1, 5], "x": 84, "y": 44 }, + { "flags": 4, "matrix": [1, 6], "x": 98, "y": 44 }, + { "flags": 4, "matrix": [1, 7], "x": 112, "y": 44 }, + { "flags": 4, "matrix": [1, 8], "x": 125, "y": 44 }, + { "flags": 4, "matrix": [1, 9], "x": 139, "y": 44 }, + { "flags": 4, "matrix": [1, 10], "x": 153, "y": 44 }, + { "flags": 4, "matrix": [1, 11], "x": 167, "y": 44 }, + { "flags": 4, "matrix": [1, 12], "x": 181, "y": 44 }, + { "flags": 4, "matrix": [1, 13], "x": 198, "y": 44 }, + { "flags": 4, "matrix": [1, 14], "x": 215, "y": 44 }, + { "flags": 4, "matrix": [2, 0], "x": 13, "y": 32 }, + { "flags": 4, "matrix": [2, 1], "x": 32, "y": 32 }, + { "flags": 4, "matrix": [2, 2], "x": 46, "y": 32 }, + { "flags": 4, "matrix": [2, 3], "x": 60, "y": 32 }, + { "flags": 4, "matrix": [2, 4], "x": 73, "y": 32 }, + { "flags": 4, "matrix": [2, 5], "x": 87, "y": 32 }, + { "flags": 4, "matrix": [2, 6], "x": 101, "y": 32 }, + { "flags": 4, "matrix": [2, 7], "x": 115, "y": 32 }, + { "flags": 4, "matrix": [2, 8], "x": 129, "y": 32 }, + { "flags": 4, "matrix": [2, 9], "x": 143, "y": 32 }, + { "flags": 4, "matrix": [2, 10], "x": 156, "y": 32 }, + { "flags": 4, "matrix": [2, 11], "x": 170, "y": 32 }, + { "flags": 4, "matrix": [2, 13], "x": 193, "y": 32 }, + { "flags": 4, "matrix": [2, 14], "x": 215, "y": 32 }, + { "flags": 4, "matrix": [3, 0], "x": 16, "y": 19 }, + { "flags": 4, "matrix": [3, 2], "x": 39, "y": 19 }, + { "flags": 4, "matrix": [3, 3], "x": 53, "y": 19 }, + { "flags": 4, "matrix": [3, 4], "x": 67, "y": 19 }, + { "flags": 4, "matrix": [3, 5], "x": 80, "y": 19 }, + { "flags": 4, "matrix": [3, 6], "x": 94, "y": 19 }, + { "flags": 4, "matrix": [3, 7], "x": 108, "y": 19 }, + { "flags": 4, "matrix": [3, 8], "x": 122, "y": 19 }, + { "flags": 4, "matrix": [3, 9], "x": 136, "y": 19 }, + { "flags": 4, "matrix": [3, 10], "x": 150, "y": 19 }, + { "flags": 4, "matrix": [3, 11], "x": 163, "y": 19 }, + { "flags": 4, "matrix": [3, 12], "x": 182, "y": 19 }, + { "flags": 4, "matrix": [3, 13], "x": 201, "y": 19 }, + { "flags": 4, "matrix": [3, 14], "x": 215, "y": 19 }, + { "flags": 4, "matrix": [4, 0], "x": 9, "y": 7 }, + { "flags": 4, "matrix": [4, 1], "x": 27, "y": 7 }, + { "flags": 4, "matrix": [4, 2], "x": 44, "y": 7 }, + { "flags": 4, "matrix": [4, 6], "x": 96, "y": 7 }, + { "flags": 4, "matrix": [4, 10], "x": 148, "y": 7 }, + { "flags": 4, "matrix": [4, 11], "x": 165, "y": 7 }, + { "flags": 4, "matrix": [4, 12], "x": 188, "y": 7 }, + { "flags": 4, "matrix": [4, 13], "x": 201, "y": 7 }, + { "flags": 4, "matrix": [4, 14], "x": 215, "y": 7 }, + { "flags": 2, "x": 1, "y": 1 }, + { "flags": 2, "x": 15, "y": 0 }, + { "flags": 2, "x": 31, "y": 0 }, + { "flags": 2, "x": 47, "y": 0 }, + { "flags": 2, "x": 63, "y": 0 }, + { "flags": 2, "x": 79, "y": 0 }, + { "flags": 2, "x": 95, "y": 0 }, + { "flags": 2, "x": 112, "y": 0 }, + { "flags": 2, "x": 128, "y": 0 }, + { "flags": 2, "x": 144, "y": 0 }, + { "flags": 2, "x": 160, "y": 0 }, + { "flags": 2, "x": 176, "y": 0 }, + { "flags": 2, "x": 192, "y": 0 }, + { "flags": 2, "x": 208, "y": 0 }, + { "flags": 2, "x": 222, "y": 1 }, + { "flags": 2, "x": 224, "y": 13 }, + { "flags": 2, "x": 224, "y": 25 }, + { "flags": 2, "x": 224, "y": 38 }, + { "flags": 2, "x": 224, "y": 50 }, + { "flags": 2, "x": 222, "y": 62 }, + { "flags": 2, "x": 191, "y": 64 }, + { "flags": 2, "x": 179, "y": 64 }, + { "flags": 2, "x": 167, "y": 64 }, + { "flags": 2, "x": 153, "y": 64 }, + { "flags": 2, "x": 139, "y": 64 }, + { "flags": 2, "x": 125, "y": 64 }, + { "flags": 2, "x": 112, "y": 64 }, + { "flags": 2, "x": 98, "y": 64 }, + { "flags": 2, "x": 84, "y": 64 }, + { "flags": 2, "x": 70, "y": 64 }, + { "flags": 2, "x": 56, "y": 64 }, + { "flags": 2, "x": 42, "y": 64 }, + { "flags": 2, "x": 28, "y": 64 }, + { "flags": 2, "x": 1, "y": 62 }, + { "flags": 2, "x": 0, "y": 50 }, + { "flags": 2, "x": 0, "y": 38 }, + { "flags": 2, "x": 0, "y": 25 }, + { "flags": 2, "x": 0, "y": 13 } + ] + } +} diff --git a/keyboards/drop/alt/v2/mcuconf.h b/keyboards/drop/alt/v2/mcuconf.h new file mode 100644 index 00000000000..dc3e45dac05 --- /dev/null +++ b/keyboards/drop/alt/v2/mcuconf.h @@ -0,0 +1,20 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 16 + +#undef STM32_PREDIV_VALUE +#define STM32_PREDIV_VALUE 2 + +#undef STM32_ADC_USE_ADC2 +#define STM32_ADC_USE_ADC2 TRUE + +#undef STM32_ADC_USE_ADC3 +#define STM32_ADC_USE_ADC3 TRUE + +#undef STM32_I2C_USE_I2C2 +#define STM32_I2C_USE_I2C2 TRUE diff --git a/keyboards/drop/alt/v2/readme.md b/keyboards/drop/alt/v2/readme.md new file mode 100644 index 00000000000..bf69d4b2896 --- /dev/null +++ b/keyboards/drop/alt/v2/readme.md @@ -0,0 +1,24 @@ +# ALT v2 + +The Drop ALT v2 is a 65% mechanical keyboard featuring dual USB-C connectors, an integrated Hi-Speed USB 2.0 hub, and fully customizable RGB backlighting and underlighting. + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Availability: [Drop ALT Mechanical Keyboard](https://drop.com/buy/drop-alt-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make drop/alt/v2:default + +Flashing example for this keyboard: + + make drop/alt/v2: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**: Quickly double tap the button located under the spacebar +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/drop/alt/v2/rules.mk b/keyboards/drop/alt/v2/rules.mk new file mode 100644 index 00000000000..a504f81cb14 --- /dev/null +++ b/keyboards/drop/alt/v2/rules.mk @@ -0,0 +1,4 @@ +UF2_DEVICE_TYPE_ID = 0x35446147 +UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID) + +SRC += analog.c lib/common.c lib/mux.c diff --git a/keyboards/drop/alt/v2/v2.c b/keyboards/drop/alt/v2/v2.c new file mode 100644 index 00000000000..2e183fe4d82 --- /dev/null +++ b/keyboards/drop/alt/v2/v2.c @@ -0,0 +1,114 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix.h" + +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + { 1, B_2, A_2, C_2 }, + { 1, E_3, D_3, F_3 }, + { 1, E_4, D_4, F_4 }, + { 1, E_5, D_5, F_5 }, + { 1, E_6, D_6, F_6 }, + { 1, E_7, D_7, F_7 }, + { 1, E_8, D_8, F_8 }, + { 1, B_13, A_13, C_13 }, + { 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 }, + { 0, E_5, D_5, F_5 }, + { 0, E_6, D_6, F_6 }, + { 0, B_7, A_7, C_7 }, + { 1, E_2, D_2, F_2 }, + { 1, H_3, G_3, I_3 }, + { 1, H_4, G_4, I_4 }, + { 1, H_5, G_5, I_5 }, + { 1, H_6, G_6, I_6 }, + { 1, H_7, G_7, I_7 }, + { 1, H_8, G_8, I_8 }, + { 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, K_11, J_11, L_11 }, + { 0, H_6, G_6, I_6 }, + { 0, E_7, D_7, F_7 }, + { 1, H_2, G_2, I_2 }, + { 1, K_3, J_3, L_3 }, + { 1, K_4, J_4, L_4 }, + { 1, K_5, J_5, L_5 }, + { 1, K_6, J_6, L_6 }, + { 1, K_7, J_7, L_7 }, + { 1, K_8, J_8, L_8 }, + { 0, K_1, J_1, L_1 }, + { 0, K_2, J_2, L_2 }, + { 0, K_3, J_3, L_3 }, + { 0, K_4, J_4, L_4 }, + { 0, K_5, J_5, L_5 }, + { 0, K_6, J_6, L_6 }, + { 0, H_7, G_7, I_7 }, + { 1, K_2, J_2, L_2 }, + { 1, E_9, D_9, F_9 }, + { 1, B_9, A_9, C_9 }, + { 1, K_9, J_9, L_9 }, + { 1, H_9, G_9, I_9 }, + { 1, K_12, J_12, L_12 }, + { 1, K_13, J_13, L_13 }, + { 0, K_9, J_9, L_9 }, + { 0, K_10, J_10, L_10 }, + { 0, H_10, G_10, I_10 }, + { 0, H_11, G_11, I_11 }, + { 0, B_11, A_11, C_11 }, + { 0, E_11, D_11, F_11 }, + { 0, K_7, J_7, L_7 }, + { 1, H_10, G_10, I_10 }, + { 1, E_10, D_10, F_10 }, + { 1, B_10, A_10, C_10 }, + { 1, H_12, G_12, I_12 }, + { 0, E_10, D_10, F_10 }, + { 0, B_10, A_10, C_10 }, + { 0, B_12, A_12, C_12 }, + { 0, H_12, G_12, I_12 }, + { 0, E_12, D_12, F_12 }, + { 1, K_11, J_11, L_11 }, + { 1, H_11, G_11, I_11 }, + { 1, E_11, D_11, F_11 }, + { 1, B_11, A_11, C_11 }, + { 1, B_12, A_12, C_12 }, + { 1, E_12, D_12, F_12 }, + { 1, E_13, D_13, F_13 }, + { 1, H_13, G_13, I_13 }, + { 0, H_9, G_9, I_9 }, + { 0, E_9, D_9, F_9 }, + { 0, B_9, A_9, C_9 }, + { 0, B_13, A_13, C_13 }, + { 0, H_13, G_13, I_13 }, + { 0, E_13, D_13, F_13 }, + { 0, K_13, J_13, L_13 }, + { 0, K_12, J_12, L_12 }, + { 0, K_8, J_8, L_8 }, + { 0, H_8, G_8, I_8 }, + { 0, E_8, D_8, F_8 }, + { 0, B_8, A_8, C_8 }, + { 0, B_6, A_6, C_6 }, + { 0, B_5, A_5, C_5 }, + { 0, B_4, A_4, C_4 }, + { 0, B_3, A_3, C_3 }, + { 0, B_2, A_2, C_2 }, + { 0, B_1, A_1, C_1 }, + { 0, B_14, A_14, C_14 }, + { 1, B_8, A_8, C_8 }, + { 1, B_7, A_7, C_7 }, + { 1, B_6, A_6, C_6 }, + { 1, B_5, A_5, C_5 }, + { 1, B_4, A_4, C_4 }, + { 1, B_3, A_3, C_3 }, + { 1, B_1, A_1, C_1 }, + { 1, E_1, D_1, F_1 }, + { 1, H_1, G_1, I_1 }, + { 1, K_1, J_1, L_1 }, + { 1, K_10, J_10, L_10 }, +}; + +#endif diff --git a/keyboards/drop/ctrl/keymaps/default/keymap.c b/keyboards/drop/ctrl/keymaps/default/keymap.c new file mode 100644 index 00000000000..82b10889217 --- /dev/null +++ b/keyboards/drop/ctrl/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/drop/ctrl/keymaps/via/config.h b/keyboards/drop/ctrl/keymaps/via/config.h new file mode 100644 index 00000000000..616f8e32910 --- /dev/null +++ b/keyboards/drop/ctrl/keymaps/via/config.h @@ -0,0 +1,5 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/drop/ctrl/keymaps/via/keymap.c b/keyboards/drop/ctrl/keymaps/via/keymap.c new file mode 100644 index 00000000000..82b10889217 --- /dev/null +++ b/keyboards/drop/ctrl/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/drop/ctrl/keymaps/via/rules.mk b/keyboards/drop/ctrl/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/drop/ctrl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/drop/ctrl/v2/board.h b/keyboards/drop/ctrl/v2/board.h new file mode 100644 index 00000000000..ed3ea4b1f77 --- /dev/null +++ b/keyboards/drop/ctrl/v2/board.h @@ -0,0 +1,8 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h new file mode 100644 index 00000000000..539c505cb38 --- /dev/null +++ b/keyboards/drop/ctrl/v2/config.h @@ -0,0 +1,29 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define ADC_BUFFER_DEPTH 4 +#define ADC_SAMPLING_RATE ADC_SMPR_SMP_601P5 +#define ADC_RESOLUTION ADC_CFGR_RES_12BITS + +#define I2C_DRIVER I2CD2 +#define I2C1_SCL_PIN A9 +#define I2C1_SDA_PIN A10 + +#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10101000 +#define EXTERNAL_EEPROM_WP_PIN B5 +#define EEPROM_I2C_24LC256 + +#define DRIVER_ADDR_1 0b1010011 +#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 119 +#define ISSI_PWM_FREQUENCY 0b010 // 26k + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_DEFAULT_VAL 100 +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define RGB_MATRIX_CYCLE_ZONES_ENABLE +#define RGB_MATRIX_CAPS_LOCK_INDEX 50 diff --git a/keyboards/drop/ctrl/v2/halconf.h b/keyboards/drop/ctrl/v2/halconf.h new file mode 100644 index 00000000000..77495ecfa0d --- /dev/null +++ b/keyboards/drop/ctrl/v2/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/drop/ctrl/v2/info.json b/keyboards/drop/ctrl/v2/info.json new file mode 100644 index 00000000000..3d113591208 --- /dev/null +++ b/keyboards/drop/ctrl/v2/info.json @@ -0,0 +1,295 @@ +{ + "keyboard_name": "CTRL v2", + "manufacturer": "Drop Inc.", + "maintainer": "zvecr", + "processor": "STM32F303", + "bootloader": "tinyuf2", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["C0", "C1", "C2", "C3", "C6", "C7", "C8", "C9"], + "rows": ["A0", "A1", "A2", "A3", "C10", "C11", "C12", "B3", "C14", "C13", "C15"] + }, + "usb": { + "vid": "0x359B", + "pid": "0x0009", + "device_version": "2.0.0" + }, + "eeprom": { + "driver": "i2c" + }, + "features": { + "rgb_matrix": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "community_layouts": ["tkl_ansi"], + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_ansi" + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "label":"ESCAPE", "x":0, "y":0}, + {"matrix": [0, 1], "label":"F1", "x":2, "y":0}, + {"matrix": [0, 2], "label":"F2", "x":3, "y":0}, + {"matrix": [0, 3], "label":"F3", "x":4, "y":0}, + {"matrix": [0, 4], "label":"F4", "x":5, "y":0}, + {"matrix": [0, 5], "label":"F5", "x":6.5, "y":0}, + {"matrix": [0, 6], "label":"F6", "x":7.5, "y":0}, + {"matrix": [0, 7], "label":"F7", "x":8.5, "y":0}, + {"matrix": [6, 0], "label":"F8", "x":9.5, "y":0}, + {"matrix": [6, 1], "label":"F9", "x":11, "y":0}, + {"matrix": [6, 2], "label":"F10", "x":12, "y":0}, + {"matrix": [6, 3], "label":"F11", "x":13, "y":0}, + {"matrix": [6, 4], "label":"F12", "x":14, "y":0}, + {"matrix": [6, 5], "label":"PRINT SCREEN", "x":15.5, "y":0}, + {"matrix": [6, 6], "label":"SCROLL LOCK", "x":16.5, "y":0}, + {"matrix": [6, 7], "label":"PAUSE BREAK", "x":17.5, "y":0}, + {"matrix": [1, 0], "label":"BACKTICK", "x":0, "y":1.5}, + {"matrix": [1, 1], "label":"1", "x":1, "y":1.5}, + {"matrix": [1, 2], "label":"2", "x":2, "y":1.5}, + {"matrix": [1, 3], "label":"3", "x":3, "y":1.5}, + {"matrix": [1, 4], "label":"4", "x":4, "y":1.5}, + {"matrix": [1, 5], "label":"5", "x":5, "y":1.5}, + {"matrix": [1, 6], "label":"6", "x":6, "y":1.5}, + {"matrix": [1, 7], "label":"7", "x":7, "y":1.5}, + {"matrix": [7, 0], "label":"8", "x":8, "y":1.5}, + {"matrix": [7, 1], "label":"9", "x":9, "y":1.5}, + {"matrix": [7, 2], "label":"0", "x":10, "y":1.5}, + {"matrix": [7, 3], "label":"MINUS", "x":11, "y":1.5}, + {"matrix": [7, 4], "label":"EQUALS", "x":12, "y":1.5}, + {"matrix": [7, 5], "label":"BACKSPACE", "x":13, "y":1.5, "w":2}, + {"matrix": [7, 6], "label":"INSERT", "x":15.5, "y":1.5}, + {"matrix": [7, 7], "label":"HOME", "x":16.5, "y":1.5}, + {"matrix": [9, 7], "label":"PAGE UP", "x":17.5, "y":1.5}, + {"matrix": [2, 0], "label":"TAB", "x":0, "y":2.5, "w":1.5}, + {"matrix": [2, 1], "label":"Q", "x":1.5, "y":2.5}, + {"matrix": [2, 2], "label":"W", "x":2.5, "y":2.5}, + {"matrix": [2, 3], "label":"E", "x":3.5, "y":2.5}, + {"matrix": [2, 4], "label":"R", "x":4.5, "y":2.5}, + {"matrix": [2, 5], "label":"T", "x":5.5, "y":2.5}, + {"matrix": [2, 6], "label":"Y", "x":6.5, "y":2.5}, + {"matrix": [2, 7], "label":"U", "x":7.5, "y":2.5}, + {"matrix": [8, 0], "label":"I", "x":8.5, "y":2.5}, + {"matrix": [8, 1], "label":"O", "x":9.5, "y":2.5}, + {"matrix": [8, 2], "label":"P", "x":10.5, "y":2.5}, + {"matrix": [8, 3], "label":"LEFT BRACKET", "x":11.5, "y":2.5}, + {"matrix": [8, 4], "label":"RIGHT BRACKET", "x":12.5, "y":2.5}, + {"matrix": [8, 5], "label":"BACK SLASH", "x":13.5, "y":2.5, "w":1.5}, + {"matrix": [8, 6], "label":"DELETE", "x":15.5, "y":2.5}, + {"matrix": [8, 7], "label":"END", "x":16.5, "y":2.5}, + {"matrix": [9, 6], "label":"PAGE DOWN", "x":17.5, "y":2.5}, + {"matrix": [3, 0], "label":"CAPS LOCK", "x":0, "y":3.5, "w":1.75}, + {"matrix": [3, 1], "label":"A", "x":1.75, "y":3.5}, + {"matrix": [3, 2], "label":"S", "x":2.75, "y":3.5}, + {"matrix": [3, 3], "label":"D", "x":3.75, "y":3.5}, + {"matrix": [3, 4], "label":"F", "x":4.75, "y":3.5}, + {"matrix": [3, 5], "label":"G", "x":5.75, "y":3.5}, + {"matrix": [3, 6], "label":"H", "x":6.75, "y":3.5}, + {"matrix": [3, 7], "label":"J", "x":7.75, "y":3.5}, + {"matrix": [9, 0], "label":"K", "x":8.75, "y":3.5}, + {"matrix": [9, 1], "label":"L", "x":9.75, "y":3.5}, + {"matrix": [9, 2], "label":"SEMICOLON", "x":10.75, "y":3.5}, + {"matrix": [9, 3], "label":"SINGLE TICK", "x":11.75, "y":3.5}, + {"matrix": [9, 4], "label":"ENTER", "x":12.75, "y":3.5, "w":2.25}, + {"matrix": [4, 0], "label":"LEFT SHIFT", "x":0, "y":4.5, "w":2.25}, + {"matrix": [4, 1], "label":"Z", "x":2.25, "y":4.5}, + {"matrix": [4, 2], "label":"X", "x":3.25, "y":4.5}, + {"matrix": [4, 3], "label":"C", "x":4.25, "y":4.5}, + {"matrix": [4, 4], "label":"V", "x":5.25, "y":4.5}, + {"matrix": [4, 5], "label":"B", "x":6.25, "y":4.5}, + {"matrix": [4, 6], "label":"N", "x":7.25, "y":4.5}, + {"matrix": [4, 7], "label":"M", "x":8.25, "y":4.5}, + {"matrix": [10, 0], "label":"COMMA", "x":9.25, "y":4.5}, + {"matrix": [10, 1], "label":"PERIOD", "x":10.25, "y":4.5}, + {"matrix": [10, 2], "label":"FORWARD SLASH", "x":11.25, "y":4.5}, + {"matrix": [10, 3], "label":"RIGHT SHIFT", "x":12.25, "y":4.5, "w":2.75}, + {"matrix": [9, 5], "label":"UP ARROW", "x":16.5, "y":4.5}, + {"matrix": [5, 0], "label":"LEFT CTRL", "x":0, "y":5.5, "w":1.25}, + {"matrix": [5, 1], "label":"LEFT WIN", "x":1.25, "y":5.5, "w":1.25}, + {"matrix": [5, 2], "label":"LEFT ALT", "x":2.5, "y":5.5, "w":1.25}, + {"matrix": [5, 3], "label":"SPACEBAR", "x":3.75, "y":5.5, "w":6.25}, + {"matrix": [5, 4], "label":"RIGHT ALT", "x":10, "y":5.5, "w":1.25}, + {"matrix": [5, 5], "label":"FN", "x":11.25, "y":5.5, "w":1.25}, + {"matrix": [5, 6], "label":"MENU", "x":12.5, "y":5.5, "w":1.25}, + {"matrix": [5, 7], "label":"RIGHT CTRL", "x":13.75, "y":5.5, "w":1.25}, + {"matrix": [10, 4], "label":"LEFT ARROW", "x":15.5, "y":5.5}, + {"matrix": [10, 5], "label":"DOWN ARROW", "x":16.5, "y":5.5}, + {"matrix": [10, 6], "label":"RIGHT ARROW", "x":17.5, "y":5.5} + ] + } + }, + "rgb_matrix": { + "driver": "is31fl3733", + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + { "flags": 1, "matrix": [0, 0], "x": 7, "y": 5 }, + { "flags": 4, "matrix": [0, 1], "x": 31, "y": 5 }, + { "flags": 4, "matrix": [0, 2], "x": 43, "y": 5 }, + { "flags": 4, "matrix": [0, 3], "x": 55, "y": 5 }, + { "flags": 4, "matrix": [0, 4], "x": 67, "y": 5 }, + { "flags": 1, "matrix": [0, 5], "x": 85, "y": 5 }, + { "flags": 1, "matrix": [0, 6], "x": 97, "y": 5 }, + { "flags": 1, "matrix": [0, 7], "x": 109, "y": 5 }, + { "flags": 1, "matrix": [6, 0], "x": 121, "y": 5 }, + { "flags": 4, "matrix": [6, 1], "x": 139, "y": 5 }, + { "flags": 4, "matrix": [6, 2], "x": 151, "y": 5 }, + { "flags": 4, "matrix": [6, 3], "x": 163, "y": 5 }, + { "flags": 4, "matrix": [6, 4], "x": 175, "y": 5 }, + { "flags": 1, "matrix": [6, 5], "x": 193, "y": 5 }, + { "flags": 9, "matrix": [6, 6], "x": 205, "y": 5 }, + { "flags": 1, "matrix": [6, 7], "x": 217, "y": 5 }, + { "flags": 4, "matrix": [1, 0], "x": 7, "y": 20 }, + { "flags": 4, "matrix": [1, 1], "x": 19, "y": 20 }, + { "flags": 4, "matrix": [1, 2], "x": 31, "y": 20 }, + { "flags": 4, "matrix": [1, 3], "x": 43, "y": 20 }, + { "flags": 4, "matrix": [1, 4], "x": 55, "y": 20 }, + { "flags": 4, "matrix": [1, 5], "x": 67, "y": 20 }, + { "flags": 4, "matrix": [1, 6], "x": 79, "y": 20 }, + { "flags": 4, "matrix": [1, 7], "x": 91, "y": 20 }, + { "flags": 4, "matrix": [7, 0], "x": 103, "y": 20 }, + { "flags": 4, "matrix": [7, 1], "x": 115, "y": 20 }, + { "flags": 4, "matrix": [7, 2], "x": 127, "y": 20 }, + { "flags": 4, "matrix": [7, 3], "x": 139, "y": 20 }, + { "flags": 4, "matrix": [7, 4], "x": 151, "y": 20 }, + { "flags": 1, "matrix": [7, 5], "x": 169, "y": 20 }, + { "flags": 1, "matrix": [7, 6], "x": 193, "y": 20 }, + { "flags": 1, "matrix": [7, 7], "x": 205, "y": 20 }, + { "flags": 1, "matrix": [9, 7], "x": 217, "y": 20 }, + { "flags": 1, "matrix": [2, 0], "x": 10, "y": 30 }, + { "flags": 4, "matrix": [2, 1], "x": 25, "y": 30 }, + { "flags": 4, "matrix": [2, 2], "x": 37, "y": 30 }, + { "flags": 4, "matrix": [2, 3], "x": 49, "y": 30 }, + { "flags": 4, "matrix": [2, 4], "x": 61, "y": 30 }, + { "flags": 4, "matrix": [2, 5], "x": 73, "y": 30 }, + { "flags": 4, "matrix": [2, 6], "x": 85, "y": 30 }, + { "flags": 4, "matrix": [2, 7], "x": 97, "y": 30 }, + { "flags": 4, "matrix": [8, 0], "x": 109, "y": 30 }, + { "flags": 4, "matrix": [8, 1], "x": 121, "y": 30 }, + { "flags": 4, "matrix": [8, 2], "x": 133, "y": 30 }, + { "flags": 4, "matrix": [8, 3], "x": 145, "y": 30 }, + { "flags": 4, "matrix": [8, 4], "x": 157, "y": 30 }, + { "flags": 4, "matrix": [8, 5], "x": 172, "y": 30 }, + { "flags": 1, "matrix": [8, 6], "x": 193, "y": 30 }, + { "flags": 1, "matrix": [8, 7], "x": 205, "y": 30 }, + { "flags": 1, "matrix": [9, 6], "x": 217, "y": 30 }, + { "flags": 9, "matrix": [3, 0], "x": 11, "y": 39 }, + { "flags": 4, "matrix": [3, 1], "x": 28, "y": 39 }, + { "flags": 4, "matrix": [3, 2], "x": 40, "y": 39 }, + { "flags": 4, "matrix": [3, 3], "x": 52, "y": 39 }, + { "flags": 4, "matrix": [3, 4], "x": 64, "y": 39 }, + { "flags": 4, "matrix": [3, 5], "x": 76, "y": 39 }, + { "flags": 4, "matrix": [3, 6], "x": 88, "y": 39 }, + { "flags": 4, "matrix": [3, 7], "x": 100, "y": 39 }, + { "flags": 4, "matrix": [9, 0], "x": 112, "y": 39 }, + { "flags": 4, "matrix": [9, 1], "x": 124, "y": 39 }, + { "flags": 4, "matrix": [9, 2], "x": 136, "y": 39 }, + { "flags": 4, "matrix": [9, 3], "x": 148, "y": 39 }, + { "flags": 1, "matrix": [9, 4], "x": 168, "y": 39 }, + { "flags": 1, "matrix": [4, 0], "x": 14, "y": 49 }, + { "flags": 4, "matrix": [4, 1], "x": 34, "y": 49 }, + { "flags": 4, "matrix": [4, 2], "x": 46, "y": 49 }, + { "flags": 4, "matrix": [4, 3], "x": 58, "y": 49 }, + { "flags": 4, "matrix": [4, 4], "x": 70, "y": 49 }, + { "flags": 4, "matrix": [4, 5], "x": 82, "y": 49 }, + { "flags": 4, "matrix": [4, 6], "x": 94, "y": 49 }, + { "flags": 4, "matrix": [4, 7], "x": 106, "y": 49 }, + { "flags": 4, "matrix": [10, 0], "x": 118, "y": 49 }, + { "flags": 4, "matrix": [10, 1], "x": 130, "y": 49 }, + { "flags": 4, "matrix": [10, 2], "x": 142, "y": 49 }, + { "flags": 1, "matrix": [10, 3], "x": 165, "y": 49 }, + { "flags": 1, "matrix": [9, 5], "x": 205, "y": 49 }, + { "flags": 1, "matrix": [5, 0], "x": 8, "y": 59 }, + { "flags": 1, "matrix": [5, 1], "x": 23, "y": 59 }, + { "flags": 1, "matrix": [5, 2], "x": 38, "y": 59 }, + { "flags": 4, "matrix": [5, 3], "x": 83, "y": 59 }, + { "flags": 1, "matrix": [5, 4], "x": 129, "y": 59 }, + { "flags": 1, "matrix": [5, 5], "x": 144, "y": 59 }, + { "flags": 1, "matrix": [5, 6], "x": 159, "y": 59 }, + { "flags": 1, "matrix": [5, 7], "x": 174, "y": 59 }, + { "flags": 1, "matrix": [10, 4], "x": 193, "y": 59 }, + { "flags": 1, "matrix": [10, 5], "x": 205, "y": 59 }, + { "flags": 1, "matrix": [10, 6], "x": 217, "y": 59 }, + { "flags": 2, "x": 224, "y": 64 }, + { "flags": 2, "x": 204, "y": 64 }, + { "flags": 2, "x": 186, "y": 64 }, + { "flags": 2, "x": 167, "y": 64 }, + { "flags": 2, "x": 149, "y": 64 }, + { "flags": 2, "x": 130, "y": 64 }, + { "flags": 2, "x": 112, "y": 64 }, + { "flags": 2, "x": 94, "y": 64 }, + { "flags": 2, "x": 75, "y": 64 }, + { "flags": 2, "x": 57, "y": 64 }, + { "flags": 2, "x": 38, "y": 64 }, + { "flags": 2, "x": 20, "y": 64 }, + { "flags": 2, "x": 0, "y": 64 }, + { "flags": 2, "x": 0, "y": 47 }, + { "flags": 2, "x": 0, "y": 32 }, + { "flags": 2, "x": 0, "y": 17 }, + { "flags": 2, "x": 0, "y": 0 }, + { "flags": 2, "x": 20, "y": 0 }, + { "flags": 2, "x": 38, "y": 0 }, + { "flags": 2, "x": 57, "y": 0 }, + { "flags": 2, "x": 75, "y": 0 }, + { "flags": 2, "x": 94, "y": 0 }, + { "flags": 2, "x": 112, "y": 0 }, + { "flags": 2, "x": 130, "y": 0 }, + { "flags": 2, "x": 149, "y": 0 }, + { "flags": 2, "x": 167, "y": 0 }, + { "flags": 2, "x": 186, "y": 0 }, + { "flags": 2, "x": 204, "y": 0 }, + { "flags": 2, "x": 224, "y": 0 }, + { "flags": 2, "x": 224, "y": 17 }, + { "flags": 2, "x": 224, "y": 32 }, + { "flags": 2, "x": 224, "y": 47 } + ] + } +} diff --git a/keyboards/drop/ctrl/v2/mcuconf.h b/keyboards/drop/ctrl/v2/mcuconf.h new file mode 100644 index 00000000000..dc3e45dac05 --- /dev/null +++ b/keyboards/drop/ctrl/v2/mcuconf.h @@ -0,0 +1,20 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 16 + +#undef STM32_PREDIV_VALUE +#define STM32_PREDIV_VALUE 2 + +#undef STM32_ADC_USE_ADC2 +#define STM32_ADC_USE_ADC2 TRUE + +#undef STM32_ADC_USE_ADC3 +#define STM32_ADC_USE_ADC3 TRUE + +#undef STM32_I2C_USE_I2C2 +#define STM32_I2C_USE_I2C2 TRUE diff --git a/keyboards/drop/ctrl/v2/readme.md b/keyboards/drop/ctrl/v2/readme.md new file mode 100644 index 00000000000..8e5be108b6d --- /dev/null +++ b/keyboards/drop/ctrl/v2/readme.md @@ -0,0 +1,24 @@ +# CTRL v2 + +The Drop CTRL v2 is a TKL mechanical keyboard featuring dual USB-C connectors, an integrated Hi-Speed USB 2.0 hub, and fully customizable RGB backlighting and underlighting. + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Availability: [Drop CTRL Mechanical Keyboard](https://drop.com/buy/drop-ctrl-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make drop/ctrl/v2:default + +Flashing example for this keyboard: + + make drop/ctrl/v2: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**: Quickly double tap the button located under the spacebar +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/drop/ctrl/v2/rules.mk b/keyboards/drop/ctrl/v2/rules.mk new file mode 100644 index 00000000000..13c11c1833d --- /dev/null +++ b/keyboards/drop/ctrl/v2/rules.mk @@ -0,0 +1,4 @@ +UF2_DEVICE_TYPE_ID = 0x27b9a6ea +UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID) + +SRC += analog.c lib/common.c lib/mux.c diff --git a/keyboards/drop/ctrl/v2/v2.c b/keyboards/drop/ctrl/v2/v2.c new file mode 100644 index 00000000000..6f3091035b7 --- /dev/null +++ b/keyboards/drop/ctrl/v2/v2.c @@ -0,0 +1,128 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix.h" + +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + { 1, B_2, A_2, C_2 }, + { 1, E_3, D_3, F_3 }, + { 1, E_4, D_4, F_4 }, + { 1, E_5, D_5, F_5 }, + { 1, B_6, A_6, C_6 }, + { 1, E_7, D_7, F_7 }, + { 1, E_8, D_8, F_8 }, + { 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 }, + { 0, E_5, D_5, F_5 }, + { 0, E_6, D_6, F_6 }, + { 0, E_7, D_7, F_7 }, + { 0, E_8, D_8, F_8 }, + { 0, E_9, D_9, F_9 }, + { 1, H_1, G_1, I_1 }, + { 1, H_2, G_2, I_2 }, + { 1, H_3, G_3, I_3 }, + { 1, H_4, G_4, I_4 }, + { 1, H_5, G_5, I_5 }, + { 1, H_6, G_6, I_6 }, + { 1, H_7, G_7, I_7 }, + { 1, H_8, G_8, I_8 }, + { 0, H_1, G_1, I_1 }, + { 0, H_2, G_2, I_2 }, + { 0, H_3, G_3, I_3 }, + { 0, H_4, G_4, I_4 }, + { 0, H_5, G_5, I_5 }, + { 0, H_6, G_6, I_6 }, + { 0, H_7, G_7, I_7 }, + { 0, H_8, G_8, I_8 }, + { 0, H_9, G_9, I_9 }, + { 1, K_1, J_1, L_1 }, + { 1, K_2, J_2, L_2 }, + { 1, K_3, J_3, L_3 }, + { 1, K_4, J_4, L_4 }, + { 1, K_5, J_5, L_5 }, + { 1, K_6, J_6, L_6 }, + { 1, K_7, J_7, L_7 }, + { 1, K_8, J_8, L_8 }, + { 0, K_1, J_1, L_1 }, + { 0, K_2, J_2, L_2 }, + { 0, K_3, J_3, L_3 }, + { 0, K_4, J_4, L_4 }, + { 0, K_5, J_5, L_5 }, + { 0, K_6, J_6, L_6 }, + { 0, K_7, J_7, L_7 }, + { 0, K_8, J_8, L_8 }, + { 0, K_9, J_9, L_9 }, + { 1, E_1, D_1, F_1 }, + { 1, E_2, D_2, F_2 }, + { 1, K_13, J_13, L_13 }, + { 1, K_12, J_12, L_12 }, + { 1, K_11, J_11, L_11 }, + { 1, E_6, D_6, F_6 }, + { 1, K_10, J_10, L_10 }, + { 1, K_9, J_9, L_9 }, + { 0, K_16, J_16, L_16 }, + { 0, K_15, J_15, L_15 }, + { 0, K_14, J_14, L_14 }, + { 0, K_13, J_13, L_13 }, + { 0, K_12, J_12, L_12 }, + { 1, E_14, D_14, F_14 }, + { 1, E_13, D_13, F_13 }, + { 1, H_12, G_12, I_12 }, + { 1, E_12, D_12, F_12 }, + { 1, E_11, D_11, F_11 }, + { 1, E_10, D_10, F_10 }, + { 1, E_9, D_9, F_9 }, + { 1, H_9, G_9, I_9 }, + { 0, H_16, G_16, I_16 }, + { 0, H_15, G_15, I_15 }, + { 0, H_14, G_14, I_14 }, + { 0, H_13, G_13, I_13 }, + { 0, H_11, G_11, I_11 }, + { 1, K_14, J_14, L_14 }, + { 1, H_14, G_14, I_14 }, + { 1, H_13, G_13, I_13 }, + { 1, H_10, G_10, I_10 }, + { 0, E_16, D_16, F_16 }, + { 0, E_15, D_15, F_15 }, + { 0, E_14, D_14, F_14 }, + { 0, E_13, D_13, F_13 }, + { 0, H_12, G_12, I_12 }, + { 0, E_12, D_12, F_12 }, + { 0, E_11, D_11, F_11 }, + { 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, B_16, A_16, C_16 }, + { 1, B_9, A_9, C_9 }, + { 1, B_10, A_10, C_10 }, + { 1, B_11, A_11, C_11 }, + { 1, B_12, A_12, C_12 }, + { 1, B_13, A_13, C_13 }, + { 1, B_14, A_14, C_14 }, + { 1, B_15, A_15, C_15 }, + { 1, K_15, J_15, L_15 }, + { 1, E_15, D_15, F_15 }, + { 1, H_15, G_15, I_15 }, + { 1, B_1, A_1, C_1 }, + { 1, B_3, A_3, C_3 }, + { 1, B_4, A_4, C_4 }, + { 1, B_5, A_5, C_5 }, + { 1, B_7, A_7, C_7 }, + { 1, B_8, A_8, C_8 }, + { 0, B_1, A_1, C_1 }, + { 0, B_2, A_2, C_2 }, + { 0, B_3, A_3, C_3 }, + { 0, B_5, A_5, C_5 }, + { 0, B_6, A_6, C_6 }, + { 0, B_8, A_8, C_8 }, + { 0, B_10, A_10, C_10 }, + { 0, H_10, G_10, I_10 }, + { 0, K_10, J_10, L_10 }, + { 0, E_10, D_10, F_10 }, +}; + +#endif diff --git a/keyboards/drop/lib/common.c b/keyboards/drop/lib/common.c new file mode 100644 index 00000000000..b393e7650b4 --- /dev/null +++ b/keyboards/drop/lib/common.c @@ -0,0 +1,55 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#ifdef RGB_MATRIX_ENABLE +# include "host.h" +# include "quantum.h" +# include "rgb_matrix.h" + +# define LED_FLAG_ANY_SWITCH (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR) + +# ifdef RGB_MATRIX_CAPS_LOCK_INDEX +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_WHITE); + } else if ((rgb_matrix_get_flags() & LED_FLAG_ANY_SWITCH) == 0) { + rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_OFF); + } + return true; +} +# endif + +# ifdef RGB_MATRIX_CYCLE_ZONES_ENABLE +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + + if (!record->event.pressed) { + switch (keycode) { + case RGB_TOG: + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: + rgb_matrix_set_flags(LED_FLAG_ANY_SWITCH); + break; + case LED_FLAG_ANY_SWITCH: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + break; + case LED_FLAG_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_NONE); + break; + default: + rgb_matrix_set_flags(LED_FLAG_ALL); + break; + } + return false; + } + } + return true; +}; +# endif + +#endif diff --git a/keyboards/drop/lib/mux.c b/keyboards/drop/lib/mux.c new file mode 100644 index 00000000000..85a657544f6 --- /dev/null +++ b/keyboards/drop/lib/mux.c @@ -0,0 +1,94 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include "keyboard.h" +#include "analog.h" +#include "gpio.h" +#include "wait.h" + +#define S_UP B12 +#define E_UP_N B13 +#define S_DN1 B14 +#define E_DN1_N B15 +#define E_VBUS_1 A8 +#define E_VBUS_2 A15 +#define SRC_1 B8 +#define SRC_2 B9 +#define HUB_RESET_N D2 +#define IRST B1 +#define SDB_N B2 +#define C1_A5_SENSE A4 +#define C1_B5_SENSE A7 +#define C2_A5_SENSE C4 +#define C2_B5_SENSE B0 + +static inline void digital_write(pin_t pin, uint8_t level) { + setPinOutput(pin); + writePin(pin, level); +} + +uint16_t v_con_1 = 0; +uint16_t v_con_2 = 0; +uint16_t v_con_3 = 0; +uint16_t v_con_4 = 0; + +void keyboard_USB_enable(void) { + // initial state + digital_write(S_UP, 0); + digital_write(E_UP_N, 1); + digital_write(S_DN1, 1); + digital_write(E_DN1_N, 1); + digital_write(E_VBUS_1, 0); + digital_write(E_VBUS_2, 0); + digital_write(SRC_1, 1); + digital_write(SRC_2, 1); + + setPinInput(C1_A5_SENSE); + setPinInput(C1_B5_SENSE); + setPinInput(C2_A5_SENSE); + setPinInput(C2_B5_SENSE); + + // reset hub + digital_write(HUB_RESET_N, 0); + wait_ms(100); + digital_write(HUB_RESET_N, 1); + + wait_ms(500); // Allow power dissipation time on CC lines + + v_con_1 = analogReadPin(C1_A5_SENSE); + v_con_2 = analogReadPin(C1_B5_SENSE); + v_con_3 = analogReadPin(C2_A5_SENSE); + v_con_4 = analogReadPin(C2_B5_SENSE); + + // TODO: dynamic port port configure logic? + digital_write(E_UP_N, 0); // HOST enable + digital_write(E_DN1_N, 0); // EXTRA enable + digital_write(E_VBUS_1, 1); // USBC-1 enable full power I/O + digital_write(E_VBUS_2, 1); // USBC-2 enable full power I/O + + if ((v_con_1 + v_con_2) > (v_con_3 + v_con_4)) { + digital_write(S_UP, 0); // HOST to USBC-1 + digital_write(S_DN1, 1); // EXTRA to USBC-2 + digital_write(SRC_1, 1); // HOST on USBC-1 + digital_write(SRC_2, 0); // EXTRA available on USBC-2 + } else { + digital_write(S_UP, 1); // EXTRA to USBC-1 + digital_write(S_DN1, 0); // HOST to USBC-2 + digital_write(SRC_1, 0); // EXTRA available on USBC-1 + digital_write(SRC_2, 1); // HOST on USBC-2 + } +} + +void keyboard_ISSI_enable(void) { +#ifdef RGB_MATRIX_ENABLE + digital_write(IRST, 0); + digital_write(SDB_N, 1); +#endif +} + + +void keyboard_pre_init_kb(void) { + keyboard_USB_enable(); + keyboard_ISSI_enable(); + + keyboard_pre_init_user(); +} diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h index 13b8257fbba..b8d47c311c2 100644 --- a/keyboards/drop/sense75/config.h +++ b/keyboards/drop/sense75/config.h @@ -9,58 +9,15 @@ #define EXTERNAL_EEPROM_WP_PIN B7 #define EEPROM_I2C_24LC256 -#ifdef RGB_MATRIX_ENABLE -# define DRIVER_ADDR_1 0b1010000 -# define DRIVER_ADDR_2 0b1011111 -# define DRIVER_COUNT 2 -# define RGB_MATRIX_LED_COUNT (58 + 53) -# define ISSI_PWM_FREQUENCY 0b010 // 26k +#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 111 +#define ISSI_PWM_FREQUENCY 0b010 // 26k -# define RGB_DISABLE_WHEN_USB_SUSPENDED -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT -# define RGB_MATRIX_KEYPRESSES -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define ENABLE_RGB_MATRIX_ALPHAS_MODS -# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_BREATHING -# define ENABLE_RGB_MATRIX_BAND_SAT -# define ENABLE_RGB_MATRIX_BAND_VAL -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# define ENABLE_RGB_MATRIX_CYCLE_ALL -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_DUAL_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# define ENABLE_RGB_MATRIX_RAINDROPS -# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -# define ENABLE_RGB_MATRIX_HUE_BREATHING -# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -# define ENABLE_RGB_MATRIX_PIXEL_FLOW -# define ENABLE_RGB_MATRIX_PIXEL_RAIN -# define ENABLE_RGB_MATRIX_HUE_PENDULUM -# define ENABLE_RGB_MATRIX_HUE_WAVE -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define ENABLE_RGB_MATRIX_DIGITAL_RAIN -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SPLASH -# define ENABLE_RGB_MATRIX_MULTISPLASH -# define ENABLE_RGB_MATRIX_SOLID_SPLASH -# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define RGB_MATRIX_CYCLE_ZONES_ENABLE +#define RGB_MATRIX_CAPS_LOCK_INDEX 62 diff --git a/keyboards/drop/sense75/info.json b/keyboards/drop/sense75/info.json index f5df3d61524..2df7b0ae5a9 100644 --- a/keyboards/drop/sense75/info.json +++ b/keyboards/drop/sense75/info.json @@ -14,6 +14,9 @@ "pid": "0x0001", "device_version": "1.0.0" }, + "eeprom": { + "driver": "i2c" + }, "features": { "rgb_matrix": true, "encoder": true, @@ -113,7 +116,52 @@ } }, "rgb_matrix": { - "driver": "IS31FL3733", + "driver": "is31fl3733", + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, "layout": [ {"flags": 2, "x": 2, "y": 0}, {"flags": 2, "x": 22, "y": 0}, diff --git a/keyboards/drop/sense75/keymaps/default/keymap.c b/keyboards/drop/sense75/keymaps/default/keymap.c index 44d58b05210..36b17d967ea 100644 --- a/keyboards/drop/sense75/keymaps/default/keymap.c +++ b/keyboards/drop/sense75/keymaps/default/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + _______, _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______ ) }; @@ -44,10 +44,3 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } }; #endif - -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 871cdb2b6dc..fb81be27213 100644 --- a/keyboards/drop/sense75/keymaps/default_md/keymap.c +++ b/keyboards/drop/sense75/keymaps/default_md/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, - MO(2), _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + MO(2), _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______ ), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -86,22 +86,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgb_matrix_sethsv_noeeprom(HSV_WHITE); test_mode = true; break; - case RGB_TOG: - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - break; - case LED_FLAG_UNDERGLOW: - rgb_matrix_set_flags(LED_FLAG_NONE); - break; - default: - rgb_matrix_set_flags(LED_FLAG_ALL); - break; - } - return false; } } return true; diff --git a/keyboards/drop/sense75/keymaps/via/keymap.c b/keyboards/drop/sense75/keymaps/via/keymap.c index 7304ec42d53..12328cc1482 100644 --- a/keyboards/drop/sense75/keymaps/via/keymap.c +++ b/keyboards/drop/sense75/keymaps/via/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, - MO(2), _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + MO(2), _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______ ), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -53,27 +53,3 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [2] = { ENCODER_CCW_CW(_______, _______) } }; #endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (!record->event.pressed) { - switch (keycode) { - case RGB_TOG: - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - break; - case LED_FLAG_UNDERGLOW: - rgb_matrix_set_flags(LED_FLAG_NONE); - break; - default: - rgb_matrix_set_flags(LED_FLAG_ALL); - break; - } - return false; - } - } - return true; -}; diff --git a/keyboards/drop/sense75/rules.mk b/keyboards/drop/sense75/rules.mk index 44adba039b5..ed0ad9a493c 100644 --- a/keyboards/drop/sense75/rules.mk +++ b/keyboards/drop/sense75/rules.mk @@ -1 +1 @@ -EEPROM_DRIVER = i2c +SRC += lib/common.c diff --git a/keyboards/drop/sense75/sense75.c b/keyboards/drop/sense75/sense75.c index cbc194ee8fb..40577054cc1 100644 --- a/keyboards/drop/sense75/sense75.c +++ b/keyboards/drop/sense75/sense75.c @@ -1,8 +1,8 @@ // Copyright 2022 Massdrop, Inc. // SPDX-License-Identifier: GPL-2.0-or-later -#include "rgb_matrix.h" - #ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix.h" + const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { // top underglow sd2-sd17 { 0, B_2, A_2, C_2 }, diff --git a/keyboards/drop/shift/keymaps/default/keymap.c b/keyboards/drop/shift/keymaps/default/keymap.c new file mode 100644 index 00000000000..371908bb482 --- /dev/null +++ b/keyboards/drop/shift/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_1800_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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + 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_NUM, KC_PSLS, KC_PAST, KC_PSCR, + 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_PMNS, + 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_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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [1] = LAYOUT_1800_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_MPLY, KC_MSTP, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, KC_SCRL, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/drop/shift/keymaps/via/config.h b/keyboards/drop/shift/keymaps/via/config.h new file mode 100644 index 00000000000..616f8e32910 --- /dev/null +++ b/keyboards/drop/shift/keymaps/via/config.h @@ -0,0 +1,5 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/drop/shift/keymaps/via/keymap.c b/keyboards/drop/shift/keymaps/via/keymap.c new file mode 100644 index 00000000000..371908bb482 --- /dev/null +++ b/keyboards/drop/shift/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_1800_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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + 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_NUM, KC_PSLS, KC_PAST, KC_PSCR, + 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_PMNS, + 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_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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [1] = LAYOUT_1800_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_MPLY, KC_MSTP, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, KC_SCRL, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/drop/shift/keymaps/via/rules.mk b/keyboards/drop/shift/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/drop/shift/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/drop/shift/v2/board.h b/keyboards/drop/shift/v2/board.h new file mode 100644 index 00000000000..ed3ea4b1f77 --- /dev/null +++ b/keyboards/drop/shift/v2/board.h @@ -0,0 +1,8 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h new file mode 100644 index 00000000000..6c651d1f83a --- /dev/null +++ b/keyboards/drop/shift/v2/config.h @@ -0,0 +1,29 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define ADC_BUFFER_DEPTH 4 +#define ADC_SAMPLING_RATE ADC_SMPR_SMP_601P5 +#define ADC_RESOLUTION ADC_CFGR_RES_12BITS + +#define I2C_DRIVER I2CD2 +#define I2C1_SCL_PIN A9 +#define I2C1_SDA_PIN A10 + +#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10101000 +#define EXTERNAL_EEPROM_WP_PIN B5 +#define EEPROM_I2C_24LC256 + +#define DRIVER_ADDR_1 0b1010011 +#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_ADDR_3 0b1010000 +#define DRIVER_COUNT 3 +#define RGB_MATRIX_LED_COUNT 166 +#define ISSI_PWM_FREQUENCY 0b010 // 26k + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_DEFAULT_VAL 100 +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define RGB_MATRIX_CYCLE_ZONES_ENABLE diff --git a/keyboards/drop/shift/v2/halconf.h b/keyboards/drop/shift/v2/halconf.h new file mode 100644 index 00000000000..77495ecfa0d --- /dev/null +++ b/keyboards/drop/shift/v2/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/drop/shift/v2/info.json b/keyboards/drop/shift/v2/info.json new file mode 100644 index 00000000000..44a3a5fc984 --- /dev/null +++ b/keyboards/drop/shift/v2/info.json @@ -0,0 +1,350 @@ +{ + "keyboard_name": "SHIFT v2", + "manufacturer": "Drop Inc.", + "maintainer": "zvecr", + "processor": "STM32F303", + "bootloader": "tinyuf2", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["C0", "C1", "C2", "C3", "C6", "C7", "C8", "C9", "B3", "B4", "C13", "C14", "C15"], + "rows": ["A0", "A1", "A2", "A3", "B10", "C10", "C11", "C12"] + }, + "usb": { + "vid": "0x359B", + "pid": "0x000C", + "device_version": "2.0.0" + }, + "eeprom": { + "driver": "i2c" + }, + "features": { + "rgb_matrix": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT_1800_ansi": { + "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": [1, 2], "x":3.25, "y":0}, + {"matrix": [0, 3], "x":4.25, "y":0}, + {"matrix": [0, 4], "x":5.5, "y":0}, + {"matrix": [0, 5], "x":6.5, "y":0}, + {"matrix": [0, 6], "x":7.5, "y":0}, + {"matrix": [1, 6], "x":8.5, "y":0}, + {"matrix": [0, 7], "x":9.75, "y":0}, + {"matrix": [1, 7], "x":10.75, "y":0}, + {"matrix": [0, 8], "x":11.75, "y":0}, + {"matrix": [1, 8], "x":12.75, "y":0}, + {"matrix": [1, 9], "x":14, "y":0}, + {"matrix": [0, 10], "x":15.5, "y":0}, + {"matrix": [1, 10], "x":16.5, "y":0}, + {"matrix": [0, 11], "x":17.5, "y":0}, + {"matrix": [1, 11], "x":18.5, "y":0}, + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [2, 1], "x":2, "y":1.25}, + {"matrix": [2, 2], "x":3, "y":1.25}, + {"matrix": [3, 2], "x":4, "y":1.25}, + {"matrix": [1, 3], "x":5, "y":1.25}, + {"matrix": [2, 3], "x":6, "y":1.25}, + {"matrix": [1, 4], "x":7, "y":1.25}, + {"matrix": [1, 5], "x":8, "y":1.25}, + {"matrix": [2, 5], "x":9, "y":1.25}, + {"matrix": [2, 6], "x":10, "y":1.25}, + {"matrix": [3, 6], "x":11, "y":1.25}, + {"matrix": [2, 7], "x":12, "y":1.25}, + {"matrix": [2, 8], "x":13, "y":1.25, "w":2}, + {"matrix": [2, 9], "x":15.5, "y":1.25}, + {"matrix": [2, 10], "x":16.5, "y":1.25}, + {"matrix": [2, 11], "x":17.5, "y":1.25}, + {"matrix": [2, 12], "x":18.5, "y":1.25}, + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":2.25}, + {"matrix": [4, 1], "x":2.5, "y":2.25}, + {"matrix": [4, 2], "x":3.5, "y":2.25}, + {"matrix": [3, 3], "x":4.5, "y":2.25}, + {"matrix": [4, 3], "x":5.5, "y":2.25}, + {"matrix": [2, 4], "x":6.5, "y":2.25}, + {"matrix": [3, 4], "x":7.5, "y":2.25}, + {"matrix": [3, 5], "x":8.5, "y":2.25}, + {"matrix": [4, 5], "x":9.5, "y":2.25}, + {"matrix": [4, 6], "x":10.5, "y":2.25}, + {"matrix": [3, 7], "x":11.5, "y":2.25}, + {"matrix": [3, 8], "x":12.5, "y":2.25}, + {"matrix": [4, 8], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [3, 9], "x":15.5, "y":2.25}, + {"matrix": [3, 10], "x":16.5, "y":2.25}, + {"matrix": [3, 11], "x":17.5, "y":2.25}, + {"matrix": [3, 12], "x":18.5, "y":2.25}, + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [5, 1], "x":1.75, "y":3.25}, + {"matrix": [6, 1], "x":2.75, "y":3.25}, + {"matrix": [5, 2], "x":3.75, "y":3.25}, + {"matrix": [5, 3], "x":4.75, "y":3.25}, + {"matrix": [6, 3], "x":5.75, "y":3.25}, + {"matrix": [4, 4], "x":6.75, "y":3.25}, + {"matrix": [5, 4], "x":7.75, "y":3.25}, + {"matrix": [5, 5], "x":8.75, "y":3.25}, + {"matrix": [5, 6], "x":9.75, "y":3.25}, + {"matrix": [4, 7], "x":10.75, "y":3.25}, + {"matrix": [5, 8], "x":11.75, "y":3.25}, + {"matrix": [6, 8], "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [4, 9], "x":15.5, "y":3.25}, + {"matrix": [4, 10], "x":16.5, "y":3.25}, + {"matrix": [4, 11], "x":17.5, "y":3.25}, + {"matrix": [4, 12], "x":18.5, "y":3.25}, + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [7, 1], "x":2.25, "y":4.25}, + {"matrix": [6, 2], "x":3.25, "y":4.25}, + {"matrix": [7, 2], "x":4.25, "y":4.25}, + {"matrix": [7, 3], "x":5.25, "y":4.25}, + {"matrix": [6, 4], "x":6.25, "y":4.25}, + {"matrix": [7, 5], "x":7.25, "y":4.25}, + {"matrix": [6, 5], "x":8.25, "y":4.25}, + {"matrix": [6, 6], "x":9.25, "y":4.25}, + {"matrix": [5, 7], "x":10.25, "y":4.25}, + {"matrix": [6, 7], "x":11.25, "y":4.25}, + {"matrix": [7, 8], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [6, 9], "x":14.25, "y":4.5}, + {"matrix": [5, 9], "x":15.5, "y":4.25}, + {"matrix": [5, 10], "x":16.5, "y":4.25}, + {"matrix": [5, 11], "x":17.5, "y":4.25}, + {"matrix": [5, 12], "x":18.5, "y":4.25, "h":2}, + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [6, 0], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [7, 0], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [7, 4], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [7, 6], "x":10, "y":5.25, "w":1.5}, + {"matrix": [7, 7], "x":11.5, "y":5.25, "w":1.5}, + {"matrix": [7, 9], "x":13.25, "y":5.5}, + {"matrix": [7, 10], "x":14.25, "y":5.5}, + {"matrix": [6, 10], "x":15.25, "y":5.5}, + {"matrix": [6, 11], "x":16.5, "y":5.25}, + {"matrix": [6, 12], "x":17.5, "y":5.25} + ] + } + }, + "rgb_matrix": { + "driver": "is31fl3733", + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 6, "y": 7 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 7 }, + { "flags": 4, "matrix": [0, 2], "x": 31, "y": 7 }, + { "flags": 4, "matrix": [1, 2], "x": 43, "y": 7 }, + { "flags": 4, "matrix": [0, 3], "x": 54, "y": 7 }, + { "flags": 4, "matrix": [0, 4], "x": 69, "y": 7 }, + { "flags": 4, "matrix": [0, 5], "x": 80, "y": 7 }, + { "flags": 4, "matrix": [0, 6], "x": 91, "y": 7 }, + { "flags": 4, "matrix": [1, 6], "x": 103, "y": 7 }, + { "flags": 4, "matrix": [0, 7], "x": 117, "y": 7 }, + { "flags": 4, "matrix": [1, 7], "x": 129, "y": 7 }, + { "flags": 4, "matrix": [0, 8], "x": 140, "y": 7 }, + { "flags": 4, "matrix": [1, 8], "x": 152, "y": 7 }, + { "flags": 4, "matrix": [1, 9], "x": 166, "y": 7 }, + { "flags": 4, "matrix": [0, 10], "x": 183, "y": 7 }, + { "flags": 4, "matrix": [1, 10], "x": 194, "y": 7 }, + { "flags": 4, "matrix": [0, 11], "x": 206, "y": 7 }, + { "flags": 4, "matrix": [1, 11], "x": 217, "y": 7 }, + { "flags": 4, "matrix": [1, 0], "x": 6, "y": 18 }, + { "flags": 4, "matrix": [1, 1], "x": 17, "y": 18 }, + { "flags": 4, "matrix": [2, 1], "x": 29, "y": 18 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "y": 18 }, + { "flags": 4, "matrix": [3, 2], "x": 51, "y": 18 }, + { "flags": 4, "matrix": [1, 3], "x": 63, "y": 18 }, + { "flags": 4, "matrix": [2, 3], "x": 74, "y": 18 }, + { "flags": 4, "matrix": [1, 4], "x": 86, "y": 18 }, + { "flags": 4, "matrix": [1, 5], "x": 97, "y": 18 }, + { "flags": 4, "matrix": [2, 5], "x": 109, "y": 18 }, + { "flags": 4, "matrix": [2, 6], "x": 120, "y": 18 }, + { "flags": 4, "matrix": [3, 6], "x": 132, "y": 18 }, + { "flags": 4, "matrix": [2, 7], "x": 143, "y": 18 }, + { "flags": 4, "matrix": [2, 8], "x": 160, "y": 18 }, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 18 }, + { "flags": 4, "matrix": [2, 10], "x": 194, "y": 18 }, + { "flags": 4, "matrix": [2, 11], "x": 206, "y": 18 }, + { "flags": 4, "matrix": [2, 12], "x": 217, "y": 18 }, + { "flags": 4, "matrix": [2, 0], "x": 9, "y": 27 }, + { "flags": 4, "matrix": [3, 1], "x": 23, "y": 27 }, + { "flags": 4, "matrix": [4, 1], "x": 34, "y": 27 }, + { "flags": 4, "matrix": [4, 2], "x": 46, "y": 27 }, + { "flags": 4, "matrix": [3, 3], "x": 57, "y": 27 }, + { "flags": 4, "matrix": [4, 3], "x": 69, "y": 27 }, + { "flags": 4, "matrix": [2, 4], "x": 80, "y": 27 }, + { "flags": 4, "matrix": [3, 4], "x": 91, "y": 27 }, + { "flags": 4, "matrix": [3, 5], "x": 103, "y": 27 }, + { "flags": 4, "matrix": [4, 5], "x": 114, "y": 27 }, + { "flags": 4, "matrix": [4, 6], "x": 126, "y": 27 }, + { "flags": 4, "matrix": [3, 7], "x": 137, "y": 27 }, + { "flags": 4, "matrix": [3, 8], "x": 149, "y": 27 }, + { "flags": 4, "matrix": [4, 8], "x": 163, "y": 27 }, + { "flags": 4, "matrix": [3, 9], "x": 183, "y": 27 }, + { "flags": 4, "matrix": [3, 10], "x": 194, "y": 27 }, + { "flags": 4, "matrix": [3, 11], "x": 206, "y": 27 }, + { "flags": 4, "matrix": [3, 12], "x": 217, "y": 27 }, + { "flags": 4, "matrix": [3, 0], "x": 10, "y": 36 }, + { "flags": 4, "matrix": [5, 1], "x": 26, "y": 36 }, + { "flags": 4, "matrix": [6, 1], "x": 37, "y": 36 }, + { "flags": 4, "matrix": [5, 2], "x": 49, "y": 36 }, + { "flags": 4, "matrix": [5, 3], "x": 60, "y": 36 }, + { "flags": 4, "matrix": [6, 3], "x": 71, "y": 36 }, + { "flags": 4, "matrix": [4, 4], "x": 83, "y": 36 }, + { "flags": 4, "matrix": [5, 4], "x": 94, "y": 36 }, + { "flags": 4, "matrix": [5, 5], "x": 106, "y": 36 }, + { "flags": 4, "matrix": [5, 6], "x": 117, "y": 36 }, + { "flags": 4, "matrix": [4, 7], "x": 129, "y": 36 }, + { "flags": 4, "matrix": [5, 8], "x": 140, "y": 36 }, + { "flags": 4, "matrix": [6, 8], "x": 159, "y": 36 }, + { "flags": 4, "matrix": [4, 9], "x": 183, "y": 36 }, + { "flags": 4, "matrix": [4, 10], "x": 194, "y": 36 }, + { "flags": 4, "matrix": [4, 11], "x": 206, "y": 36 }, + { "flags": 4, "matrix": [4, 12], "x": 217, "y": 36 }, + { "flags": 4, "matrix": [4, 0], "x": 13, "y": 46 }, + { "flags": 4, "matrix": [7, 1], "x": 31, "y": 46 }, + { "flags": 4, "matrix": [6, 2], "x": 43, "y": 46 }, + { "flags": 4, "matrix": [7, 2], "x": 54, "y": 46 }, + { "flags": 4, "matrix": [7, 3], "x": 66, "y": 46 }, + { "flags": 4, "matrix": [6, 4], "x": 77, "y": 46 }, + { "flags": 4, "matrix": [7, 5], "x": 89, "y": 46 }, + { "flags": 4, "matrix": [6, 5], "x": 100, "y": 46 }, + { "flags": 4, "matrix": [6, 6], "x": 112, "y": 46 }, + { "flags": 4, "matrix": [5, 7], "x": 123, "y": 46 }, + { "flags": 4, "matrix": [6, 7], "x": 134, "y": 46 }, + { "flags": 4, "matrix": [7, 8], "x": 150, "y": 46 }, + { "flags": 4, "matrix": [6, 9], "x": 169, "y": 48 }, + { "flags": 4, "matrix": [5, 9], "x": 183, "y": 46 }, + { "flags": 4, "matrix": [5, 10], "x": 194, "y": 46 }, + { "flags": 4, "matrix": [5, 11], "x": 206, "y": 46 }, + { "flags": 4, "matrix": [5, 12], "x": 214, "y": 50 }, + { "flags": 4, "matrix": [5, 0], "x": 7, "y": 55 }, + { "flags": 4, "matrix": [6, 0], "x": 21, "y": 55 }, + { "flags": 4, "matrix": [7, 0], "x": 36, "y": 55 }, + { "flags": 4, "matrix": [7, 4], "x": 79, "y": 55 }, + { "flags": 4, "matrix": [7, 6], "x": 123, "y": 55 }, + { "flags": 4, "matrix": [7, 7], "x": 140, "y": 55 }, + { "flags": 4, "matrix": [7, 9], "x": 157, "y": 58 }, + { "flags": 4, "matrix": [7, 10], "x": 169, "y": 58 }, + { "flags": 4, "matrix": [6, 10], "x": 180, "y": 58 }, + { "flags": 4, "matrix": [6, 11], "x": 194, "y": 55 }, + { "flags": 4, "matrix": [6, 12], "x": 206, "y": 55 }, + { "flags": 2, "x": 1, "y": 1 }, + { "flags": 2, "x": 6, "y": 0 }, + { "flags": 2, "x": 26, "y": 0 }, + { "flags": 2, "x": 35, "y": 0 }, + { "flags": 2, "x": 45, "y": 0 }, + { "flags": 2, "x": 54, "y": 0 }, + { "flags": 2, "x": 64, "y": 0 }, + { "flags": 2, "x": 74, "y": 0 }, + { "flags": 2, "x": 83, "y": 0 }, + { "flags": 2, "x": 93, "y": 0 }, + { "flags": 2, "x": 102, "y": 0 }, + { "flags": 2, "x": 112, "y": 0 }, + { "flags": 2, "x": 122, "y": 0 }, + { "flags": 2, "x": 131, "y": 0 }, + { "flags": 2, "x": 141, "y": 0 }, + { "flags": 2, "x": 150, "y": 0 }, + { "flags": 2, "x": 160, "y": 0 }, + { "flags": 2, "x": 170, "y": 0 }, + { "flags": 2, "x": 179, "y": 0 }, + { "flags": 2, "x": 189, "y": 0 }, + { "flags": 2, "x": 198, "y": 0 }, + { "flags": 2, "x": 218, "y": 0 }, + { "flags": 2, "x": 222, "y": 1 }, + { "flags": 2, "x": 224, "y": 5 }, + { "flags": 2, "x": 224, "y": 12 }, + { "flags": 2, "x": 224, "y": 20 }, + { "flags": 2, "x": 224, "y": 28 }, + { "flags": 2, "x": 224, "y": 35 }, + { "flags": 2, "x": 224, "y": 43 }, + { "flags": 2, "x": 224, "y": 51 }, + { "flags": 2, "x": 224, "y": 58 }, + { "flags": 2, "x": 222, "y": 64 }, + { "flags": 2, "x": 218, "y": 64 }, + { "flags": 2, "x": 208, "y": 64 }, + { "flags": 2, "x": 198, "y": 64 }, + { "flags": 2, "x": 189, "y": 64 }, + { "flags": 2, "x": 179, "y": 64 }, + { "flags": 2, "x": 170, "y": 64 }, + { "flags": 2, "x": 160, "y": 64 }, + { "flags": 2, "x": 150, "y": 64 }, + { "flags": 2, "x": 141, "y": 64 }, + { "flags": 2, "x": 131, "y": 64 }, + { "flags": 2, "x": 122, "y": 64 }, + { "flags": 2, "x": 112, "y": 64 }, + { "flags": 2, "x": 102, "y": 64 }, + { "flags": 2, "x": 93, "y": 64 }, + { "flags": 2, "x": 83, "y": 64 }, + { "flags": 2, "x": 74, "y": 64 }, + { "flags": 2, "x": 64, "y": 64 }, + { "flags": 2, "x": 54, "y": 64 }, + { "flags": 2, "x": 45, "y": 64 }, + { "flags": 2, "x": 35, "y": 64 }, + { "flags": 2, "x": 26, "y": 64 }, + { "flags": 2, "x": 16, "y": 64 }, + { "flags": 2, "x": 6, "y": 64 }, + { "flags": 2, "x": 1, "y": 64 }, + { "flags": 2, "x": 0, "y": 58 }, + { "flags": 2, "x": 0, "y": 51 }, + { "flags": 2, "x": 0, "y": 43 }, + { "flags": 2, "x": 0, "y": 35 }, + { "flags": 2, "x": 0, "y": 28 }, + { "flags": 2, "x": 0, "y": 20 }, + { "flags": 2, "x": 0, "y": 12 }, + { "flags": 2, "x": 0, "y": 5 }, + { "flags": 8, "x": 174, "y": 5 }, + { "flags": 8, "x": 174, "y": 10 }, + { "flags": 8, "x": 174, "y": 15 } + ] + } +} diff --git a/keyboards/drop/shift/v2/mcuconf.h b/keyboards/drop/shift/v2/mcuconf.h new file mode 100644 index 00000000000..dc3e45dac05 --- /dev/null +++ b/keyboards/drop/shift/v2/mcuconf.h @@ -0,0 +1,20 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 16 + +#undef STM32_PREDIV_VALUE +#define STM32_PREDIV_VALUE 2 + +#undef STM32_ADC_USE_ADC2 +#define STM32_ADC_USE_ADC2 TRUE + +#undef STM32_ADC_USE_ADC3 +#define STM32_ADC_USE_ADC3 TRUE + +#undef STM32_I2C_USE_I2C2 +#define STM32_I2C_USE_I2C2 TRUE diff --git a/keyboards/drop/shift/v2/readme.md b/keyboards/drop/shift/v2/readme.md new file mode 100644 index 00000000000..c9ebc63468f --- /dev/null +++ b/keyboards/drop/shift/v2/readme.md @@ -0,0 +1,24 @@ +# SHIFT v2 + +The Drop SHIFT v2 is a compact 1800 layout mechanical keyboard featuring dual USB-C connectors, an integrated Hi-Speed USB 2.0 hub, and fully customizable RGB backlighting and underlighting. + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Availability: [Drop SHIFT Mechanical Keyboard](https://drop.com/buy/drop-shift-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make drop/shift/v2:default + +Flashing example for this keyboard: + + make drop/shift/v2: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**: Quickly double tap the button located under the spacebar +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/drop/shift/v2/rules.mk b/keyboards/drop/shift/v2/rules.mk new file mode 100644 index 00000000000..aec83326d07 --- /dev/null +++ b/keyboards/drop/shift/v2/rules.mk @@ -0,0 +1,4 @@ +UF2_DEVICE_TYPE_ID = 0x9bc1e968 +UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID) + +SRC += analog.c lib/common.c lib/mux.c diff --git a/keyboards/drop/shift/v2/v2.c b/keyboards/drop/shift/v2/v2.c new file mode 100644 index 00000000000..326c4182794 --- /dev/null +++ b/keyboards/drop/shift/v2/v2.c @@ -0,0 +1,190 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#ifdef RGB_MATRIX_ENABLE +# include "host.h" +# include "rgb_matrix.h" + +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + { 0, K_1, J_1, L_1 },// LED1 + { 0, K_2, J_2, L_2 }, + { 0, K_3, J_3, L_3 }, + { 0, K_4, J_4, L_4 }, + { 0, K_5, J_5, L_5 }, + { 0, K_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 },// LED9 + { 1, K_1, J_1, L_1 },// LED10 + { 1, K_2, J_2, L_2 },// LED11 + { 1, K_3, J_3, L_3 },// LED12 + { 1, K_4, J_4, L_4 },// LED13 + { 1, K_9, J_9, L_9 },// LED18 + { 1, K_5, J_5, L_5 },// LED15 + { 1, K_6, J_6, L_6 },// LED19 + { 1, K_7, J_7, L_7 },// LED16 + { 1, K_8, J_8, L_8 },// LED20 + { 0, H_1, G_1, I_1 },//start2 + { 0, H_11, G_11, I_11 }, + { 0, H_2, G_2, I_2 }, + { 0, H_3, G_3, I_3 }, + { 0, H_4, G_4, I_4 }, + { 0, H_5, G_5, I_5 }, + { 0, H_6, G_6, I_6 }, + { 0, H_7, G_7, I_7 }, + { 0, H_8, G_8, I_8 }, + { 0, H_9, G_9, I_9 }, + { 0, H_10, G_10, I_10 }, + { 1, E_1, D_1, F_1 }, + { 1, E_2, D_2, F_2 }, + { 1, E_4, D_4, F_4 }, + { 1, E_5, D_5, F_5 }, + { 1, E_6, D_6, F_6 }, + { 1, E_7, D_7, F_7 }, + { 1, E_8, D_8, F_8 }, + { 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 }, + { 0, E_5, D_5, F_5 }, + { 0, E_6, D_6, F_6 }, + { 0, E_7, D_7, F_7 }, + { 0, E_8, D_8, F_8 }, + { 0, E_9, D_9, F_9 }, + { 0, E_10, D_10, F_10 }, + { 1, B_1, A_1, C_1 }, + { 1, B_2, A_2, C_2 }, + { 1, B_3, A_3, C_3 }, + { 1, B_4, A_4, C_4 }, + { 1, B_5, A_5, C_5 }, + { 1, B_6, A_6, C_6 }, + { 1, B_7, A_7, C_7 }, + { 1, B_8, A_8, C_8 }, + { 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 }, + { 1, B_9, A_9, C_9 }, + { 1, B_10, A_10, C_10 }, + { 1, B_11, A_11, C_11 }, + { 1, B_13, A_13, C_13 }, + { 1, B_14, A_14, C_14 }, + { 1, B_15, A_15, C_15 }, + { 1, B_16, A_16, C_16 }, + { 0, B_11, A_11, C_11 }, + { 0, B_12, A_12, C_12 }, + { 0, B_13, A_13, C_13 }, + { 0, H_13, G_13, I_13 }, + { 0, H_14, G_14, I_14 }, + { 0, B_14, A_14, C_14 }, + { 0, E_15, D_15, F_15 }, + { 0, B_15, A_15, C_15 }, + { 0, B_16, A_16, C_16 }, + { 1, E_9, D_9, F_9 }, + { 1, E_10, D_10, F_10 }, + { 1, E_11, D_11, F_11 }, + { 1, E_12, D_12, F_12 }, + { 1, E_13, D_13, F_13 }, + { 1, E_14, D_14, F_14 }, + { 1, E_15, D_15, F_15 }, + { 1, H_16, G_16, I_16 }, + { 0, E_11, D_11, F_11 },//start6 + { 0, E_12, D_12, F_12 }, + { 0, E_13, D_13, F_13 }, + { 0, E_14, D_14, F_14 }, + { 1, H_9, G_9, I_9 }, + { 1, H_10, G_10, I_10 }, + { 1, H_11, G_11, I_11 }, + { 1, H_12, G_12, I_12 }, + { 1, H_13, G_13, I_13 }, + { 1, H_14, G_14, I_14 }, + { 1, H_15, G_15, I_15 }, + { 2, H_1, G_1, I_1 },//start underglow + { 2, K_1, J_1, L_1 }, + { 2, B_1, A_1, C_1 }, + { 2, E_1, D_1, F_1 }, + { 2, E_2, D_2, F_2 }, + { 2, B_2, A_2, C_2 }, + { 2, B_3, A_3, C_3 }, + { 2, E_3, D_3, F_3 }, + { 2, E_4, D_4, F_4 }, + { 2, B_4, A_4, C_4 }, + { 2, B_5, A_5, C_5 }, + { 2, E_5, D_5, F_5 }, + { 2, E_6, D_6, F_6 }, + { 2, B_6, A_6, C_6 }, + { 2, B_7, A_7, C_7 }, + { 2, E_7, D_7, F_7 }, + { 2, E_8, D_8, F_8 }, + { 2, B_8, A_8, C_8 }, + { 2, B_9, A_9, C_9 }, + { 2, E_9, D_9, F_9 }, + { 2, E_10, D_10, F_10 }, + { 2, B_10, A_10, C_10 }, + { 2, B_11, A_11, C_11 },//125 + { 2, E_11, D_11, F_11 }, + { 2, E_12, D_12, F_12 }, + { 2, B_12, A_12, C_12 }, + { 2, B_13, A_13, C_13 }, + { 2, E_13, D_13, F_13 }, + { 2, E_14, D_14, F_14 }, + { 2, B_14, A_14, C_14 }, + { 2, B_15, A_15, C_15 }, + { 2, E_15, D_15, F_15 }, + { 2, E_16, D_16, F_16 }, + { 2, B_16, A_16, C_16 }, + { 2, H_16, G_16, I_16 }, + { 2, K_16, J_16, L_16 }, + { 2, K_15, J_15, L_15 }, + { 2, H_15, G_15, I_15 }, + { 2, H_14, G_14, I_14 }, + { 2, K_14, J_14, L_14 }, + { 2, K_13, J_13, L_13 }, + { 2, H_13, G_13, I_13 }, + { 2, H_12, G_12, I_12 }, + { 2, K_12, J_12, L_12 }, + { 2, K_11, J_11, L_11 }, + { 2, H_11, G_11, I_11 }, + { 2, H_10, G_10, I_10 }, + { 2, K_10, J_10, L_10 }, + { 2, K_9, J_9, L_9 }, + { 2, H_9, G_9, I_9 }, + { 2, H_8, G_8, I_8 }, + { 2, K_8, J_8, L_8 }, + { 2, K_7, J_7, L_7 }, + { 2, H_7, G_7, I_7 }, + { 2, H_6, G_6, I_6 }, + { 2, K_6, J_6, L_6 }, + { 2, K_5, J_5, L_5 }, + { 2, H_5, G_5, I_5 }, + { 2, H_4, G_4, I_4 }, + { 2, K_4, J_4, L_4 }, + { 2, K_3, J_3, L_3 }, + { 2, H_3, G_3, I_3 }, + { 2, H_2, G_2, I_2 }, + { 2, K_2, J_2, L_2 }, + { 1, K_10, J_10, L_10 }, + { 1, K_11, J_11, L_11 }, + { 1, E_3, D_3, F_3 }, +}; + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + uint8_t num_state = host_keyboard_led_state().num_lock ? 0xFF : 0; + uint8_t caps_state = host_keyboard_led_state().caps_lock ? 0xFF : 0; + uint8_t scroll_state = host_keyboard_led_state().scroll_lock ? 0xFF : 0; + + rgb_matrix_set_color(163, num_state, num_state, num_state); + rgb_matrix_set_color(164, caps_state, caps_state, caps_state); + rgb_matrix_set_color(165, scroll_state, scroll_state, scroll_state); + return true; +} + +#endif diff --git a/keyboards/drop/thekey/v2/config.h b/keyboards/drop/thekey/v2/config.h deleted file mode 100644 index ca6944c2c9a..00000000000 --- a/keyboards/drop/thekey/v2/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2023 Massdrop, Inc. -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define RGBLIGHT_LED_MAP {4, 0, 1, 2, 3} diff --git a/keyboards/drop/thekey/v2/info.json b/keyboards/drop/thekey/v2/info.json index 7870599fe18..ced9901bea0 100644 --- a/keyboards/drop/thekey/v2/info.json +++ b/keyboards/drop/thekey/v2/info.json @@ -25,6 +25,7 @@ "diode_direction": "ROW2COL", "rgblight": { "led_count": 5, + "led_map": [4, 0, 1, 2, 3], "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/dtisaac/dosa40rgb/info.json b/keyboards/dtisaac/dosa40rgb/info.json index 35a73111128..e90d21725a5 100644 --- a/keyboards/dtisaac/dosa40rgb/info.json +++ b/keyboards/dtisaac/dosa40rgb/info.json @@ -8,11 +8,14 @@ "pid": "0x4973", "device_version": "0.0.4" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "ws2812": { "pin": "D0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D1", "D6", "D3", "D2", "B6", "C6", "C7", "F7", "F6", "F5", "F4"], diff --git a/keyboards/dtisaac/dosa40rgb/rules.mk b/keyboards/dtisaac/dosa40rgb/rules.mk index 5cc9ef68e40..265652de509 100644 --- a/keyboards/dtisaac/dosa40rgb/rules.mk +++ b/keyboards/dtisaac/dosa40rgb/rules.mk @@ -11,7 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes # Enable Bluetooth -BLUETOOTH_DRIVER = BluefruitLE RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/dtisaac/dtisaac01/info.json b/keyboards/dtisaac/dtisaac01/info.json index 68f7221d31e..3d16da6d222 100644 --- a/keyboards/dtisaac/dtisaac01/info.json +++ b/keyboards/dtisaac/dtisaac01/info.json @@ -24,8 +24,224 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_ansi" + }, + "community_layouts": [ + "tkl_ansi", + "tkl_ansi_tsangan" + ], "layouts": { - "LAYOUT": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + + {"matrix": [5, 8], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [6, 8], "x": 9, "y": 1.25}, + {"matrix": [6, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [7, 4], "x": 15.25, "y": 1.25}, + {"matrix": [7, 5], "x": 16.25, "y": 1.25}, + {"matrix": [7, 6], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [7, 8], "x": 9.5, "y": 2.25}, + {"matrix": [7, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [8, 4], "x": 15.25, "y": 2.25}, + {"matrix": [8, 5], "x": 16.25, "y": 2.25}, + {"matrix": [8, 6], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [8, 8], "x": 9.75, "y": 3.25}, + {"matrix": [8, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 3], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [9, 8], "x": 9.25, "y": 4.25}, + {"matrix": [9, 0], "x": 10.25, "y": 4.25}, + {"matrix": [10, 1], "x": 11.25, "y": 4.25}, + {"matrix": [10, 3], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [10, 5], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [10, 0], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 1], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [11, 2], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 3], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [11, 4], "x": 15.25, "y": 5.25}, + {"matrix": [11, 5], "x": 16.25, "y": 5.25}, + {"matrix": [11, 6], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + + {"matrix": [5, 8], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [6, 8], "x": 9, "y": 1.25}, + {"matrix": [6, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [7, 4], "x": 15.25, "y": 1.25}, + {"matrix": [7, 5], "x": 16.25, "y": 1.25}, + {"matrix": [7, 6], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [7, 8], "x": 9.5, "y": 2.25}, + {"matrix": [7, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [8, 4], "x": 15.25, "y": 2.25}, + {"matrix": [8, 5], "x": 16.25, "y": 2.25}, + {"matrix": [8, 6], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [8, 8], "x": 9.75, "y": 3.25}, + {"matrix": [8, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 3], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [9, 8], "x": 9.25, "y": 4.25}, + {"matrix": [9, 0], "x": 10.25, "y": 4.25}, + {"matrix": [10, 1], "x": 11.25, "y": 4.25}, + {"matrix": [10, 3], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [10, 5], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [10, 0], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 1], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [11, 2], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 3], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [11, 4], "x": 15.25, "y": 5.25}, + {"matrix": [11, 5], "x": 16.25, "y": 5.25}, + {"matrix": [11, 6], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -48,85 +264,185 @@ {"matrix": [6, 5], "x": 16.25, "y": 0}, {"matrix": [6, 6], "x": 17.25, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.5}, - {"matrix": [1, 2], "x": 2, "y": 1.5}, - {"matrix": [1, 3], "x": 3, "y": 1.5}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - {"matrix": [1, 6], "x": 6, "y": 1.5}, - {"matrix": [1, 7], "x": 7, "y": 1.5}, - {"matrix": [1, 8], "x": 8, "y": 1.5}, - {"matrix": [6, 8], "x": 9, "y": 1.5}, - {"matrix": [6, 0], "x": 10, "y": 1.5}, - {"matrix": [7, 1], "x": 11, "y": 1.5}, - {"matrix": [7, 2], "x": 12, "y": 1.5}, - {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2}, - - {"matrix": [7, 4], "x": 15.25, "y": 1.5}, - {"matrix": [7, 5], "x": 16.25, "y": 1.5}, - {"matrix": [7, 6], "x": 17.25, "y": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"matrix": [7, 8], "x": 9.5, "y": 2.5}, - {"matrix": [7, 0], "x": 10.5, "y": 2.5}, - {"matrix": [8, 1], "x": 11.5, "y": 2.5}, - {"matrix": [8, 2], "x": 12.5, "y": 2.5}, - {"matrix": [8, 3], "x": 13.5, "y": 2.5, "w": 1.5}, - - {"matrix": [8, 4], "x": 15.25, "y": 2.5}, - {"matrix": [8, 5], "x": 16.25, "y": 2.5}, - {"matrix": [8, 6], "x": 17.25, "y": 2.5}, - - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"matrix": [8, 8], "x": 9.75, "y": 3.5}, - {"matrix": [8, 0], "x": 10.75, "y": 3.5}, - {"matrix": [9, 1], "x": 11.75, "y": 3.5}, - {"matrix": [9, 3], "x": 12.75, "y": 3.5, "w": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.5}, - {"matrix": [4, 3], "x": 3.25, "y": 4.5}, - {"matrix": [4, 4], "x": 4.25, "y": 4.5}, - {"matrix": [4, 5], "x": 5.25, "y": 4.5}, - {"matrix": [4, 6], "x": 6.25, "y": 4.5}, - {"matrix": [4, 7], "x": 7.25, "y": 4.5}, - {"matrix": [4, 8], "x": 8.25, "y": 4.5}, - {"matrix": [9, 8], "x": 9.25, "y": 4.5}, - {"matrix": [9, 0], "x": 10.25, "y": 4.5}, - {"matrix": [10, 1], "x": 11.25, "y": 4.5}, - {"matrix": [10, 3], "x": 12.25, "y": 4.5, "w": 2.75}, - - {"matrix": [10, 5], "x": 16.25, "y": 4.5}, - - {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, - {"matrix": [10, 0], "x": 10, "y": 5.5, "w": 1.25}, - {"matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25}, - {"matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25}, - {"matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25}, - - {"matrix": [11, 4], "x": 15.25, "y": 5.5}, - {"matrix": [11, 5], "x": 16.25, "y": 5.5}, - {"matrix": [11, 6], "x": 17.25, "y": 5.5} + {"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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [6, 8], "x": 9, "y": 1.25}, + {"matrix": [6, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [7, 4], "x": 15.25, "y": 1.25}, + {"matrix": [7, 5], "x": 16.25, "y": 1.25}, + {"matrix": [7, 6], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [7, 8], "x": 9.5, "y": 2.25}, + {"matrix": [7, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [8, 4], "x": 15.25, "y": 2.25}, + {"matrix": [8, 5], "x": 16.25, "y": 2.25}, + {"matrix": [8, 6], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [8, 8], "x": 9.75, "y": 3.25}, + {"matrix": [8, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 3], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [9, 8], "x": 9.25, "y": 4.25}, + {"matrix": [9, 0], "x": 10.25, "y": 4.25}, + {"matrix": [10, 1], "x": 11.25, "y": 4.25}, + {"matrix": [10, 3], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [10, 5], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [11, 1], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [11, 2], "x": 12.5, "y": 5.25}, + {"matrix": [11, 3], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [11, 4], "x": 15.25, "y": 5.25}, + {"matrix": [11, 5], "x": 16.25, "y": 5.25}, + {"matrix": [11, 6], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + + {"matrix": [5, 8], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [6, 8], "x": 9, "y": 1.25}, + {"matrix": [6, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [7, 4], "x": 15.25, "y": 1.25}, + {"matrix": [7, 5], "x": 16.25, "y": 1.25}, + {"matrix": [7, 6], "x": 17.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [7, 8], "x": 9.5, "y": 2.25}, + {"matrix": [7, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [8, 4], "x": 15.25, "y": 2.25}, + {"matrix": [8, 5], "x": 16.25, "y": 2.25}, + {"matrix": [8, 6], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [8, 8], "x": 9.75, "y": 3.25}, + {"matrix": [8, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 3], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [9, 8], "x": 9.25, "y": 4.25}, + {"matrix": [9, 0], "x": 10.25, "y": 4.25}, + {"matrix": [10, 1], "x": 11.25, "y": 4.25}, + {"matrix": [10, 3], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [10, 5], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [11, 1], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [11, 3], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [11, 4], "x": 15.25, "y": 5.25}, + {"matrix": [11, 5], "x": 16.25, "y": 5.25}, + {"matrix": [11, 6], "x": 17.25, "y": 5.25} ] } } diff --git a/keyboards/dtisaac/dtisaac01/keymaps/default/keymap.c b/keyboards/dtisaac/dtisaac01/keymaps/default/keymap.c index 52cf6ef97cf..3e87ebb2b35 100644 --- a/keyboards/dtisaac/dtisaac01/keymaps/default/keymap.c +++ b/keyboards/dtisaac/dtisaac01/keymaps/default/keymap.c @@ -22,26 +22,20 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_NO), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_BASE] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1,KC_NO), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_FN] = 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, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_FN] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/dtisaac/dtisaac01/keymaps/via/keymap.c b/keyboards/dtisaac/dtisaac01/keymaps/via/keymap.c index b976dd03ad4..e22205e0bd0 100644 --- a/keyboards/dtisaac/dtisaac01/keymaps/via/keymap.c +++ b/keyboards/dtisaac/dtisaac01/keymaps/via/keymap.c @@ -19,41 +19,41 @@ enum layers { _LAYER0, _LAYER1, - _LAYER2, - _LAYER3, + _LAYER2, + _LAYER3, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_NO), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1,KC_NO), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLEP, KC_WAKE, KC_PWR, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, BL_ON, BL_UP, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, BL_OFF, BL_DOWN, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + [_LAYER1] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLEP, KC_WAKE, KC_PWR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, BL_ON, BL_UP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, BL_OFF, BL_DOWN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), - [_LAYER2] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [_LAYER2] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_LAYER3] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [_LAYER3] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/dtisaac/dtisaac01/keymaps/via/readme.md b/keyboards/dtisaac/dtisaac01/keymaps/via/readme.md index 0407ae2339f..aa2ec3fa225 100644 --- a/keyboards/dtisaac/dtisaac01/keymaps/via/readme.md +++ b/keyboards/dtisaac/dtisaac01/keymaps/via/readme.md @@ -1 +1 @@ -# The default keymap for dtisaac01 +# The via keymap for dtisaac01 diff --git a/keyboards/dtisaac/dtisaac01/matrix_diagram.md b/keyboards/dtisaac/dtisaac01/matrix_diagram.md new file mode 100644 index 00000000000..e1034cb589b --- /dev/null +++ b/keyboards/dtisaac/dtisaac01/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for DTIsaac dtisaac01 + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ +│00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │58 │61 │62 │63 ││64 │65 │66 │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │68 │60 │71 │72 │73 ││74 │75 │76 │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │78 │70 │81 │82 │83 ││84 │85 │86 │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │88 │80 │91 │93 │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │98 │90 │A1 │A3 │ │A5 │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ +│50 │51 │52 │56 │A0 │B1 │B2 │B3 ││B4 │B5 │B6 │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │56 │B1 │B2 │B3 │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/duck/eagle_viper/v2/config.h b/keyboards/duck/eagle_viper/v2/config.h index e39099ef56f..94b38574fa7 100644 --- a/keyboards/duck/eagle_viper/v2/config.h +++ b/keyboards/duck/eagle_viper/v2/config.h @@ -23,17 +23,3 @@ along with this program. If not, see . #define MATRIX_COLS 15 #define DIODE_DIRECTION COL2ROW - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 17 - -#define TAPPING_TERM 200 diff --git a/keyboards/duck/eagle_viper/v2/info.json b/keyboards/duck/eagle_viper/v2/info.json index 4d6019ddba0..c2acc3b0d95 100644 --- a/keyboards/duck/eagle_viper/v2/info.json +++ b/keyboards/duck/eagle_viper/v2/info.json @@ -12,6 +12,21 @@ "bootmagic": { "matrix": [4, 10] }, + "rgblight": { + "led_count": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/duck/jetfire/config.h b/keyboards/duck/jetfire/config.h index 95459e67b1a..ec1826db337 100644 --- a/keyboards/duck/jetfire/config.h +++ b/keyboards/duck/jetfire/config.h @@ -25,18 +25,6 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 23 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/duck/jetfire/info.json b/keyboards/duck/jetfire/info.json index 287ab0ac4ab..fbd5d8cb140 100644 --- a/keyboards/duck/jetfire/info.json +++ b/keyboards/duck/jetfire/info.json @@ -15,6 +15,21 @@ "bootmagic": { "matrix": [5, 10] }, + "rgblight": { + "led_count": 23, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/duck/lightsaver/config.h b/keyboards/duck/lightsaver/config.h index cb5a419f566..88a728942f2 100644 --- a/keyboards/duck/lightsaver/config.h +++ b/keyboards/duck/lightsaver/config.h @@ -23,17 +23,3 @@ along with this program. If not, see . #define MATRIX_COLS 19 #define DIODE_DIRECTION COL2ROW - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 17 - -#define TAPPING_TERM 200 diff --git a/keyboards/duck/lightsaver/info.json b/keyboards/duck/lightsaver/info.json index 296820d7caf..06d0d59ed19 100644 --- a/keyboards/duck/lightsaver/info.json +++ b/keyboards/duck/lightsaver/info.json @@ -15,6 +15,21 @@ "bootmagic": { "matrix": [5, 10] }, + "rgblight": { + "led_count": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/duck/octagon/v1/config.h b/keyboards/duck/octagon/v1/config.h index 9b557edaba3..bee7675b0c4 100644 --- a/keyboards/duck/octagon/v1/config.h +++ b/keyboards/duck/octagon/v1/config.h @@ -23,17 +23,3 @@ along with this program. If not, see . #define MATRIX_COLS 16 #define DIODE_DIRECTION COL2ROW - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 17 - -#define TAPPING_TERM 200 diff --git a/keyboards/duck/octagon/v1/info.json b/keyboards/duck/octagon/v1/info.json index 8186ce878ef..fbbae2723a8 100644 --- a/keyboards/duck/octagon/v1/info.json +++ b/keyboards/duck/octagon/v1/info.json @@ -15,6 +15,21 @@ "bootmagic": { "matrix": [5, 10] }, + "rgblight": { + "led_count": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/duck/octagon/v1/v1.c b/keyboards/duck/octagon/v1/v1.c index dc3b7fc7286..35aea54456f 100644 --- a/keyboards/duck/octagon/v1/v1.c +++ b/keyboards/duck/octagon/v1/v1.c @@ -43,8 +43,8 @@ void backlight_set(uint8_t level) { bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); if(res) { - backlight_os_state & (1<. #define MATRIX_COLS 17 #define DIODE_DIRECTION COL2ROW - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 17 - -#define TAPPING_TERM 200 diff --git a/keyboards/duck/octagon/v2/info.json b/keyboards/duck/octagon/v2/info.json index f3bd30fbe57..c1512f806b9 100644 --- a/keyboards/duck/octagon/v2/info.json +++ b/keyboards/duck/octagon/v2/info.json @@ -15,6 +15,21 @@ "bootmagic": { "matrix": [5, 10] }, + "rgblight": { + "led_count": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/duck/octagon/v2/v2.c b/keyboards/duck/octagon/v2/v2.c index 612df9aa3e2..7a3ad76027f 100644 --- a/keyboards/duck/octagon/v2/v2.c +++ b/keyboards/duck/octagon/v2/v2.c @@ -101,17 +101,17 @@ bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); if(res) { bool status[7] = { - backlight_os_state & (1<. #define MATRIX_COLS 18 #define DIODE_DIRECTION COL2ROW - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 18 - -#define TAPPING_TERM 200 diff --git a/keyboards/duck/orion/v3/info.json b/keyboards/duck/orion/v3/info.json index eff1e5f88cf..97885c09102 100644 --- a/keyboards/duck/orion/v3/info.json +++ b/keyboards/duck/orion/v3/info.json @@ -16,6 +16,21 @@ "bootmagic": { "matrix": [4, 10] }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/duck/tcv3/config.h b/keyboards/duck/tcv3/config.h index 13f2d761398..2f67da17bfc 100644 --- a/keyboards/duck/tcv3/config.h +++ b/keyboards/duck/tcv3/config.h @@ -23,15 +23,3 @@ along with this program. If not, see . #define MATRIX_COLS 20 #define DIODE_DIRECTION COL2ROW - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 17 diff --git a/keyboards/duck/tcv3/info.json b/keyboards/duck/tcv3/info.json index 69f1033d222..cee675229d9 100644 --- a/keyboards/duck/tcv3/info.json +++ b/keyboards/duck/tcv3/info.json @@ -11,6 +11,21 @@ "bootmagic": { "matrix": [5, 10] }, + "rgblight": { + "led_count": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/duck/tcv3/tcv3.c b/keyboards/duck/tcv3/tcv3.c index ab89e180c0f..87b22443e47 100644 --- a/keyboards/duck/tcv3/tcv3.c +++ b/keyboards/duck/tcv3/tcv3.c @@ -24,69 +24,6 @@ enum BACKLIGHT_AREAS { BACKLIGHT_SWITCH = 0b0001111 }; -// uint8_t backlight_rgb_r = 255; -// uint8_t backlight_rgb_g = 0; -// uint8_t backlight_rgb_b = 0; -// uint8_t backlight_os_state = 0; -// uint32_t backlight_layer_state = 0; - -// void backlight_toggle_rgb(bool enabled) -// { -// if(enabled) { -// uint8_t rgb[17][3] = { -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}, -// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b} -// }; -// backlight_set_rgb(rgb); -// } else { -// uint8_t rgb[17][3] = { -// {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}, -// {0, 0, 0}, -// {0, 0, 0}, -// {0, 0, 0} -// }; -// backlight_set_rgb(rgb); -// } -// } - -// void backlight_set_rgb(uint8_t cfg[17][3]) -// { -// cli(); -// for(uint8_t i = 0; i < 17; ++i) { -// send_color(cfg[i][0], cfg[i][1], cfg[i][2], Device_PCBRGB); -// } -// sei(); -// show(); -// } - // Q5, Q6, Q7 is connected to B1 - alphas // Q8, Q9 is connected to B2 - frow // Q1, Q2, Q3 is connected to B3 - mods @@ -99,26 +36,6 @@ void backlight_set(uint8_t level) { level & BACKLIGHT_MACRO ? (PORTE |= 0b01000000) : (PORTE &= ~0b01000000); } -// // Port from backlight_update_state -// bool led_update_kb(led_t led_state) { -// bool res = led_update_user(led_state); -// if(res) { -// bool status[7] = { -// backlight_os_state & (1<. -*/ -#pragma once - -/* Reduce tapdance required taps from 5 to 2 */ -#define TAPPING_TOGGLE 2 diff --git a/keyboards/dumbpad/info.json b/keyboards/dumbpad/info.json index 341a1bcf8b7..605d90fbb48 100644 --- a/keyboards/dumbpad/info.json +++ b/keyboards/dumbpad/info.json @@ -6,5 +6,8 @@ "usb": { "vid": "0xDEAF", "pid": "0x0913" + }, + "tapping": { + "toggle": 2 } } diff --git a/keyboards/dumbpad/v1x_oled/config.h b/keyboards/dumbpad/v1x_oled/config.h deleted file mode 100644 index 1293e859792..00000000000 --- a/keyboards/dumbpad/v1x_oled/config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright 2020 imchipwood -This 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 - -/* Reduce tapdance required taps from 5 to 2 */ -#define TAPPING_TOGGLE 2 diff --git a/keyboards/dumbpad/v1x_oled/rules.mk b/keyboards/dumbpad/v1x_oled/rules.mk index 073a351a03c..53db407bc36 100644 --- a/keyboards/dumbpad/v1x_oled/rules.mk +++ b/keyboards/dumbpad/v1x_oled/rules.mk @@ -13,5 +13,4 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes diff --git a/keyboards/dumbpad/v3x/config.h b/keyboards/dumbpad/v3x/config.h index 1944244c3bd..7667bb39d06 100644 --- a/keyboards/dumbpad/v3x/config.h +++ b/keyboards/dumbpad/v3x/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . // Cleanup RGB #ifdef RGB_MATRIX_ENABLE -#define RGB_MATRIX_TIMEOUT 300000 // 5 minutes (5 * 60 * 1000ms) #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Heatmap, Rain diff --git a/keyboards/dumbpad/v3x/info.json b/keyboards/dumbpad/v3x/info.json index 5be344c17b0..24c16ac0afb 100644 --- a/keyboards/dumbpad/v3x/info.json +++ b/keyboards/dumbpad/v3x/info.json @@ -6,7 +6,8 @@ "device_version": "0.1.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "timeout": 300000 }, "matrix_pins": { "cols": ["C6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/durgod/boards/DURGOD_STM32_F070/board.mk b/keyboards/durgod/boards/DURGOD_STM32_F070/board.mk index 4af16198fa7..47918483334 100644 --- a/keyboards/durgod/boards/DURGOD_STM32_F070/board.mk +++ b/keyboards/durgod/boards/DURGOD_STM32_F070/board.mk @@ -5,7 +5,7 @@ BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F070RB/board.c BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F070RB # Include mcu configuration -EXTRAINCDIRS += $(BOARD_PATH)/boards/DURGOD_STM32_F070 +EXTRAINCDIRS = $(BOARD_PATH)/boards/DURGOD_STM32_F070 # Shared variables ALLCSRC += $(BOARDSRC) diff --git a/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json index 6be76652800..e3b969149ac 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "durgod/dgk6x/hades", + "keyboard": "durgod/dgk6x/hades_ansi", "keymap": "default", "layout": "LAYOUT_65_ansi", "layers": [ diff --git a/keyboards/durgod/dgk6x/hades_ansi/keymaps/via/keymap.json b/keyboards/durgod/dgk6x/hades_ansi/keymaps/via/keymap.json index 0cef377c841..7c25f6efb07 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/keymaps/via/keymap.json +++ b/keyboards/durgod/dgk6x/hades_ansi/keymaps/via/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "durgod/dgk6x/hades", + "keyboard": "durgod/dgk6x/hades_ansi", "keymap": "via", "layout": "LAYOUT_65_ansi", "layers": [ diff --git a/keyboards/durgod/dgk6x/info.json b/keyboards/durgod/dgk6x/info.json index df4c004ab5f..a52d0a9b8f7 100644 --- a/keyboards/durgod/dgk6x/info.json +++ b/keyboards/durgod/dgk6x/info.json @@ -5,7 +5,7 @@ "on_state": 0 }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "processor": "STM32F072", // F070 "bootloader": "stm32-dfu", diff --git a/keyboards/durgod/k320/keymaps/default_mac/keymap.json b/keyboards/durgod/k320/keymaps/default_mac/keymap.json index a0e83def369..97fc214c7b7 100644 --- a/keyboards/durgod/k320/keymaps/default_mac/keymap.json +++ b/keyboards/durgod/k320/keymaps/default_mac/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "durgod/k310/base", + "keyboard": "durgod/k320/base", "keymap": "default_mac", "layout": "LAYOUT_all", "layers": [ diff --git a/keyboards/durgod/k320/keymaps/kuenhlee/keymap.c b/keyboards/durgod/k320/keymaps/kuenhlee/keymap.c index 7f49352de45..4092126d7fa 100644 --- a/keyboards/durgod/k320/keymaps/kuenhlee/keymap.c +++ b/keyboards/durgod/k320/keymaps/kuenhlee/keymap.c @@ -132,11 +132,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_UL] = LAYOUT_tkl_ansi( /* Unicode Layer */ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - X(APPR), X(NEQU), X(POW2), X(POW3), XXXXXXX, XXXXXXX, X(BSQR), X(WSQR), X(INFI), X(BDOT), X(WDOT), XXXXXXX, X(PONE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, X(SUM), XXXXXXX, X(MYU), X(SAME), XXXXXXX, X(OHM), X(DLAR), X(DRAR), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, X(SQRT), X(DELT), XXXXXXX, XXXXXXX, X(THFR), XXXXXXX, XXXXXXX, XXXXXXX, X(THET), X(DEGR), XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, X(COPY), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, X(LTOE), X(MTOE), X(DIV), XXXXXXX, X(UARR), - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, KC_TRNS, XXXXXXX, X(LARR), X(DARR), X(RARR) + UM(APPR), UM(NEQU), UM(POW2), UM(POW3), XXXXXXX, XXXXXXX, UM(BSQR), UM(WSQR), UM(INFI), UM(BDOT), UM(WDOT), XXXXXXX, UM(PONE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UM(SUM), XXXXXXX, UM(MYU), UM(SAME), XXXXXXX, UM(OHM), UM(DLAR), UM(DRAR), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, UM(SQRT), UM(DELT), XXXXXXX, XXXXXXX, UM(THFR), XXXXXXX, XXXXXXX, XXXXXXX, UM(THET), UM(DEGR), XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, UM(COPY), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UM(LTOE), UM(MTOE), UM(DIV), XXXXXXX, UM(UARR), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, KC_TRNS, XXXXXXX, UM(LARR), UM(DARR), UM(RARR) ) }; diff --git a/keyboards/durgod/k3x0/keymaps/vial/config.h b/keyboards/durgod/k320/keymaps/vial/config.h similarity index 100% rename from keyboards/durgod/k3x0/keymaps/vial/config.h rename to keyboards/durgod/k320/keymaps/vial/config.h diff --git a/keyboards/durgod/k320/keymaps/vial/keymap.c b/keyboards/durgod/k320/keymaps/vial/keymap.c new file mode 100644 index 00000000000..74c4c2e5f5e --- /dev/null +++ b/keyboards/durgod/k320/keymaps/vial/keymap.c @@ -0,0 +1,42 @@ +/* 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 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_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_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_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 + ), + [_FN] = LAYOUT_all( /* Function Layer */ + _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, GUI_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/durgod/k3x0/keymaps/vial/rules.mk b/keyboards/durgod/k320/keymaps/vial/rules.mk similarity index 100% rename from keyboards/durgod/k3x0/keymaps/vial/rules.mk rename to keyboards/durgod/k320/keymaps/vial/rules.mk diff --git a/keyboards/durgod/k3x0/keymaps/vial/vial.json b/keyboards/durgod/k320/keymaps/vial/vial.json similarity index 100% rename from keyboards/durgod/k3x0/keymaps/vial/vial.json rename to keyboards/durgod/k320/keymaps/vial/vial.json diff --git a/keyboards/durgod/k3x0/keymaps/vial/keymap.c b/keyboards/durgod/k3x0/keymaps/vial/keymap.c deleted file mode 100644 index d1a9e1496a2..00000000000 --- a/keyboards/durgod/k3x0/keymaps/vial/keymap.c +++ /dev/null @@ -1,128 +0,0 @@ -/* 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, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8 -}; - -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│ │Num│ / │ * │ - │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│ │ 4 │ 5 │ 6 │ │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤ - * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ - * │Ctrl│GUI │Alt │ │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ - */ - [_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_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_NUM, KC_PSLS, KC_PAST, KC_PMNS, - 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_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_P4, KC_P5, KC_P6, - 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_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - /* 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 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LAYER5] = LAYOUT_all( /* Layer 5 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LAYER6] = LAYOUT_all( /* Layer 6 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LAYER7] = LAYOUT_all( /* Layer 7 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LAYER8] = LAYOUT_all( /* Layer 8 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/durgod/k3x0/keymaps/vial/readme.md b/keyboards/durgod/k3x0/keymaps/vial/readme.md deleted file mode 100644 index 952b1912ce0..00000000000 --- a/keyboards/durgod/k3x0/keymaps/vial/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -# 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/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md deleted file mode 100644 index 90e9602e717..00000000000 --- a/keyboards/durgod/k3x0/readme.md +++ /dev/null @@ -1,82 +0,0 @@ -# K3X0 = K310, K320, etc. - -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 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 - -### Build - -Instructions for building the K310 and K320 firmware can be found here: -* [K310](k310/readme.md) -* [K320](k320/readme.md) - -### Initial Flash - -#### Requirements - -- The Durgod K320/K310 - different batches have different controllers, so when opening the keyboard, you will have to make sure it's using SMT32 controller. -- Another keyboard - when on bootloader mode, you can't use the keyboard to type and execute the commands (not really required if you can use any mouse interface to type and execute the commands). -- 2 prying tools - to open the keyboard. -- Another helping hand - it can be also done with just two hands, but it will require a lot of dexterity. -- A small cable with both ends cut. - -#### Enter bootloader while using the original firmware - -1. Unplug USB cable. -2. Open the keyboard case - there are plenty of youtube videos in that, but you will basically need 2 prying tools and a certain amount of force. -3. After opening the keyboard, put the PCB upsides down, and the controller should be near the LEDs, and make sure it's using the right controller (SMT32). -4. Use the cable to short Boot0 to Vdd, by shorting R21 to C27 on the sides closest to the processor, as shown: - -Shorting Boot0 to Vdd on K320 - -5. While shorting both contacts as instructed in step 4, plug in the USB cable. -6. When the USB cable is fully inserted, the LEDs should not turn on and the keyboard it's not able to type, you are probably on bootloader mode, to be sure: - - Using dfu-util, it should show something like "Found DFU…" after using this command: -``` -dfu-util --list -``` - -Now that you are sure to be in bootloader mode, you can backup the original firmware and flash QMK Firmware. - -If it does not behave like described, remove the cable and go back to step 4. - -#### Backup original firmware - -1. Be in Bootloader mode. -2. Execute this command to backup: - - Using dfu-util: -```bash -dfu-util -a 0 -d 0483:DF11 -s 0x08000000 -U k3x0_original.bin -``` - -#### Flash the QMK Firmware Image - -1. Be in Bootloader mode. -2. Here are a few options for performing the initial Flash: - - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox) - - Using qmk on command line: - -```bash -# k310 -qmk flash -kb durgod/k3x0/k310 -km default - -# k320 -qmk flash -kb durgod/k3x0/k320 -km default -``` - -### Subsequent Flashing - -For repeating Flashing you can use BootMagic Lite has been enabled by default and assigned to the "Esc" key: - -1. Unplug USB Cable. -2. Hold the "Esc" key. -2. Plug in the USB Cable, the Keyboard should be in ST-Bootloader state. diff --git a/keyboards/dyz/dyz40/config.h b/keyboards/dyz/dyz40/config.h index 87e057133dc..7e7ca8b6949 100644 --- a/keyboards/dyz/dyz40/config.h +++ b/keyboards/dyz/dyz40/config.h @@ -17,6 +17,4 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 // Need this delay for some keys like VOLD/VOLU to work - #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/dyz40/info.json b/keyboards/dyz/dyz40/info.json index bb54647fedc..fdd14a7c428 100644 --- a/keyboards/dyz/dyz40/info.json +++ b/keyboards/dyz/dyz40/info.json @@ -13,6 +13,9 @@ {"pin_a": "D1", "pin_b": "D0"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "rgblight": { "led_count": 13, "hue_steps": 10, diff --git a/keyboards/dyz/dyz60/config.h b/keyboards/dyz/dyz60/config.h index 87e057133dc..7e7ca8b6949 100644 --- a/keyboards/dyz/dyz60/config.h +++ b/keyboards/dyz/dyz60/config.h @@ -17,6 +17,4 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 // Need this delay for some keys like VOLD/VOLU to work - #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/dyz60/info.json b/keyboards/dyz/dyz60/info.json index 05e0a2dae71..28300d79143 100644 --- a/keyboards/dyz/dyz60/info.json +++ b/keyboards/dyz/dyz60/info.json @@ -39,6 +39,9 @@ {"pin_a": "D0", "pin_b": "D1"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "indicators": { "caps_lock": "F1" }, diff --git a/keyboards/dyz/dyz60_hs/config.h b/keyboards/dyz/dyz60_hs/config.h index 4dd98dcbdfe..7e7ca8b6949 100644 --- a/keyboards/dyz/dyz60_hs/config.h +++ b/keyboards/dyz/dyz60_hs/config.h @@ -17,5 +17,4 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 // Need this delay for some keys like VOLD/VOLU to work #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/dyz60_hs/info.json b/keyboards/dyz/dyz60_hs/info.json index c23b0dca6a5..598f236980b 100644 --- a/keyboards/dyz/dyz60_hs/info.json +++ b/keyboards/dyz/dyz60_hs/info.json @@ -37,6 +37,9 @@ "pid": "0x001A", "device_version": "0.0.1" }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb", "60_iso", "60_iso_split_bs_rshift"], diff --git a/keyboards/dyz/dyz_tkl/config.h b/keyboards/dyz/dyz_tkl/config.h index 87e057133dc..7e7ca8b6949 100644 --- a/keyboards/dyz/dyz_tkl/config.h +++ b/keyboards/dyz/dyz_tkl/config.h @@ -17,6 +17,4 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 // Need this delay for some keys like VOLD/VOLU to work - #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/dyz_tkl/info.json b/keyboards/dyz/dyz_tkl/info.json index c44e9b585cd..298611a742f 100644 --- a/keyboards/dyz/dyz_tkl/info.json +++ b/keyboards/dyz/dyz_tkl/info.json @@ -34,6 +34,9 @@ "indicators": { "caps_lock": "D2" }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["tkl_f13_ansi", "tkl_f13_iso"], diff --git a/keyboards/dyz/selka40/config.h b/keyboards/dyz/selka40/config.h index 87e057133dc..7e7ca8b6949 100644 --- a/keyboards/dyz/selka40/config.h +++ b/keyboards/dyz/selka40/config.h @@ -17,6 +17,4 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 // Need this delay for some keys like VOLD/VOLU to work - #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/selka40/info.json b/keyboards/dyz/selka40/info.json index 8fe32e5071c..95ac00a8831 100644 --- a/keyboards/dyz/selka40/info.json +++ b/keyboards/dyz/selka40/info.json @@ -39,6 +39,9 @@ {"pin_a": "D6", "pin_b": "D7"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "indicators": { "caps_lock": "B1", "num_lock": "B3", diff --git a/keyboards/dz60/config.h b/keyboards/dz60/config.h index 98673bdef01..bec7fcc3dcd 100644 --- a/keyboards/dz60/config.h +++ b/keyboards/dz60/config.h @@ -1,21 +1,5 @@ #pragma once -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json index 4c5fb59d2e6..a46b1564ec5 100644 --- a/keyboards/dz60/info.json +++ b/keyboards/dz60/info.json @@ -21,6 +21,24 @@ "caps_lock": "B2", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/dz60/keymaps/muzfuz/keymap.c b/keyboards/dz60/keymaps/muzfuz/keymap.c index 36b843d4598..1a71b9bb868 100644 --- a/keyboards/dz60/keymaps/muzfuz/keymap.c +++ b/keyboards/dz60/keymaps/muzfuz/keymap.c @@ -25,38 +25,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { DDRB |= (1 << 2); PORTB &= ~(1 << 2); } else { DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - + return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) diff --git a/keyboards/dztech/bocc/config.h b/keyboards/dztech/bocc/config.h index ba8626e95c8..9ad357341e9 100644 --- a/keyboards/dztech/bocc/config.h +++ b/keyboards/dztech/bocc/config.h @@ -15,22 +15,6 @@ */ #pragma once -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/dztech/bocc/info.json b/keyboards/dztech/bocc/info.json index 525ec939477..1b284df4e35 100644 --- a/keyboards/dztech/bocc/info.json +++ b/keyboards/dztech/bocc/info.json @@ -17,6 +17,24 @@ "pin": "B7", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/dztech/duo_s/config.h b/keyboards/dztech/duo_s/config.h index 4685510d8b9..361706e5764 100644 --- a/keyboards/dztech/duo_s/config.h +++ b/keyboards/dztech/duo_s/config.h @@ -16,23 +16,8 @@ #pragma once -#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_EFFECT_RAINBOW_MOOD + 6) #define RGBLIGHT_DEFAULT_SPD 15 -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 -#define RGBLIGHT_SLEEP /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/dztech/duo_s/info.json b/keyboards/dztech/duo_s/info.json index 3d806edf412..02776750185 100644 --- a/keyboards/dztech/duo_s/info.json +++ b/keyboards/dztech/duo_s/info.json @@ -8,6 +8,25 @@ "pid": "0x1012", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c b/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c index 8d58eed10ec..e446178b62b 100644 --- a/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c @@ -25,7 +25,6 @@ enum dz60rgb_keycodes { #define _V_V_V_ KC_TRNS #define LT_CAPS LT(_NAV, KC_CAPS) #define LT_DEL LT(_RGB, KC_DEL) -extern bool autoshift_enabled; #define MT_SLSH RSFT_T(KC_SLSH) #define MT_APP RALT_T(KC_APP) #define LM_LALT LM(_FNM, MOD_LALT) @@ -92,12 +91,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; bool rgb_matrix_indicators_user(void) { - uint8_t this_led = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); if (!g_suspend_state && rgb_matrix_config.enable) { switch (get_highest_layer(layer_state)) { case _NAV: - if (this_led & (1 << USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { rgb_matrix_set_color(13, 0xFF, 0x00, 0x00); rgb_matrix_set_color(19, 0xFF, 0xFF, 0x00); } else { @@ -204,17 +203,11 @@ bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(41, 0xFF, 0x00, 0x40); // ctrl+delete rgb_matrix_set_color(43, 0xFF, 0x00, 0x40); // ctrl+slash - if (this_led & (1 << !autoshift_enabled)) { - rgb_matrix_set_color(0, 0xFF, 0x00, 0x00); // AS_TOGG - } else { - rgb_matrix_set_color(0, 0xFF, 0xFF, 0x00); - } - break; } } - if (this_led & (1 << USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); } return false; diff --git a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c index 4dca4d2396b..52b7643850e 100644 --- a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c @@ -58,7 +58,7 @@ void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { } bool rgb_matrix_indicators_user(void) { - uint8_t this_led = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); if (!g_suspend_state && rgb_matrix_config.enable) { switch (get_highest_layer(layer_state)) { @@ -73,13 +73,13 @@ bool rgb_matrix_indicators_user(void) { } } - if (this_led & (1 << USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); } switch (get_highest_layer(layer_state)) { case _LAYER3: - if (this_led & (1 << USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { rgb_matrix_set_color(13, 0xFF, 0x00, 0x00); } else { rgb_matrix_set_color(13, 0x00, 0x00, 0x00); @@ -152,22 +152,3 @@ bool rgb_matrix_indicators_user(void) { } return false; } - - - - - -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/keymaps/vial/rules.mk b/keyboards/dztech/dz60rgb/keymaps/vial/rules.mk index 6ebe86e16c8..c60058880f1 100644 --- a/keyboards/dztech/dz60rgb/keymaps/vial/rules.mk +++ b/keyboards/dztech/dz60rgb/keymaps/vial/rules.mk @@ -6,3 +6,4 @@ LTO_ENABLE = yes # make the compiler work harder QMK_SETTINGS = no # enables the tab to change QMK settings from the GUI TAP_DANCE_ENABLE = no # enables "key tap" functionality KEY_OVERRIDE_ENABLE = no # enables the ability to add custom keys +COMBO_ENABLE = no diff --git a/keyboards/dztech/dz60rgb/v1/info.json b/keyboards/dztech/dz60rgb/v1/info.json index 56a70183f53..0033c3acc7a 100644 --- a/keyboards/dztech/dz60rgb/v1/info.json +++ b/keyboards/dztech/dz60rgb/v1/info.json @@ -4,7 +4,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["A6", "A7", "B0", "B13", "B15", "A8", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14"], diff --git a/keyboards/dztech/dz60rgb/v2/info.json b/keyboards/dztech/dz60rgb/v2/info.json index 0b263d80998..4801792d98e 100644 --- a/keyboards/dztech/dz60rgb/v2/info.json +++ b/keyboards/dztech/dz60rgb/v2/info.json @@ -4,7 +4,7 @@ "device_version": "2.0.0" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["C7", "F7", "F6", "F0", "B0", "B1", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "B7"], diff --git a/keyboards/dztech/dz60rgb/v2_1/info.json b/keyboards/dztech/dz60rgb/v2_1/info.json index 796b1bc4a33..9028f69d4fb 100644 --- a/keyboards/dztech/dz60rgb/v2_1/info.json +++ b/keyboards/dztech/dz60rgb/v2_1/info.json @@ -4,7 +4,7 @@ "device_version": "2.1.0" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["C7", "F7", "F6", "F0", "B0", "B1", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "B7"], diff --git a/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c b/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c index 7f3b24de74e..e5f5083ee5f 100644 --- a/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c +++ b/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c @@ -85,7 +85,7 @@ void highlight_layer3(void){ } bool rgb_matrix_indicators_user(void) { - uint8_t this_led = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); if (!g_suspend_state) { switch (get_highest_layer(layer_state)) { case 3: @@ -94,7 +94,7 @@ bool rgb_matrix_indicators_user(void) { break; } } - if ( this_led & (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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + 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_NUHS, 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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/dztech/pluto/keymaps/via/keymap.c b/keyboards/dztech/pluto/keymaps/via/keymap.c new file mode 100644 index 00000000000..9edd2f178f0 --- /dev/null +++ b/keyboards/dztech/pluto/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 DZTECH + * + * This 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_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_NUHS, 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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/dztech/pluto/keymaps/via/rules.mk b/keyboards/dztech/pluto/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/dztech/pluto/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/dztech/pluto/readme.md b/keyboards/dztech/pluto/readme.md new file mode 100644 index 00000000000..e4db0deb39f --- /dev/null +++ b/keyboards/dztech/pluto/readme.md @@ -0,0 +1,30 @@ +# PLUTO + +![PLUTO](https://i.imgur.com/BWVvKMO.jpg) + +The main purpose of this board is to introduce more people to the best layout. +This board was originally designed to be O-ring gasket mount only, Top mount was added to make the board whole. +Sticking with a mimal design, the engraving of planets was replaced with the Logo surrounding with pluto moons and planets. +Pluto now also features an accent Piece with an engraving of Pluto Symbol below the nav cluster. + +* Keyboard Maintainer: [DZTECH](https://github.com/moyi4681) +* Hardware Supported: DZTECH +* Hardware Availability: KBDFANS + +Make example for this keyboard (after setting up your build environment): + + make dztech/pluto:default + +Flashing example for this keyboard: + + make dztech/pluto: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/dztech/pluto/rules.mk b/keyboards/dztech/pluto/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/dztech/pluto/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/dztech/tofu/ii/v1/info.json b/keyboards/dztech/tofu/ii/v1/info.json index d8216891cd1..2eac06f6fd4 100644 --- a/keyboards/dztech/tofu/ii/v1/info.json +++ b/keyboards/dztech/tofu/ii/v1/info.json @@ -16,7 +16,7 @@ }, "processor": "RP2040", "rgb_matrix": { - "driver": "IS31FL3737", + "driver": "is31fl3737", "layout": [ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 4, "matrix": [0, 1], "x": 15, "y": 0}, diff --git a/keyboards/dztech/tofu/jr/v1/info.json b/keyboards/dztech/tofu/jr/v1/info.json index ef9bc6b9033..1460350d73e 100644 --- a/keyboards/dztech/tofu/jr/v1/info.json +++ b/keyboards/dztech/tofu/jr/v1/info.json @@ -16,7 +16,7 @@ "rows": ["GP29", "GP28", "GP27", "GP26", "GP22"] }, "rgb_matrix": { - "driver": "IS31FL3737", + "driver": "is31fl3737", "layout": [ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 4, "matrix": [0, 1], "x": 15, "y": 0}, diff --git a/keyboards/ealdin/quadrant/config.h b/keyboards/ealdin/quadrant/config.h index f5d4e037d9f..bce1fbc662e 100644 --- a/keyboards/ealdin/quadrant/config.h +++ b/keyboards/ealdin/quadrant/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 7 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ealdin/quadrant/info.json b/keyboards/ealdin/quadrant/info.json index be9249cca48..75b36063a67 100644 --- a/keyboards/ealdin/quadrant/info.json +++ b/keyboards/ealdin/quadrant/info.json @@ -18,6 +18,24 @@ {"pin_a": "D5", "pin_b": "F1"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/eason/aeroboard/config.h b/keyboards/eason/aeroboard/config.h index 5ba690ee955..ff00df878f2 100644 --- a/keyboards/eason/aeroboard/config.h +++ b/keyboards/eason/aeroboard/config.h @@ -3,17 +3,6 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 diff --git a/keyboards/eason/aeroboard/info.json b/keyboards/eason/aeroboard/info.json index c7383aa160c..2ee29f792db 100644 --- a/keyboards/eason/aeroboard/info.json +++ b/keyboards/eason/aeroboard/info.json @@ -2,13 +2,28 @@ "keyboard_name": "AeroBoard", "manufacturer": "Eason", "url": "", - "maintainer": "Eason", + "maintainer": "EasonQian1", "usb": { "vid": "0x8954", "pid": "0x8870", "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" @@ -21,12 +36,96 @@ "processor": "STM32F103", "bootloader": "stm32duino", "layouts": { - "LAYOUT": { + "LAYOUT_7u_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 1.75, "y": 0}, + {"matrix": [0, 1], "x": 2.75, "y": 0}, + {"matrix": [0, 3], "x": 3.75, "y": 0}, + {"matrix": [0, 4], "x": 4.75, "y": 0}, + {"matrix": [0, 5], "x": 5.75, "y": 0}, + {"matrix": [0, 6], "x": 6.75, "y": 0}, + {"matrix": [0, 7], "x": 7.75, "y": 0}, + {"matrix": [0, 8], "x": 8.75, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 13.75, "y": 0}, + {"matrix": [0, 14], "x": 14.75, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 16.75, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + + {"matrix": [1, 2], "x": 1.75, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 3.25, "y": 1}, + {"matrix": [1, 3], "x": 4.25, "y": 1}, + {"matrix": [1, 4], "x": 5.25, "y": 1}, + {"matrix": [1, 5], "x": 6.25, "y": 1}, + {"matrix": [1, 6], "x": 7.25, "y": 1}, + {"matrix": [1, 7], "x": 8.25, "y": 1}, + {"matrix": [1, 8], "x": 9.25, "y": 1}, + {"matrix": [1, 9], "x": 10.25, "y": 1}, + {"matrix": [1, 10], "x": 11.25, "y": 1}, + {"matrix": [1, 11], "x": 12.25, "y": 1}, + {"matrix": [1, 12], "x": 13.25, "y": 1}, + {"matrix": [1, 13], "x": 14.25, "y": 1}, + {"matrix": [1, 14], "x": 15.25, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 16.75, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.75, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.5, "y": 2}, + {"matrix": [2, 3], "x": 4.5, "y": 2}, + {"matrix": [2, 4], "x": 5.5, "y": 2}, + {"matrix": [2, 5], "x": 6.5, "y": 2}, + {"matrix": [2, 6], "x": 7.5, "y": 2}, + {"matrix": [2, 7], "x": 8.5, "y": 2}, + {"matrix": [2, 8], "x": 9.5, "y": 2}, + {"matrix": [2, 9], "x": 10.5, "y": 2}, + {"matrix": [2, 10], "x": 11.5, "y": 2}, + {"matrix": [2, 11], "x": 12.5, "y": 2}, + {"matrix": [2, 12], "x": 13.5, "y": 2}, + {"matrix": [2, 14], "x": 14.5, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 16.75, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + + {"matrix": [3, 1], "x": 1.75, "y": 3, "w": 2.25}, + {"matrix": [3, 3], "x": 4, "y": 3}, + {"matrix": [3, 4], "x": 5, "y": 3}, + {"matrix": [3, 5], "x": 6, "y": 3}, + {"matrix": [3, 6], "x": 7, "y": 3}, + {"matrix": [3, 7], "x": 8, "y": 3}, + {"matrix": [3, 8], "x": 9, "y": 3}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 15.75, "y": 3}, + {"matrix": [3, 15], "x": 16.75, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + + {"matrix": [4, 1], "x": 1.75, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 5.5, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 13], "x": 14.75, "y": 4}, + {"matrix": [4, 14], "x": 15.75, "y": 4}, + {"matrix": [4, 15], "x": 16.75, "y": 4} + ] + }, + "LAYOUT_split_space": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1.75, "y": 0}, - {"matrix": [0, 2], "x": 2.75, "y": 0}, + {"matrix": [0, 2], "x": 1.75, "y": 0}, + {"matrix": [0, 1], "x": 2.75, "y": 0}, {"matrix": [0, 3], "x": 3.75, "y": 0}, {"matrix": [0, 4], "x": 4.75, "y": 0}, {"matrix": [0, 5], "x": 5.75, "y": 0}, @@ -43,8 +142,8 @@ {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1.75, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 3.25, "y": 1}, + {"matrix": [1, 2], "x": 1.75, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 3.25, "y": 1}, {"matrix": [1, 3], "x": 4.25, "y": 1}, {"matrix": [1, 4], "x": 5.25, "y": 1}, {"matrix": [1, 5], "x": 6.25, "y": 1}, diff --git a/keyboards/eason/aeroboard/keymaps/default/keymap.c b/keyboards/eason/aeroboard/keymaps/default/keymap.c index 61f2a903641..2e6d012fba9 100644 --- a/keyboards/eason/aeroboard/keymaps/default/keymap.c +++ b/keyboards/eason/aeroboard/keymaps/default/keymap.c @@ -5,19 +5,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_1, KC_GRV, 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_MINS, KC_Q, KC_TAB, 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_PLUS, 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, - MO(1) , 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_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT( - KC_HOME, KC_F1, _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_DEL, KC_PSCR, - _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,QK_BOOT, KC_PAUS, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,_______, KC_VOLU, _______, - _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT - ), + [0] = LAYOUT_split_space( + KC_ESC, 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_MINS, 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_PLUS, 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, + MO(1), 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_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_split_space( + KC_HOME, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, KC_PAUS, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), }; diff --git a/keyboards/eason/aeroboard/keymaps/via/keymap.c b/keyboards/eason/aeroboard/keymaps/via/keymap.c index 614c3daa025..0c410242ef8 100644 --- a/keyboards/eason/aeroboard/keymaps/via/keymap.c +++ b/keyboards/eason/aeroboard/keymaps/via/keymap.c @@ -5,32 +5,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_1, KC_GRV, 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_MINS, KC_Q, KC_TAB, 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_PLUS, 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, - MO(1) , 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_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT( - KC_HOME, KC_F1, _______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_DEL, KC_PSCR, - _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,QK_BOOT, KC_PAUS, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,_______, KC_VOLU, _______, - _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT - ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + [0] = LAYOUT_split_space( + KC_ESC, 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_MINS, 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_PLUS, 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, + MO(1), 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_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_split_space( + KC_HOME, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, KC_PAUS, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_split_space( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_split_space( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/keyboards/eason/aeroboard/rules.mk b/keyboards/eason/aeroboard/rules.mk index 9f38d0d71b4..f8a65f43e91 100644 --- a/keyboards/eason/aeroboard/rules.mk +++ b/keyboards/eason/aeroboard/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/eason/capsule65/config.h b/keyboards/eason/capsule65/config.h deleted file mode 100644 index cfe3e84fda0..00000000000 --- a/keyboards/eason/capsule65/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2022 EASON XIAOXUXK@YEAH.NET - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/eason/capsule65/info.json b/keyboards/eason/capsule65/info.json index 6496a6be719..1ad66fdd653 100644 --- a/keyboards/eason/capsule65/info.json +++ b/keyboards/eason/capsule65/info.json @@ -16,6 +16,23 @@ "indicators": { "caps_lock": "F6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/eason/greatsword80/config.h b/keyboards/eason/greatsword80/config.h deleted file mode 100644 index 9a0ee7ab72f..00000000000 --- a/keyboards/eason/greatsword80/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2023 Eason - * - * This 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 LED_CAPS_LOCK_PIN F0 -#define LED_PIN_ON_STATE 0 diff --git a/keyboards/eason/greatsword80/info.json b/keyboards/eason/greatsword80/info.json index d198d65f2aa..74c469f7ced 100644 --- a/keyboards/eason/greatsword80/info.json +++ b/keyboards/eason/greatsword80/info.json @@ -8,6 +8,10 @@ "pid": "0x998F", "device_version": "0.0.1" }, + "indicators": { + "caps_lock": "F0", + "on_state": 0 + }, "matrix_pins": { "cols": ["D6", "D7", "B4", "B5", "B6", "C6", "C7", "E2", "F7", "F6", "F5", "F4", "B0", "B1", "B2", "B3"], "rows": ["D0", "D1", "D2", "D3", "D5", "D4"] diff --git a/keyboards/ebastler/e80_1800/config.h b/keyboards/ebastler/e80_1800/config.h index b0726f908a7..baa70731768 100644 --- a/keyboards/ebastler/e80_1800/config.h +++ b/keyboards/ebastler/e80_1800/config.h @@ -16,8 +16,6 @@ #define BACKLIGHT_PWM_DRIVER PWMD1 #define BACKLIGHT_PWM_CHANNEL 2 -#define BACKLIGHT_PAL_MODE 2 - #ifdef OLED_ENABLE diff --git a/keyboards/ebastler/e80_1800/info.json b/keyboards/ebastler/e80_1800/info.json index c735adc927d..dfb669e72e6 100644 --- a/keyboards/ebastler/e80_1800/info.json +++ b/keyboards/ebastler/e80_1800/info.json @@ -113,7 +113,7 @@ {"matrix": [4, 11], "label": ";", "x": 10.75, "y": 4}, {"matrix": [4, 12], "label": "'", "x": 11.75, "y": 4}, {"matrix": [4, 13], "label": "#", "x": 12.75, "y": 4}, - {"matrix": [4, 14], "label": "Enter", "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [4, 14], "label": "Enter", "x": 13.75, "y": 4, "w": 1.25}, {"matrix": [4, 15], "label": "4", "x": 15.5, "y": 4}, {"matrix": [4, 16], "label": "5", "x": 16.5, "y": 4}, {"matrix": [4, 17], "label": "6", "x": 17.5, "y": 4}, @@ -452,7 +452,7 @@ {"matrix": [4, 10], "label": "L", "x": 9.75, "y": 4}, {"matrix": [4, 11], "label": ";", "x": 10.75, "y": 4}, {"matrix": [4, 12], "label": "'", "x": 11.75, "y": 4}, - {"matrix": [4, 14], "label": "Enter", "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [4, 14], "label": "Enter", "x": 12.75, "y": 4, "w": 2.25}, {"matrix": [4, 15], "label": "4", "x": 15.5, "y": 4}, {"matrix": [4, 16], "label": "5", "x": 16.5, "y": 4}, {"matrix": [4, 17], "label": "6", "x": 17.5, "y": 4}, @@ -565,7 +565,7 @@ {"matrix": [4, 10], "label": "L", "x": 9.75, "y": 4}, {"matrix": [4, 11], "label": ";", "x": 10.75, "y": 4}, {"matrix": [4, 12], "label": "'", "x": 11.75, "y": 4}, - {"matrix": [4, 14], "label": "Enter", "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [4, 14], "label": "Enter", "x": 12.75, "y": 4, "w": 2.25}, {"matrix": [4, 15], "label": "4", "x": 15.5, "y": 4}, {"matrix": [4, 16], "label": "5", "x": 16.5, "y": 4}, {"matrix": [4, 17], "label": "6", "x": 17.5, "y": 4}, diff --git a/keyboards/ebastler/e80_1800/keymaps/via_oled/rules.mk b/keyboards/ebastler/e80_1800/keymaps/via_oled/rules.mk index 63e79e2da90..98ca45243db 100644 --- a/keyboards/ebastler/e80_1800/keymaps/via_oled/rules.mk +++ b/keyboards/ebastler/e80_1800/keymaps/via_oled/rules.mk @@ -1,5 +1,4 @@ VIA_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/ebastler/isometria_75/rev1/config.h b/keyboards/ebastler/isometria_75/rev1/config.h index 68f54a8014d..0fc8019a1dd 100644 --- a/keyboards/ebastler/isometria_75/rev1/config.h +++ b/keyboards/ebastler/isometria_75/rev1/config.h @@ -20,22 +20,14 @@ along with this program. If not, see . /* Backlight */ #define BACKLIGHT_PWM_DRIVER PWMD1 #define BACKLIGHT_PWM_CHANNEL 2 -#define BACKLIGHT_PAL_MODE 2 #define BACKLIGHT_PWM_OUTPUT_FREQUENCY 1000 // Increases backlight PWM freq if compiled with an unmerged PR. Does no harm without it. /* Underglow */ -#define RGBLED_NUM 17 #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 #define WS2812_PWM_PAL_MODE 2 #define WS2812_DMA_STREAM STM32_DMA1_STREAM2 #define WS2812_DMA_CHANNEL 2 -#define RGBLIGHT_SLEEP -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL - -#define TAP_CODE_DELAY 10 /* ADC - will be used for battery monitoring once BT support is added */ /* #define ADC_PIN B0 */ diff --git a/keyboards/ebastler/isometria_75/rev1/info.json b/keyboards/ebastler/isometria_75/rev1/info.json index 8151451a32b..ad53a34525b 100644 --- a/keyboards/ebastler/isometria_75/rev1/info.json +++ b/keyboards/ebastler/isometria_75/rev1/info.json @@ -8,6 +8,15 @@ "pid": "0x1337", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 17, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, "ws2812": { "pin": "B3", "driver": "pwm" @@ -22,6 +31,9 @@ {"pin_a": "C15", "pin_b": "C14", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "backlight": { "pin": "A9", "levels": 5, diff --git a/keyboards/ebastler/isometria_75/rev1/rules.mk b/keyboards/ebastler/isometria_75/rev1/rules.mk index 2fd78a13f17..76b31f0a0a0 100644 --- a/keyboards/ebastler/isometria_75/rev1/rules.mk +++ b/keyboards/ebastler/isometria_75/rev1/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/edi/hardlight/mk1/config.h b/keyboards/edi/hardlight/mk1/config.h index 6677c4587e8..89b008296bc 100644 --- a/keyboards/edi/hardlight/mk1/config.h +++ b/keyboards/edi/hardlight/mk1/config.h @@ -22,26 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* - * Enable RGB Underlighting - */ -#define RGBLED_NUM 15 -#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_EFFECT_RAINBOW_SWIRL -//#define RGBLIGHT_EFFECT_KNIGHT -//#define RGBLIGHT_EFFECT_TWINKLE -//#define RGBLIGHT_EFFECT_BREATHING - - /* * Enable Audio Subsystem with two voices */ diff --git a/keyboards/edi/hardlight/mk1/info.json b/keyboards/edi/hardlight/mk1/info.json index d7275dfa707..dc8bcd01c66 100644 --- a/keyboards/edi/hardlight/mk1/info.json +++ b/keyboards/edi/hardlight/mk1/info.json @@ -11,6 +11,21 @@ "rows": ["B0", "B1", "B2", "B3", "D4", "D6", "D7", "B4"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 15, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/edi/hardlight/mk2/config.h b/keyboards/edi/hardlight/mk2/config.h index b9b6b86c988..73f4b2baaed 100644 --- a/keyboards/edi/hardlight/mk2/config.h +++ b/keyboards/edi/hardlight/mk2/config.h @@ -22,18 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* RGB Underglow */ -#define RGBLED_NUM 32 -#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_EFFECT_KNIGHT_LENGTH 5 /* PWM RGB Underglow Defines */ diff --git a/keyboards/edi/hardlight/mk2/info.json b/keyboards/edi/hardlight/mk2/info.json index 63ca3aa15dd..2be212702ac 100644 --- a/keyboards/edi/hardlight/mk2/info.json +++ b/keyboards/edi/hardlight/mk2/info.json @@ -6,6 +6,21 @@ "pid": "0x2408", "device_version": "0.0.7" }, + "rgblight": { + "led_count": 32, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A10", "driver": "pwm" diff --git a/keyboards/edi/hardlight/mk2/rules.mk b/keyboards/edi/hardlight/mk2/rules.mk index 69c4b26a9e4..b7b67ba5b2b 100644 --- a/keyboards/edi/hardlight/mk2/rules.mk +++ b/keyboards/edi/hardlight/mk2/rules.mk @@ -16,5 +16,3 @@ AUDIO_ENABLE = no # Audio output VELOCIKEY_ENABLE = yes KEY_LOCK_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/edi/standaside/config.h b/keyboards/edi/standaside/config.h index e59dbc15e65..7caa265c1a1 100644 --- a/keyboards/edi/standaside/config.h +++ b/keyboards/edi/standaside/config.h @@ -7,21 +7,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* - * Enable RGB Underlighting - */ -#define RGBLED_NUM 12 -#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 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/edi/standaside/info.json b/keyboards/edi/standaside/info.json index 0c8bb289b06..69f94729fb8 100644 --- a/keyboards/edi/standaside/info.json +++ b/keyboards/edi/standaside/info.json @@ -13,6 +13,21 @@ "rows": ["D1", "F4", "F6", "F7", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/edinburgh41/config.h b/keyboards/edinburgh41/config.h index f37d43dd2f6..1958d0a9320 100644 --- a/keyboards/edinburgh41/config.h +++ b/keyboards/edinburgh41/config.h @@ -3,10 +3,6 @@ #pragma once -// Underglow LED settings - -#define RGBLED_NUM 10 - // Thumbstick settings #define ANALOG_JOYSTICK_X_AXIS_PIN B5 #define ANALOG_JOYSTICK_Y_AXIS_PIN B6 diff --git a/keyboards/edinburgh41/info.json b/keyboards/edinburgh41/info.json index 14e4950c4ab..745710f92f3 100644 --- a/keyboards/edinburgh41/info.json +++ b/keyboards/edinburgh41/info.json @@ -10,6 +10,9 @@ "pid": "0x0000", "vid": "0xFEED" }, + "rgblight": { + "led_count": 10 + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/eek/config.h b/keyboards/eek/config.h index 37beac094b2..66b91b7c4e2 100644 --- a/keyboards/eek/config.h +++ b/keyboards/eek/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 36 - #define RGBLIGHT_HUE_STEP 4 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 36 #define RGB_MATRIX_LED_FLUSH_LIMIT 16 diff --git a/keyboards/eek/info.json b/keyboards/eek/info.json index dde20e49dc5..edcf445c326 100644 --- a/keyboards/eek/info.json +++ b/keyboards/eek/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.4" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D4", "C6", "B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], @@ -20,7 +20,24 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 200 + "hue_steps": 4, + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 36, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "qmk-dfu", diff --git a/keyboards/efreet/info.json b/keyboards/efreet/info.json index ea2a48be25b..b7749ed3419 100644 --- a/keyboards/efreet/info.json +++ b/keyboards/efreet/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D0", "breathing": true }, diff --git a/keyboards/eggsworks/egg58/config.h b/keyboards/eggsworks/egg58/config.h new file mode 100644 index 00000000000..50d95fae1e5 --- /dev/null +++ b/keyboards/eggsworks/egg58/config.h @@ -0,0 +1,6 @@ +// Copyright 2022-2023 Travis Mick (@tmick0) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGB_MATRIX_LED_COUNT 58 diff --git a/keyboards/eggsworks/egg58/info.json b/keyboards/eggsworks/egg58/info.json new file mode 100644 index 00000000000..6f3fa04a677 --- /dev/null +++ b/keyboards/eggsworks/egg58/info.json @@ -0,0 +1,172 @@ +{ + "keyboard_name": "egg58", + "manufacturer": "eggsworks", + "url": "https://github.com/eggsworks/egg58", + "maintainer": "tmick0", + "usb": { + "vid": "0x4557", + "pid": "0x3665", + "device_version": "2.1.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["C6", "D7", "E6", "B4", "B5"], + "cols": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "split": { + "enabled": true, + "transport": { + "protocol": "i2c" + }, + "usb_detect": { + "enabled": true + } + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812", + "split": true, + "split_count": [29, 29], + "max_brightness": 160, + "animations": { + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true + }, + "layout": [ + { "matrix": [0, 5], "x": 93, "y": 3, "flags": 4 }, + { "matrix": [0, 4], "x": 74, "y": 1, "flags": 4 }, + { "matrix": [0, 3], "x": 56, "y": 0, "flags": 4 }, + { "matrix": [0, 2], "x": 37, "y": 2, "flags": 4 }, + { "matrix": [0, 1], "x": 18, "y": 4, "flags": 4 }, + { "matrix": [0, 0], "x": 0, "y": 12, "flags": 4 }, + { "matrix": [1, 0], "x": 0, "y": 26, "flags": 4 }, + { "matrix": [1, 1], "x": 18, "y": 17, "flags": 4 }, + { "matrix": [1, 2], "x": 37, "y": 15, "flags": 4 }, + { "matrix": [1, 3], "x": 56, "y": 13, "flags": 4 }, + { "matrix": [1, 4], "x": 74, "y": 15, "flags": 4 }, + { "matrix": [1, 5], "x": 93, "y": 17, "flags": 4 }, + { "matrix": [2, 5], "x": 93, "y": 30, "flags": 4 }, + { "matrix": [2, 4], "x": 74, "y": 28, "flags": 4 }, + { "matrix": [2, 3], "x": 56, "y": 26, "flags": 4 }, + { "matrix": [2, 2], "x": 37, "y": 29, "flags": 4 }, + { "matrix": [2, 1], "x": 18, "y": 31, "flags": 4 }, + { "matrix": [2, 0], "x": 0, "y": 39, "flags": 4 }, + { "matrix": [3, 0], "x": 0, "y": 52, "flags": 4 }, + { "matrix": [3, 1], "x": 18, "y": 44, "flags": 4 }, + { "matrix": [3, 2], "x": 37, "y": 42, "flags": 4 }, + { "matrix": [3, 3], "x": 56, "y": 40, "flags": 4 }, + { "matrix": [3, 4], "x": 74, "y": 42, "flags": 4 }, + { "matrix": [3, 5], "x": 93, "y": 44, "flags": 4 }, + { "matrix": [4, 5], "x": 102, "y": 64, "flags": 4 }, + { "matrix": [4, 4], "x": 84, "y": 60, "flags": 4} , + { "matrix": [4, 3], "x": 56, "y": 53, "flags": 4 }, + { "matrix": [4, 2], "x": 37, "y": 56, "flags": 4 }, + { "matrix": [4, 1], "x": 18, "y": 58, "flags": 4 }, + { "matrix": [5, 5], "x": 149, "y": 3, "flags": 4 }, + { "matrix": [5, 4], "x": 168, "y": 1, "flags": 4 }, + { "matrix": [5, 3], "x": 186, "y": 0, "flags": 4 }, + { "matrix": [5, 2], "x": 205, "y": 2, "flags": 4 }, + { "matrix": [5, 1], "x": 224, "y": 4, "flags": 4 }, + { "matrix": [5, 0], "x": 242, "y": 12, "flags": 4 }, + { "matrix": [6, 0], "x": 242, "y": 26, "flags": 4 }, + { "matrix": [6, 1], "x": 224, "y": 17, "flags": 4 }, + { "matrix": [6, 2], "x": 205, "y": 15, "flags": 4 }, + { "matrix": [6, 3], "x": 186, "y": 13, "flags": 4 }, + { "matrix": [6, 4], "x": 168, "y": 15, "flags": 4 }, + { "matrix": [6, 5], "x": 149, "y": 17, "flags": 4 }, + { "matrix": [7, 5], "x": 149, "y": 30, "flags": 4 }, + { "matrix": [7, 4], "x": 168, "y": 28, "flags": 4 }, + { "matrix": [7, 3], "x": 186, "y": 26, "flags": 4 }, + { "matrix": [7, 2], "x": 205, "y": 29, "flags": 4 }, + { "matrix": [7, 1], "x": 224, "y": 31, "flags": 4 }, + { "matrix": [7, 0], "x": 242, "y": 39, "flags": 4 }, + { "matrix": [8, 0], "x": 242, "y": 52, "flags": 4 }, + { "matrix": [8, 1], "x": 224, "y": 44, "flags": 4 }, + { "matrix": [8, 2], "x": 205, "y": 42, "flags": 4 }, + { "matrix": [8, 3], "x": 186, "y": 40, "flags": 4 }, + { "matrix": [8, 4], "x": 168, "y": 42, "flags": 4 }, + { "matrix": [8, 5], "x": 149, "y": 44, "flags": 4 }, + { "matrix": [9, 5], "x": 140, "y": 64, "flags": 4 }, + { "matrix": [9, 4], "x": 158, "y": 60, "flags": 4 }, + { "matrix": [9, 3], "x": 186, "y": 53, "flags": 4 }, + { "matrix": [9, 2], "x": 205, "y": 56, "flags": 4 }, + { "matrix": [9, 1], "x": 224, "y": 58, "flags": 4 } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0.93 }, + { "matrix": [0, 1], "x": 1, "y": 0.32 }, + { "matrix": [0, 2], "x": 2, "y": 0.18 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0.14 }, + { "matrix": [0, 5], "x": 5, "y": 0.28 }, + { "matrix": [5, 5], "x": 8, "y": 0.28 }, + { "matrix": [5, 4], "x": 9, "y": 0.14 }, + { "matrix": [5, 3], "x": 10, "y": 0 }, + { "matrix": [5, 2], "x": 11, "y": 0.18 }, + { "matrix": [5, 1], "x": 12, "y": 0.32 }, + { "matrix": [5, 0], "x": 13, "y": 0.93 }, + { "matrix": [1, 0], "x": 0, "y": 1.93 }, + { "matrix": [1, 1], "x": 1, "y": 1.32 }, + { "matrix": [1, 2], "x": 2, "y": 1.18 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1.14 }, + { "matrix": [1, 5], "x": 5, "y": 1.28 }, + { "matrix": [6, 5], "x": 8, "y": 1.28 }, + { "matrix": [6, 4], "x": 9, "y": 1.14 }, + { "matrix": [6, 3], "x": 10, "y": 1 }, + { "matrix": [6, 2], "x": 11, "y": 1.18 }, + { "matrix": [6, 1], "x": 12, "y": 1.32 }, + { "matrix": [6, 0], "x": 13, "y": 1.93 }, + { "matrix": [2, 0], "x": 0, "y": 2.93 }, + { "matrix": [2, 1], "x": 1, "y": 2.32 }, + { "matrix": [2, 2], "x": 2, "y": 2.18 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2.14 }, + { "matrix": [2, 5], "x": 5, "y": 2.28 }, + { "matrix": [7, 5], "x": 8, "y": 2.28 }, + { "matrix": [7, 4], "x": 9, "y": 2.14 }, + { "matrix": [7, 3], "x": 10, "y": 2 }, + { "matrix": [7, 2], "x": 11, "y": 2.18 }, + { "matrix": [7, 1], "x": 12, "y": 2.32 }, + { "matrix": [7, 0], "x": 13, "y": 2.93 }, + { "matrix": [3, 0], "x": 0, "y": 3.93 }, + { "matrix": [3, 1], "x": 1, "y": 3.32 }, + { "matrix": [3, 2], "x": 2, "y": 3.18 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3.14 }, + { "matrix": [3, 5], "x": 5, "y": 3.28 }, + { "matrix": [8, 5], "x": 8, "y": 3.28 }, + { "matrix": [8, 4], "x": 9, "y": 3.14 }, + { "matrix": [8, 3], "x": 10, "y": 3 }, + { "matrix": [8, 2], "x": 11, "y": 3.18 }, + { "matrix": [8, 1], "x": 12, "y": 3.32 }, + { "matrix": [8, 0], "x": 13, "y": 3.93 }, + { "matrix": [4, 1], "x": 1, "y": 4.32 }, + { "matrix": [4, 2], "x": 2, "y": 4.18 }, + { "matrix": [4, 3], "x": 3, "y": 4 }, + { "matrix": [4, 4], "x": 4.5, "y": 4.5, "h": 1.5 }, + { "matrix": [4, 5], "x": 5.5, "y": 4.75, "h": 1.5 }, + { "matrix": [9, 5], "x": 7.5, "y": 4.75, "h": 1.5 }, + { "matrix": [9, 4], "x": 8.5, "y": 4.5, "h": 1.5 }, + { "matrix": [9, 3], "x": 10, "y": 4 }, + { "matrix": [9, 2], "x": 11, "y": 4.18 }, + { "matrix": [9, 1], "x": 12, "y": 4.32 } + ] + } + } +} diff --git a/keyboards/eggsworks/egg58/keymaps/default/keymap.c b/keyboards/eggsworks/egg58/keymaps/default/keymap.c new file mode 100644 index 00000000000..482a34c1291 --- /dev/null +++ b/keyboards/eggsworks/egg58/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2022-2023 Travis Mick (@tmick0) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSPC, + KC_LGUI, KC_LALT, OSL(1), MO(1), KC_SPC, KC_ENT, MO(1), KC_LBRC, KC_RBRC, KC_BSLS +), + +[_FN] = 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_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_F12, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_MOD, RGB_TOG +) +}; diff --git a/keyboards/eggsworks/egg58/keymaps/via/keymap.c b/keyboards/eggsworks/egg58/keymaps/via/keymap.c new file mode 100644 index 00000000000..482a34c1291 --- /dev/null +++ b/keyboards/eggsworks/egg58/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2022-2023 Travis Mick (@tmick0) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSPC, + KC_LGUI, KC_LALT, OSL(1), MO(1), KC_SPC, KC_ENT, MO(1), KC_LBRC, KC_RBRC, KC_BSLS +), + +[_FN] = 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_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_F12, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_MOD, RGB_TOG +) +}; diff --git a/keyboards/eggsworks/egg58/keymaps/via/rules.mk b/keyboards/eggsworks/egg58/keymaps/via/rules.mk new file mode 100644 index 00000000000..ca9fed0e6b5 --- /dev/null +++ b/keyboards/eggsworks/egg58/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/eggsworks/egg58/readme.md b/keyboards/eggsworks/egg58/readme.md new file mode 100644 index 00000000000..fe9b1819eee --- /dev/null +++ b/keyboards/eggsworks/egg58/readme.md @@ -0,0 +1,23 @@ +# egg58 + +* Keyboard Maintainer: [Travis Mick](https://github.com/tmick0) +* Hardware Supported: egg58 (v1-v2.x) PCB, with Pro Micro or compatible MCU +* Hardware Availability: https://eggs.works/ or https://github.com/eggsworks/egg58 + +Make example for this keyboard (after setting up your build environment): + + make eggsworks/egg58:default + +Flashing example for this keyboard: + + make eggsworks/egg58: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/eggsworks/egg58/rules.mk b/keyboards/eggsworks/egg58/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/eggsworks/egg58/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/ein_60/config.h b/keyboards/ein_60/config.h index e3df68481d6..94592a01eb3 100644 --- a/keyboards/ein_60/config.h +++ b/keyboards/ein_60/config.h @@ -29,22 +29,6 @@ along with this program. If not, see . # define AUDIO_DAC_SAMPLE_MAX 4095U #endif -# define RGBLED_NUM 38 -# define RGBLIGHT_HUE_STEP 4 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_COUNT 38 # define RGB_MATRIX_LED_FLUSH_LIMIT 16 diff --git a/keyboards/ein_60/info.json b/keyboards/ein_60/info.json index 9af00830e0d..bc208afcecd 100644 --- a/keyboards/ein_60/info.json +++ b/keyboards/ein_60/info.json @@ -9,10 +9,27 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { - "max_brightness": 200 + "hue_steps": 4, + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 38, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["A3", "A2", "A1", "A0", "F6", "F5", "F0", "E0", "E1", "C0", "C1", "C2", "C3"], diff --git a/keyboards/ein_60/rules.mk b/keyboards/ein_60/rules.mk index 648a0c38ff2..541e00aa442 100644 --- a/keyboards/ein_60/rules.mk +++ b/keyboards/ein_60/rules.mk @@ -13,4 +13,3 @@ AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = no # Enable for pretty RGB matrix effects ENCODER_ENABLE = yes # Enables the use of one or more encoders OLED_ENABLE = yes # Enables the use of OLED displays -OLED_DRIVER = SSD1306 diff --git a/keyboards/elephant42/config.h b/keyboards/elephant42/config.h index dc1f568fc4c..b62d75af3c4 100644 --- a/keyboards/elephant42/config.h +++ b/keyboards/elephant42/config.h @@ -17,31 +17,11 @@ along with this program. If not, see . #pragma once -# define RGBLED_SPLIT { 27, 27 } -# define RGBLED_NUM 54 // backlight x42 + underglow x12 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE - #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 54 +# define RGB_MATRIX_SPLIT { 27, 27 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 -# define RGB_MATRIX_HUE_STEP RGBLIGHT_HUE_STEP -# define RGB_MATRIX_SAT_STEP RGBLIGHT_SAT_STEP -# define RGB_MATRIX_VAL_STEP RGBLIGHT_VAL_STEP -# define RGB_MATRIX_SPD_STEP 8 #endif #ifndef OLED_FONT_H diff --git a/keyboards/elephant42/info.json b/keyboards/elephant42/info.json index 8c444080550..742640619e1 100644 --- a/keyboards/elephant42/info.json +++ b/keyboards/elephant42/info.json @@ -9,10 +9,29 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 8 }, "rgblight": { - "max_brightness": 170 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 54, + "max_brightness": 170, + "split_count": [27, 27], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], diff --git a/keyboards/emery65/rules.mk b/keyboards/emery65/rules.mk index 7000bb65710..7c0709f41e6 100644 --- a/keyboards/emery65/rules.mk +++ b/keyboards/emery65/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/ep/comsn/mollydooker/config.h b/keyboards/ep/comsn/mollydooker/config.h index bf53058d523..d5971524a69 100644 --- a/keyboards/ep/comsn/mollydooker/config.h +++ b/keyboards/ep/comsn/mollydooker/config.h @@ -22,21 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 84 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/ep/comsn/mollydooker/info.json b/keyboards/ep/comsn/mollydooker/info.json index 6c8825c915e..868a418403d 100644 --- a/keyboards/ep/comsn/mollydooker/info.json +++ b/keyboards/ep/comsn/mollydooker/info.json @@ -16,7 +16,21 @@ "pin": "B0" }, "rgblight": { - "max_brightness": 35 + "hue_steps": 10, + "led_count": 84, + "max_brightness": 35, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/era/era65/config.h b/keyboards/era/era65/config.h index 41dbe2178a0..bd42a703f80 100644 --- a/keyboards/era/era65/config.h +++ b/keyboards/era/era65/config.h @@ -19,8 +19,6 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - #define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior diff --git a/keyboards/era/era65/info.json b/keyboards/era/era65/info.json index 5c545a6fa8e..d5fd6127678 100644 --- a/keyboards/era/era65/info.json +++ b/keyboards/era/era65/info.json @@ -2,16 +2,30 @@ "manufacturer": "ERA", "keyboard_name": "ERA65 1.0.4", "maintainer": "eerraa", + "backlight": { + "breathing": true, + "levels": 15, + "pin": "GP0" + }, "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, "features": { + "backlight": true, "bootmagic": true, "command": false, "console": false, "extrakey": true, "mousekey": true, - "nkro": true, - "backlight": true + "nkro": true + }, + "indicators": { + "caps_lock": "GP12" }, "matrix_pins": { "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP22", "GP23", "GP3"], @@ -24,14 +38,6 @@ "pid": "0x0001", "vid": "0x4552" }, - "backlight": { - "breathing": true, - "levels": 15, - "pin": "GP0" - }, - "indicators": { - "caps_lock": "GP12" - }, "layouts": { "LAYOUT_65_combo": { "layout": [ @@ -48,9 +54,9 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "w": 2, "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 14], "x": 15.5, "y": 0}, - {"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1}, + {"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}, @@ -63,9 +69,9 @@ {"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], "w": 1.5, "x": 13.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [1, 14], "x": 15.5, "y": 1}, - {"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2}, + {"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}, @@ -78,9 +84,9 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, {"matrix": [2, 14], "x": 15.5, "y": 2}, - {"matrix": [3, 0], "w": 1.25, "x": 0, "y": 3}, + {"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}, @@ -92,13 +98,13 @@ {"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, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14.25, "y": 3.25}, {"matrix": [3, 14], "x": 15.5, "y": 3}, - {"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4}, - {"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4}, - {"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4}, - {"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4}, + {"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, 6], "x": 3.75, "y": 4, "w": 6.25}, {"matrix": [4, 9], "x": 10, "y": 4}, {"matrix": [4, 10], "x": 11, "y": 4}, {"matrix": [4, 11], "x": 12, "y": 4}, @@ -108,4 +114,4 @@ ] } } -} +} \ No newline at end of file diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index 3adcd0198bf..de850a05482 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -44,10 +44,6 @@ along with this program. If not, see . #define MOUSEKEY_WHEEL_MAX_SPEED MOUSEKEY_MAX_SPEED #define MOUSEKEY_WHEEL_TIME_TO_MAX MOUSEKEY_TIME_TO_MAX -#define TAPPING_TOGGLE 1 - -#define TAPPING_TERM 200 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -67,21 +63,6 @@ along with this program. If not, see . #endif #define LED_BRIGHTNESS_DEFAULT (LED_BRIGHTNESS_HI) -/* ws2812 RGB LED */ -#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_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 255 -#define RGBLIGHT_VAL_STEP 12 - // Pick one of the modes // Defaults to 15 mirror, for legacy behavior @@ -94,8 +75,6 @@ along with this program. If not, see . #define RGBW -#define RGBLIGHT_SLEEP - /* * The debounce filtering reports a key/switch change directly, * without any extra delay. After that the debounce logic will filter @@ -156,21 +135,21 @@ along with this program. If not, see . #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// #define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_SPLASH +// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // #define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF /* #define RGBLIGHT_COLOR_LAYER_1 0x00, 0x00, 0xFF */ diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index 0c23a129690..befc1146177 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -139,25 +139,3 @@ typedef union { } keyboard_config_t; extern keyboard_config_t keyboard_config; - -/* ---- LEFT HAND ---- ---- RIGHT HAND ---- */ -#define LED_LAYOUT_ergodox_pretty( \ - L01,L02,L03,L04,L05, R01,R02,R03,R04,R05, \ - L11,L12,L13,L14,L15, R11,R12,R13,R14,R15, \ - L21,L22,L23,L24,L25, R21,R22,R23,R24,R25, \ - L31,L32,L33,L34,L35, R31,R32,R33,R34,R35, \ - L41,L42,L43,L44, R42,R43,R44,R45 ) \ - \ - /* matrix positions */ \ - { R01, R02, R03, R04, R05, \ - R11, R12, R13, R14, R15, \ - R21, R22, R23, R24, R25, \ - R31, R32, R33, R34, R35, \ - R42, R43, R44, R45, \ - \ - L05, L04, L03, L02, L01, \ - L15, L14, L13, L12, L11, \ - L25, L24, L23, L22, L21, \ - L35, L34, L33, L32, L31, \ - L44, L43, L42, L41 \ - } diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index 5727d111847..1b2942cd428 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -6,15 +6,38 @@ "vid": "0x3297", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 12, + "brightness_steps": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "build": { + "debounce_type": "sym_eager_pr" + }, "ws2812": { "pin": "D7" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "processor": "atmega32u4", "bootloader": "halfkay", "debounce": 30, + "tapping": { + "toggle": 1 + }, "community_layouts": ["ergodox"], "layouts": { "LAYOUT_ergodox": { diff --git a/keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c b/keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c index 45a101ec81e..99d10e9a126 100755 --- a/keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c +++ b/keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c @@ -253,12 +253,7 @@ void matrix_scan_user(void) { }; // The state of the LEDs requested by the system, as a bitmask. -static uint8_t sys_led_state = 0; - -// Use these masks to read the system LEDs state. -static const uint8_t sys_led_mask_num_lock = 1 << USB_LED_NUM_LOCK; -static const uint8_t sys_led_mask_caps_lock = 1 << USB_LED_CAPS_LOCK; -static const uint8_t sys_led_mask_scroll_lock = 1 << USB_LED_SCROLL_LOCK; +static led_t sys_led_state = {0}; // Value to use to switch LEDs on. The default value of 255 is far too bright. static const uint8_t max_led_value = 20; @@ -294,25 +289,26 @@ void led_3_off(void) { } // Called when the computer wants to change the state of the keyboard LEDs. -void led_set_user(uint8_t usb_led) { - sys_led_state = usb_led; +bool led_update_user(led_t led_state) { + sys_led_state = led_state; if (LAYER_ON(SYSLEDS)) { - if (sys_led_state & sys_led_mask_caps_lock) { + if (sys_led_state.caps_lock) { led_1_on(); } else { led_1_off(); } - if (sys_led_state & sys_led_mask_num_lock) { + if (sys_led_state.num_lock) { led_2_on(); } else { led_2_off(); } - if (sys_led_state & sys_led_mask_scroll_lock) { + if (sys_led_state.scroll_lock) { led_3_on(); } else { led_3_off(); } } + return false; } layer_state_t layer_state_set_user(layer_state_t state) { @@ -327,7 +323,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { } if (LAYER_ON(SYSLEDS)) { - led_set_user(sys_led_state); + led_update_user(sys_led_state); return state; } diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c index 34284e146d2..f8fce23ce5a 100644 --- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c +++ b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c @@ -296,12 +296,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -void led_set_user(uint8_t usb_led) { - if (usb_led & (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 - -#define RGBLED_NUM 2 // Number of LEDs -// FIXME this following line should enable our layer status LEDs to work on both -// sides without need to wire them into a chain. It doesn't though. Uncommenting -// means the slave side of the keyboard stops working (and the LEDs don't work). -// #define RGBLED_SPLIT {1,1} - -/* - * 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/ergoslab/rev1/info.json b/keyboards/ergoslab/rev1/info.json index d786799810d..e92dd4dccc8 100644 --- a/keyboards/ergoslab/rev1/info.json +++ b/keyboards/ergoslab/rev1/info.json @@ -16,6 +16,9 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 2 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/ergotravel/rev1/config.h b/keyboards/ergotravel/rev1/config.h index 326a8f8ffe7..790a2696fbe 100644 --- a/keyboards/ergotravel/rev1/config.h +++ b/keyboards/ergotravel/rev1/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 12 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/ergotravel/rev1/info.json b/keyboards/ergotravel/rev1/info.json index 01fd3265e94..77aecec0ed1 100644 --- a/keyboards/ergotravel/rev1/info.json +++ b/keyboards/ergotravel/rev1/info.json @@ -16,6 +16,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/esca/getawayvan/config.h b/keyboards/esca/getawayvan/config.h index 01118712d2d..3dae9f6603f 100644 --- a/keyboards/esca/getawayvan/config.h +++ b/keyboards/esca/getawayvan/config.h @@ -19,21 +19,6 @@ along with this program. If not, see . #define GRAVE_ESC_CTRL_OVERRIDE -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 51 -#define RGBLIGHT_HUE_STEP 20 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/esca/getawayvan/info.json b/keyboards/esca/getawayvan/info.json index ba31f9c260b..2a473d0c11b 100644 --- a/keyboards/esca/getawayvan/info.json +++ b/keyboards/esca/getawayvan/info.json @@ -17,7 +17,21 @@ "pin": "B15" }, "rgblight": { - "max_brightness": 128 + "hue_steps": 20, + "led_count": 51, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/esca/getawayvan_f042/config.h b/keyboards/esca/getawayvan_f042/config.h index 01118712d2d..3dae9f6603f 100644 --- a/keyboards/esca/getawayvan_f042/config.h +++ b/keyboards/esca/getawayvan_f042/config.h @@ -19,21 +19,6 @@ along with this program. If not, see . #define GRAVE_ESC_CTRL_OVERRIDE -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 51 -#define RGBLIGHT_HUE_STEP 20 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/esca/getawayvan_f042/info.json b/keyboards/esca/getawayvan_f042/info.json index e39d2b4c22d..08a18b5f0a1 100644 --- a/keyboards/esca/getawayvan_f042/info.json +++ b/keyboards/esca/getawayvan_f042/info.json @@ -17,7 +17,21 @@ "pin": "B15" }, "rgblight": { - "max_brightness": 128 + "hue_steps": 20, + "led_count": 51, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F042", "bootloader": "stm32-dfu", diff --git a/keyboards/eternal_keypad/config.h b/keyboards/eternal_keypad/config.h index 6eaf9220c73..e2e4c258cc4 100644 --- a/keyboards/eternal_keypad/config.h +++ b/keyboards/eternal_keypad/config.h @@ -17,19 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 8 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/eternal_keypad/info.json b/keyboards/eternal_keypad/info.json index f10b4ab8a4d..d17b501909c 100644 --- a/keyboards/eternal_keypad/info.json +++ b/keyboards/eternal_keypad/info.json @@ -16,6 +16,22 @@ "bootmagic": { "matrix": [0, 1] }, + "rgblight": { + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/evolv/config.h b/keyboards/evolv/config.h index ee7e0797727..f962b74196e 100644 --- a/keyboards/evolv/config.h +++ b/keyboards/evolv/config.h @@ -22,21 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 16 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - -#define TAPPING_TERM 200 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/evolv/info.json b/keyboards/evolv/info.json index d4b51621269..dc00260cf37 100644 --- a/keyboards/evolv/info.json +++ b/keyboards/evolv/info.json @@ -22,7 +22,21 @@ "pin": "B15" }, "rgblight": { - "max_brightness": 200 + "led_count": 16, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/evolv/rules.mk b/keyboards/evolv/rules.mk index e6378f4a599..87802fbd6f5 100644 --- a/keyboards/evolv/rules.mk +++ b/keyboards/evolv/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/evyd13/atom47/rev2/config.h b/keyboards/evyd13/atom47/rev2/config.h index 352b89dad95..e14ecadbf09 100644 --- a/keyboards/evyd13/atom47/rev2/config.h +++ b/keyboards/evyd13/atom47/rev2/config.h @@ -21,5 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGBLED_NUM 1 // Number of LEDs in your strip diff --git a/keyboards/evyd13/atom47/rev2/info.json b/keyboards/evyd13/atom47/rev2/info.json index b1642612eac..8c5720d0c48 100644 --- a/keyboards/evyd13/atom47/rev2/info.json +++ b/keyboards/evyd13/atom47/rev2/info.json @@ -18,6 +18,9 @@ "levels": 4, "breathing": true }, + "rgblight": { + "led_count": 1 + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/evyd13/atom47/rev3/config.h b/keyboards/evyd13/atom47/rev3/config.h deleted file mode 100644 index 5f37dc519b0..00000000000 --- a/keyboards/evyd13/atom47/rev3/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2021 Evelien Dekkers - -This 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 RGBLED_NUM 6 // Number of LEDs in your strip -#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/evyd13/atom47/rev3/info.json b/keyboards/evyd13/atom47/rev3/info.json index dc9b13961f2..fc4046d3fc3 100644 --- a/keyboards/evyd13/atom47/rev3/info.json +++ b/keyboards/evyd13/atom47/rev3/info.json @@ -18,6 +18,21 @@ "levels": 5, "breathing": true }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F5" }, diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h index ae0151d512d..f50975beb3f 100644 --- a/keyboards/evyd13/atom47/rev5/config.h +++ b/keyboards/evyd13/atom47/rev5/config.h @@ -85,18 +85,18 @@ along with this program. If not, see . #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define 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/evyd13/atom47/rev5/info.json b/keyboards/evyd13/atom47/rev5/info.json index c442c74549c..bb068b1536d 100644 --- a/keyboards/evyd13/atom47/rev5/info.json +++ b/keyboards/evyd13/atom47/rev5/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "E6", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/evyd13/eon65/config.h b/keyboards/evyd13/eon65/config.h index abfa0fe63d0..230ff5e311e 100644 --- a/keyboards/evyd13/eon65/config.h +++ b/keyboards/evyd13/eon65/config.h @@ -16,18 +16,6 @@ #pragma once - #define RGBLED_NUM 10 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/evyd13/eon65/info.json b/keyboards/evyd13/eon65/info.json index a58c3a52330..7d0f3ab2e00 100644 --- a/keyboards/evyd13/eon65/info.json +++ b/keyboards/evyd13/eon65/info.json @@ -13,6 +13,21 @@ "rows": ["D3", "D5", "B1", "B2", "B3"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/evyd13/eon87/config.h b/keyboards/evyd13/eon87/config.h index 04247c7e73c..230ff5e311e 100644 --- a/keyboards/evyd13/eon87/config.h +++ b/keyboards/evyd13/eon87/config.h @@ -16,18 +16,6 @@ #pragma once - #define RGBLED_NUM 12 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/evyd13/eon87/info.json b/keyboards/evyd13/eon87/info.json index fc134b502fb..bc9dcec1286 100644 --- a/keyboards/evyd13/eon87/info.json +++ b/keyboards/evyd13/eon87/info.json @@ -13,6 +13,21 @@ "rows": ["B1", "B2", "B3", "D4", "D1", "D5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/evyd13/ta65/config.h b/keyboards/evyd13/ta65/config.h index e17b637a1ee..28be4f1a5b4 100644 --- a/keyboards/evyd13/ta65/config.h +++ b/keyboards/evyd13/ta65/config.h @@ -21,17 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* Backlight configuration - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 diff --git a/keyboards/evyd13/ta65/info.json b/keyboards/evyd13/ta65/info.json index d1195a597be..38da22f4067 100644 --- a/keyboards/evyd13/ta65/info.json +++ b/keyboards/evyd13/ta65/info.json @@ -18,6 +18,21 @@ {"pin_a": "B2", "pin_b": "B1"} ] }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/evyd13/wonderland/config.h b/keyboards/evyd13/wonderland/config.h deleted file mode 100644 index 1f7440aa201..00000000000 --- a/keyboards/evyd13/wonderland/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -/* Backlight configuration - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 diff --git a/keyboards/evyd13/wonderland/info.json b/keyboards/evyd13/wonderland/info.json index 621be942325..1609c969718 100644 --- a/keyboards/evyd13/wonderland/info.json +++ b/keyboards/evyd13/wonderland/info.json @@ -18,6 +18,21 @@ "esc_output": "F0", "led": "B1" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/exclusive/e65/config.h b/keyboards/exclusive/e65/config.h index 9d31e13dcb9..b7e8690b3cc 100644 --- a/keyboards/exclusive/e65/config.h +++ b/keyboards/exclusive/e65/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/exclusive/e65/info.json b/keyboards/exclusive/e65/info.json index 3fab8ca8abd..76f37e9883b 100644 --- a/keyboards/exclusive/e65/info.json +++ b/keyboards/exclusive/e65/info.json @@ -21,6 +21,23 @@ "caps_lock": "B6", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/exclusive/e6_rgb/config.h b/keyboards/exclusive/e6_rgb/config.h index c6acec26587..7f820b2cadf 100644 --- a/keyboards/exclusive/e6_rgb/config.h +++ b/keyboards/exclusive/e6_rgb/config.h @@ -4,22 +4,6 @@ */ #pragma once -//rgb light setting -#define RGBLED_NUM 6 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 diff --git a/keyboards/exclusive/e6_rgb/info.json b/keyboards/exclusive/e6_rgb/info.json index 0381b209a8f..3b833c3a97f 100644 --- a/keyboards/exclusive/e6_rgb/info.json +++ b/keyboards/exclusive/e6_rgb/info.json @@ -9,13 +9,30 @@ "device_version": "0.6.2" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["D7", "B4", "B5", "B6", "C6", "C7", "F7", "F0", "B0", "B1", "D2", "D3", "B3", "B2"], "rows": ["F1", "F4", "F5", "F6", "D6"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/exclusive/e6v2/le/config.h b/keyboards/exclusive/e6v2/le/config.h deleted file mode 100644 index 8c0ffda30b5..00000000000 --- a/keyboards/exclusive/e6v2/le/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_VAL_STEP 12 diff --git a/keyboards/exclusive/e6v2/le/info.json b/keyboards/exclusive/e6v2/le/info.json index 8fbbcbfea3f..551efa299c1 100644 --- a/keyboards/exclusive/e6v2/le/info.json +++ b/keyboards/exclusive/e6v2/le/info.json @@ -23,6 +23,24 @@ "caps_lock": "B7", "on_state": 0 }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/exclusive/e6v2/le_bmc/config.h b/keyboards/exclusive/e6v2/le_bmc/config.h deleted file mode 100644 index bb3f00287eb..00000000000 --- a/keyboards/exclusive/e6v2/le_bmc/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2019 MechMerlin - -This 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 RGBLED_NUM 6 -#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/exclusive/e6v2/le_bmc/info.json b/keyboards/exclusive/e6v2/le_bmc/info.json index c0d2ffa868b..123ab8f7bb3 100644 --- a/keyboards/exclusive/e6v2/le_bmc/info.json +++ b/keyboards/exclusive/e6v2/le_bmc/info.json @@ -15,6 +15,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/exclusive/e6v2/oe/config.h b/keyboards/exclusive/e6v2/oe/config.h deleted file mode 100644 index 6e9255bebb0..00000000000 --- a/keyboards/exclusive/e6v2/oe/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_VAL_STEP 12 diff --git a/keyboards/exclusive/e6v2/oe/info.json b/keyboards/exclusive/e6v2/oe/info.json index eef3f67847e..90a9a8b40b0 100644 --- a/keyboards/exclusive/e6v2/oe/info.json +++ b/keyboards/exclusive/e6v2/oe/info.json @@ -19,6 +19,24 @@ "breathing": true, "breathing_period": 3 }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/exclusive/e6v2/oe_bmc/config.h b/keyboards/exclusive/e6v2/oe_bmc/config.h deleted file mode 100644 index bb3f00287eb..00000000000 --- a/keyboards/exclusive/e6v2/oe_bmc/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2019 MechMerlin - -This 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 RGBLED_NUM 6 -#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/exclusive/e6v2/oe_bmc/info.json b/keyboards/exclusive/e6v2/oe_bmc/info.json index 622d7db5644..65be093b493 100644 --- a/keyboards/exclusive/e6v2/oe_bmc/info.json +++ b/keyboards/exclusive/e6v2/oe_bmc/info.json @@ -15,6 +15,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/exclusive/e7v1/config.h b/keyboards/exclusive/e7v1/config.h index 896eb97b255..5f360813239 100644 --- a/keyboards/exclusive/e7v1/config.h +++ b/keyboards/exclusive/e7v1/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/exclusive/e7v1/info.json b/keyboards/exclusive/e7v1/info.json index 42ec77a9fb6..ed94f9805e5 100644 --- a/keyboards/exclusive/e7v1/info.json +++ b/keyboards/exclusive/e7v1/info.json @@ -17,6 +17,23 @@ "pin": "B7", "levels": 6 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/exclusive/e7v1se/config.h b/keyboards/exclusive/e7v1se/config.h index f4f04f2bbee..f6e1e895abd 100644 --- a/keyboards/exclusive/e7v1se/config.h +++ b/keyboards/exclusive/e7v1se/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/exclusive/e7v1se/info.json b/keyboards/exclusive/e7v1se/info.json index 3244831b4db..33e17f14b58 100644 --- a/keyboards/exclusive/e7v1se/info.json +++ b/keyboards/exclusive/e7v1se/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/exclusive/e85/config.h b/keyboards/exclusive/e85/config.h index 730536b513e..0ccb642711a 100644 --- a/keyboards/exclusive/e85/config.h +++ b/keyboards/exclusive/e85/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 18 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/exclusive/e85/hotswap/info.json b/keyboards/exclusive/e85/hotswap/info.json index 60dc68eaf78..779a717ec55 100644 --- a/keyboards/exclusive/e85/hotswap/info.json +++ b/keyboards/exclusive/e85/hotswap/info.json @@ -18,6 +18,24 @@ "levels": 6, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/exclusive/e85/soldered/info.json b/keyboards/exclusive/e85/soldered/info.json index c0f9128b524..d34440389a6 100644 --- a/keyboards/exclusive/e85/soldered/info.json +++ b/keyboards/exclusive/e85/soldered/info.json @@ -18,6 +18,24 @@ "levels": 6, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/exent/config.h b/keyboards/exent/config.h deleted file mode 100644 index b062e20b682..00000000000 --- a/keyboards/exent/config.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2019 mechmerlin - * - * This 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 RGBLED_NUM 18 - -#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 - - -/* - * 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/exent/info.json b/keyboards/exent/info.json index 9f0f3e39450..54d54f08978 100644 --- a/keyboards/exent/info.json +++ b/keyboards/exent/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/eyeohdesigns/babyv/config.h b/keyboards/eyeohdesigns/babyv/config.h deleted file mode 100644 index 4bfabf0e8a3..00000000000 --- a/keyboards/eyeohdesigns/babyv/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2020 Eye Oh! Designs - -This 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 RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/eyeohdesigns/babyv/info.json b/keyboards/eyeohdesigns/babyv/info.json index f2d0ea53e6b..453cdf2c819 100644 --- a/keyboards/eyeohdesigns/babyv/info.json +++ b/keyboards/eyeohdesigns/babyv/info.json @@ -16,6 +16,24 @@ "backlight": { "pin": "B6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/eyeohdesigns/theboulevard/config.h b/keyboards/eyeohdesigns/theboulevard/config.h deleted file mode 100644 index e2f7092f982..00000000000 --- a/keyboards/eyeohdesigns/theboulevard/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright 2021 eye oh designs - -This 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 RGBLED_NUM 2 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/eyeohdesigns/theboulevard/info.json b/keyboards/eyeohdesigns/theboulevard/info.json index a94968a989e..afec9c4419d 100644 --- a/keyboards/eyeohdesigns/theboulevard/info.json +++ b/keyboards/eyeohdesigns/theboulevard/info.json @@ -18,6 +18,15 @@ {"pin_a": "F5", "pin_b": "F4", "resolution": 2} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "sleep": true, + "animations": { + "breathing": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/ez_maker/directpins/teensy_32/rules.mk b/keyboards/ez_maker/directpins/teensy_32/rules.mk index 9803d8cc703..abd2f7fce97 100644 --- a/keyboards/ez_maker/directpins/teensy_32/rules.mk +++ b/keyboards/ez_maker/directpins/teensy_32/rules.mk @@ -1,4 +1,2 @@ USE_CHIBIOS_CONTRIB = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ez_maker/directpins/teensy_lc/rules.mk b/keyboards/ez_maker/directpins/teensy_lc/rules.mk index 9803d8cc703..abd2f7fce97 100644 --- a/keyboards/ez_maker/directpins/teensy_lc/rules.mk +++ b/keyboards/ez_maker/directpins/teensy_lc/rules.mk @@ -1,4 +1,2 @@ USE_CHIBIOS_CONTRIB = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/facew/config.h b/keyboards/facew/config.h deleted file mode 100644 index ddc21dae308..00000000000 --- a/keyboards/facew/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 16 - -#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/facew/info.json b/keyboards/facew/info.json index 514c64f2c38..1f7844a8ef7 100644 --- a/keyboards/facew/info.json +++ b/keyboards/facew/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h index 4e5ad265833..21231c7c574 100755 --- a/keyboards/fallacy/config.h +++ b/keyboards/fallacy/config.h @@ -29,15 +29,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c index 8686f292fc6..b9a4a870565 100755 --- a/keyboards/fallacy/indicators.c +++ b/keyboards/fallacy/indicators.c @@ -23,20 +23,20 @@ */ void init_fallacy_leds(void) { i2c_init(); - IS31FL3731_init(LED_DRIVER_ADDR_1); + is31fl3731_init(LED_DRIVER_ADDR_1); for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { - IS31FL3731_set_led_control_register(i, true); + is31fl3731_set_led_control_register(i, true); } - IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); } /* update the buffer */ void update_fallacy_leds(void) { - IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); } @@ -44,10 +44,10 @@ void update_fallacy_leds(void) { */ void set_fallacy_led(int index, bool state) { if (state) { - IS31FL3731_set_value(index, 128); + is31fl3731_set_value(index, 128); } else { - IS31FL3731_set_value(index, 0); + is31fl3731_set_value(index, 0); } } diff --git a/keyboards/fallacy/info.json b/keyboards/fallacy/info.json index e51283eb192..9489463a4cd 100644 --- a/keyboards/fallacy/info.json +++ b/keyboards/fallacy/info.json @@ -12,6 +12,21 @@ "rows": ["B1", "B2", "B3", "C6", "C7"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/fancytech/fancyalice66/config.h b/keyboards/fancytech/fancyalice66/config.h index b6fcea0c6bc..9f56bd3a203 100644 --- a/keyboards/fancytech/fancyalice66/config.h +++ b/keyboards/fancytech/fancyalice66/config.h @@ -4,8 +4,6 @@ #pragma once #ifdef RGB_MATRIX_ENABLE -# define WS2812_DI_PIN B0 -# define RGB_DI_PIN B0 # define RGB_MATRIX_LED_COUNT 82 /* RGB Matrix effect */ diff --git a/keyboards/fancytech/fancyalice66/info.json b/keyboards/fancytech/fancyalice66/info.json index 1be7f376394..21c89849fde 100644 --- a/keyboards/fancytech/fancyalice66/info.json +++ b/keyboards/fancytech/fancyalice66/info.json @@ -66,7 +66,7 @@ "solid_splash": true, "splash": true }, - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 4, "matrix": [0, 1], "x": 15, "y": 0}, @@ -165,6 +165,9 @@ "pid": "0x3663", "vid": "0xECED" }, + "ws2812": { + "pin": "B0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/fc660c/config.h b/keyboards/fc660c/config.h index 670b0f8e386..cd23bdb2b82 100644 --- a/keyboards/fc660c/config.h +++ b/keyboards/fc660c/config.h @@ -22,10 +22,6 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 16 -//#define DIODE_DIRECTION - -#define TAPPING_TERM 175 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/fc660c/info.json b/keyboards/fc660c/info.json index 8250619bdc8..e65ed35dae7 100644 --- a/keyboards/fc660c/info.json +++ b/keyboards/fc660c/info.json @@ -8,6 +8,9 @@ "pid": "0x660C", "device_version": "1.0.0" }, + "tapping": { + "term": 175 + }, "indicators": { "caps_lock": "B6", "on_state": 0 diff --git a/keyboards/fearherbs1/blue_team_pad/rules.mk b/keyboards/fearherbs1/blue_team_pad/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/fearherbs1/blue_team_pad/rules.mk +++ b/keyboards/fearherbs1/blue_team_pad/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/feker/ik75/info.json b/keyboards/feker/ik75/info.json index 339a5cde505..0da1ff08ea7 100644 --- a/keyboards/feker/ik75/info.json +++ b/keyboards/feker/ik75/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["E6", "B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "E2"], diff --git a/keyboards/feker/ik75/keymaps/bkzshen/keymap.c b/keyboards/feker/ik75/keymaps/bkzshen/keymap.c index f59617ddced..53d8145b7ac 100644 --- a/keyboards/feker/ik75/keymaps/bkzshen/keymap.c +++ b/keyboards/feker/ik75/keymaps/bkzshen/keymap.c @@ -195,8 +195,8 @@ bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(104, 0, 0, 0); uint8_t red = host_keyboard_led_state().caps_lock ? 255 : 0; - uint8_t green = host_keyboard_led_state().scroll_lock ? 255 : 0; - uint8_t blue = keymap_config.no_gui ? 255 : 0; + uint8_t blue = host_keyboard_led_state().scroll_lock ? 255 : 0; + uint8_t green = keymap_config.no_gui ? 255 : 0; if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { diff --git a/keyboards/feker/ik75/keymaps/default/keymap.c b/keyboards/feker/ik75/keymaps/default/keymap.c index fe4676b7f79..f6ca00552ec 100644 --- a/keyboards/feker/ik75/keymaps/default/keymap.c +++ b/keyboards/feker/ik75/keymaps/default/keymap.c @@ -139,8 +139,8 @@ bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(104, 0, 0, 0); uint8_t red = host_keyboard_led_state().caps_lock ? 255 : 0; - uint8_t green = host_keyboard_led_state().scroll_lock ? 255 : 0; - uint8_t blue = keymap_config.no_gui ? 255 : 0; + uint8_t blue = host_keyboard_led_state().scroll_lock ? 255 : 0; + uint8_t green = keymap_config.no_gui ? 255 : 0; if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { diff --git a/keyboards/feker/ik75/keymaps/via/keymap.c b/keyboards/feker/ik75/keymaps/via/keymap.c index da87725d190..e9a221cb3f9 100644 --- a/keyboards/feker/ik75/keymaps/via/keymap.c +++ b/keyboards/feker/ik75/keymaps/via/keymap.c @@ -195,8 +195,8 @@ bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(104, 0, 0, 0); uint8_t red = host_keyboard_led_state().caps_lock ? 255 : 0; - uint8_t green = host_keyboard_led_state().scroll_lock ? 255 : 0; - uint8_t blue = keymap_config.no_gui ? 255 : 0; + uint8_t blue = host_keyboard_led_state().scroll_lock ? 255 : 0; + uint8_t green = keymap_config.no_gui ? 255 : 0; if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { diff --git a/keyboards/feker/ik75/keymaps/vial/rules.mk b/keyboards/feker/ik75/keymaps/vial/rules.mk index a433664b190..034bddfad1b 100644 --- a/keyboards/feker/ik75/keymaps/vial/rules.mk +++ b/keyboards/feker/ik75/keymaps/vial/rules.mk @@ -1,6 +1,7 @@ VIA_ENABLE = yes VIAL_ENABLE = yes VIALRGB_ENABLE = yes +ENCODER_MAP_ENABLE = yes # Firmware Optimization QMK_SETTINGS = no diff --git a/keyboards/feker/ik75/rules.mk b/keyboards/feker/ik75/rules.mk index b3366865cfe..e086b6aaf84 100644 --- a/keyboards/feker/ik75/rules.mk +++ b/keyboards/feker/ik75/rules.mk @@ -20,4 +20,3 @@ RGB_MATRIX_ENABLE = yes # Encoder enabled ENCODER_ENABLE = yes -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/ferris/0_2/bling/info.json b/keyboards/ferris/0_2/bling/info.json index 28ed4f90e3c..1e9703f5994 100644 --- a/keyboards/ferris/0_2/bling/info.json +++ b/keyboards/ferris/0_2/bling/info.json @@ -4,6 +4,6 @@ "pid": "0x0002" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" } } diff --git a/keyboards/ferris/keymaps/test/keymap.c b/keyboards/ferris/keymaps/test/keymap.c index 3706886a241..ba5e31e2cb9 100644 --- a/keyboards/ferris/keymaps/test/keymap.c +++ b/keyboards/ferris/keymaps/test/keymap.c @@ -7,7 +7,13 @@ void matrix_init_user(void) { //debug_mouse=true; } +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P0, DB_TOGG, KC_P2, KC_P3) + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_1, KC_2, KC_3, KC_4 + ) }; - +// clang-format on diff --git a/keyboards/ffkeebs/puca/config.h b/keyboards/ffkeebs/puca/config.h index 23a2f15d994..19b030cdc1a 100644 --- a/keyboards/ffkeebs/puca/config.h +++ b/keyboards/ffkeebs/puca/config.h @@ -17,20 +17,7 @@ along with this program. If not, see . #pragma once -#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_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT - #define RGBLED_NUM 8 -#endif /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/ffkeebs/puca/info.json b/keyboards/ffkeebs/puca/info.json index 356c148d8e5..dbfc2f43206 100644 --- a/keyboards/ffkeebs/puca/info.json +++ b/keyboards/ffkeebs/puca/info.json @@ -18,6 +18,21 @@ {"pin_a": "F4", "pin_b": "F5"} ] }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/fjlabs/7vhotswap/config.h b/keyboards/fjlabs/7vhotswap/config.h index 4aa0cd52ea4..2b28e8a484d 100644 --- a/keyboards/fjlabs/7vhotswap/config.h +++ b/keyboards/fjlabs/7vhotswap/config.h @@ -22,20 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB */ -#define RGBLED_NUM 4 -#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 RGB_VAL_STEP 12 - /* Define less important options */ /* diff --git a/keyboards/fjlabs/7vhotswap/info.json b/keyboards/fjlabs/7vhotswap/info.json index 6e026ecc589..8244960e45a 100644 --- a/keyboards/fjlabs/7vhotswap/info.json +++ b/keyboards/fjlabs/7vhotswap/info.json @@ -13,6 +13,21 @@ "rows": ["B0", "F4", "F1", "F7", "F6", "F5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/fjlabs/avalon/config.h b/keyboards/fjlabs/avalon/config.h index 4204f1d1290..d1875f650f6 100644 --- a/keyboards/fjlabs/avalon/config.h +++ b/keyboards/fjlabs/avalon/config.h @@ -22,19 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#define RGBLED_NUM 6 -#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 RGB_VAL_STEP 12 #define RGBLIGHT_DEFAULT_SPD 144 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL diff --git a/keyboards/fjlabs/avalon/info.json b/keyboards/fjlabs/avalon/info.json index ba9239629cc..96f969146fd 100644 --- a/keyboards/fjlabs/avalon/info.json +++ b/keyboards/fjlabs/avalon/info.json @@ -16,6 +16,22 @@ "indicators": { "caps_lock": "C7" }, + "rgblight": { + "led_count": 6, + "brightness_steps": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/fjlabs/bks65/config.h b/keyboards/fjlabs/bks65/config.h index 3b205ce76fa..990e5335c31 100644 --- a/keyboards/fjlabs/bks65/config.h +++ b/keyboards/fjlabs/bks65/config.h @@ -22,20 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#define RGBLED_NUM 24 -#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_LAYER_BLINK*/ - /* Define less important options */ /* diff --git a/keyboards/fjlabs/bks65/info.json b/keyboards/fjlabs/bks65/info.json index 7b468da941c..5e0d9d5fb9b 100644 --- a/keyboards/fjlabs/bks65/info.json +++ b/keyboards/fjlabs/bks65/info.json @@ -16,6 +16,21 @@ "indicators": { "caps_lock": "C7" }, + "rgblight": { + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/fjlabs/bks65solder/config.h b/keyboards/fjlabs/bks65solder/config.h index 3b205ce76fa..990e5335c31 100644 --- a/keyboards/fjlabs/bks65solder/config.h +++ b/keyboards/fjlabs/bks65solder/config.h @@ -22,20 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#define RGBLED_NUM 24 -#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_LAYER_BLINK*/ - /* Define less important options */ /* diff --git a/keyboards/fjlabs/bks65solder/info.json b/keyboards/fjlabs/bks65solder/info.json index 27c3ece3ba2..dae926d08c9 100644 --- a/keyboards/fjlabs/bks65solder/info.json +++ b/keyboards/fjlabs/bks65solder/info.json @@ -13,6 +13,21 @@ "rows": ["F4", "F1", "F7", "F6", "F5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/fjlabs/kf87/config.h b/keyboards/fjlabs/kf87/config.h index 4131a884292..9f459585649 100644 --- a/keyboards/fjlabs/kf87/config.h +++ b/keyboards/fjlabs/kf87/config.h @@ -22,20 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB */ -#define RGBLED_NUM 87 -#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 RGB_VAL_STEP 12 - /* Define less important options */ /* diff --git a/keyboards/fjlabs/kf87/info.json b/keyboards/fjlabs/kf87/info.json index 415405a9e82..cd2f6a7ac2f 100644 --- a/keyboards/fjlabs/kf87/info.json +++ b/keyboards/fjlabs/kf87/info.json @@ -21,7 +21,20 @@ "pin": "C2" }, "rgblight": { - "max_brightness": 86 + "led_count": 87, + "max_brightness": 86, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "at90usb646", "bootloader": "atmel-dfu", diff --git a/keyboards/fjlabs/kyuu/config.h b/keyboards/fjlabs/kyuu/config.h index 5fa5e84acd3..9bee3167926 100644 --- a/keyboards/fjlabs/kyuu/config.h +++ b/keyboards/fjlabs/kyuu/config.h @@ -22,22 +22,8 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define Badge RGB */ -#define RGBLED_NUM 16 -#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 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 */ diff --git a/keyboards/fjlabs/kyuu/info.json b/keyboards/fjlabs/kyuu/info.json index 058cb4ea23b..9028c3dc8d9 100644 --- a/keyboards/fjlabs/kyuu/info.json +++ b/keyboards/fjlabs/kyuu/info.json @@ -13,6 +13,21 @@ "rows": ["F4", "F1", "F7", "F6", "F5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/fjlabs/mk61rgbansi/config.h b/keyboards/fjlabs/mk61rgbansi/config.h index 89e8c6c2213..afdacdd0803 100644 --- a/keyboards/fjlabs/mk61rgbansi/config.h +++ b/keyboards/fjlabs/mk61rgbansi/config.h @@ -22,22 +22,8 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#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 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 */ diff --git a/keyboards/fjlabs/mk61rgbansi/info.json b/keyboards/fjlabs/mk61rgbansi/info.json index 7e99f1bd106..01a859e0ba9 100644 --- a/keyboards/fjlabs/mk61rgbansi/info.json +++ b/keyboards/fjlabs/mk61rgbansi/info.json @@ -17,7 +17,20 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 108 + "led_count": 64, + "max_brightness": 108, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/fjlabs/ready100/config.h b/keyboards/fjlabs/ready100/config.h index 1292feb117b..b352868d2d4 100644 --- a/keyboards/fjlabs/ready100/config.h +++ b/keyboards/fjlabs/ready100/config.h @@ -22,21 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#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 RGB_VAL_STEP 12 -/* #define RGBLIGHT_LAYER_BLINK*/ - /* Define less important options */ /* diff --git a/keyboards/fjlabs/ready100/info.json b/keyboards/fjlabs/ready100/info.json index 689f396b3ed..dd717bb68a8 100644 --- a/keyboards/fjlabs/ready100/info.json +++ b/keyboards/fjlabs/ready100/info.json @@ -17,7 +17,20 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 108 + "led_count": 64, + "max_brightness": 108, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/fjlabs/solanis/config.h b/keyboards/fjlabs/solanis/config.h index 569d563e450..68becd07670 100644 --- a/keyboards/fjlabs/solanis/config.h +++ b/keyboards/fjlabs/solanis/config.h @@ -22,20 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB */ -#define RGBLED_NUM 24 -#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 RGB_VAL_STEP 12 - /* Define less important options */ /* diff --git a/keyboards/fjlabs/solanis/info.json b/keyboards/fjlabs/solanis/info.json index 2f1bea8698a..ecc495d59a9 100644 --- a/keyboards/fjlabs/solanis/info.json +++ b/keyboards/fjlabs/solanis/info.json @@ -17,7 +17,20 @@ "pin": "B7" }, "rgblight": { - "max_brightness": 172 + "led_count": 24, + "max_brightness": 172, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "at90usb646", "bootloader": "atmel-dfu", diff --git a/keyboards/fjlabs/swordfish/config.h b/keyboards/fjlabs/swordfish/config.h index be5bee6e440..ea4c7011e14 100644 --- a/keyboards/fjlabs/swordfish/config.h +++ b/keyboards/fjlabs/swordfish/config.h @@ -22,20 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB */ -#define RGBLED_NUM 1 -#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 RGB_VAL_STEP 12 - /* Define less important options */ /* diff --git a/keyboards/fjlabs/swordfish/info.json b/keyboards/fjlabs/swordfish/info.json index 98fb7f6f493..822d9662d42 100644 --- a/keyboards/fjlabs/swordfish/info.json +++ b/keyboards/fjlabs/swordfish/info.json @@ -13,88 +13,180 @@ "rows": ["B0", "B1", "C7", "C6", "B6"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { - "LAYOUT_alice_all": { + "LAYOUT_2u_bs": { + "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": [1, 5], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 9, "y": 0}, + {"matrix": [0, 7], "x": 10, "y": 0}, + {"matrix": [0, 8], "x": 11, "y": 0}, + {"matrix": [0, 9], "x": 12, "y": 0}, + {"matrix": [0, 10], "x": 13, "y": 0}, + {"matrix": [0, 11], "x": 14, "y": 0}, + {"matrix": [0, 12], "x": 15, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 17.25, "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": [2, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 8.5, "y": 1}, + {"matrix": [1, 7], "x": 9.5, "y": 1}, + {"matrix": [1, 8], "x": 10.5, "y": 1}, + {"matrix": [1, 9], "x": 11.5, "y": 1}, + {"matrix": [1, 10], "x": 12.5, "y": 1}, + {"matrix": [1, 11], "x": 13.5, "y": 1}, + {"matrix": [1, 12], "x": 14.5, "y": 1}, + {"matrix": [1, 13], "x": 15.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 17.25, "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": [3, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 8.75, "y": 2}, + {"matrix": [2, 7], "x": 9.75, "y": 2}, + {"matrix": [2, 8], "x": 10.75, "y": 2}, + {"matrix": [2, 9], "x": 11.75, "y": 2}, + {"matrix": [2, 10], "x": 12.75, "y": 2}, + {"matrix": [2, 11], "x": 13.75, "y": 2}, + {"matrix": [2, 13], "x": 14.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 17.25, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [4, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 8.25, "y": 3}, + {"matrix": [3, 7], "x": 9.25, "y": 3}, + {"matrix": [3, 8], "x": 10.25, "y": 3}, + {"matrix": [3, 9], "x": 11.25, "y": 3}, + {"matrix": [3, 10], "x": 12.25, "y": 3}, + {"matrix": [3, 11], "x": 13.25, "y": 3}, + {"matrix": [3, 12], "x": 14.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 16.25, "y": 3.25}, + + {"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": 3.25, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 4.5, "y": 4, "w": 2.75}, + {"matrix": [4, 7], "x": 8.25, "y": 4, "w": 2.25}, + {"matrix": [4, 8], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 15.25, "y": 4.25}, + {"matrix": [4, 13], "x": 16.25, "y": 4.25}, + {"matrix": [4, 14], "x": 17.25, "y": 4.25} + ] + }, + "LAYOUT_split_bs": { "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": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0}, - {"matrix": [0, 14], "x": 15.5, "y": 0}, - {"matrix": [1, 0], "x": 16.75, "y": 0}, + {"matrix": [1, 5], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 9, "y": 0}, + {"matrix": [0, 7], "x": 10, "y": 0}, + {"matrix": [0, 8], "x": 11, "y": 0}, + {"matrix": [0, 9], "x": 12, "y": 0}, + {"matrix": [0, 10], "x": 13, "y": 0}, + {"matrix": [0, 11], "x": 14, "y": 0}, + {"matrix": [0, 12], "x": 15, "y": 0}, + {"matrix": [0, 13], "x": 16, "y": 0}, + {"matrix": [0, 14], "x": 17.25, "y": 0}, - {"matrix": [1, 1], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 1}, - {"matrix": [1, 3], "x": 2.5, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1}, - {"matrix": [1, 5], "x": 4.5, "y": 1}, - {"matrix": [1, 6], "x": 5.5, "y": 1}, - {"matrix": [1, 7], "x": 8, "y": 1}, - {"matrix": [1, 8], "x": 9, "y": 1}, - {"matrix": [1, 9], "x": 10, "y": 1}, - {"matrix": [1, 10], "x": 11, "y": 1}, - {"matrix": [1, 11], "x": 12, "y": 1}, - {"matrix": [1, 12], "x": 13, "y": 1}, - {"matrix": [1, 13], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 16.75, "y": 1}, + {"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": [2, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 8.5, "y": 1}, + {"matrix": [1, 7], "x": 9.5, "y": 1}, + {"matrix": [1, 8], "x": 10.5, "y": 1}, + {"matrix": [1, 9], "x": 11.5, "y": 1}, + {"matrix": [1, 10], "x": 12.5, "y": 1}, + {"matrix": [1, 11], "x": 13.5, "y": 1}, + {"matrix": [1, 12], "x": 14.5, "y": 1}, + {"matrix": [1, 13], "x": 15.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 17.25, "y": 1}, - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 10], "x": 11.25, "y": 2}, - {"matrix": [2, 11], "x": 12.25, "y": 2}, - {"matrix": [2, 13], "x": 13.25, "y": 2}, - {"matrix": [2, 14], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 16.75, "y": 2}, + {"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": [3, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 8.75, "y": 2}, + {"matrix": [2, 7], "x": 9.75, "y": 2}, + {"matrix": [2, 8], "x": 10.75, "y": 2}, + {"matrix": [2, 9], "x": 11.75, "y": 2}, + {"matrix": [2, 10], "x": 12.75, "y": 2}, + {"matrix": [2, 11], "x": 13.75, "y": 2}, + {"matrix": [2, 13], "x": 14.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 17.25, "y": 2}, - {"matrix": [3, 1], "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": 8, "y": 3}, - {"matrix": [3, 8], "x": 9, "y": 3}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3, "w": 1.5}, - {"matrix": [4, 0], "x": 15.75, "y": 3.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [4, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 8.25, "y": 3}, + {"matrix": [3, 7], "x": 9.25, "y": 3}, + {"matrix": [3, 8], "x": 10.25, "y": 3}, + {"matrix": [3, 9], "x": 11.25, "y": 3}, + {"matrix": [3, 10], "x": 12.25, "y": 3}, + {"matrix": [3, 11], "x": 13.25, "y": 3}, + {"matrix": [3, 12], "x": 14.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 16.25, "y": 3.25}, - {"matrix": [4, 1], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 4], "x": 3.25, "y": 4, "w": 1.25}, - {"matrix": [4, 5], "x": 4.5, "y": 4, "w": 2.75}, - {"matrix": [4, 7], "x": 8, "y": 4, "w": 2.25}, - {"matrix": [4, 8], "x": 10.25, "y": 4, "w": 1.25}, - {"matrix": [4, 10], "x": 12, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 13.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14.75, "y": 4.25}, - {"matrix": [4, 13], "x": 15.75, "y": 4.25}, - {"matrix": [4, 14], "x": 16.75, "y": 4.25} + {"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": 3.25, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 4.5, "y": 4, "w": 2.75}, + {"matrix": [4, 7], "x": 8.25, "y": 4, "w": 2.25}, + {"matrix": [4, 8], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 15.25, "y": 4.25}, + {"matrix": [4, 13], "x": 16.25, "y": 4.25}, + {"matrix": [4, 14], "x": 17.25, "y": 4.25} ] } } diff --git a/keyboards/fjlabs/swordfish/keymaps/default/keymap.c b/keyboards/fjlabs/swordfish/keymaps/default/keymap.c index ecce4f1a7bf..2b2c8cf19f7 100644 --- a/keyboards/fjlabs/swordfish/keymaps/default/keymap.c +++ b/keyboards/fjlabs/swordfish/keymaps/default/keymap.c @@ -21,19 +21,19 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT_alice_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_MPLY, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_5, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_VOLU, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_T, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_VOLD, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_G, 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_B, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_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_GRV, 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_BSPC, KC_VOLU, + 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_VOLD, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT_alice_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, RGB_MOD, RGB_RMOD, RGB_TOG, - 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, RGB_VAI, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGUP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + [_LAYER1] = LAYOUT_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, RGB_MOD, RGB_RMOD, RGB_TOG, + 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, RGB_VAI, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ) }; diff --git a/keyboards/fjlabs/swordfish/keymaps/via/keymap.c b/keyboards/fjlabs/swordfish/keymaps/via/keymap.c index 50ade4767ec..7428985841b 100644 --- a/keyboards/fjlabs/swordfish/keymaps/via/keymap.c +++ b/keyboards/fjlabs/swordfish/keymaps/via/keymap.c @@ -23,35 +23,35 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT_alice_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_MPLY, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_5, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_VOLU, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_T, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_VOLD, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_G, 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_B, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_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_GRV, 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_BSPC, KC_VOLU, + 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_VOLD, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT_alice_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, RGB_MOD, RGB_RMOD, RGB_TOG, - 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, RGB_VAI, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGUP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + [_LAYER1] = LAYOUT_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, RGB_MOD, RGB_RMOD, RGB_TOG, + 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, RGB_VAI, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ), - [_LAYER2] = LAYOUT_alice_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 + [_LAYER2] = LAYOUT_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 ), - [_LAYER3] = LAYOUT_alice_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 + [_LAYER3] = LAYOUT_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 ) }; diff --git a/keyboards/fjlabs/tf60ansi/config.h b/keyboards/fjlabs/tf60ansi/config.h index 89e8c6c2213..afdacdd0803 100644 --- a/keyboards/fjlabs/tf60ansi/config.h +++ b/keyboards/fjlabs/tf60ansi/config.h @@ -22,22 +22,8 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#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 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 */ diff --git a/keyboards/fjlabs/tf60ansi/info.json b/keyboards/fjlabs/tf60ansi/info.json index b07464ad364..b45f7258b6a 100644 --- a/keyboards/fjlabs/tf60ansi/info.json +++ b/keyboards/fjlabs/tf60ansi/info.json @@ -17,7 +17,20 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 108 + "led_count": 64, + "max_brightness": 108, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/fjlabs/tf60v2/config.h b/keyboards/fjlabs/tf60v2/config.h index 89e8c6c2213..afdacdd0803 100644 --- a/keyboards/fjlabs/tf60v2/config.h +++ b/keyboards/fjlabs/tf60v2/config.h @@ -22,22 +22,8 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#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 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 */ diff --git a/keyboards/fjlabs/tf60v2/info.json b/keyboards/fjlabs/tf60v2/info.json index 6e9a5bf8219..7f6b3ce970e 100644 --- a/keyboards/fjlabs/tf60v2/info.json +++ b/keyboards/fjlabs/tf60v2/info.json @@ -17,7 +17,20 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 108 + "led_count": 64, + "max_brightness": 108, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/fjlabs/tf65rgbv2/config.h b/keyboards/fjlabs/tf65rgbv2/config.h index 5932113c947..afdacdd0803 100644 --- a/keyboards/fjlabs/tf65rgbv2/config.h +++ b/keyboards/fjlabs/tf65rgbv2/config.h @@ -22,22 +22,8 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#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 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 */ diff --git a/keyboards/fjlabs/tf65rgbv2/info.json b/keyboards/fjlabs/tf65rgbv2/info.json index 098bad3fcf7..2101e17f032 100644 --- a/keyboards/fjlabs/tf65rgbv2/info.json +++ b/keyboards/fjlabs/tf65rgbv2/info.json @@ -17,7 +17,20 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 96 + "led_count": 68, + "max_brightness": 96, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/flashquark/horizon_z/config.h b/keyboards/flashquark/horizon_z/config.h new file mode 100755 index 00000000000..8828834d740 --- /dev/null +++ b/keyboards/flashquark/horizon_z/config.h @@ -0,0 +1,78 @@ +/* Copyright 2023 Flashquark + * + * This 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 RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +// # define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// # define ENABLE_RGB_MATRIX_SPLASH +// # define ENABLE_RGB_MATRIX_MULTISPLASH +// # define ENABLE_RGB_MATRIX_SOLID_SPLASH +// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_COUNT 1 +# define RGB_MATRIX_LED_COUNT 62 +#endif diff --git a/keyboards/flashquark/horizon_z/horizon_z.c b/keyboards/flashquark/horizon_z/horizon_z.c new file mode 100755 index 00000000000..da62deaf29b --- /dev/null +++ b/keyboards/flashquark/horizon_z/horizon_z.c @@ -0,0 +1,95 @@ +/* Copyright 2023 Flashquark + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + {0, B_1, A_1, C_1}, + {0, B_2, A_2, C_2}, + {0, B_3, A_3, C_3}, + {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, 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}, + {0, E_5, D_5, F_5}, + {0, E_6, D_6, F_6}, + {0, E_7, D_7, F_7}, + {0, E_8, D_8, F_8}, + {0, E_9, D_9, F_9}, + {0, E_10, D_10, F_10}, + {0, E_11, D_11, F_11}, + {0, E_12, D_12, F_12}, + {0, E_13, D_13, F_13}, + {0, E_14, D_14, F_14}, + {0, H_1, G_1, I_1}, + {0, H_2, G_2, I_2}, + {0, H_3, G_3, I_3}, + {0, H_4, G_4, I_4}, + {0, H_5, G_5, I_5}, + {0, H_6, G_6, I_6}, + {0, H_7, G_7, I_7}, + {0, H_8, G_8, I_8}, + {0, H_9, G_9, I_9}, + {0, H_10, G_10, I_10}, + {0, H_11, G_11, I_11}, + {0, H_12, G_12, I_12}, + {0, H_13, G_13, I_13}, + {0, K_1, J_1, L_1}, + {0, K_2, J_2, L_2}, + {0, K_3, J_3, L_3}, + {0, K_4, J_4, L_4}, + {0, K_5, J_5, L_5}, + {0, K_6, J_6, L_6}, + {0, K_7, J_7, L_7}, + {0, K_8, J_8, L_8}, + {0, K_9, J_9, L_9}, + {0, K_10, J_10, L_10}, + {0, K_11, J_11, L_11}, + {0, K_14, J_14, L_14}, + {0, B_16, A_16, C_16}, + {0, E_16, D_16, F_16}, + {0, H_16, G_16, I_16}, + {0, K_16, J_16, L_16}, + {0, K_15, J_15, L_15}, + {0, K_12, J_12, L_12}, + {0, K_13, J_13, L_13}, + {0, H_14, G_14, I_14}, +}; + + +#endif + +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/flashquark/horizon_z/info.json b/keyboards/flashquark/horizon_z/info.json new file mode 100755 index 00000000000..9127042f714 --- /dev/null +++ b/keyboards/flashquark/horizon_z/info.json @@ -0,0 +1,162 @@ +{ + "manufacturer": "FLASHQUARK", + "keyboard_name": "Horizon_Z", + "maintainer": "FLASHQUARK", + "bootloader": "atmel-dfu", + "debounce": 3, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "C6", "C7", "F7", "F6", "B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5"], + "rows": ["F0", "F1", "F4", "F5", "B4"] + }, + "processor": "atmega32u4", + "rgb_matrix": { + "driver": "is31fl3733", + "layout": [ + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 16, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 32, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 48, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 64, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 80, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 96, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 112, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 128, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 144, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 160, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x": 176, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x": 192, "y": 0 }, + { "flags": 1, "matrix": [0, 13], "x": 216, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 4, "y": 16 }, + { "flags": 4, "matrix": [1, 1], "x": 24, "y": 16 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y": 16 }, + { "flags": 4, "matrix": [1, 3], "x": 56, "y": 16 }, + { "flags": 4, "matrix": [1, 4], "x": 72, "y": 16 }, + { "flags": 4, "matrix": [1, 5], "x": 88, "y": 16 }, + { "flags": 4, "matrix": [1, 6], "x": 104, "y": 16 }, + { "flags": 4, "matrix": [1, 7], "x": 120, "y": 16 }, + { "flags": 4, "matrix": [1, 8], "x": 136, "y": 16 }, + { "flags": 4, "matrix": [1, 9], "x": 152, "y": 16 }, + { "flags": 4, "matrix": [1, 10], "x": 168, "y": 16 }, + { "flags": 4, "matrix": [1, 11], "x": 184, "y": 16 }, + { "flags": 4, "matrix": [1, 12], "x": 200, "y": 16 }, + { "flags": 4, "matrix": [1, 13], "x": 220, "y": 16 }, + { "flags": 4, "matrix": [2, 0], "x": 6, "y": 32 }, + { "flags": 4, "matrix": [2, 1], "x": 28, "y": 32 }, + { "flags": 4, "matrix": [2, 2], "x": 44, "y": 32 }, + { "flags": 4, "matrix": [2, 3], "x": 60, "y": 32 }, + { "flags": 4, "matrix": [2, 4], "x": 76, "y": 32 }, + { "flags": 4, "matrix": [2, 5], "x": 92, "y": 32 }, + { "flags": 4, "matrix": [2, 6], "x": 108, "y": 32 }, + { "flags": 4, "matrix": [2, 7], "x": 124, "y": 32 }, + { "flags": 4, "matrix": [2, 8], "x": 140, "y": 32 }, + { "flags": 4, "matrix": [2, 9], "x": 156, "y": 32 }, + { "flags": 4, "matrix": [2, 10], "x": 172, "y": 32 }, + { "flags": 4, "matrix": [2, 11], "x": 188, "y": 32 }, + { "flags": 1, "matrix": [2, 13], "x": 204, "y": 32 }, + { "flags": 1, "matrix": [3, 0], "x": 10, "y": 48 }, + { "flags": 4, "matrix": [3, 1], "x": 20, "y": 48 }, + { "flags": 4, "matrix": [3, 2], "x": 52, "y": 48 }, + { "flags": 4, "matrix": [3, 3], "x": 68, "y": 48 }, + { "flags": 4, "matrix": [3, 4], "x": 84, "y": 48 }, + { "flags": 4, "matrix": [3, 5], "x": 100, "y": 48 }, + { "flags": 4, "matrix": [3, 6], "x": 116, "y": 48 }, + { "flags": 4, "matrix": [3, 7], "x": 132, "y": 48 }, + { "flags": 4, "matrix": [3, 8], "x": 148, "y": 48 }, + { "flags": 4, "matrix": [3, 9], "x": 164, "y": 48 }, + { "flags": 4, "matrix": [3, 10], "x": 180, "y": 48 }, + { "flags": 1, "matrix": [3, 13], "x": 210, "y": 48 }, + { "flags": 1, "matrix": [4, 0], "x": 2, "y": 64 }, + { "flags": 1, "matrix": [4, 1], "x": 22, "y": 64 }, + { "flags": 1, "matrix": [4, 2], "x": 42, "y": 64 }, + { "flags": 1, "matrix": [4, 5], "x": 102, "y": 64 }, + { "flags": 1, "matrix": [4, 9], "x": 162, "y": 64 }, + { "flags": 1, "matrix": [4, 10], "x": 182, "y": 64 }, + { "flags": 1, "matrix": [4, 12], "x": 202, "y": 64 }, + { "flags": 1, "matrix": [4, 13], "x": 222, "y": 64 } + ] + }, + "url": "https://flashquark.com/product/flashquark-horizon-z-qmk-edition-custom-kit/", + "usb": { + "device_version": "1.0.0", + "pid": "0x0223", + "vid": "0x4B42" + }, + "community_layouts": ["60_ansi"], + "layouts": { + "LAYOUT_60_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], "w": 2, "x": 13, "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": [1, 13], "w": 1.5, "x": 13.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, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c new file mode 100755 index 00000000000..1ab95c54a56 --- /dev/null +++ b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 Flashquark + * + * This 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( /* Base */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + CTL_T(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, MO(1), KC_RGUI, KC_RCTL), + [_LAYER1] = LAYOUT_60_ansi( /* FN */ + 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_DEL , + KC_TRNS, RGB_TOG, KC_UP, RGB_MOD, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, MAGIC_TOGGLE_NKRO, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, + 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/flashquark/horizon_z/keymaps/via/keymap.c b/keyboards/flashquark/horizon_z/keymaps/via/keymap.c new file mode 100755 index 00000000000..1ab95c54a56 --- /dev/null +++ b/keyboards/flashquark/horizon_z/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 Flashquark + * + * This 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( /* Base */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + CTL_T(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, MO(1), KC_RGUI, KC_RCTL), + [_LAYER1] = LAYOUT_60_ansi( /* FN */ + 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_DEL , + KC_TRNS, RGB_TOG, KC_UP, RGB_MOD, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, MAGIC_TOGGLE_NKRO, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, + 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/flashquark/horizon_z/keymaps/via/rules.mk b/keyboards/flashquark/horizon_z/keymaps/via/rules.mk new file mode 100755 index 00000000000..bfbf8681c99 --- /dev/null +++ b/keyboards/flashquark/horizon_z/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/flashquark/horizon_z/readme.md b/keyboards/flashquark/horizon_z/readme.md new file mode 100755 index 00000000000..0c4e8d57457 --- /dev/null +++ b/keyboards/flashquark/horizon_z/readme.md @@ -0,0 +1,20 @@ +# Horizon Z QMK Edition + +A hotswap 60% keyboard by Flashquark + +* Keyboard Maintainer: [Flashquark](https://flashquark.com) +* Hardware Supported: Horizon Z QMK +* Hardware Availability: [Horizon Z QMK Edition](https://flashquark.com/product/flashquark-horizon-z-qmk-edition-custom-kit/) + + +## Build + +Make example for this keyboard (after setting up your build environment): + + make flashquark/horizon_z: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 + +Press reset button on the back of keyboard. \ No newline at end of file diff --git a/keyboards/flashquark/horizon_z/rules.mk b/keyboards/flashquark/horizon_z/rules.mk new file mode 100755 index 00000000000..e69de29bb2d diff --git a/keyboards/flehrad/bigswitch/config.h b/keyboards/flehrad/bigswitch/config.h index ddf4546bbb2..44163932472 100644 --- a/keyboards/flehrad/bigswitch/config.h +++ b/keyboards/flehrad/bigswitch/config.h @@ -21,18 +21,3 @@ along with this program. If not, see . #define IS_COMMAND() ( \ false \ ) - - -#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 RGBLED_NUM 8 -#endif diff --git a/keyboards/flehrad/bigswitch/info.json b/keyboards/flehrad/bigswitch/info.json index 095f8284e4f..cf981b0d90e 100644 --- a/keyboards/flehrad/bigswitch/info.json +++ b/keyboards/flehrad/bigswitch/info.json @@ -7,6 +7,21 @@ "pid": "0xB195", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/fleuron/config.h b/keyboards/fleuron/config.h index 34197c8578d..60f42fbcda9 100644 --- a/keyboards/fleuron/config.h +++ b/keyboards/fleuron/config.h @@ -37,15 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define RGBLED_NUM 18 // Number of LEDs in your strip -#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/fleuron/info.json b/keyboards/fleuron/info.json index c2ff091acec..70be63d3c20 100644 --- a/keyboards/fleuron/info.json +++ b/keyboards/fleuron/info.json @@ -12,6 +12,21 @@ "rows": ["F0", "F1", "F4", "F5", "F6", "F7"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/fleuron/keymaps/dollartacos/keymap.c b/keyboards/fleuron/keymaps/dollartacos/keymap.c index e2bef353ef2..90490bb02f6 100644 --- a/keyboards/fleuron/keymaps/dollartacos/keymap.c +++ b/keyboards/fleuron/keymaps/dollartacos/keymap.c @@ -145,15 +145,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/flx/virgo/config.h b/keyboards/flx/virgo/config.h deleted file mode 100644 index 84306f36a07..00000000000 --- a/keyboards/flx/virgo/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2019 MechMerlin - -This 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 RGBLED_NUM 0 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 diff --git a/keyboards/flx/virgo/info.json b/keyboards/flx/virgo/info.json index f7ce7724825..d1e40b9ecec 100644 --- a/keyboards/flx/virgo/info.json +++ b/keyboards/flx/virgo/info.json @@ -17,6 +17,22 @@ "pin": "B7", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 0, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/flxlb/zplit/config.h b/keyboards/flxlb/zplit/config.h index 55edfade827..6bde2711c23 100644 --- a/keyboards/flxlb/zplit/config.h +++ b/keyboards/flxlb/zplit/config.h @@ -28,23 +28,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLED_NUM 16 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8} -#define RGBLED_SPLIT { 8, 8 } -#define RGBLIGHT_SPLIT -#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 - - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/flxlb/zplit/info.json b/keyboards/flxlb/zplit/info.json index a2c27492cf4..6d2aadcb437 100644 --- a/keyboards/flxlb/zplit/info.json +++ b/keyboards/flxlb/zplit/info.json @@ -18,6 +18,23 @@ {"pin_a": "B0", "pin_b": "D2"} ] }, + "rgblight": { + "led_count": 16, + "led_map": [0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8], + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/fortitude60/rev1/config.h b/keyboards/fortitude60/rev1/config.h index d13ea1c8450..5dec5df1f12 100644 --- a/keyboards/fortitude60/rev1/config.h +++ b/keyboards/fortitude60/rev1/config.h @@ -27,10 +27,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 18 // Number of LEDs */ -#endif /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/fortitude60/rev1/info.json b/keyboards/fortitude60/rev1/info.json index 175e621e230..0ae02161cd5 100644 --- a/keyboards/fortitude60/rev1/info.json +++ b/keyboards/fortitude60/rev1/info.json @@ -17,6 +17,9 @@ "pin": "B5", "levels": 9 }, + "rgblight": { + "led_count": 18 + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/foxlab/key65/hotswap/config.h b/keyboards/foxlab/key65/hotswap/config.h index 8ee5b2a14a8..43bd4ee5716 100644 --- a/keyboards/foxlab/key65/hotswap/config.h +++ b/keyboards/foxlab/key65/hotswap/config.h @@ -16,22 +16,6 @@ #pragma once - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/foxlab/key65/hotswap/info.json b/keyboards/foxlab/key65/hotswap/info.json index 619f59671d2..20f5c06ecd1 100644 --- a/keyboards/foxlab/key65/hotswap/info.json +++ b/keyboards/foxlab/key65/hotswap/info.json @@ -17,6 +17,24 @@ "pin": "B7", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/foxlab/key65/universal/config.h b/keyboards/foxlab/key65/universal/config.h index 003eb0a72cf..43bd4ee5716 100644 --- a/keyboards/foxlab/key65/universal/config.h +++ b/keyboards/foxlab/key65/universal/config.h @@ -16,22 +16,6 @@ #pragma once - #define RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/foxlab/key65/universal/info.json b/keyboards/foxlab/key65/universal/info.json index ef7c4386c83..e2e526303d0 100644 --- a/keyboards/foxlab/key65/universal/info.json +++ b/keyboards/foxlab/key65/universal/info.json @@ -17,6 +17,24 @@ "pin": "B7", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/foxlab/leaf60/hotswap/config.h b/keyboards/foxlab/leaf60/hotswap/config.h index a7b28ae1db5..d4515ef219d 100644 --- a/keyboards/foxlab/leaf60/hotswap/config.h +++ b/keyboards/foxlab/leaf60/hotswap/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/foxlab/leaf60/hotswap/info.json b/keyboards/foxlab/leaf60/hotswap/info.json index f8b3c35edd5..f7f3d202ff6 100644 --- a/keyboards/foxlab/leaf60/hotswap/info.json +++ b/keyboards/foxlab/leaf60/hotswap/info.json @@ -22,6 +22,24 @@ "caps_lock": "E6", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/foxlab/leaf60/universal/config.h b/keyboards/foxlab/leaf60/universal/config.h index a7b28ae1db5..d4515ef219d 100644 --- a/keyboards/foxlab/leaf60/universal/config.h +++ b/keyboards/foxlab/leaf60/universal/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/foxlab/leaf60/universal/info.json b/keyboards/foxlab/leaf60/universal/info.json index a277830d9db..f4b9c704f74 100644 --- a/keyboards/foxlab/leaf60/universal/info.json +++ b/keyboards/foxlab/leaf60/universal/info.json @@ -21,6 +21,24 @@ "caps_lock": "E6", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/foxlab/time80/config.h b/keyboards/foxlab/time80/config.h index f68ee9bd551..0b0ee839718 100644 --- a/keyboards/foxlab/time80/config.h +++ b/keyboards/foxlab/time80/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 16 -//#define RGBLIGHT_HUE_STEP 8 -//#define RGBLIGHT_SAT_STEP 8 -//#define RGBLIGHT_VAL_STEP 8 -//#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/foxlab/time80/info.json b/keyboards/foxlab/time80/info.json index f5b8a7eb0c0..b19e3c31041 100644 --- a/keyboards/foxlab/time80/info.json +++ b/keyboards/foxlab/time80/info.json @@ -16,6 +16,9 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 16 + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/foxlab/time_re/hotswap/config.h b/keyboards/foxlab/time_re/hotswap/config.h deleted file mode 100644 index 03e8b6b3d46..00000000000 --- a/keyboards/foxlab/time_re/hotswap/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2021 DongXing - -This 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 RGBLED_NUM 5 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/foxlab/time_re/hotswap/info.json b/keyboards/foxlab/time_re/hotswap/info.json index 1253771b5c3..d210a854377 100644 --- a/keyboards/foxlab/time_re/hotswap/info.json +++ b/keyboards/foxlab/time_re/hotswap/info.json @@ -24,7 +24,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/foxlab/time_re/universal/config.h b/keyboards/foxlab/time_re/universal/config.h deleted file mode 100644 index 03e8b6b3d46..00000000000 --- a/keyboards/foxlab/time_re/universal/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2021 DongXing - -This 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 RGBLED_NUM 5 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/foxlab/time_re/universal/info.json b/keyboards/foxlab/time_re/universal/info.json index 8bb9a58ee27..a7c9bbc7e62 100644 --- a/keyboards/foxlab/time_re/universal/info.json +++ b/keyboards/foxlab/time_re/universal/info.json @@ -20,7 +20,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "indicators": { "caps_lock": "E6", diff --git a/keyboards/frooastboard/nano/config.h b/keyboards/frooastboard/nano/config.h index 32d34ead428..d28c057500a 100644 --- a/keyboards/frooastboard/nano/config.h +++ b/keyboards/frooastboard/nano/config.h @@ -16,22 +16,8 @@ #pragma once -#define RGBLED_NUM 8 - -#define RGBLIGHT_SLEEP - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_DEFAULT_HUE 234 #define RGBLIGHT_DEFAULT_VAL 190 -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + 2 diff --git a/keyboards/frooastboard/nano/info.json b/keyboards/frooastboard/nano/info.json index d1a77d256d0..6112c4832c1 100644 --- a/keyboards/frooastboard/nano/info.json +++ b/keyboards/frooastboard/nano/info.json @@ -24,6 +24,19 @@ "pid": "0x6F21", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/frooastboard/walnut/info.json b/keyboards/frooastboard/walnut/info.json index ee18003f57e..fc8ca2130fd 100644 --- a/keyboards/frooastboard/walnut/info.json +++ b/keyboards/frooastboard/walnut/info.json @@ -15,7 +15,7 @@ "nkro": true }, "rgb_matrix": { - "driver": "IS31FL3737" + "driver": "is31fl3737" }, "build": { "lto": true diff --git a/keyboards/ft/mars65/config.h b/keyboards/ft/mars65/config.h deleted file mode 100644 index bfe825dcc93..00000000000 --- a/keyboards/ft/mars65/config.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2022 wonderbeel (https://github.com/wonderbeel) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - - #define RGBLED_NUM 24 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - #define RGBLIGHT_EFFECT_TWINKLE - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ - diff --git a/keyboards/ft/mars65/info.json b/keyboards/ft/mars65/info.json index 2160ae9be66..4e3b3b8ee9d 100644 --- a/keyboards/ft/mars65/info.json +++ b/keyboards/ft/mars65/info.json @@ -20,7 +20,23 @@ "pin": "E6" }, "rgblight": { - "max_brightness": 130 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "max_brightness": 130, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/ft/mars80/config.h b/keyboards/ft/mars80/config.h deleted file mode 100644 index 116c09d6ac7..00000000000 --- a/keyboards/ft/mars80/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 20 - -#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/ft/mars80/info.json b/keyboards/ft/mars80/info.json index 5801c63a237..82727ffd3e7 100644 --- a/keyboards/ft/mars80/info.json +++ b/keyboards/ft/mars80/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/fungo/rev1/config.h b/keyboards/fungo/rev1/config.h index 187a7809bcf..bebed352e22 100644 --- a/keyboards/fungo/rev1/config.h +++ b/keyboards/fungo/rev1/config.h @@ -23,16 +23,8 @@ /** public parameter **/ /*************************************/ -#define MATRIX_IO_DELAY 15 // default 30 -#define TAP_CODE_DELAY 50 // default 0, disabled - /* 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 TAPPING_TOGGLE 3 - - diff --git a/keyboards/fungo/rev1/info.json b/keyboards/fungo/rev1/info.json index 2874f3d5e4a..d153f9f834a 100644 --- a/keyboards/fungo/rev1/info.json +++ b/keyboards/fungo/rev1/info.json @@ -10,7 +10,8 @@ }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], - "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] + "rows": ["D4", "C6", "D7", "E6", "B4", "B5"], + "io_delay": 15 }, "diode_direction": "COL2ROW", "split": { @@ -22,9 +23,15 @@ } } }, + "qmk": { + "tap_keycode_delay": 50 + }, "processor": "atmega32u4", "bootloader": "caterina", "debounce": 3, + "tapping": { + "toggle": 3 + }, "layout_aliases": { "LAYOUT_fungo_split_num": "LAYOUT" }, diff --git a/keyboards/fungo/rev1/rules.mk b/keyboards/fungo/rev1/rules.mk index 731941b437a..e8d7a7aed53 100644 --- a/keyboards/fungo/rev1/rules.mk +++ b/keyboards/fungo/rev1/rules.mk @@ -14,6 +14,4 @@ KEY_LOCK_ENABLE = yes # kc_lock use OLED_ENABLE = no -OLED_DRIVER = SSD1306 # OLED display SPLIT_KEYBOARD = yes # split type - diff --git a/keyboards/gami_studio/lex60/config.h b/keyboards/gami_studio/lex60/config.h deleted file mode 100644 index ba2a3450455..00000000000 --- a/keyboards/gami_studio/lex60/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2019 Evy Dekkers - -This 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 RGBLED_NUM 12 -#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/gami_studio/lex60/info.json b/keyboards/gami_studio/lex60/info.json index b5b59df7aac..871d1f77fc4 100644 --- a/keyboards/gami_studio/lex60/info.json +++ b/keyboards/gami_studio/lex60/info.json @@ -8,6 +8,21 @@ "pid": "0x0160", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/gboards/ergotaco/config.h b/keyboards/gboards/ergotaco/config.h index 456eb3f9d91..0ab992eac30 100644 --- a/keyboards/gboards/ergotaco/config.h +++ b/keyboards/gboards/ergotaco/config.h @@ -32,9 +32,6 @@ along with this program. If not, see . #define MOUSEKEY_TIME_TO_MAX 60 #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 1 - -#define TAPPING_TERM 200 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/gboards/ergotaco/info.json b/keyboards/gboards/ergotaco/info.json index 1de1f3ab85d..80558ad6929 100644 --- a/keyboards/gboards/ergotaco/info.json +++ b/keyboards/gboards/ergotaco/info.json @@ -10,6 +10,9 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "tapping": { + "toggle": 1 + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gboards/georgi/config.h b/keyboards/gboards/georgi/config.h index db2ff42a1e8..f0785f24bc6 100644 --- a/keyboards/gboards/georgi/config.h +++ b/keyboards/gboards/georgi/config.h @@ -37,9 +37,6 @@ along with this program. If not, see . #define MOUSEKEY_TIME_TO_MAX 60 #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 2 - -#define TAPPING_TERM 200 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/gboards/georgi/info.json b/keyboards/gboards/georgi/info.json index 0a654eaa4ac..51737f75af8 100644 --- a/keyboards/gboards/georgi/info.json +++ b/keyboards/gboards/georgi/info.json @@ -11,6 +11,9 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "tapping": { + "toggle": 2 + }, "layout_aliases": { "LAYOUT_georgi": "LAYOUT" }, diff --git a/keyboards/gboards/gergo/config.h b/keyboards/gboards/gergo/config.h index dbff6ccf6f1..44cb5a4304a 100644 --- a/keyboards/gboards/gergo/config.h +++ b/keyboards/gboards/gergo/config.h @@ -41,9 +41,6 @@ along with this program. If not, see . #define MOUSEKEY_TIME_TO_MAX 60 #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 1 - -#define TAPPING_TERM 200 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/gboards/gergo/info.json b/keyboards/gboards/gergo/info.json index 53711cb2715..bc53f2db5f0 100644 --- a/keyboards/gboards/gergo/info.json +++ b/keyboards/gboards/gergo/info.json @@ -8,11 +8,17 @@ "pid": "0x1307", "device_version": "0.0.1" }, + "build": { + "debounce_type": "sym_eager_pr" + }, "bootmagic": { "matrix": [13, 2] }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "tapping": { + "toggle": 1 + }, "layout_aliases": { "LAYOUT_gergo": "LAYOUT" }, diff --git a/keyboards/gboards/gergo/keymaps/oled/rules.mk b/keyboards/gboards/gergo/keymaps/oled/rules.mk index 78804167196..e1bd70f6564 100644 --- a/keyboards/gboards/gergo/keymaps/oled/rules.mk +++ b/keyboards/gboards/gergo/keymaps/oled/rules.mk @@ -8,7 +8,6 @@ BALLSTEP = 20 # Multiple in px to move, multiplied by layer number SCROLLSTEP = 1 # Lines to scroll with ball MOUSEKEY_ENABLE = yes # Mouse keys, needed for baller OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LOCAL_GLCDFONT = yes #Debug options diff --git a/keyboards/gboards/gergo/rules.mk b/keyboards/gboards/gergo/rules.mk index 95e12cc36c1..195915e4314 100644 --- a/keyboards/gboards/gergo/rules.mk +++ b/keyboards/gboards/gergo/rules.mk @@ -7,6 +7,5 @@ CONSOLE_ENABLE = yes COMMAND_ENABLE = yes BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -DEBOUNCE_TYPE = sym_eager_pr SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/gboards/gergoplex/info.json b/keyboards/gboards/gergoplex/info.json index 061f8ff8695..c5f6be47509 100644 --- a/keyboards/gboards/gergoplex/info.json +++ b/keyboards/gboards/gergoplex/info.json @@ -8,6 +8,9 @@ "pid": "0x0002", "device_version": "0.0.1" }, + "build": { + "debounce_type": "sym_eager_pr" + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["split_3x5_3"], diff --git a/keyboards/gboards/gergoplex/rules.mk b/keyboards/gboards/gergoplex/rules.mk index 6887c869b9a..adf5cfd2e7d 100644 --- a/keyboards/gboards/gergoplex/rules.mk +++ b/keyboards/gboards/gergoplex/rules.mk @@ -12,6 +12,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes -DEBOUNCE_TYPE = sym_eager_pr SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/geekboards/macropad_v2/config.h b/keyboards/geekboards/macropad_v2/config.h index 344ccf3fffc..47f9064e451 100644 --- a/keyboards/geekboards/macropad_v2/config.h +++ b/keyboards/geekboards/macropad_v2/config.h @@ -16,7 +16,6 @@ #pragma once -#define RGBLED_NUM 42 #define RGB_MATRIX_LED_COUNT 42 // PWM RGB Underglow Defines @@ -86,5 +85,3 @@ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define WAIT_FOR_USB - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/geekboards/macropad_v2/info.json b/keyboards/geekboards/macropad_v2/info.json index 504238b21c7..95b1ca94d7d 100644 --- a/keyboards/geekboards/macropad_v2/info.json +++ b/keyboards/geekboards/macropad_v2/info.json @@ -8,12 +8,15 @@ "pid": "0xA372", "device_version": "0.0.2" }, + "qmk": { + "tap_keycode_delay": 10 + }, "ws2812": { "pin": "A7", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/geekboards/macropad_v2/readme.md b/keyboards/geekboards/macropad_v2/readme.md index b28114635c5..45bb7df6f3a 100644 --- a/keyboards/geekboards/macropad_v2/readme.md +++ b/keyboards/geekboards/macropad_v2/readme.md @@ -10,7 +10,7 @@ Hardware Availability: https://geekboards.ru Compile instruction for this keyboard (after setting up your build environment): - make geekboards/macropad_v2:vial + make geekboards/macropad_v2:via ## Update firmware ### Enter bootloader @@ -27,6 +27,6 @@ Alternatively: ### Flash - make geekboards/macropad_v2:vial:flash + make geekboards/macropad_v2:via:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/geekboards/macropad_v2/rules.mk b/keyboards/geekboards/macropad_v2/rules.mk index b7807ae4185..c49a369dd02 100644 --- a/keyboards/geekboards/macropad_v2/rules.mk +++ b/keyboards/geekboards/macropad_v2/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/geekboards/tester/info.json b/keyboards/geekboards/tester/info.json index 16f3496a13e..363ab895a5f 100644 --- a/keyboards/geekboards/tester/info.json +++ b/keyboards/geekboards/tester/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["F7", "F6", "D2", "D3"], diff --git a/keyboards/geistmaschine/geist/info.json b/keyboards/geistmaschine/geist/info.json index 77a9a937e55..571740b7163 100644 --- a/keyboards/geistmaschine/geist/info.json +++ b/keyboards/geistmaschine/geist/info.json @@ -29,242 +29,246 @@ {"pin_a": "B0", "pin_b": "B7", "resolution": 2} ] }, - "community_layouts": ["65_ansi", "65_iso"], + "layout_aliases": { + "LAYOUT_65_all": "LAYOUT_all", + "LAYOUT_65_ansi": "LAYOUT_ansi_blocker", + "LAYOUT_65_iso": "LAYOUT_iso_blocker" + }, "layouts": { - "LAYOUT_65_all": { + "LAYOUT_all": { "layout": [ - {"x": 0, "y": 0, "matrix": [9, 1]}, - {"x": 1.25, "y": 0, "matrix": [0, 0]}, - {"x": 2.25, "y": 0, "matrix": [1, 0]}, - {"x": 3.25, "y": 0, "matrix": [0, 1]}, - {"x": 4.25, "y": 0, "matrix": [1, 1]}, - {"x": 5.25, "y": 0, "matrix": [0, 2]}, - {"x": 6.25, "y": 0, "matrix": [1, 2]}, - {"x": 7.25, "y": 0, "matrix": [0, 3]}, - {"x": 8.25, "y": 0, "matrix": [1, 3]}, - {"x": 9.25, "y": 0, "matrix": [0, 4]}, - {"x": 10.25, "y": 0, "matrix": [1, 4]}, - {"x": 11.25, "y": 0, "matrix": [0, 5]}, - {"x": 12.25, "y": 0, "matrix": [1, 5]}, - {"x": 13.25, "y": 0, "matrix": [0, 6]}, - {"x": 14.25, "y": 0, "matrix": [1, 6]}, - {"x": 15.25, "y": 0, "matrix": [0, 7]}, - {"x": 16.25, "y": 0, "matrix": [1, 7]}, + {"matrix": [9, 1], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [1, 0], "x": 2.25, "y": 0}, + {"matrix": [0, 1], "x": 3.25, "y": 0}, + {"matrix": [1, 1], "x": 4.25, "y": 0}, + {"matrix": [0, 2], "x": 5.25, "y": 0}, + {"matrix": [1, 2], "x": 6.25, "y": 0}, + {"matrix": [0, 3], "x": 7.25, "y": 0}, + {"matrix": [1, 3], "x": 8.25, "y": 0}, + {"matrix": [0, 4], "x": 9.25, "y": 0}, + {"matrix": [1, 4], "x": 10.25, "y": 0}, + {"matrix": [0, 5], "x": 11.25, "y": 0}, + {"matrix": [1, 5], "x": 12.25, "y": 0}, + {"matrix": [0, 6], "x": 13.25, "y": 0}, + {"matrix": [1, 6], "x": 14.25, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, - {"x": 1.25, "y": 1, "w": 1.5, "matrix": [2, 0]}, - {"x": 2.75, "y": 1, "matrix": [3, 0]}, - {"x": 3.75, "y": 1, "matrix": [2, 1]}, - {"x": 4.75, "y": 1, "matrix": [3, 1]}, - {"x": 5.75, "y": 1, "matrix": [2, 2]}, - {"x": 6.75, "y": 1, "matrix": [3, 2]}, - {"x": 7.75, "y": 1, "matrix": [2, 3]}, - {"x": 8.75, "y": 1, "matrix": [3, 3]}, - {"x": 9.75, "y": 1, "matrix": [2, 4]}, - {"x": 10.75, "y": 1, "matrix": [3, 4]}, - {"x": 11.75, "y": 1, "matrix": [2, 5]}, - {"x": 12.75, "y": 1, "matrix": [3, 5]}, - {"x": 13.75, "y": 1, "matrix": [2, 6]}, - {"x": 14.75, "y": 1, "w": 1.5, "matrix": [3, 6]}, - {"x": 16.25, "y": 1, "matrix": [3, 7]}, + {"matrix": [2, 0], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 2.75, "y": 1}, + {"matrix": [2, 1], "x": 3.75, "y": 1}, + {"matrix": [3, 1], "x": 4.75, "y": 1}, + {"matrix": [2, 2], "x": 5.75, "y": 1}, + {"matrix": [3, 2], "x": 6.75, "y": 1}, + {"matrix": [2, 3], "x": 7.75, "y": 1}, + {"matrix": [3, 3], "x": 8.75, "y": 1}, + {"matrix": [2, 4], "x": 9.75, "y": 1}, + {"matrix": [3, 4], "x": 10.75, "y": 1}, + {"matrix": [2, 5], "x": 11.75, "y": 1}, + {"matrix": [3, 5], "x": 12.75, "y": 1}, + {"matrix": [2, 6], "x": 13.75, "y": 1}, + {"matrix": [3, 6], "x": 14.75, "y": 1, "w": 1.5}, + {"matrix": [3, 7], "x": 16.25, "y": 1}, - {"x": 1.25, "y": 2, "w": 1.75, "matrix": [4, 0]}, - {"x": 3, "y": 2, "matrix": [5, 0]}, - {"x": 4, "y": 2, "matrix": [4, 1]}, - {"x": 5, "y": 2, "matrix": [5, 1]}, - {"x": 6, "y": 2, "matrix": [4, 2]}, - {"x": 7, "y": 2, "matrix": [5, 2]}, - {"x": 8, "y": 2, "matrix": [4, 3]}, - {"x": 9, "y": 2, "matrix": [5, 3]}, - {"x": 10, "y": 2, "matrix": [4, 4]}, - {"x": 11, "y": 2, "matrix": [5, 4]}, - {"x": 12, "y": 2, "matrix": [4, 5]}, - {"x": 13, "y": 2, "matrix": [5, 5]}, - {"x": 14, "y": 2, "matrix": [4, 6]}, - {"x": 14, "y": 2, "w": 2.25, "matrix": [5, 6]}, - {"x": 15, "y": 1, "w": 1.25, "h": 2, "matrix": [4, 7]}, - {"x": 16.25, "y": 2, "matrix": [5, 7]}, + {"matrix": [4, 0], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 3, "y": 2}, + {"matrix": [4, 1], "x": 4, "y": 2}, + {"matrix": [5, 1], "x": 5, "y": 2}, + {"matrix": [4, 2], "x": 6, "y": 2}, + {"matrix": [5, 2], "x": 7, "y": 2}, + {"matrix": [4, 3], "x": 8, "y": 2}, + {"matrix": [5, 3], "x": 9, "y": 2}, + {"matrix": [4, 4], "x": 10, "y": 2}, + {"matrix": [5, 4], "x": 11, "y": 2}, + {"matrix": [4, 5], "x": 12, "y": 2}, + {"matrix": [5, 5], "x": 13, "y": 2}, + {"matrix": [4, 6], "x": 18, "y": 2}, + {"matrix": [5, 6], "x": 14, "y": 2, "w": 2.25}, + {"matrix": [4, 7], "x": 19, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 16.25, "y": 2}, - {"x": 1.25, "y": 3, "w": 1.25, "matrix": [6, 0]}, - {"x": 2.5, "y": 3, "matrix": [7, 0]}, - {"x": 3.5, "y": 3, "matrix": [6, 1]}, - {"x": 4.5, "y": 3, "matrix": [7, 1]}, - {"x": 5.5, "y": 3, "matrix": [6, 2]}, - {"x": 6.5, "y": 3, "matrix": [7, 2]}, - {"x": 7.5, "y": 3, "matrix": [6, 3]}, - {"x": 8.5, "y": 3, "matrix": [7, 3]}, - {"x": 9.5, "y": 3, "matrix": [6, 4]}, - {"x": 10.5, "y": 3, "matrix": [7, 4]}, - {"x": 11.5, "y": 3, "matrix": [6, 5]}, - {"x": 12.5, "y": 3, "matrix": [7, 5]}, - {"x": 13.5, "y": 3, "w": 1.75, "matrix": [6, 6]}, - {"x": 15.25, "y": 3, "matrix": [6, 7]}, - {"x": 16.25, "y": 3, "matrix": [7, 7]}, + {"matrix": [6, 0], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 2.5, "y": 3}, + {"matrix": [6, 1], "x": 3.5, "y": 3}, + {"matrix": [7, 1], "x": 4.5, "y": 3}, + {"matrix": [6, 2], "x": 5.5, "y": 3}, + {"matrix": [7, 2], "x": 6.5, "y": 3}, + {"matrix": [6, 3], "x": 7.5, "y": 3}, + {"matrix": [7, 3], "x": 8.5, "y": 3}, + {"matrix": [6, 4], "x": 9.5, "y": 3}, + {"matrix": [7, 4], "x": 10.5, "y": 3}, + {"matrix": [6, 5], "x": 11.5, "y": 3}, + {"matrix": [7, 5], "x": 12.5, "y": 3}, + {"matrix": [6, 6], "x": 13.5, "y": 3, "w": 1.75}, + {"matrix": [6, 7], "x": 15.25, "y": 3}, + {"matrix": [7, 7], "x": 16.25, "y": 3}, - {"x": 1.25, "y": 4, "w": 1.25, "matrix": [8, 0]}, - {"x": 2.5, "y": 4, "w": 1.25, "matrix": [9, 0]}, - {"x": 3.75, "y": 4, "w": 1.25, "matrix": [8, 1]}, - {"x": 5, "y": 4, "w": 2.25, "matrix": [8, 2]}, - {"x": 7.25, "y": 4, "w": 1.25, "matrix": [8, 3]}, - {"x": 8.5, "y": 4, "w": 2.75, "matrix": [8, 4]}, - {"x": 11.25, "y": 4, "w": 1.25, "matrix": [8, 5]}, - {"x": 12.5, "y": 4, "w": 1.25, "matrix": [9, 5]}, - {"x": 14.25, "y": 4, "matrix": [9, 6]}, - {"x": 15.25, "y": 4, "matrix": [8, 7]}, - {"x": 16.25, "y": 4, "matrix": [9, 7]} + {"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 3.75, "y": 4, "w": 1.25}, + {"matrix": [8, 2], "x": 5, "y": 4, "w": 2.25}, + {"matrix": [8, 3], "x": 7.25, "y": 4, "w": 1.25}, + {"matrix": [8, 4], "x": 8.5, "y": 4, "w": 2.75}, + {"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 14.25, "y": 4}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 7], "x": 16.25, "y": 4} ] }, - "LAYOUT_65_ansi": { + "LAYOUT_ansi_blocker": { "layout": [ - {"x": 0, "y": 0, "matrix": [9, 1]}, - {"x": 1.25, "y": 0, "matrix": [0, 0]}, - {"x": 2.25, "y": 0, "matrix": [1, 0]}, - {"x": 3.25, "y": 0, "matrix": [0, 1]}, - {"x": 4.25, "y": 0, "matrix": [1, 1]}, - {"x": 5.25, "y": 0, "matrix": [0, 2]}, - {"x": 6.25, "y": 0, "matrix": [1, 2]}, - {"x": 7.25, "y": 0, "matrix": [0, 3]}, - {"x": 8.25, "y": 0, "matrix": [1, 3]}, - {"x": 9.25, "y": 0, "matrix": [0, 4]}, - {"x": 10.25, "y": 0, "matrix": [1, 4]}, - {"x": 11.25, "y": 0, "matrix": [0, 5]}, - {"x": 12.25, "y": 0, "matrix": [1, 5]}, - {"x": 13.25, "y": 0, "matrix": [0, 6]}, - {"x": 14.25, "y": 0, "w": 2, "matrix": [0, 7]}, - {"x": 16.25, "y": 0, "matrix": [1, 7]}, + {"matrix": [9, 1], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [1, 0], "x": 2.25, "y": 0}, + {"matrix": [0, 1], "x": 3.25, "y": 0}, + {"matrix": [1, 1], "x": 4.25, "y": 0}, + {"matrix": [0, 2], "x": 5.25, "y": 0}, + {"matrix": [1, 2], "x": 6.25, "y": 0}, + {"matrix": [0, 3], "x": 7.25, "y": 0}, + {"matrix": [1, 3], "x": 8.25, "y": 0}, + {"matrix": [0, 4], "x": 9.25, "y": 0}, + {"matrix": [1, 4], "x": 10.25, "y": 0}, + {"matrix": [0, 5], "x": 11.25, "y": 0}, + {"matrix": [1, 5], "x": 12.25, "y": 0}, + {"matrix": [0, 6], "x": 13.25, "y": 0}, + {"matrix": [0, 7], "x": 14.25, "y": 0, "w": 2}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, - {"x": 1.25, "y": 1, "w": 1.5, "matrix": [2, 0]}, - {"x": 2.75, "y": 1, "matrix": [3, 0]}, - {"x": 3.75, "y": 1, "matrix": [2, 1]}, - {"x": 4.75, "y": 1, "matrix": [3, 1]}, - {"x": 5.75, "y": 1, "matrix": [2, 2]}, - {"x": 6.75, "y": 1, "matrix": [3, 2]}, - {"x": 7.75, "y": 1, "matrix": [2, 3]}, - {"x": 8.75, "y": 1, "matrix": [3, 3]}, - {"x": 9.75, "y": 1, "matrix": [2, 4]}, - {"x": 10.75, "y": 1, "matrix": [3, 4]}, - {"x": 11.75, "y": 1, "matrix": [2, 5]}, - {"x": 12.75, "y": 1, "matrix": [3, 5]}, - {"x": 13.75, "y": 1, "matrix": [2, 6]}, - {"x": 14.75, "y": 1, "w": 1.5, "matrix": [3, 6]}, - {"x": 16.25, "y": 1, "matrix": [3, 7]}, + {"matrix": [2, 0], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 2.75, "y": 1}, + {"matrix": [2, 1], "x": 3.75, "y": 1}, + {"matrix": [3, 1], "x": 4.75, "y": 1}, + {"matrix": [2, 2], "x": 5.75, "y": 1}, + {"matrix": [3, 2], "x": 6.75, "y": 1}, + {"matrix": [2, 3], "x": 7.75, "y": 1}, + {"matrix": [3, 3], "x": 8.75, "y": 1}, + {"matrix": [2, 4], "x": 9.75, "y": 1}, + {"matrix": [3, 4], "x": 10.75, "y": 1}, + {"matrix": [2, 5], "x": 11.75, "y": 1}, + {"matrix": [3, 5], "x": 12.75, "y": 1}, + {"matrix": [2, 6], "x": 13.75, "y": 1}, + {"matrix": [3, 6], "x": 14.75, "y": 1, "w": 1.5}, + {"matrix": [3, 7], "x": 16.25, "y": 1}, - {"x": 1.25, "y": 2, "w": 1.75, "matrix": [4, 0]}, - {"x": 3, "y": 2, "matrix": [5, 0]}, - {"x": 4, "y": 2, "matrix": [4, 1]}, - {"x": 5, "y": 2, "matrix": [5, 1]}, - {"x": 6, "y": 2, "matrix": [4, 2]}, - {"x": 7, "y": 2, "matrix": [5, 2]}, - {"x": 8, "y": 2, "matrix": [4, 3]}, - {"x": 9, "y": 2, "matrix": [5, 3]}, - {"x": 10, "y": 2, "matrix": [4, 4]}, - {"x": 11, "y": 2, "matrix": [5, 4]}, - {"x": 12, "y": 2, "matrix": [4, 5]}, - {"x": 13, "y": 2, "matrix": [5, 5]}, - {"x": 14, "y": 2, "w": 2.25, "matrix": [5, 6]}, - {"x": 16.25, "y": 2, "matrix": [5, 7]}, + {"matrix": [4, 0], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 3, "y": 2}, + {"matrix": [4, 1], "x": 4, "y": 2}, + {"matrix": [5, 1], "x": 5, "y": 2}, + {"matrix": [4, 2], "x": 6, "y": 2}, + {"matrix": [5, 2], "x": 7, "y": 2}, + {"matrix": [4, 3], "x": 8, "y": 2}, + {"matrix": [5, 3], "x": 9, "y": 2}, + {"matrix": [4, 4], "x": 10, "y": 2}, + {"matrix": [5, 4], "x": 11, "y": 2}, + {"matrix": [4, 5], "x": 12, "y": 2}, + {"matrix": [5, 5], "x": 13, "y": 2}, + {"matrix": [5, 6], "x": 14, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 16.25, "y": 2}, - {"x": 1.25, "y": 3, "w": 2.25, "matrix": [6, 0]}, - {"x": 3.5, "y": 3, "matrix": [6, 1]}, - {"x": 4.5, "y": 3, "matrix": [7, 1]}, - {"x": 5.5, "y": 3, "matrix": [6, 2]}, - {"x": 6.5, "y": 3, "matrix": [7, 2]}, - {"x": 7.5, "y": 3, "matrix": [6, 3]}, - {"x": 8.5, "y": 3, "matrix": [7, 3]}, - {"x": 9.5, "y": 3, "matrix": [6, 4]}, - {"x": 10.5, "y": 3, "matrix": [7, 4]}, - {"x": 11.5, "y": 3, "matrix": [6, 5]}, - {"x": 12.5, "y": 3, "matrix": [7, 5]}, - {"x": 13.5, "y": 3, "w": 1.75, "matrix": [6, 6]}, - {"x": 15.25, "y": 3, "matrix": [6, 7]}, - {"x": 16.25, "y": 3, "matrix": [7, 7]}, + {"matrix": [6, 0], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 3.5, "y": 3}, + {"matrix": [7, 1], "x": 4.5, "y": 3}, + {"matrix": [6, 2], "x": 5.5, "y": 3}, + {"matrix": [7, 2], "x": 6.5, "y": 3}, + {"matrix": [6, 3], "x": 7.5, "y": 3}, + {"matrix": [7, 3], "x": 8.5, "y": 3}, + {"matrix": [6, 4], "x": 9.5, "y": 3}, + {"matrix": [7, 4], "x": 10.5, "y": 3}, + {"matrix": [6, 5], "x": 11.5, "y": 3}, + {"matrix": [7, 5], "x": 12.5, "y": 3}, + {"matrix": [6, 6], "x": 13.5, "y": 3, "w": 1.75}, + {"matrix": [6, 7], "x": 15.25, "y": 3}, + {"matrix": [7, 7], "x": 16.25, "y": 3}, - {"x": 1.25, "y": 4, "w": 1.25, "matrix": [8, 0]}, - {"x": 2.5, "y": 4, "w": 1.25, "matrix": [9, 0]}, - {"x": 3.75, "y": 4, "w": 1.25, "matrix": [8, 1]}, - {"x": 5, "y": 4, "w": 6.25, "matrix": [8, 3]}, - {"x": 11.25, "y": 4, "w": 1.25, "matrix": [8, 5]}, - {"x": 12.5, "y": 4, "w": 1.25, "matrix": [9, 5]}, - {"x": 14.25, "y": 4, "matrix": [9, 6]}, - {"x": 15.25, "y": 4, "matrix": [8, 7]}, - {"x": 16.25, "y": 4, "matrix": [9, 7]} - ] + {"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 3.75, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 5, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 14.25, "y": 4}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 7], "x": 16.25, "y": 4} + ] }, - "LAYOUT_65_iso": { - "layout": [ - {"x": 0, "y": 0, "matrix": [9, 1]}, - {"x": 1.25, "y": 0, "matrix": [0, 0]}, - {"x": 2.25, "y": 0, "matrix": [1, 0]}, - {"x": 3.25, "y": 0, "matrix": [0, 1]}, - {"x": 4.25, "y": 0, "matrix": [1, 1]}, - {"x": 5.25, "y": 0, "matrix": [0, 2]}, - {"x": 6.25, "y": 0, "matrix": [1, 2]}, - {"x": 7.25, "y": 0, "matrix": [0, 3]}, - {"x": 8.25, "y": 0, "matrix": [1, 3]}, - {"x": 9.25, "y": 0, "matrix": [0, 4]}, - {"x": 10.25, "y": 0, "matrix": [1, 4]}, - {"x": 11.25, "y": 0, "matrix": [0, 5]}, - {"x": 12.25, "y": 0, "matrix": [1, 5]}, - {"x": 13.25, "y": 0, "matrix": [0, 6]}, - {"x": 14.25, "y": 0, "w": 2, "matrix": [0, 7]}, - {"x": 16.25, "y": 0, "matrix": [1, 7]}, + "LAYOUT_iso_blocker": { + "layout": [ + {"matrix": [9, 1], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [1, 0], "x": 2.25, "y": 0}, + {"matrix": [0, 1], "x": 3.25, "y": 0}, + {"matrix": [1, 1], "x": 4.25, "y": 0}, + {"matrix": [0, 2], "x": 5.25, "y": 0}, + {"matrix": [1, 2], "x": 6.25, "y": 0}, + {"matrix": [0, 3], "x": 7.25, "y": 0}, + {"matrix": [1, 3], "x": 8.25, "y": 0}, + {"matrix": [0, 4], "x": 9.25, "y": 0}, + {"matrix": [1, 4], "x": 10.25, "y": 0}, + {"matrix": [0, 5], "x": 11.25, "y": 0}, + {"matrix": [1, 5], "x": 12.25, "y": 0}, + {"matrix": [0, 6], "x": 13.25, "y": 0}, + {"matrix": [0, 7], "x": 14.25, "y": 0, "w": 2}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, - {"x": 1.25, "y": 1, "w": 1.5, "matrix": [2, 0]}, - {"x": 2.75, "y": 1, "matrix": [3, 0]}, - {"x": 3.75, "y": 1, "matrix": [2, 1]}, - {"x": 4.75, "y": 1, "matrix": [3, 1]}, - {"x": 5.75, "y": 1, "matrix": [2, 2]}, - {"x": 6.75, "y": 1, "matrix": [3, 2]}, - {"x": 7.75, "y": 1, "matrix": [2, 3]}, - {"x": 8.75, "y": 1, "matrix": [3, 3]}, - {"x": 9.75, "y": 1, "matrix": [2, 4]}, - {"x": 10.75, "y": 1, "matrix": [3, 4]}, - {"x": 11.75, "y": 1, "matrix": [2, 5]}, - {"x": 12.75, "y": 1, "matrix": [3, 5]}, - {"x": 13.75, "y": 1, "matrix": [2, 6]}, - {"x": 16.25, "y": 1, "matrix": [3, 7]}, + {"matrix": [2, 0], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 2.75, "y": 1}, + {"matrix": [2, 1], "x": 3.75, "y": 1}, + {"matrix": [3, 1], "x": 4.75, "y": 1}, + {"matrix": [2, 2], "x": 5.75, "y": 1}, + {"matrix": [3, 2], "x": 6.75, "y": 1}, + {"matrix": [2, 3], "x": 7.75, "y": 1}, + {"matrix": [3, 3], "x": 8.75, "y": 1}, + {"matrix": [2, 4], "x": 9.75, "y": 1}, + {"matrix": [3, 4], "x": 10.75, "y": 1}, + {"matrix": [2, 5], "x": 11.75, "y": 1}, + {"matrix": [3, 5], "x": 12.75, "y": 1}, + {"matrix": [2, 6], "x": 13.75, "y": 1}, + {"matrix": [3, 7], "x": 16.25, "y": 1}, - {"x": 1.25, "y": 2, "w": 1.75, "matrix": [4, 0]}, - {"x": 3, "y": 2, "matrix": [5, 0]}, - {"x": 4, "y": 2, "matrix": [4, 1]}, - {"x": 5, "y": 2, "matrix": [5, 1]}, - {"x": 6, "y": 2, "matrix": [4, 2]}, - {"x": 7, "y": 2, "matrix": [5, 2]}, - {"x": 8, "y": 2, "matrix": [4, 3]}, - {"x": 9, "y": 2, "matrix": [5, 3]}, - {"x": 10, "y": 2, "matrix": [4, 4]}, - {"x": 11, "y": 2, "matrix": [5, 4]}, - {"x": 12, "y": 2, "matrix": [4, 5]}, - {"x": 13, "y": 2, "matrix": [5, 5]}, - {"x": 14, "y": 2, "matrix": [4, 6]}, - {"x": 15, "y": 1, "w": 1.25, "h": 2, "matrix": [4, 7]}, - {"x": 16.25, "y": 2, "matrix": [5, 7]}, + {"matrix": [4, 0], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 3, "y": 2}, + {"matrix": [4, 1], "x": 4, "y": 2}, + {"matrix": [5, 1], "x": 5, "y": 2}, + {"matrix": [4, 2], "x": 6, "y": 2}, + {"matrix": [5, 2], "x": 7, "y": 2}, + {"matrix": [4, 3], "x": 8, "y": 2}, + {"matrix": [5, 3], "x": 9, "y": 2}, + {"matrix": [4, 4], "x": 10, "y": 2}, + {"matrix": [5, 4], "x": 11, "y": 2}, + {"matrix": [4, 5], "x": 12, "y": 2}, + {"matrix": [5, 5], "x": 13, "y": 2}, + {"matrix": [4, 6], "x": 14, "y": 2}, + {"matrix": [4, 7], "x": 15, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 16.25, "y": 2}, - {"x": 1.25, "y": 3, "w": 1.25, "matrix": [6, 0]}, - {"x": 2.5, "y": 3, "matrix": [7, 0]}, - {"x": 3.5, "y": 3, "matrix": [6, 1]}, - {"x": 4.5, "y": 3, "matrix": [7, 1]}, - {"x": 5.5, "y": 3, "matrix": [6, 2]}, - {"x": 6.5, "y": 3, "matrix": [7, 2]}, - {"x": 7.5, "y": 3, "matrix": [6, 3]}, - {"x": 8.5, "y": 3, "matrix": [7, 3]}, - {"x": 9.5, "y": 3, "matrix": [6, 4]}, - {"x": 10.5, "y": 3, "matrix": [7, 4]}, - {"x": 11.5, "y": 3, "matrix": [6, 5]}, - {"x": 12.5, "y": 3, "matrix": [7, 5]}, - {"x": 13.5, "y": 3, "w": 1.75, "matrix": [6, 6]}, - {"x": 15.25, "y": 3, "matrix": [6, 7]}, - {"x": 16.25, "y": 3, "matrix": [7, 7]}, + {"matrix": [6, 0], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 2.5, "y": 3}, + {"matrix": [6, 1], "x": 3.5, "y": 3}, + {"matrix": [7, 1], "x": 4.5, "y": 3}, + {"matrix": [6, 2], "x": 5.5, "y": 3}, + {"matrix": [7, 2], "x": 6.5, "y": 3}, + {"matrix": [6, 3], "x": 7.5, "y": 3}, + {"matrix": [7, 3], "x": 8.5, "y": 3}, + {"matrix": [6, 4], "x": 9.5, "y": 3}, + {"matrix": [7, 4], "x": 10.5, "y": 3}, + {"matrix": [6, 5], "x": 11.5, "y": 3}, + {"matrix": [7, 5], "x": 12.5, "y": 3}, + {"matrix": [6, 6], "x": 13.5, "y": 3, "w": 1.75}, + {"matrix": [6, 7], "x": 15.25, "y": 3}, + {"matrix": [7, 7], "x": 16.25, "y": 3}, - {"x": 1.25, "y": 4, "w": 1.25, "matrix": [8, 0]}, - {"x": 2.5, "y": 4, "w": 1.25, "matrix": [9, 0]}, - {"x": 3.75, "y": 4, "w": 1.25, "matrix": [8, 1]}, - {"x": 5, "y": 4, "w": 6.25, "matrix": [8, 3]}, - {"x": 11.25, "y": 4, "w": 1.25, "matrix": [8, 5]}, - {"x": 12.5, "y": 4, "w": 1.25, "matrix": [9, 5]}, - {"x": 14.25, "y": 4, "matrix": [9, 6]}, - {"x": 15.25, "y": 4, "matrix": [8, 7]}, - {"x": 16.25, "y": 4, "matrix": [9, 7]} - ] + {"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 3.75, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 5, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 14.25, "y": 4}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 7], "x": 16.25, "y": 4} + ] } } } diff --git a/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c b/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c index 88dea9b7762..cebb8fb073a 100644 --- a/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c @@ -30,21 +30,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │Ctrl│GUI │Alt │ │Alt │GUI │ │ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ - [0] = LAYOUT_65_ansi( + [0] = LAYOUT_ansi_blocker( LT(2, KC_MUTE), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, 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, LT(1, KC_RGUI), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_65_ansi( + [1] = LAYOUT_ansi_blocker( KC_MPLY, 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_INS, KC_TRNS, KC_TRNS, KC_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, 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, NK_ON, NK_OFF, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT_65_ansi( + [2] = LAYOUT_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/geistmaschine/geist/keymaps/default/keymap.c b/keyboards/geistmaschine/geist/keymaps/default/keymap.c index 6401a0cbf84..6d96c572ba3 100644 --- a/keyboards/geistmaschine/geist/keymaps/default/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/default/keymap.c @@ -18,21 +18,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_all( + [0] = LAYOUT_all( LT(2, KC_MUTE), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TRNS, 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_HOME, 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_ENT, KC_PGUP, 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_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, LT(1, KC_RGUI), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_65_all( + [1] = LAYOUT_all( KC_MPLY, 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_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_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, KC_TRNS, KC_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, NK_ON, NK_OFF, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT_65_all( + [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, diff --git a/keyboards/geistmaschine/geist/keymaps/iso/keymap.c b/keyboards/geistmaschine/geist/keymaps/iso/keymap.c index f1cc032c978..658e4ec984f 100644 --- a/keyboards/geistmaschine/geist/keymaps/iso/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/iso/keymap.c @@ -30,21 +30,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │Ctrl│GUI │Alt │ │Alt │GUI │ │ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ - [0] = LAYOUT_65_iso( + [0] = LAYOUT_iso_blocker( LT(2, KC_MUTE), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_HOME, 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_PGUP, 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_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LT(1, KC_RGUI), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_65_iso( + [1] = LAYOUT_iso_blocker( KC_MPLY, 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_INS, KC_TRNS, KC_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, KC_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, NK_ON, NK_OFF, 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 ), - [2] = LAYOUT_65_iso( + [2] = LAYOUT_iso_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/geistmaschine/geist/keymaps/via/keymap.c b/keyboards/geistmaschine/geist/keymaps/via/keymap.c index 2814b8001ac..068f500fb01 100644 --- a/keyboards/geistmaschine/geist/keymaps/via/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/via/keymap.c @@ -18,28 +18,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_all( + [0] = LAYOUT_all( LT(2, KC_MUTE), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TRNS, 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_HOME, 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_ENT, KC_PGUP, 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_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, LT(1, KC_RGUI), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_65_all( + [1] = LAYOUT_all( KC_MPLY, 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_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_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, KC_TRNS, KC_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, NK_ON, NK_OFF, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT_65_all( + [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 ), - [3] = LAYOUT_65_all( + [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, diff --git a/keyboards/geistmaschine/geist/matrix_diagram.md b/keyboards/geistmaschine/geist/matrix_diagram.md new file mode 100644 index 00000000000..9c0da5e1833 --- /dev/null +++ b/keyboards/geistmaschine/geist/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for Geistmaschine Geist + +``` +┌───┐ +│91 │ +└───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + │00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │16 │07 │17 │ │07 │ 2u Backspace + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ + │20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐47 │ ISO Enter + │40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56 │57 │ │46 │ │ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ + │60 │70 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │67 │77 │ + ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + │80 │90 │81 │82 │83 │84 │85 │95 │ │96 │87 │97 │ + └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘ + ┌────────┐ + │60 │ 2.25u LShift + └────────┘ + ┌────┬────┬────┬────────────────────────┬────┬────┐ + │80 │90 │81 │83 │85 │95 │ Blocker + └────┴────┴────┴────────────────────────┴────┴────┘ + ┌─────┬───┬─────┬───────────────────────────┬─────┐ + │80 │90 │81 │83 │95 │ Blocker Tsangan + └─────┴───┴─────┴───────────────────────────┴─────┘ + ┌─────┬───┬─────┬───────────┬───────────┬────┬────┐ + │80 │90 │81 │82 │84 │85 │95 │ 2x 3u Spacebars + └─────┴───┴─────┴───────────┴───────────┴────┴────┘ +``` diff --git a/keyboards/geonworks/frogmini/fmh/rules.mk b/keyboards/geonworks/frogmini/fmh/rules.mk index 683a20e5c05..1f63f8feef5 100644 --- a/keyboards/geonworks/frogmini/fmh/rules.mk +++ b/keyboards/geonworks/frogmini/fmh/rules.mk @@ -16,5 +16,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/geonworks/frogmini/fms/config.h b/keyboards/geonworks/frogmini/fms/config.h index 6576ee9efe9..ddeaa2abff0 100644 --- a/keyboards/geonworks/frogmini/fms/config.h +++ b/keyboards/geonworks/frogmini/fms/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once #define BACKLIGHT_PWM_DRIVER PWMD1 -#define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 1 #define I2C_DRIVER I2CD1 diff --git a/keyboards/geonworks/frogmini/fms/rules.mk b/keyboards/geonworks/frogmini/fms/rules.mk index d847becc1a7..dfd36d0f82b 100644 --- a/keyboards/geonworks/frogmini/fms/rules.mk +++ b/keyboards/geonworks/frogmini/fms/rules.mk @@ -16,5 +16,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/getawayvan/config.h b/keyboards/getawayvan/config.h index 41544af8fa6..3d253afc06f 100644 --- a/keyboards/getawayvan/config.h +++ b/keyboards/getawayvan/config.h @@ -17,37 +17,11 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xE5CA -#define PRODUCT_ID 0x0401 -#define DEVICE_VER 0x0001 -#define MANUFACTURER "esca" -#define PRODUCT "GetawayVan" - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A4, A13, A10, C13, C14 } -#define MATRIX_ROW_PINS { A9, A8, A3, A5 } -#define DIODE_DIRECTION COL2ROW - -#define WS2812_DI_PIN B15 -#define RGB_MATRIX_LED_COUNT 51 -#define RGBLED_NUM 51 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 #define WS2812_EXTERNAL_PULLUP -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_HUE_STEP 20 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#define RGBLIGHT_LIMIT_VAL 128 - -#define DEBOUNCE 5 - #define LOCKING_SUPPORT_ENABLE #define LOCKING_RESYNC_ENABLE diff --git a/keyboards/getawayvan/info.json b/keyboards/getawayvan/info.json index 16e5f438139..b3d86335543 100644 --- a/keyboards/getawayvan/info.json +++ b/keyboards/getawayvan/info.json @@ -1,12 +1,95 @@ { - "keyboard_name": "GetawayVan", - "url": "", - "maintainer": "esca", - "width": 12.75, - "height": 4, + "manufacturer": "esca", + "keyboard_name": "GetawayVan", + "maintainer": "esca", + "bootloader": "stm32-dfu", + "bootmagic": { + "enabled": true + }, + "diode_direction": "COL2ROW", + "features": { + "extrakey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A4", "A13", "A10", "C13", "C14"], + "rows": ["A9", "A8", "A3", "A5"] + }, + "mouse_key": { + "enabled": true + }, + "processor": "STM32F072", + "rgb_matrix": { + "driver": "ws2812", + "led_count": 51 + }, + "rgblight": { + "brightness_steps": 17, + "hue_steps": 20, + "led_count": 51, + "max_brightness": 128, + "saturation_steps": 17 + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x0401", + "vid": "0xE5CA" + }, + "ws2812": { + "driver": "spi", + "pin": "B15" + }, "layouts": { "LAYOUT": { - "layout": [{"label":"esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"NoNo Key", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":"\"", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Win", "x":1, "y":3, "w":1.25}, {"label":"Alt", "x":2.25, "y":3}, {"label":"", "x":3.25, "y":3, "w":2.75}, {"label":"", "x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}] + "layout": [ + {"label": "esc", "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": "NoNo Key", "matrix": [0, 11], "x": 11, "y": 0, "w": 1.75}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"label": "A", "matrix": [1, 1], "x": 1.25, "y": 1}, + {"label": "S", "matrix": [1, 2], "x": 2.25, "y": 1}, + {"label": "D", "matrix": [1, 3], "x": 3.25, "y": 1}, + {"label": "F", "matrix": [1, 4], "x": 4.25, "y": 1}, + {"label": "G", "matrix": [1, 5], "x": 5.25, "y": 1}, + {"label": "H", "matrix": [1, 6], "x": 6.25, "y": 1}, + {"label": "J", "matrix": [1, 7], "x": 7.25, "y": 1}, + {"label": "K", "matrix": [1, 8], "x": 8.25, "y": 1}, + {"label": "L", "matrix": [1, 9], "x": 9.25, "y": 1}, + {"label": "\"", "matrix": [1, 10], "x": 10.25, "y": 1}, + {"label": "Enter", "matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.5}, + {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "Z", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "X", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "C", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "V", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "B", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "N", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "M", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "<", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": ">", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2a", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "Shift", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Win", "matrix": [3, 1], "x": 1, "y": 3, "w": 1.25}, + {"label": "Alt", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "", "matrix": [3, 4], "x": 3.25, "y": 3, "w": 2.75}, + {"label": "", "matrix": [3, 6], "x": 6, "y": 3, "w": 2.25}, + {"label": "Alt", "matrix": [3, 8], "x": 8.25, "y": 3, "w": 1.25}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 3}, + {"label": "K3a", "matrix": [3, 10], "x": 10.75, "y": 3}, + {"label": "K3b", "matrix": [3, 11], "x": 11.75, "y": 3} + ] } } } diff --git a/keyboards/getawayvan/rules.mk b/keyboards/getawayvan/rules.mk index 96d14c0045a..6d69ade46ba 100644 --- a/keyboards/getawayvan/rules.mk +++ b/keyboards/getawayvan/rules.mk @@ -1,14 +1,10 @@ # MCU name -MCU = STM32F072 # Bootloader selection -BOOTLOADER = stm32-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes -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 @@ -22,8 +18,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 -WS2812_DRIVER = spi # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/gh60/satan/config.h b/keyboards/gh60/satan/config.h index 1fbb35b3a23..b9449c4714b 100644 --- a/keyboards/gh60/satan/config.h +++ b/keyboards/gh60/satan/config.h @@ -22,23 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Underglow configuration - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/gh60/satan/info.json b/keyboards/gh60/satan/info.json index 6432d8eb45b..53e2b04df65 100644 --- a/keyboards/gh60/satan/info.json +++ b/keyboards/gh60/satan/info.json @@ -17,6 +17,22 @@ "pin": "B6", "levels": 4 }, + "rgblight": { + "hue_steps": 10, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/gh60/satan/keymaps/addcninblue/rules.mk b/keyboards/gh60/satan/keymaps/addcninblue/rules.mk index b8c05a5984c..fe07e497f9c 100644 --- a/keyboards/gh60/satan/keymaps/addcninblue/rules.mk +++ b/keyboards/gh60/satan/keymaps/addcninblue/rules.mk @@ -12,7 +12,7 @@ NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: htt BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 -UNICODEMAP_ENABLE = no # This allows sending unicode symbols using X() in your keymap. +UNICODEMAP_ENABLE = no UNICODE_ENABLE = no # Unicode UCIS_ENABLE = no # Keep in mind that not all will work (See WinCompose for details on Windows). BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/gh60/v1p3/config.h b/keyboards/gh60/v1p3/config.h deleted file mode 100644 index c294394ecab..00000000000 --- a/keyboards/gh60/v1p3/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2020 noroadsleft - -This 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 RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -# define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/gh60/v1p3/info.json b/keyboards/gh60/v1p3/info.json index 191cca4f57f..0597c2e7a07 100644 --- a/keyboards/gh60/v1p3/info.json +++ b/keyboards/gh60/v1p3/info.json @@ -17,6 +17,24 @@ "pin": "B6", "levels": 15 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/gh80_3000/keymaps/ansi_std/keymap.c b/keyboards/gh80_3000/keymaps/ansi_std/keymap.c index f33767ca641..f99d522ead4 100644 --- a/keyboards/gh80_3000/keymaps/ansi_std/keymap.c +++ b/keyboards/gh80_3000/keymaps/ansi_std/keymap.c @@ -12,23 +12,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - DDRB |= (1 << 5); PORTB &= ~(1 << 5); +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); } else { - DDRB &= ~(1 << 5); PORTB &= ~(1 << 5); + DDRB &= ~(1 << 5); + PORTB &= ~(1 << 5); } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 6); PORTB &= ~(1 << 6); + if (led_state.caps_lock) { + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); } else { - DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); + DDRB &= ~(1 << 6); + PORTB &= ~(1 << 6); } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - DDRB |= (1 << 7); PORTB &= ~(1 << 7); + if (led_state.scroll_lock) { + DDRB |= (1 << 7); + PORTB &= ~(1 << 7); } else { - DDRB &= ~(1 << 7); PORTB &= ~(1 << 7); + DDRB &= ~(1 << 7); + PORTB &= ~(1 << 7); } + return false; } diff --git a/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c b/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c index 28a34c4269e..b3f2426e88a 100644 --- a/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c +++ b/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c @@ -12,23 +12,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); + } else { + DDRB &= ~(1 << 5); + PORTB &= ~(1 << 5); + } - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - DDRB |= (1 << 5); PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); PORTB &= ~(1 << 5); - } + if (led_state.caps_lock) { + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); + } else { + DDRB &= ~(1 << 6); + PORTB &= ~(1 << 6); + } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 6); PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - DDRB |= (1 << 7); PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); PORTB &= ~(1 << 7); - } + if (led_state.scroll_lock) { + DDRB |= (1 << 7); + PORTB &= ~(1 << 7); + } else { + DDRB &= ~(1 << 7); + PORTB &= ~(1 << 7); + } + return false; } diff --git a/keyboards/gh80_3000/keymaps/default/keymap.c b/keyboards/gh80_3000/keymaps/default/keymap.c index 264f20fbcae..b74127fc5e1 100644 --- a/keyboards/gh80_3000/keymaps/default/keymap.c +++ b/keyboards/gh80_3000/keymaps/default/keymap.c @@ -12,23 +12,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - DDRB |= (1 << 5); PORTB &= ~(1 << 5); +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); } else { - DDRB &= ~(1 << 5); PORTB &= ~(1 << 5); + DDRB &= ~(1 << 5); + PORTB &= ~(1 << 5); } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 6); PORTB &= ~(1 << 6); + if (led_state.caps_lock) { + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); } else { - DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); + DDRB &= ~(1 << 6); + PORTB &= ~(1 << 6); } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - DDRB |= (1 << 7); PORTB &= ~(1 << 7); + if (led_state.scroll_lock) { + DDRB |= (1 << 7); + PORTB &= ~(1 << 7); } else { - DDRB &= ~(1 << 7); PORTB &= ~(1 << 7); + DDRB &= ~(1 << 7); + PORTB &= ~(1 << 7); } + return false; } diff --git a/keyboards/gh80_3000/keymaps/iso_default/keymap.c b/keyboards/gh80_3000/keymaps/iso_default/keymap.c index 137a6513b64..4c4b10f458a 100644 --- a/keyboards/gh80_3000/keymaps/iso_default/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_default/keymap.c @@ -12,23 +12,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - DDRB |= (1 << 5); PORTB &= ~(1 << 5); +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); } else { - DDRB &= ~(1 << 5); PORTB &= ~(1 << 5); + DDRB &= ~(1 << 5); + PORTB &= ~(1 << 5); } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 6); PORTB &= ~(1 << 6); + if (led_state.caps_lock) { + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); } else { - DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); + DDRB &= ~(1 << 6); + PORTB &= ~(1 << 6); } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - DDRB |= (1 << 7); PORTB &= ~(1 << 7); + if (led_state.scroll_lock) { + DDRB |= (1 << 7); + PORTB &= ~(1 << 7); } else { - DDRB &= ~(1 << 7); PORTB &= ~(1 << 7); + DDRB &= ~(1 << 7); + PORTB &= ~(1 << 7); } + return false; } diff --git a/keyboards/gh80_3000/keymaps/iso_std/keymap.c b/keyboards/gh80_3000/keymaps/iso_std/keymap.c index 434abf68f5c..9559bde1194 100644 --- a/keyboards/gh80_3000/keymaps/iso_std/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_std/keymap.c @@ -12,23 +12,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); + } else { + DDRB &= ~(1 << 5); + PORTB &= ~(1 << 5); + } - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - DDRB |= (1 << 5); PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); PORTB &= ~(1 << 5); - } + if (led_state.caps_lock) { + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); + } else { + DDRB &= ~(1 << 6); + PORTB &= ~(1 << 6); + } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 6); PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - DDRB |= (1 << 7); PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); PORTB &= ~(1 << 7); - } + if (led_state.scroll_lock) { + DDRB |= (1 << 7); + PORTB &= ~(1 << 7); + } else { + DDRB &= ~(1 << 7); + PORTB &= ~(1 << 7); + } + return false; } diff --git a/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c b/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c index f275a3e7892..86054ba1fd5 100644 --- a/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c @@ -12,23 +12,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); + } else { + DDRB &= ~(1 << 5); + PORTB &= ~(1 << 5); + } - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - DDRB |= (1 << 5); PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); PORTB &= ~(1 << 5); - } + if (led_state.caps_lock) { + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); + } else { + DDRB &= ~(1 << 6); + PORTB &= ~(1 << 6); + } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 6); PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - DDRB |= (1 << 7); PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); PORTB &= ~(1 << 7); - } + if (led_state.scroll_lock) { + DDRB |= (1 << 7); + PORTB &= ~(1 << 7); + } else { + DDRB &= ~(1 << 7); + PORTB &= ~(1 << 7); + } + return false; } diff --git a/keyboards/gh80_3000/keymaps/vial/keymap.c b/keyboards/gh80_3000/keymaps/vial/keymap.c index be553e91aae..b74127fc5e1 100644 --- a/keyboards/gh80_3000/keymaps/vial/keymap.c +++ b/keyboards/gh80_3000/keymaps/vial/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_SCRL, KC_PAUS, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_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_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_RSFT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, @@ -12,23 +12,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - DDRB |= (1 << 5); PORTB &= ~(1 << 5); +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); } else { - DDRB &= ~(1 << 5); PORTB &= ~(1 << 5); + DDRB &= ~(1 << 5); + PORTB &= ~(1 << 5); } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 6); PORTB &= ~(1 << 6); + if (led_state.caps_lock) { + DDRB |= (1 << 6); + PORTB &= ~(1 << 6); } else { - DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); + DDRB &= ~(1 << 6); + PORTB &= ~(1 << 6); } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - DDRB |= (1 << 7); PORTB &= ~(1 << 7); + if (led_state.scroll_lock) { + DDRB |= (1 << 7); + PORTB &= ~(1 << 7); } else { - DDRB &= ~(1 << 7); PORTB &= ~(1 << 7); + DDRB &= ~(1 << 7); + PORTB &= ~(1 << 7); } + return false; } diff --git a/keyboards/ghs/rar/config.h b/keyboards/ghs/rar/config.h index 9cd6e7be5a0..13265701b04 100644 --- a/keyboards/ghs/rar/config.h +++ b/keyboards/ghs/rar/config.h @@ -17,18 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 17 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ghs/rar/info.json b/keyboards/ghs/rar/info.json index 9a684c2840f..6bf890b3f8d 100644 --- a/keyboards/ghs/rar/info.json +++ b/keyboards/ghs/rar/info.json @@ -8,6 +8,21 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/ghs/xls/rules.mk b/keyboards/ghs/xls/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/ghs/xls/rules.mk +++ b/keyboards/ghs/xls/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/giabalanai/config.h b/keyboards/giabalanai/config.h index aa0095aebd4..e4946a3bb39 100644 --- a/keyboards/giabalanai/config.h +++ b/keyboards/giabalanai/config.h @@ -33,43 +33,8 @@ along with this program. If not, see . // for "Generic" Promicro to be detected correctly as lefthand side (slave) #define SPLIT_USB_DETECT -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 123 - -// Do not define "RGBLED_SPLIT" since somehow it doesn't work well yet. -// Even thhough "#define RGBLED_SPLIT { 60, 63 }" was set, LEDs on the sub keyboad side didn't turn on. -// Not sure but rgblight_sethsv_at() might not support RGBLED_SPLIT yet. -// Instead, LED data is tranferred from right side to the left via TRRS cable. - # define RGBLIGHT_LAYERS -// By default, LEDs of the buttons which are pressed turn on. -// # define RGBLIGHT_EFFECT_TWINKLE -// # define RGBLIGHT_EFFECT_KNIGHT - - -// RGBLIGHT LED MAP -// Right 1st row (12 LEDs) -// ENCODER -// Right 2nd .. 5th row(13, 12, 13, 12 LEDs) -// Left 1st .. 5th row (12 LEDs x 5 rows) - -# define RGBLIGHT_LED_MAP { \ - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, \ - 97, \ - 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, \ - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, \ - 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, \ - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, \ - \ - 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, \ - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, \ - 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, \ - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \ - 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48 \ - } -#endif - #ifdef RGB_MATRIX_ENABLE /* ws2812 RGB MATRIX */ # define RGB_MATRIX_LED_COUNT 123 @@ -197,8 +162,6 @@ along with this program. If not, see . # define MIDI_INITIAL_VELOCITY 117 #endif // MIDI_ENABLE -#define TAP_CODE_DELAY 10 - /* 2021/01/22 added to shrink firmware size */ // NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods... // #define NO_ACTION_TAPPING diff --git a/keyboards/giabalanai/info.json b/keyboards/giabalanai/info.json index 7c2fa72047e..592d7a6966f 100644 --- a/keyboards/giabalanai/info.json +++ b/keyboards/giabalanai/info.json @@ -9,10 +9,12 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { - "max_brightness": 80 + "led_count": 123, + "max_brightness": 80, + "led_map": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 97, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48] }, "matrix_pins": { "cols": ["B1", "F7", "F6", "F5", "F4", "B3", "B2", "B6", "D0", "D1"], @@ -53,6 +55,9 @@ } } }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/giabalanai/keymaps/2firmware/keymap.c b/keyboards/giabalanai/keymaps/2firmware/keymap.c index 8e95b89a91d..338d5d8e0ff 100644 --- a/keyboards/giabalanai/keymaps/2firmware/keymap.c +++ b/keyboards/giabalanai/keymaps/2firmware/keymap.c @@ -332,9 +332,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______, + MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, MI_OCTD, MI_OCTU, XXXXXXX, VERSION, EE_CLR, _______, CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, XXXXXXX, XXXXXXX, XXXXXXX, MI_VELD, MI_VELU, XXXXXXX, RGB_TOG, - XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH + XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MI_TRSD, MI_TRSU, TGLUVEL, MELDYAL, MELODYS, MELDYAH ) }; diff --git a/keyboards/giabalanai/keymaps/3araht/keymap.c b/keyboards/giabalanai/keymaps/3araht/keymap.c index daa31ffa7b0..fb68c02c708 100644 --- a/keyboards/giabalanai/keymaps/3araht/keymap.c +++ b/keyboards/giabalanai/keymaps/3araht/keymap.c @@ -363,9 +363,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______, + MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, MI_OCTD, MI_OCTU, XXXXXXX, VERSION, EE_CLR, _______, CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, MI_VELD, MI_VELU, XXXXXXX, RGB_TOG, - XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH + XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MI_TRSD, MI_TRSU, TGLUVEL, MELDYAL, MELODYS, MELDYAH ) }; diff --git a/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json b/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json deleted file mode 100644 index 6581733dd1c..00000000000 --- a/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "keyboard_name": "giabarinaix2", - "manufacturer": "3araht", - "url": "https://github.com/3araht", - "maintainer": "3araht", - "usb": { - "vid": "0xFEED", - "pid": "0xF4B2", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "l00", "x": 0, "y": 0}, - {"label": "l01", "x": 1, "y": 0}, - {"label": "l02", "x": 2, "y": 0}, - {"label": "l03", "x": 3, "y": 0}, - {"label": "l04", "x": 4, "y": 0}, - {"label": "l05", "x": 5, "y": 0}, - {"label": "l06", "x": 6, "y": 0}, - {"label": "l07", "x": 7, "y": 0}, - {"label": "l08", "x": 8, "y": 0}, - {"label": "l09", "x": 9, "y": 0}, - {"label": "l0a", "x": 10, "y": 0}, - {"label": "l0b", "x": 11, "y": 0}, - - {"label": "r00", "x": 14.5, "y": 0}, - {"label": "r01", "x": 15.5, "y": 0}, - {"label": "r02", "x": 16.5, "y": 0}, - {"label": "r03", "x": 17.5, "y": 0}, - {"label": "r04", "x": 18.5, "y": 0}, - {"label": "r05", "x": 19.5, "y": 0}, - {"label": "r06", "x": 20.5, "y": 0}, - {"label": "r07", "x": 21.5, "y": 0}, - {"label": "r08", "x": 22.5, "y": 0}, - {"label": "r09", "x": 23.5, "y": 0}, - {"label": "r0a", "x": 24.5, "y": 0}, - {"label": "r0b", "x": 25.5, "y": 0}, - - {"label": "l10", "x": 0.5, "y": 1}, - {"label": "l11", "x": 1.5, "y": 1}, - {"label": "l12", "x": 2.5, "y": 1}, - {"label": "l13", "x": 3.5, "y": 1}, - {"label": "l14", "x": 4.5, "y": 1}, - {"label": "l15", "x": 5.5, "y": 1}, - {"label": "l16", "x": 6.5, "y": 1}, - {"label": "l17", "x": 7.5, "y": 1}, - {"label": "l18", "x": 8.5, "y": 1}, - {"label": "l19", "x": 9.5, "y": 1}, - {"label": "l1a", "x": 10.5, "y": 1}, - {"label": "l1b", "x": 11.5, "y": 1}, - - {"label": "r10", "x": 15, "y": 1}, - {"label": "r11", "x": 16, "y": 1}, - {"label": "r12", "x": 17, "y": 1}, - {"label": "r13", "x": 18, "y": 1}, - {"label": "r14", "x": 19, "y": 1}, - {"label": "r15", "x": 20, "y": 1}, - {"label": "r16", "x": 21, "y": 1}, - {"label": "r17", "x": 22, "y": 1}, - {"label": "r18", "x": 23, "y": 1}, - {"label": "r19", "x": 24, "y": 1}, - {"label": "r1a", "x": 25, "y": 1}, - {"label": "r1b", "x": 26, "y": 1}, - - {"label": "l20", "x": 1, "y": 2}, - {"label": "l21", "x": 2, "y": 2}, - {"label": "l22", "x": 3, "y": 2}, - {"label": "l23", "x": 4, "y": 2}, - {"label": "l24", "x": 5, "y": 2}, - {"label": "l25", "x": 6, "y": 2}, - {"label": "l26", "x": 7, "y": 2}, - {"label": "l27", "x": 8, "y": 2}, - {"label": "l28", "x": 9, "y": 2}, - {"label": "l29", "x": 10, "y": 2}, - {"label": "l2a", "x": 11, "y": 2}, - {"label": "l2b", "x": 12, "y": 2}, - - {"label": "r20", "x": 15.5, "y": 2}, - {"label": "r21", "x": 16.5, "y": 2}, - {"label": "r22", "x": 17.5, "y": 2}, - {"label": "r23", "x": 18.5, "y": 2}, - {"label": "r24", "x": 19.5, "y": 2}, - {"label": "r25", "x": 20.5, "y": 2}, - {"label": "r26", "x": 21.5, "y": 2}, - {"label": "r27", "x": 22.5, "y": 2}, - {"label": "r28", "x": 23.5, "y": 2}, - {"label": "r29", "x": 24.5, "y": 2}, - {"label": "r2a", "x": 25.5, "y": 2}, - {"label": "r2b", "x": 26.5, "y": 2}, - - {"label": "l30", "x": 1.5, "y": 3}, - {"label": "l31", "x": 2.5, "y": 3}, - {"label": "l32", "x": 3.5, "y": 3}, - {"label": "l33", "x": 4.5, "y": 3}, - {"label": "l34", "x": 5.5, "y": 3}, - {"label": "l35", "x": 6.5, "y": 3}, - {"label": "l36", "x": 7.5, "y": 3}, - {"label": "l37", "x": 8.5, "y": 3}, - {"label": "l38", "x": 9.5, "y": 3}, - {"label": "l39", "x": 10.5, "y": 3}, - {"label": "l3a", "x": 11.5, "y": 3}, - {"label": "l3b", "x": 12.5, "y": 3}, - - {"label": "r30", "x": 16, "y": 3}, - {"label": "r31", "x": 17, "y": 3}, - {"label": "r32", "x": 18, "y": 3}, - {"label": "r33", "x": 19, "y": 3}, - {"label": "r34", "x": 20, "y": 3}, - {"label": "r35", "x": 21, "y": 3}, - {"label": "r36", "x": 22, "y": 3}, - {"label": "r37", "x": 23, "y": 3}, - {"label": "r38", "x": 24, "y": 3}, - {"label": "r39", "x": 25, "y": 3}, - {"label": "r3a", "x": 26, "y": 3}, - {"label": "r3b", "x": 27, "y": 3}, - - {"label": "l40", "x": 2, "y": 4}, - {"label": "l41", "x": 3, "y": 4}, - {"label": "l42", "x": 4, "y": 4}, - {"label": "l43", "x": 5, "y": 4}, - {"label": "l44", "x": 6, "y": 4}, - {"label": "l45", "x": 7, "y": 4}, - {"label": "l46", "x": 8, "y": 4}, - {"label": "l47", "x": 9, "y": 4}, - {"label": "l48", "x": 10, "y": 4}, - {"label": "l49", "x": 11, "y": 4}, - {"label": "l4a", "x": 12, "y": 4}, - {"label": "l4b", "x": 13, "y": 4}, - - {"label": "r40", "x": 16.5, "y": 4}, - {"label": "r41", "x": 17.5, "y": 4}, - {"label": "r42", "x": 18.5, "y": 4}, - {"label": "r43", "x": 19.5, "y": 4}, - {"label": "r44", "x": 20.5, "y": 4}, - {"label": "r45", "x": 21.5, "y": 4}, - {"label": "r46", "x": 22.5, "y": 4}, - {"label": "r47", "x": 23.5, "y": 4}, - {"label": "r48", "x": 24.5, "y": 4}, - {"label": "r49", "x": 25.5, "y": 4}, - {"label": "r4a", "x": 26.5, "y": 4}, - {"label": "r4b", "x": 27.5, "y": 4} - ] - } - } -} diff --git a/keyboards/giabalanai/keymaps/giabarinaix2led/info.json b/keyboards/giabalanai/keymaps/giabarinaix2led/info.json deleted file mode 100644 index 6581733dd1c..00000000000 --- a/keyboards/giabalanai/keymaps/giabarinaix2led/info.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "keyboard_name": "giabarinaix2", - "manufacturer": "3araht", - "url": "https://github.com/3araht", - "maintainer": "3araht", - "usb": { - "vid": "0xFEED", - "pid": "0xF4B2", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "l00", "x": 0, "y": 0}, - {"label": "l01", "x": 1, "y": 0}, - {"label": "l02", "x": 2, "y": 0}, - {"label": "l03", "x": 3, "y": 0}, - {"label": "l04", "x": 4, "y": 0}, - {"label": "l05", "x": 5, "y": 0}, - {"label": "l06", "x": 6, "y": 0}, - {"label": "l07", "x": 7, "y": 0}, - {"label": "l08", "x": 8, "y": 0}, - {"label": "l09", "x": 9, "y": 0}, - {"label": "l0a", "x": 10, "y": 0}, - {"label": "l0b", "x": 11, "y": 0}, - - {"label": "r00", "x": 14.5, "y": 0}, - {"label": "r01", "x": 15.5, "y": 0}, - {"label": "r02", "x": 16.5, "y": 0}, - {"label": "r03", "x": 17.5, "y": 0}, - {"label": "r04", "x": 18.5, "y": 0}, - {"label": "r05", "x": 19.5, "y": 0}, - {"label": "r06", "x": 20.5, "y": 0}, - {"label": "r07", "x": 21.5, "y": 0}, - {"label": "r08", "x": 22.5, "y": 0}, - {"label": "r09", "x": 23.5, "y": 0}, - {"label": "r0a", "x": 24.5, "y": 0}, - {"label": "r0b", "x": 25.5, "y": 0}, - - {"label": "l10", "x": 0.5, "y": 1}, - {"label": "l11", "x": 1.5, "y": 1}, - {"label": "l12", "x": 2.5, "y": 1}, - {"label": "l13", "x": 3.5, "y": 1}, - {"label": "l14", "x": 4.5, "y": 1}, - {"label": "l15", "x": 5.5, "y": 1}, - {"label": "l16", "x": 6.5, "y": 1}, - {"label": "l17", "x": 7.5, "y": 1}, - {"label": "l18", "x": 8.5, "y": 1}, - {"label": "l19", "x": 9.5, "y": 1}, - {"label": "l1a", "x": 10.5, "y": 1}, - {"label": "l1b", "x": 11.5, "y": 1}, - - {"label": "r10", "x": 15, "y": 1}, - {"label": "r11", "x": 16, "y": 1}, - {"label": "r12", "x": 17, "y": 1}, - {"label": "r13", "x": 18, "y": 1}, - {"label": "r14", "x": 19, "y": 1}, - {"label": "r15", "x": 20, "y": 1}, - {"label": "r16", "x": 21, "y": 1}, - {"label": "r17", "x": 22, "y": 1}, - {"label": "r18", "x": 23, "y": 1}, - {"label": "r19", "x": 24, "y": 1}, - {"label": "r1a", "x": 25, "y": 1}, - {"label": "r1b", "x": 26, "y": 1}, - - {"label": "l20", "x": 1, "y": 2}, - {"label": "l21", "x": 2, "y": 2}, - {"label": "l22", "x": 3, "y": 2}, - {"label": "l23", "x": 4, "y": 2}, - {"label": "l24", "x": 5, "y": 2}, - {"label": "l25", "x": 6, "y": 2}, - {"label": "l26", "x": 7, "y": 2}, - {"label": "l27", "x": 8, "y": 2}, - {"label": "l28", "x": 9, "y": 2}, - {"label": "l29", "x": 10, "y": 2}, - {"label": "l2a", "x": 11, "y": 2}, - {"label": "l2b", "x": 12, "y": 2}, - - {"label": "r20", "x": 15.5, "y": 2}, - {"label": "r21", "x": 16.5, "y": 2}, - {"label": "r22", "x": 17.5, "y": 2}, - {"label": "r23", "x": 18.5, "y": 2}, - {"label": "r24", "x": 19.5, "y": 2}, - {"label": "r25", "x": 20.5, "y": 2}, - {"label": "r26", "x": 21.5, "y": 2}, - {"label": "r27", "x": 22.5, "y": 2}, - {"label": "r28", "x": 23.5, "y": 2}, - {"label": "r29", "x": 24.5, "y": 2}, - {"label": "r2a", "x": 25.5, "y": 2}, - {"label": "r2b", "x": 26.5, "y": 2}, - - {"label": "l30", "x": 1.5, "y": 3}, - {"label": "l31", "x": 2.5, "y": 3}, - {"label": "l32", "x": 3.5, "y": 3}, - {"label": "l33", "x": 4.5, "y": 3}, - {"label": "l34", "x": 5.5, "y": 3}, - {"label": "l35", "x": 6.5, "y": 3}, - {"label": "l36", "x": 7.5, "y": 3}, - {"label": "l37", "x": 8.5, "y": 3}, - {"label": "l38", "x": 9.5, "y": 3}, - {"label": "l39", "x": 10.5, "y": 3}, - {"label": "l3a", "x": 11.5, "y": 3}, - {"label": "l3b", "x": 12.5, "y": 3}, - - {"label": "r30", "x": 16, "y": 3}, - {"label": "r31", "x": 17, "y": 3}, - {"label": "r32", "x": 18, "y": 3}, - {"label": "r33", "x": 19, "y": 3}, - {"label": "r34", "x": 20, "y": 3}, - {"label": "r35", "x": 21, "y": 3}, - {"label": "r36", "x": 22, "y": 3}, - {"label": "r37", "x": 23, "y": 3}, - {"label": "r38", "x": 24, "y": 3}, - {"label": "r39", "x": 25, "y": 3}, - {"label": "r3a", "x": 26, "y": 3}, - {"label": "r3b", "x": 27, "y": 3}, - - {"label": "l40", "x": 2, "y": 4}, - {"label": "l41", "x": 3, "y": 4}, - {"label": "l42", "x": 4, "y": 4}, - {"label": "l43", "x": 5, "y": 4}, - {"label": "l44", "x": 6, "y": 4}, - {"label": "l45", "x": 7, "y": 4}, - {"label": "l46", "x": 8, "y": 4}, - {"label": "l47", "x": 9, "y": 4}, - {"label": "l48", "x": 10, "y": 4}, - {"label": "l49", "x": 11, "y": 4}, - {"label": "l4a", "x": 12, "y": 4}, - {"label": "l4b", "x": 13, "y": 4}, - - {"label": "r40", "x": 16.5, "y": 4}, - {"label": "r41", "x": 17.5, "y": 4}, - {"label": "r42", "x": 18.5, "y": 4}, - {"label": "r43", "x": 19.5, "y": 4}, - {"label": "r44", "x": 20.5, "y": 4}, - {"label": "r45", "x": 21.5, "y": 4}, - {"label": "r46", "x": 22.5, "y": 4}, - {"label": "r47", "x": 23.5, "y": 4}, - {"label": "r48", "x": 24.5, "y": 4}, - {"label": "r49", "x": 25.5, "y": 4}, - {"label": "r4a", "x": 26.5, "y": 4}, - {"label": "r4b", "x": 27.5, "y": 4} - ] - } - } -} diff --git a/keyboards/giabalanai/keymaps/party/keymap.c b/keyboards/giabalanai/keymaps/party/keymap.c index ea3000c0103..e4ff3369305 100644 --- a/keyboards/giabalanai/keymaps/party/keymap.c +++ b/keyboards/giabalanai/keymaps/party/keymap.c @@ -363,9 +363,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______, + MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, MI_OCTD, MI_OCTU, XXXXXXX, VERSION, EE_CLR, _______, CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, MI_VELD, MI_VELU, RGB_MOD, RGB_TOG, - XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH + XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MI_TRSD, MI_TRSU, TGLUVEL, MELDYAL, MELODYS, MELDYAH ) }; diff --git a/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json b/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json deleted file mode 100644 index 6581733dd1c..00000000000 --- a/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "keyboard_name": "giabarinaix2", - "manufacturer": "3araht", - "url": "https://github.com/3araht", - "maintainer": "3araht", - "usb": { - "vid": "0xFEED", - "pid": "0xF4B2", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "l00", "x": 0, "y": 0}, - {"label": "l01", "x": 1, "y": 0}, - {"label": "l02", "x": 2, "y": 0}, - {"label": "l03", "x": 3, "y": 0}, - {"label": "l04", "x": 4, "y": 0}, - {"label": "l05", "x": 5, "y": 0}, - {"label": "l06", "x": 6, "y": 0}, - {"label": "l07", "x": 7, "y": 0}, - {"label": "l08", "x": 8, "y": 0}, - {"label": "l09", "x": 9, "y": 0}, - {"label": "l0a", "x": 10, "y": 0}, - {"label": "l0b", "x": 11, "y": 0}, - - {"label": "r00", "x": 14.5, "y": 0}, - {"label": "r01", "x": 15.5, "y": 0}, - {"label": "r02", "x": 16.5, "y": 0}, - {"label": "r03", "x": 17.5, "y": 0}, - {"label": "r04", "x": 18.5, "y": 0}, - {"label": "r05", "x": 19.5, "y": 0}, - {"label": "r06", "x": 20.5, "y": 0}, - {"label": "r07", "x": 21.5, "y": 0}, - {"label": "r08", "x": 22.5, "y": 0}, - {"label": "r09", "x": 23.5, "y": 0}, - {"label": "r0a", "x": 24.5, "y": 0}, - {"label": "r0b", "x": 25.5, "y": 0}, - - {"label": "l10", "x": 0.5, "y": 1}, - {"label": "l11", "x": 1.5, "y": 1}, - {"label": "l12", "x": 2.5, "y": 1}, - {"label": "l13", "x": 3.5, "y": 1}, - {"label": "l14", "x": 4.5, "y": 1}, - {"label": "l15", "x": 5.5, "y": 1}, - {"label": "l16", "x": 6.5, "y": 1}, - {"label": "l17", "x": 7.5, "y": 1}, - {"label": "l18", "x": 8.5, "y": 1}, - {"label": "l19", "x": 9.5, "y": 1}, - {"label": "l1a", "x": 10.5, "y": 1}, - {"label": "l1b", "x": 11.5, "y": 1}, - - {"label": "r10", "x": 15, "y": 1}, - {"label": "r11", "x": 16, "y": 1}, - {"label": "r12", "x": 17, "y": 1}, - {"label": "r13", "x": 18, "y": 1}, - {"label": "r14", "x": 19, "y": 1}, - {"label": "r15", "x": 20, "y": 1}, - {"label": "r16", "x": 21, "y": 1}, - {"label": "r17", "x": 22, "y": 1}, - {"label": "r18", "x": 23, "y": 1}, - {"label": "r19", "x": 24, "y": 1}, - {"label": "r1a", "x": 25, "y": 1}, - {"label": "r1b", "x": 26, "y": 1}, - - {"label": "l20", "x": 1, "y": 2}, - {"label": "l21", "x": 2, "y": 2}, - {"label": "l22", "x": 3, "y": 2}, - {"label": "l23", "x": 4, "y": 2}, - {"label": "l24", "x": 5, "y": 2}, - {"label": "l25", "x": 6, "y": 2}, - {"label": "l26", "x": 7, "y": 2}, - {"label": "l27", "x": 8, "y": 2}, - {"label": "l28", "x": 9, "y": 2}, - {"label": "l29", "x": 10, "y": 2}, - {"label": "l2a", "x": 11, "y": 2}, - {"label": "l2b", "x": 12, "y": 2}, - - {"label": "r20", "x": 15.5, "y": 2}, - {"label": "r21", "x": 16.5, "y": 2}, - {"label": "r22", "x": 17.5, "y": 2}, - {"label": "r23", "x": 18.5, "y": 2}, - {"label": "r24", "x": 19.5, "y": 2}, - {"label": "r25", "x": 20.5, "y": 2}, - {"label": "r26", "x": 21.5, "y": 2}, - {"label": "r27", "x": 22.5, "y": 2}, - {"label": "r28", "x": 23.5, "y": 2}, - {"label": "r29", "x": 24.5, "y": 2}, - {"label": "r2a", "x": 25.5, "y": 2}, - {"label": "r2b", "x": 26.5, "y": 2}, - - {"label": "l30", "x": 1.5, "y": 3}, - {"label": "l31", "x": 2.5, "y": 3}, - {"label": "l32", "x": 3.5, "y": 3}, - {"label": "l33", "x": 4.5, "y": 3}, - {"label": "l34", "x": 5.5, "y": 3}, - {"label": "l35", "x": 6.5, "y": 3}, - {"label": "l36", "x": 7.5, "y": 3}, - {"label": "l37", "x": 8.5, "y": 3}, - {"label": "l38", "x": 9.5, "y": 3}, - {"label": "l39", "x": 10.5, "y": 3}, - {"label": "l3a", "x": 11.5, "y": 3}, - {"label": "l3b", "x": 12.5, "y": 3}, - - {"label": "r30", "x": 16, "y": 3}, - {"label": "r31", "x": 17, "y": 3}, - {"label": "r32", "x": 18, "y": 3}, - {"label": "r33", "x": 19, "y": 3}, - {"label": "r34", "x": 20, "y": 3}, - {"label": "r35", "x": 21, "y": 3}, - {"label": "r36", "x": 22, "y": 3}, - {"label": "r37", "x": 23, "y": 3}, - {"label": "r38", "x": 24, "y": 3}, - {"label": "r39", "x": 25, "y": 3}, - {"label": "r3a", "x": 26, "y": 3}, - {"label": "r3b", "x": 27, "y": 3}, - - {"label": "l40", "x": 2, "y": 4}, - {"label": "l41", "x": 3, "y": 4}, - {"label": "l42", "x": 4, "y": 4}, - {"label": "l43", "x": 5, "y": 4}, - {"label": "l44", "x": 6, "y": 4}, - {"label": "l45", "x": 7, "y": 4}, - {"label": "l46", "x": 8, "y": 4}, - {"label": "l47", "x": 9, "y": 4}, - {"label": "l48", "x": 10, "y": 4}, - {"label": "l49", "x": 11, "y": 4}, - {"label": "l4a", "x": 12, "y": 4}, - {"label": "l4b", "x": 13, "y": 4}, - - {"label": "r40", "x": 16.5, "y": 4}, - {"label": "r41", "x": 17.5, "y": 4}, - {"label": "r42", "x": 18.5, "y": 4}, - {"label": "r43", "x": 19.5, "y": 4}, - {"label": "r44", "x": 20.5, "y": 4}, - {"label": "r45", "x": 21.5, "y": 4}, - {"label": "r46", "x": 22.5, "y": 4}, - {"label": "r47", "x": 23.5, "y": 4}, - {"label": "r48", "x": 24.5, "y": 4}, - {"label": "r49", "x": 25.5, "y": 4}, - {"label": "r4a", "x": 26.5, "y": 4}, - {"label": "r4b", "x": 27.5, "y": 4} - ] - } - } -} diff --git a/keyboards/gizmo_engineering/gk6/info.json b/keyboards/gizmo_engineering/gk6/info.json index d738d31d3d6..c9581479711 100644 --- a/keyboards/gizmo_engineering/gk6/info.json +++ b/keyboards/gizmo_engineering/gk6/info.json @@ -9,7 +9,7 @@ "device_version": "30.3.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B5", "C6", "C7", "F7", "F6", "D5", "D3", "D2", "F1", "F4", "B7", "F5"], diff --git a/keyboards/gizmo_engineering/gk6/keymaps/vial/rules.mk b/keyboards/gizmo_engineering/gk6/keymaps/vial/rules.mk index a4ef3930cbd..2609a11d841 100644 --- a/keyboards/gizmo_engineering/gk6/keymaps/vial/rules.mk +++ b/keyboards/gizmo_engineering/gk6/keymaps/vial/rules.mk @@ -1,12 +1,3 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable - VIA_ENABLE = yes VIAL_ENABLE = yes @@ -16,17 +7,3 @@ QMK_SETTINGS = no TAP_DANCE_ENABLE = yes COMBO_ENABLE = yes KEY_OVERRIDE_ENABLE = no - -# -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 - -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = IS31FL3731 diff --git a/keyboards/gkeyboard/gkb_m16/config.h b/keyboards/gkeyboard/gkb_m16/config.h index 1f278e6e319..a8deb9de2aa 100644 --- a/keyboards/gkeyboard/gkb_m16/config.h +++ b/keyboards/gkeyboard/gkb_m16/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 4 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/gkeyboard/gkb_m16/info.json b/keyboards/gkeyboard/gkb_m16/info.json index ebf5ee88459..9d80eba885c 100644 --- a/keyboards/gkeyboard/gkb_m16/info.json +++ b/keyboards/gkeyboard/gkb_m16/info.json @@ -8,6 +8,24 @@ "pid": "0x4201", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F1" }, diff --git a/keyboards/gkeyboard/gpad8_2r/info.json b/keyboards/gkeyboard/gpad8_2r/info.json index 81ac15251f0..2111d58cc4b 100644 --- a/keyboards/gkeyboard/gpad8_2r/info.json +++ b/keyboards/gkeyboard/gpad8_2r/info.json @@ -33,7 +33,7 @@ ] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [1, 0], "x": 28, "y": 12}, {"flags": 4, "matrix": [1, 1], "x": 84, "y": 12}, diff --git a/keyboards/gl516/j73gl/config.h b/keyboards/gl516/j73gl/config.h index 49205e59d15..16d7526f814 100644 --- a/keyboards/gl516/j73gl/config.h +++ b/keyboards/gl516/j73gl/config.h @@ -30,19 +30,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#ifndef RGBLED_NUM - #define RGBLED_NUM 73 -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - diff --git a/keyboards/gl516/j73gl/info.json b/keyboards/gl516/j73gl/info.json index a34c1e6c4cb..fa78788e666 100644 --- a/keyboards/gl516/j73gl/info.json +++ b/keyboards/gl516/j73gl/info.json @@ -8,6 +8,21 @@ "pid": "0xE8D0", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 73, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/rules.mk b/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/rules.mk index 294015d80b8..d93c7282132 100644 --- a/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/rules.mk +++ b/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/rules.mk @@ -1,6 +1,6 @@ RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 VIA_ENABLE = yes LTO_ENABLE = yes SPACE_CADET_ENABLE = no diff --git a/keyboards/gl516/n51gl/config.h b/keyboards/gl516/n51gl/config.h index cd919a72c47..a4114e1ca6e 100644 --- a/keyboards/gl516/n51gl/config.h +++ b/keyboards/gl516/n51gl/config.h @@ -30,19 +30,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#ifndef RGBLED_NUM - #define RGBLED_NUM 15 -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - diff --git a/keyboards/gl516/n51gl/info.json b/keyboards/gl516/n51gl/info.json index 9da8930c60b..c5abdd45428 100644 --- a/keyboards/gl516/n51gl/info.json +++ b/keyboards/gl516/n51gl/info.json @@ -8,6 +8,21 @@ "pid": "0xE8CF", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 15, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, @@ -83,64 +98,6 @@ {"matrix": [7, 5], "x": 14.75, "y": 3}, {"matrix": [7, 6], "x": 15.75, "y": 3} ] - }, - "LAYOUT_rotary_layer": { - "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": [4, 0], "x": 7, "y": 0}, - {"matrix": [4, 1], "x": 8, "y": 0}, - {"matrix": [4, 2], "x": 9, "y": 0}, - {"matrix": [4, 3], "x": 10, "y": 0}, - {"matrix": [4, 4], "x": 11, "y": 0}, - {"matrix": [4, 5], "x": 12, "y": 0}, - {"matrix": [4, 6], "x": 13, "y": 0}, - {"matrix": [1, 1], "x": 14, "y": 0}, - {"matrix": [1, 2], "x": 15, "y": 0}, - {"matrix": [1, 3], "x": 16, "y": 0}, - {"matrix": [1, 4], "x": 17, "y": 0}, - {"matrix": [1, 5], "x": 18, "y": 0}, - {"matrix": [1, 6], "x": 19, "y": 0}, - {"matrix": [1, 0], "x": 20, "y": 0}, - {"matrix": [5, 0], "x": 21, "y": 0}, - {"matrix": [5, 1], "x": 22, "y": 0}, - {"matrix": [5, 2], "x": 23, "y": 0}, - {"matrix": [5, 3], "x": 24, "y": 0}, - {"matrix": [5, 4], "x": 25, "y": 0}, - {"matrix": [5, 5], "x": 26, "y": 0}, - {"matrix": [5, 6], "x": 27, "y": 0}, - {"matrix": [2, 1], "x": 28, "y": 0}, - {"matrix": [2, 2], "x": 29, "y": 0}, - {"matrix": [2, 3], "x": 30, "y": 0}, - {"matrix": [2, 4], "x": 31, "y": 0}, - {"matrix": [2, 5], "x": 32, "y": 0}, - {"matrix": [2, 6], "x": 33, "y": 0}, - {"matrix": [2, 0], "x": 34, "y": 0}, - {"matrix": [6, 0], "x": 35, "y": 0}, - {"matrix": [6, 1], "x": 36, "y": 0}, - {"matrix": [6, 2], "x": 37, "y": 0}, - {"matrix": [6, 3], "x": 38, "y": 0}, - {"matrix": [6, 4], "x": 39, "y": 0}, - {"matrix": [6, 5], "x": 40, "y": 0}, - {"matrix": [6, 6], "x": 41, "y": 0}, - {"matrix": [3, 1], "x": 42, "y": 0}, - {"matrix": [3, 2], "x": 43, "y": 0}, - {"matrix": [3, 4], "x": 44, "y": 0}, - {"matrix": [3, 5], "x": 45, "y": 0}, - {"matrix": [3, 6], "x": 46, "y": 0}, - {"matrix": [3, 0], "x": 47, "y": 0}, - {"matrix": [7, 0], "x": 48, "y": 0}, - {"matrix": [7, 1], "x": 49, "y": 0}, - {"matrix": [7, 2], "x": 50, "y": 0}, - {"matrix": [7, 4], "x": 51, "y": 0}, - {"matrix": [7, 5], "x": 52, "y": 0}, - {"matrix": [7, 6], "x": 53, "y": 0} - ] } } } diff --git a/keyboards/gl516/n51gl/keymaps/salicylic/config.h b/keyboards/gl516/n51gl/keymaps/salicylic/config.h deleted file mode 100644 index 0e221d844d5..00000000000 --- a/keyboards/gl516/n51gl/keymaps/salicylic/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2021 Salicylic_acid3 - * - * This 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 QUICK_TAP_TERM 0 -#define TAPPING_TERM 180 diff --git a/keyboards/gl516/n51gl/keymaps/salicylic/keymap.c b/keyboards/gl516/n51gl/keymaps/salicylic/keymap.c deleted file mode 100644 index 81f7b8665f5..00000000000 --- a/keyboards/gl516/n51gl/keymaps/salicylic/keymap.c +++ /dev/null @@ -1,117 +0,0 @@ -/* -Copyright 2021 Salicylic_Acid - -This 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_japanese.h" - - -// 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 layer_number { - _QWERTY = 0, - _LOWER, - _RAISE, - _ADJUST, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_rotary_layer( - //,--------------------------------------------------------------| |--------------------------------------------------------------. - 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_VOLU, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_BSLS, KC_ENT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, JP_SLSH, KC_UP, KC_RSFT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - JP_ZKHK, KC_LALT,LGUI_T(JP_MHEN),LT(_LOWER,KC_ENT),KC_BSPC, KC_VOLD, KC_DEL,LT(_RAISE,KC_SPC),ALT_T(JP_HENK),KC_LEFT, KC_DOWN, KC_RGHT - //|--------------------------------------------------------------| |--------------------------------------------------------------' - ), - [_LOWER] = LAYOUT_rotary_layer( - //,--------------------------------------------------------------| |--------------------------------------------------------------. - _______, _______, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, KC_BSPC, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, KC_WH_U, XXXXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_BTN3, KC_0, KC_1, KC_2, KC_3, JP_PLUS, _______, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, JP_MHEN, MO(_LOWER), _______, KC_WH_D, _______, MO(_RAISE), JP_DOT, _______, _______, _______ - //|--------------------------------------------------------------| |--------------------------------------------------------------' - ), - - [_RAISE] = LAYOUT_rotary_layer( - //,--------------------------------------------------------------| |--------------------------------------------------------------. - _______, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP,LALT(KC_PSCR),KC_PSCR, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - LCTL_T(KC_F11), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_WH_L, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, _______, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, KC_WH_R, _______, _______, JP_HENK, _______, _______, _______ - //|--------------------------------------------------------------| |--------------------------------------------------------------' - ), - - [_ADJUST] = LAYOUT_rotary_layer( - //,--------------------------------------------------------------| |--------------------------------------------------------------. - QK_BOOT, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,LALT(KC_PSCR),KC_PSCR, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_TOG, RGB_MOD, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - SFT_T(KC_F12), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, XXXXXXX, _______, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______,RGB_RMOD, _______, _______, _______, _______, _______, _______ - //|--------------------------------------------------------------| |--------------------------------------------------------------' - ) -}; - -//A description for expressing the layer position in LED mode. -layer_state_t layer_state_set_user(layer_state_t state) { - state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); -#ifdef RGBLIGHT_ENABLE - switch (get_highest_layer(state)) { - case _LOWER: - rgblight_sethsv_at(HSV_BLUE, 0); - break; - case _RAISE: - rgblight_sethsv_at(HSV_RED, 0); - break; - case _ADJUST: - rgblight_sethsv_at(HSV_PURPLE, 0); - break; - default: // for any other layers, or the default layer - rgblight_sethsv_at( 0, 0, 0, 0); - break; - } - rgblight_set_effect_range( 1, 14); -#endif -return state; -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - keypos_t key; - if (clockwise) { - key.row = 3; - key.col = 0; - } else { - key.row = 1; - key.col = 0; - } - action_exec(MAKE_KEYEVENT(key.row, key.col, true)); - action_exec(MAKE_KEYEVENT(key.row, key.col, false)); - return true; -} diff --git a/keyboards/gl516/n51gl/keymaps/via/keymap.c b/keyboards/gl516/n51gl/keymaps/via/keymap.c index cf1aa7d595f..10980c6ad0c 100644 --- a/keyboards/gl516/n51gl/keymaps/via/keymap.c +++ b/keyboards/gl516/n51gl/keymaps/via/keymap.c @@ -18,48 +18,48 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_rotary_layer( + [0] = LAYOUT( //,--------------------------------------------------------------| |--------------------------------------------------------------. 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, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_VOLU, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + LT(1,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_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_VOLD, KC_SPC, KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT //|--------------------------------------------------------------| |--------------------------------------------------------------' ), - [1] = LAYOUT_rotary_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_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ //|--------------------------------------------------------------| |--------------------------------------------------------------' ), - [2] = LAYOUT_rotary_layer( + [2] = LAYOUT( //,--------------------------------------------------------------| |--------------------------------------------------------------. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX //|--------------------------------------------------------------| |--------------------------------------------------------------' ), - [3] = LAYOUT_rotary_layer( + [3] = LAYOUT( //,--------------------------------------------------------------| |--------------------------------------------------------------. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX //|--------------------------------------------------------------| |--------------------------------------------------------------' ) }; @@ -87,16 +87,11 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -bool encoder_update_user(uint8_t index, bool clockwise) { - keypos_t key; - if (clockwise) { - key.row = 3; - key.col = 0; - } else { - key.row = 1; - key.col = 0; - } - action_exec(MAKE_KEYEVENT(key.row, key.col, true)); - action_exec(MAKE_KEYEVENT(key.row, key.col, false)); - return true; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/gl516/n51gl/keymaps/via/rules.mk b/keyboards/gl516/n51gl/keymaps/via/rules.mk index 036bd6d1c3e..f1adcab005e 100644 --- a/keyboards/gl516/n51gl/keymaps/via/rules.mk +++ b/keyboards/gl516/n51gl/keymaps/via/rules.mk @@ -1 +1,2 @@ -VIA_ENABLE = yes \ No newline at end of file +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gmmk/gmmk2/p65/ansi/info.json b/keyboards/gmmk/gmmk2/p65/ansi/info.json index c22fe89f589..902d1b6b5dd 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/info.json +++ b/keyboards/gmmk/gmmk2/p65/ansi/info.json @@ -8,8 +8,11 @@ "pid": "0x5045", "device_version": "0.0.1" }, + "qmk": { + "tap_keycode_delay": 10 + }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], @@ -21,8 +24,12 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, + "community_layouts": ["65_ansi_blocker"], "layouts": { - "LAYOUT": { + "LAYOUT_65_ansi_blocker": { "layout": [ {"matrix": [1, 3], "x": 0, "y": 0}, {"matrix": [1, 7], "x": 1, "y": 0}, @@ -37,8 +44,8 @@ {"matrix": [8, 7], "x": 10, "y": 0}, {"matrix": [8, 6], "x": 11, "y": 0}, {"matrix": [6, 6], "x": 12, "y": 0}, - {"matrix": [7, 1], "x": 13, "y": 0, "w": 2.25}, - {"matrix": [2, 5], "x": 15.25, "y": 0}, + {"matrix": [7, 1], "x": 13, "y": 0, "w": 2}, + {"matrix": [2, 5], "x": 15, "y": 0}, {"matrix": [1, 1], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 0], "x": 1.5, "y": 1}, @@ -53,8 +60,8 @@ {"matrix": [8, 0], "x": 10.5, "y": 1}, {"matrix": [8, 1], "x": 11.5, "y": 1}, {"matrix": [6, 1], "x": 12.5, "y": 1}, - {"matrix": [7, 6], "x": 13.5, "y": 1, "w": 1.75}, - {"matrix": [2, 6], "x": 15.25, "y": 1}, + {"matrix": [7, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 6], "x": 15, "y": 1}, {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, {"matrix": [1, 2], "x": 1.75, "y": 2}, @@ -69,7 +76,7 @@ {"matrix": [8, 2], "x": 10.75, "y": 2}, {"matrix": [8, 3], "x": 11.75, "y": 2}, {"matrix": [8, 4], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [6, 5], "x": 15.25, "y": 2}, + {"matrix": [6, 5], "x": 15, "y": 2}, {"matrix": [0, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [1, 4], "x": 2.25, "y": 3}, @@ -83,8 +90,8 @@ {"matrix": [7, 4], "x": 10.25, "y": 3}, {"matrix": [8, 5], "x": 11.25, "y": 3}, {"matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 5], "x": 14.25, "y": 3}, - {"matrix": [0, 1], "x": 15.25, "y": 3}, + {"matrix": [3, 5], "x": 14, "y": 3}, + {"matrix": [0, 1], "x": 15, "y": 3}, {"matrix": [0, 6], "x": 0, "y": 4, "w": 1.25}, {"matrix": [1, 5], "x": 1.25, "y": 4, "w": 1.25}, @@ -93,9 +100,9 @@ {"matrix": [3, 6], "x": 10, "y": 4, "w": 1.25}, {"matrix": [3, 3], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [0, 3], "x": 13.25, "y": 4}, - {"matrix": [7, 3], "x": 14.25, "y": 4}, - {"matrix": [0, 5], "x": 15.25, "y": 4} + {"matrix": [0, 3], "x": 13, "y": 4}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [0, 5], "x": 15, "y": 4} ] } } diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c index 471bc69b8ec..42affd3de62 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c @@ -26,7 +26,7 @@ enum custom_layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: Base Layer (Default Layer) */ -[_BL] = LAYOUT( +[_BL] = LAYOUT_65_ansi_blocker( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _FL: Function Layer */ -[_FL] = LAYOUT( +[_FL] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/via/keymap.c b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/via/keymap.c index 10653ae4638..567ea686f84 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/via/keymap.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/via/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: Base Layer (Default Layer) */ -[0] = LAYOUT( +[0] = LAYOUT_65_ansi_blocker( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _FL: Function Layer */ -[1] = LAYOUT( +[1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -38,14 +38,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD ), -[2] = LAYOUT( +[2] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -[3] = LAYOUT( +[3] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/gmmk/gmmk2/p65/config.h b/keyboards/gmmk/gmmk2/p65/config.h index 64febeb948a..3c6a2fd906e 100644 --- a/keyboards/gmmk/gmmk2/p65/config.h +++ b/keyboards/gmmk/gmmk2/p65/config.h @@ -16,8 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/gmmk/gmmk2/p65/iso/info.json b/keyboards/gmmk/gmmk2/p65/iso/info.json index de078864cea..90609dc9111 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/info.json +++ b/keyboards/gmmk/gmmk2/p65/iso/info.json @@ -8,8 +8,11 @@ "pid": "0x504A", "device_version": "0.0.1" }, + "qmk": { + "tap_keycode_delay": 10 + }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], @@ -37,8 +40,8 @@ {"matrix": [8, 7], "x": 10, "y": 0}, {"matrix": [8, 6], "x": 11, "y": 0}, {"matrix": [6, 6], "x": 12, "y": 0}, - {"matrix": [7, 1], "x": 13, "y": 0, "w": 2.25}, - {"matrix": [2, 5], "x": 15.25, "y": 0}, + {"matrix": [7, 1], "x": 13, "y": 0, "w": 2}, + {"matrix": [2, 5], "x": 15, "y": 0}, {"matrix": [1, 1], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 0], "x": 1.5, "y": 1}, @@ -53,8 +56,8 @@ {"matrix": [8, 0], "x": 10.5, "y": 1}, {"matrix": [8, 1], "x": 11.5, "y": 1}, {"matrix": [6, 1], "x": 12.5, "y": 1}, - {"matrix": [8, 4], "x": 13.5, "y": 1, "w": 1.75, "h": 2}, - {"matrix": [2, 6], "x": 15.25, "y": 1}, + {"matrix": [8, 4], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 6], "x": 15, "y": 1}, {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, {"matrix": [1, 2], "x": 1.75, "y": 2}, @@ -69,7 +72,7 @@ {"matrix": [8, 2], "x": 10.75, "y": 2}, {"matrix": [8, 3], "x": 11.75, "y": 2}, {"matrix": [7, 5], "x": 12.75, "y": 2}, - {"matrix": [6, 5], "x": 15.25, "y": 2}, + {"matrix": [6, 5], "x": 15, "y": 2}, {"matrix": [0, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [0, 2], "x": 1.25, "y": 3}, @@ -84,8 +87,8 @@ {"matrix": [7, 4], "x": 10.25, "y": 3}, {"matrix": [8, 5], "x": 11.25, "y": 3}, {"matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 5], "x": 14.25, "y": 3}, - {"matrix": [0, 1], "x": 15.25, "y": 3}, + {"matrix": [3, 5], "x": 14, "y": 3}, + {"matrix": [0, 1], "x": 15, "y": 3}, {"matrix": [0, 6], "x": 0, "y": 4, "w": 1.25}, {"matrix": [1, 5], "x": 1.25, "y": 4, "w": 1.25}, @@ -94,9 +97,9 @@ {"matrix": [3, 6], "x": 10, "y": 4, "w": 1.25}, {"matrix": [3, 3], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [0, 3], "x": 13.25, "y": 4}, - {"matrix": [7, 3], "x": 14.25, "y": 4}, - {"matrix": [0, 5], "x": 15.25, "y": 4} + {"matrix": [0, 3], "x": 13, "y": 4}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [0, 5], "x": 15, "y": 4} ] } } diff --git a/keyboards/gmmk/gmmk2/p96/ansi/info.json b/keyboards/gmmk/gmmk2/p96/ansi/info.json index 482e52f5044..cb0ecf94452 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/info.json +++ b/keyboards/gmmk/gmmk2/p96/ansi/info.json @@ -8,8 +8,11 @@ "pid": "0x504B", "device_version": "0.0.1" }, + "qmk": { + "tap_keycode_delay": 10 + }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], @@ -40,103 +43,103 @@ {"matrix": [13, 0], "x": 14, "y": 0}, - {"matrix": [0, 6], "x": 15.5, "y": 0}, - {"matrix": [1, 6], "x": 16.5, "y": 0}, - {"matrix": [2, 6], "x": 17.5, "y": 0}, - {"matrix": [3, 6], "x": 18.5, "y": 0}, - - {"matrix": [0, 1], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [2, 1], "x": 2, "y": 1}, - {"matrix": [3, 1], "x": 3, "y": 1}, - {"matrix": [4, 1], "x": 4, "y": 1}, - {"matrix": [5, 1], "x": 5, "y": 1}, - {"matrix": [6, 1], "x": 6, "y": 1}, - {"matrix": [7, 1], "x": 7, "y": 1}, - {"matrix": [8, 1], "x": 8, "y": 1}, - {"matrix": [9, 1], "x": 9, "y": 1}, - {"matrix": [10, 1], "x": 10, "y": 1}, - {"matrix": [11, 1], "x": 11, "y": 1}, - {"matrix": [12, 1], "x": 12, "y": 1}, - {"matrix": [13, 1], "x": 13, "y": 1, "w": 2}, - - {"matrix": [4, 6], "x": 15.5, "y": 1}, - {"matrix": [5, 6], "x": 16.5, "y": 1}, - {"matrix": [6, 6], "x": 17.5, "y": 1}, - {"matrix": [7, 6], "x": 18.5, "y": 1}, - - {"matrix": [0, 2], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [3, 2], "x": 3.5, "y": 2}, - {"matrix": [4, 2], "x": 4.5, "y": 2}, - {"matrix": [5, 2], "x": 5.5, "y": 2}, - {"matrix": [6, 2], "x": 6.5, "y": 2}, - {"matrix": [7, 2], "x": 7.5, "y": 2}, - {"matrix": [8, 2], "x": 8.5, "y": 2}, - {"matrix": [9, 2], "x": 9.5, "y": 2}, - {"matrix": [10, 2], "x": 10.5, "y": 2}, - {"matrix": [11, 2], "x": 11.5, "y": 2}, - {"matrix": [12, 2], "x": 12.5, "y": 2}, - {"matrix": [13, 2], "x": 13.5, "y": 2, "w": 1.25}, - - {"matrix": [8, 6], "x": 15.5, "y": 2}, - {"matrix": [9, 6], "x": 16.5, "y": 2}, - {"matrix": [10, 6], "x": 17.5, "y": 2, "w": 1.5}, - {"matrix": [11, 6], "x": 18.5, "y": 2, "h": 2}, - - {"matrix": [0, 3], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [1, 3], "x": 1.75, "y": 3}, - {"matrix": [2, 3], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [4, 3], "x": 4.75, "y": 3}, - {"matrix": [5, 3], "x": 5.75, "y": 3}, - {"matrix": [6, 3], "x": 6.75, "y": 3}, - {"matrix": [7, 3], "x": 7.75, "y": 3}, - {"matrix": [8, 3], "x": 8.75, "y": 3}, - {"matrix": [9, 3], "x": 9.75, "y": 3}, - {"matrix": [10, 3], "x": 10.75, "y": 3}, - {"matrix": [11, 3], "x": 11.75, "y": 3}, - {"matrix": [13, 3], "x": 12.75, "y": 3, "w": 2.25}, - - {"matrix": [10, 7], "x": 15.5, "y": 3}, - {"matrix": [11, 7], "x": 16.5, "y": 3}, - {"matrix": [12, 7], "x": 17.5, "y": 3}, - - {"matrix": [0, 4], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [2, 4], "x": 2.25, "y": 4}, - {"matrix": [3, 4], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [5, 4], "x": 5.25, "y": 4}, - {"matrix": [6, 4], "x": 6.25, "y": 4}, - {"matrix": [7, 4], "x": 7.25, "y": 4}, - {"matrix": [8, 4], "x": 8.25, "y": 4}, - {"matrix": [9, 4], "x": 9.25, "y": 4}, - {"matrix": [10, 4], "x": 10.25, "y": 4}, - {"matrix": [11, 4], "x": 11.25, "y": 4}, - {"matrix": [13, 4], "x": 12.25, "y": 4, "w": 1.75}, - - {"matrix": [1, 7], "x": 14.25, "y": 4}, - - {"matrix": [6, 7], "x": 15.5, "y": 4}, - {"matrix": [7, 7], "x": 16.5, "y": 4}, - {"matrix": [8, 7], "x": 17.5, "y": 4}, - {"matrix": [9, 7], "x": 18.5, "y": 4, "h": 2}, - - {"matrix": [0, 5], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [1, 5], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [2, 5], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [6, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [9, 5], "x": 10, "y": 5}, - {"matrix": [10, 5], "x": 11, "y": 5}, - {"matrix": [12, 5], "x": 12, "y": 5}, - - {"matrix": [0, 7], "x": 13.25, "y": 5}, - {"matrix": [2, 7], "x": 14.25, "y": 5}, - {"matrix": [3, 7], "x": 15.25, "y": 5}, - - {"matrix": [4, 7], "x": 16.5, "y": 5}, - {"matrix": [5, 7], "x": 17.5, "y": 5} + {"matrix": [0, 6], "x": 15.25, "y": 0}, + {"matrix": [1, 6], "x": 16.25, "y": 0}, + {"matrix": [2, 6], "x": 17.25, "y": 0}, + {"matrix": [3, 6], "x": 18.25, "y": 0}, + + {"matrix": [0, 1], "x": 0, "y": 1.125}, + {"matrix": [1, 1], "x": 1, "y": 1.125}, + {"matrix": [2, 1], "x": 2, "y": 1.125}, + {"matrix": [3, 1], "x": 3, "y": 1.125}, + {"matrix": [4, 1], "x": 4, "y": 1.125}, + {"matrix": [5, 1], "x": 5, "y": 1.125}, + {"matrix": [6, 1], "x": 6, "y": 1.125}, + {"matrix": [7, 1], "x": 7, "y": 1.125}, + {"matrix": [8, 1], "x": 8, "y": 1.125}, + {"matrix": [9, 1], "x": 9, "y": 1.125}, + {"matrix": [10, 1], "x": 10, "y": 1.125}, + {"matrix": [11, 1], "x": 11, "y": 1.125}, + {"matrix": [12, 1], "x": 12, "y": 1.125}, + {"matrix": [13, 1], "x": 13, "y": 1.125, "w": 2}, + + {"matrix": [4, 6], "x": 15.25, "y": 1.125}, + {"matrix": [5, 6], "x": 16.25, "y": 1.125}, + {"matrix": [6, 6], "x": 17.25, "y": 1.125}, + {"matrix": [7, 6], "x": 18.25, "y": 1.125}, + + {"matrix": [0, 2], "x": 0, "y": 2.125, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 2.125}, + {"matrix": [2, 2], "x": 2.5, "y": 2.125}, + {"matrix": [3, 2], "x": 3.5, "y": 2.125}, + {"matrix": [4, 2], "x": 4.5, "y": 2.125}, + {"matrix": [5, 2], "x": 5.5, "y": 2.125}, + {"matrix": [6, 2], "x": 6.5, "y": 2.125}, + {"matrix": [7, 2], "x": 7.5, "y": 2.125}, + {"matrix": [8, 2], "x": 8.5, "y": 2.125}, + {"matrix": [9, 2], "x": 9.5, "y": 2.125}, + {"matrix": [10, 2], "x": 10.5, "y": 2.125}, + {"matrix": [11, 2], "x": 11.5, "y": 2.125}, + {"matrix": [12, 2], "x": 12.5, "y": 2.125}, + {"matrix": [13, 2], "x": 13.5, "y": 2.125, "w": 1.5}, + + {"matrix": [8, 6], "x": 15.25, "y": 2.125}, + {"matrix": [9, 6], "x": 16.25, "y": 2.125}, + {"matrix": [10, 6], "x": 17.25, "y": 2.125}, + {"matrix": [11, 6], "x": 18.25, "y": 2.125, "h": 2}, + + {"matrix": [0, 3], "x": 0, "y": 3.125, "w": 1.75}, + {"matrix": [1, 3], "x": 1.75, "y": 3.125}, + {"matrix": [2, 3], "x": 2.75, "y": 3.125}, + {"matrix": [3, 3], "x": 3.75, "y": 3.125}, + {"matrix": [4, 3], "x": 4.75, "y": 3.125}, + {"matrix": [5, 3], "x": 5.75, "y": 3.125}, + {"matrix": [6, 3], "x": 6.75, "y": 3.125}, + {"matrix": [7, 3], "x": 7.75, "y": 3.125}, + {"matrix": [8, 3], "x": 8.75, "y": 3.125}, + {"matrix": [9, 3], "x": 9.75, "y": 3.125}, + {"matrix": [10, 3], "x": 10.75, "y": 3.125}, + {"matrix": [11, 3], "x": 11.75, "y": 3.125}, + {"matrix": [13, 3], "x": 12.75, "y": 3.125, "w": 2.25}, + + {"matrix": [10, 7], "x": 15.25, "y": 3.125}, + {"matrix": [11, 7], "x": 16.25, "y": 3.125}, + {"matrix": [12, 7], "x": 17.25, "y": 3.125}, + + {"matrix": [0, 4], "x": 0, "y": 4.125, "w": 2.25}, + {"matrix": [2, 4], "x": 2.25, "y": 4.125}, + {"matrix": [3, 4], "x": 3.25, "y": 4.125}, + {"matrix": [4, 4], "x": 4.25, "y": 4.125}, + {"matrix": [5, 4], "x": 5.25, "y": 4.125}, + {"matrix": [6, 4], "x": 6.25, "y": 4.125}, + {"matrix": [7, 4], "x": 7.25, "y": 4.125}, + {"matrix": [8, 4], "x": 8.25, "y": 4.125}, + {"matrix": [9, 4], "x": 9.25, "y": 4.125}, + {"matrix": [10, 4], "x": 10.25, "y": 4.125}, + {"matrix": [11, 4], "x": 11.25, "y": 4.125}, + {"matrix": [13, 4], "x": 12.25, "y": 4.125, "w": 1.75}, + + {"matrix": [1, 7], "x": 14.125, "y": 4.25}, + + {"matrix": [6, 7], "x": 15.25, "y": 4.125}, + {"matrix": [7, 7], "x": 16.25, "y": 4.125}, + {"matrix": [8, 7], "x": 17.25, "y": 4.125}, + {"matrix": [9, 7], "x": 18.25, "y": 4.125, "h": 2}, + + {"matrix": [0, 5], "x": 0, "y": 5.125, "w": 1.25}, + {"matrix": [1, 5], "x": 1.25, "y": 5.125, "w": 1.25}, + {"matrix": [2, 5], "x": 2.5, "y": 5.125, "w": 1.25}, + {"matrix": [6, 5], "x": 3.75, "y": 5.125, "w": 6.25}, + {"matrix": [9, 5], "x": 10, "y": 5.125}, + {"matrix": [10, 5], "x": 11, "y": 5.125}, + {"matrix": [12, 5], "x": 12, "y": 5.125}, + + {"matrix": [0, 7], "x": 13.125, "y": 5.25}, + {"matrix": [2, 7], "x": 14.125, "y": 5.25}, + {"matrix": [3, 7], "x": 15.125, "y": 5.25}, + + {"matrix": [4, 7], "x": 16.25, "y": 5.125}, + {"matrix": [5, 7], "x": 17.25, "y": 5.125} ] } } diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index 16aae9b3303..e3b5cdcfa1d 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -16,8 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/gmmk/gmmk2/p96/iso/info.json b/keyboards/gmmk/gmmk2/p96/iso/info.json index de9eb07edcf..6534d280277 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/info.json +++ b/keyboards/gmmk/gmmk2/p96/iso/info.json @@ -8,8 +8,11 @@ "pid": "0x505A", "device_version": "0.0.1" }, + "qmk": { + "tap_keycode_delay": 10 + }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/numpad/info.json b/keyboards/gmmk/numpad/info.json index 4df94d45ee4..604a49b5038 100644 --- a/keyboards/gmmk/numpad/info.json +++ b/keyboards/gmmk/numpad/info.json @@ -14,7 +14,7 @@ ] }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", @@ -39,7 +39,7 @@ {"label": "4", "matrix": [2, 0], "x": 0, "y": 2}, {"label": "5", "matrix": [2, 1], "x": 1, "y": 2}, {"label": "6", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "CALC", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "CALC", "matrix": [2, 3], "x": 4.25, "y": 0}, {"label": "1", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "2", "matrix": [3, 1], "x": 1, "y": 3}, @@ -47,7 +47,7 @@ {"label": "RET", "matrix": [3, 3], "x": 3, "y": 3, "h": 2}, {"label": "0", "matrix": [4, 0], "x": 0, "y": 4, "w": 2}, - {"label": ".", "matrix": [4, 3], "x": 3, "y": 4} + {"label": ".", "matrix": [4, 3], "x": 2, "y": 4} ] } } diff --git a/keyboards/gmmk/pro/config.h b/keyboards/gmmk/pro/config.h index 8188418469e..069823663ee 100644 --- a/keyboards/gmmk/pro/config.h +++ b/keyboards/gmmk/pro/config.h @@ -16,8 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -35,6 +33,8 @@ #define DRIVER_COUNT 2 +#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 diff --git a/keyboards/gmmk/pro/rev1/ansi/info.json b/keyboards/gmmk/pro/rev1/ansi/info.json index 7a1532424bd..7e0adbdb057 100644 --- a/keyboards/gmmk/pro/rev1/ansi/info.json +++ b/keyboards/gmmk/pro/rev1/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], @@ -21,6 +21,9 @@ {"pin_a": "C15", "pin_b": "C14"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "bootmagic": { "matrix": [1, 3] }, diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h index 5dda6f15bc5..18271fb4d25 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h @@ -17,6 +17,65 @@ #pragma once #ifdef RGB_MATRIX_ENABLE - #define RGB_MATRIX_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms) - #define RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_MATRIX_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms) +# define RGB_DISABLE_WHEN_USB_SUSPENDED #endif + +// A debounce of 8 represents a minimum key press time of just under 1 refresh at 120Hz +// Slightly higher than the default because we are using sym_eager_pk +#ifdef DEBOUNCE +# undef DEBOUNCE +#endif +#define DEBOUNCE 8 + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// #define ENABLE_RGB_MATRIX_ALPHAS_MODS +// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +// #define ENABLE_RGB_MATRIX_BAND_SAT +// #define ENABLE_RGB_MATRIX_BAND_VAL +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +// #define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #define ENABLE_RGB_MATRIX_HUE_BREATHING +// #define ENABLE_RGB_MATRIX_HUE_PENDULUM +// #define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +// #define ENABLE_RGB_MATRIX_PIXEL_FLOW +// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c index f803b44abbd..3d2792b4a64 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c @@ -17,23 +17,24 @@ along with this program. If not, see . #include QMK_KEYBOARD_H -enum layers { - WIN_BASE = 0, - WIN_FN, - MAC_BASE, - MAC_FN +enum layers { WIN_BASE = 0, WIN_FN, MAC_BASE, MAC_FN }; + +enum custom_keycodes { + CMDQ_TOG = QK_KB_2 // TECH DEBT: Starts at QK_KB_2 to maintain ordering with VIA definitions. See #19884. Revert to QK_KB_0 when VIA catches up with QMK. }; -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) -#define TO_WINB TO(WIN_BASE) -#define TO_MACB TO(MAC_BASE) -#define MO_WINF MO(WIN_FN) -#define MO_MACF MO(MAC_FN) +#define KC_TASK LWIN(KC_TAB) // Open Task Manager +#define KC_FLXP LWIN(KC_E) // Open File Explorer +#define DF_WINB DF(WIN_BASE) // Switch to WIN_BASE layer +#define MO_WINF MO(WIN_FN) // Toggle to WIN_FN layer +#define DF_MACB DF(MAC_BASE) // Switch to MAX_BASE layer +#define MO_MACF MO(MAC_FN) // Toggle to MAC_FN layer // clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// The GMMK Pro default layout is: +// // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Del Rotary(Play/Pause) // ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Home // Tab Q W E R T Y U I O P [ ] \ PgUp @@ -55,236 +56,379 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Press Fn+N to toggle between 6KRO and NKRO. This setting is persisted to the EEPROM and thus persists between restarts. // // RGB and function keys are inspired by the Keychron Q1 layouts instead of using the default keys. - // - // KC_PAUS/KC_BRMU and KC_SCRL/KC_BRMD are aliases for the same keys, but their names reflect better the function in each layout. + // To clean the EEPROM, hold the ESC key while connecting the keyboard. + [WIN_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO_WINF, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO_WINF, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [WIN_FN] = LAYOUT( - _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, KC_INS, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, KC_PAUS, - TO_MACB, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCRL, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX + EE_CLR, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, KC_SCRL, + DF_MACB, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), [MAC_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO_MACF, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO_MACF, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [MAC_FN] = LAYOUT( - _______, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, KC_INS, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, KC_BRMU, - TO_WINB, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BRMD, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX + EE_CLR, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BRMU, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, KC_BRMD, + DF_WINB, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, + XXXXXXX, XXXXXXX, CMDQ_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) }; // clang-format on -#ifdef RGB_MATRIX_ENABLE +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = {ENCODER_CCW_CW(XXXXXXX, XXXXXXX)}, + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = {ENCODER_CCW_CW(XXXXXXX, XXXXXXX)}, +}; +#endif -/* Renaming those to make the purpose on this keymap clearer */ -#define LED_FLAG_CAPS LED_FLAG_NONE -#define LED_FLAG_EFFECTS LED_FLAG_INDICATOR +/* To record user preferences */ +typedef union { + uint32_t raw; // set to 32-bit of size + struct { + bool rgb_enabled : 1; // Artificial RGB ON/OFF flag (1 bit) + bool cmd_q_delay_enabled : 1; // Toggle CMD+Q delay (1 bit) + }; +} user_config_t; +user_config_t user_config; -static void set_rgb_caps_leds(void); +/* Delayed keypresses variables and functions */ +static fast_timer_t delayed_press_delay = 0; +static uint16_t delayed_press_keycode = KC_NO; +static fast_timer_t delayed_press_start_time = 0; +static uint16_t delayed_press_sent_keycode = KC_NO; +static void start_delayed_press(fast_timer_t delay, uint16_t keycode); +static void mark_delayed_press_sent(void); +static void mark_delayed_release_sent(void); +static void cancel_delayed_press(void); -static uint16_t effect_started_time = 0; -static uint8_t r_effect = 0x0, g_effect = 0x0, b_effect = 0x0; -static void start_effects(void); +#define IS_ANY_DELAYED_PRESS_PENDING() (delayed_press_start_time > 0 && delayed_press_keycode != KC_NO) +#define IS_DELAYED_PRESS_PENDING(keycode) (delayed_press_start_time > 0 && delayed_press_keycode == (keycode)) +#define IS_DELAYED_PRESS_SENT(keycode) (delayed_press_sent_keycode != KC_NO && delayed_press_sent_keycode == (keycode)) -/* The interval time in ms */ -#ifndef EFFECTS_TIME - #define EFFECTS_TIME 2000 -#endif -#ifndef EFFECTS_INTERVAL - #define EFFECTS_INTERVAL 250 -#endif -#if EFFECTS_TIME <= 0 || EFFECTS_TIME >= 32767 - #error "EFFECTS_TIME must be a positive integer smaller than 32767" +/* CMD+Q delay */ +#ifndef CMD_Q_DELAY +# define CMD_Q_DELAY 1000 #endif -#if EFFECTS_INTERVAL <= 0 || EFFECTS_INTERVAL >= 32767 - #error "EFFECTS_INTERVAL must be a positive integer smaller than 32767" +#if CMD_Q_DELAY <= 0 || CMD_Q_DELAY >= UINT16_MAX / 2 +# error "CMD_Q_DELAY must be a positive integer smaller than UINT16_MAX / 2" #endif -#define effect_red() r_effect = 0xFF, g_effect = 0x0, b_effect = 0x0 -#define effect_green() r_effect = 0x0, g_effect = 0xFF, b_effect = 0x0 -#define effect_blue() r_effect = 0x0, g_effect = 0x0, b_effect = 0xFF -#define effect_white() r_effect = 0xFF, g_effect = 0xFF, b_effect = 0xFF -static uint8_t previous_effect_layer = 255; +#ifdef RGB_MATRIX_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t current_layer = get_highest_layer(state); - switch (current_layer) { - case WIN_BASE: - if (previous_effect_layer != current_layer) { - previous_effect_layer = current_layer; - effect_blue(); - start_effects(); - } - break; - case MAC_BASE: - if (previous_effect_layer != current_layer) { - previous_effect_layer = current_layer; - effect_white(); - start_effects(); - } - break; - } - return state; +# define CAPS_LOCK_COLOR RGB_RED +# define WIN_BASE_COLOR RGB_BLUE +# define WIN_FN_COLOR RGB_BLUE +# define MAC_BASE_COLOR RGB_WHITE +# define MAC_FN_COLOR RGB_WHITE +# define UNKNOWN_LAYER_COLOR RGB_PINK + +/* The maximum effects duration */ +# ifndef EFFECTS_DURATION +# define EFFECTS_DURATION 2000 +# endif +# if EFFECTS_DURATION <= 0 || EFFECTS_DURATION >= UINT16_MAX / 2 +# error "EFFECTS_DURATION must be a positive integer smaller than UINT16_MAX / 2" +# endif +/* The interval for the flashing effect */ +# ifndef FLASHING_EFFECT_INTERVAL +# define FLASHING_EFFECT_INTERVAL 250 +# endif +# if FLASHING_EFFECT_INTERVAL <= 0 || FLASHING_EFFECT_INTERVAL >= UINT16_MAX / 2 +# error "FLASHING_EFFECT_INTERVAL must be a positive integer smaller than UINT16_MAX / 2" +# endif + +static void set_rgb_layer_winfn(void); +static void set_rgb_layer_macfn(void); + +/* Effects functions */ +static float flashing_effect(fast_timer_t delta_time); +static float static_effect(fast_timer_t delta_time); +static float increasing_effect(fast_timer_t delta_time); + +/* Effect variables and functions */ +static fast_timer_t effect_started_time = 0; +static fast_timer_t effect_max_duration = EFFECTS_DURATION; +static uint8_t effect_r = 0x0, effect_g = 0x0, effect_b = 0x0; +static float (*effect_multiplier)(fast_timer_t) = static_effect; +static void start_effects(fast_timer_t max_duration, uint8_t r_color, uint8_t g_color, uint8_t b_color, float (*multiplier)(fast_timer_t)); +static void stop_effects(void); + +/* Delayed keypresses variables with RGB variant */ +static void start_delayed_press_with_effects(fast_timer_t delay, uint16_t keycode, uint8_t r_color, uint8_t g_color, uint8_t b_color); + +#endif // RGB_MATRIX_ENABLE + +void eeconfig_init_user(void) { // EEPROM is getting reset! + user_config.raw = 0; + user_config.rgb_enabled = true; // We want this enabled by default + user_config.cmd_q_delay_enabled = true; // We want this enabled by default + eeconfig_update_user(user_config.raw); // Write default value to EEPROM now } -bool led_update_user(led_t led_state) { - if (led_state.caps_lock) { - if (!rgb_matrix_is_enabled()) { - /* Turn ON the RGB Matrix for CAPS LOCK */ - rgb_matrix_set_flags(LED_FLAG_CAPS); - rgb_matrix_enable(); - } - } else if (rgb_matrix_get_flags() == LED_FLAG_CAPS) { - /* RGB Matrix was only ON because of CAPS LOCK. Turn it OFF. */ +void keyboard_post_init_user(void) { +#ifdef RGB_MATRIX_ENABLE + // Enable the RGB matrix, if not enabled + if (!rgb_matrix_is_enabled()) { + rgb_matrix_enable(); + } + // Set the flags to ALL, if not already set + if (rgb_matrix_get_flags() != LED_FLAG_ALL) { rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_disable(); } - return true; +#endif + + // Read the user config from EEPROM + user_config.raw = eeconfig_read_user(); } -#endif // RGB_MATRIX_ENABLE +void matrix_scan_user(void) { + if (IS_ANY_DELAYED_PRESS_PENDING()) { + if (timer_elapsed_fast(delayed_press_start_time) > delayed_press_delay) { + register_code(delayed_press_keycode); + mark_delayed_press_sent(); + } + } +} bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (IS_DELAYED_PRESS_SENT(keycode)) { + if (!record->event.pressed) { + /* Send key-up event and clear the keycode and stop processing */ + unregister_code(keycode); + mark_delayed_release_sent(); + return false; + } + } else if (IS_DELAYED_PRESS_PENDING(keycode)) { + if (!record->event.pressed) { + /* Cancel the pending press and stop processing */ + cancel_delayed_press(); + return false; + } + } else if (IS_ANY_DELAYED_PRESS_PENDING()) { + /* Cancel the pending press and resume processing */ + cancel_delayed_press(); + } switch (keycode) { - #ifdef RGB_MATRIX_ENABLE - #ifdef NKRO_ENABLE - case NK_TOGG: + case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: if (record->event.pressed) { - if (keymap_config.nkro) { - /* Turning NKRO OFF */ - effect_red(); + /* Set the default layout on the EEPROM, let the default layer change callback handle the rest */ + set_single_persistent_default_layer(QK_DEF_LAYER_GET_LAYER(keycode)); + } + return false; + case CMDQ_TOG: + if (record->event.pressed) { +#ifdef RGB_MATRIX_ENABLE + if (user_config.cmd_q_delay_enabled) { + /* Turning delay OFF */ + start_effects(EFFECTS_DURATION, RGB_RED, flashing_effect); } else { - /* Turning NKRO ON */ - effect_green(); + /* Turning delay ON */ + start_effects(EFFECTS_DURATION, RGB_GREEN, flashing_effect); + } +#endif + user_config.cmd_q_delay_enabled = !user_config.cmd_q_delay_enabled; + eeconfig_update_user(user_config.raw); + } + return false; + case KC_Q: + if (user_config.cmd_q_delay_enabled) { + if (layer_state_is(MAC_BASE)) { + uint8_t mods = get_mods(); + if (mods == MOD_BIT(KC_LCMD) || mods == MOD_BIT(KC_RCMD)) { + if (record->event.pressed) { +#ifdef RGB_MATRIX_ENABLE + start_delayed_press_with_effects(CMD_Q_DELAY, KC_Q, RGB_ORANGE); +#else + start_delayed_press(CMD_Q_DELAY, KC_Q); +#endif + } + return false; + } } - start_effects(); } break; - #endif // NKRO_ENABLE - case RGB_MOD: - case RGB_RMOD: - case RGB_HUI: - case RGB_HUD: - case RGB_SAI: - case RGB_SAD: - case RGB_VAI: - case RGB_VAD: - case RGB_SPI: - case RGB_SPD: +#ifdef RGB_MATRIX_ENABLE +# ifdef NKRO_ENABLE + case NK_TOGG: if (record->event.pressed) { - if (rgb_matrix_get_flags() != LED_FLAG_ALL) { - /* Ignore changes to RGB settings while only it's supposed to be OFF */ - return false; // Skip all further processing of this key + if (keymap_config.nkro) { + /* Turning NKRO OFF */ + start_effects(EFFECTS_DURATION, RGB_RED, flashing_effect); + } else { + /* Turning NKRO ON */ + start_effects(EFFECTS_DURATION, RGB_GREEN, flashing_effect); } } break; +# endif // NKRO_ENABLE case RGB_TOG: if (record->event.pressed) { - if (rgb_matrix_is_enabled()) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_EFFECTS: - case LED_FLAG_CAPS: - /* Turned ON because of EFFECTS or CAPS, is actually OFF */ - /* Change to LED_FLAG_ALL to signal it's really ON */ - rgb_matrix_set_flags(LED_FLAG_ALL); - /* Will be re-enabled by the processing of the toggle */ - rgb_matrix_disable_noeeprom(); - break; - case LED_FLAG_ALL: - /* Is actually ON */ - if (effect_started_time > 0) { - /* Signal EFFECTS */ - rgb_matrix_set_flags(LED_FLAG_EFFECTS); - /* Will be re-enabled by the processing of the toggle */ - rgb_matrix_disable_noeeprom(); - } else - if (host_keyboard_led_state().caps_lock) { - /* Signal CAPS */ - rgb_matrix_set_flags(LED_FLAG_CAPS); - /* Will be re-enabled by the processing of the toggle */ - rgb_matrix_disable_noeeprom(); - } - break; - } - } + user_config.rgb_enabled = !user_config.rgb_enabled; + eeconfig_update_user(user_config.raw); + } + return false; + case RGB_MODE_FORWARD ... RGB_MODE_TWINKLE: + if (!user_config.rgb_enabled) { + /* Ignore changes to RGB settings while only it's supposed to be OFF */ + return false; // Skip all further processing of this key } break; - #endif // RGB_MATRIX_ENABLE +#endif // RGB_MATRIX_ENABLE } return true; } +static void start_delayed_press(fast_timer_t delay, uint16_t keycode) { + delayed_press_delay = delay; + delayed_press_keycode = keycode; + delayed_press_start_time = timer_read_fast(); + delayed_press_sent_keycode = KC_NO; +} + +static void mark_delayed_press_sent(void) { + delayed_press_sent_keycode = delayed_press_keycode; + cancel_delayed_press(); +} + +static void mark_delayed_release_sent(void) { + delayed_press_sent_keycode = KC_NO; +} + +static void cancel_delayed_press(void) { + delayed_press_delay = 0; + delayed_press_keycode = KC_NO; + delayed_press_start_time = 0; #ifdef RGB_MATRIX_ENABLE + stop_effects(); +#endif +} + +#ifdef RGB_MATRIX_ENABLE + +static void start_delayed_press_with_effects(fast_timer_t delay, uint16_t keycode, uint8_t r_color, uint8_t g_color, uint8_t b_color) { + start_delayed_press(delay, keycode); + start_effects(delay, r_color, g_color, b_color, increasing_effect); +} + +/* +Effects when switching layers +*/ + +static uint8_t previous_layer = UINT8_MAX; + +layer_state_t default_layer_state_set_user(layer_state_t state) { + uint8_t current_layer = get_highest_layer(state); + if (previous_layer != current_layer) { + // For some reason, setting the default layer alone doesn't change it fully + layer_move(current_layer); + switch (current_layer) { + case WIN_BASE: + start_effects(EFFECTS_DURATION, WIN_BASE_COLOR, flashing_effect); + break; + case MAC_BASE: + start_effects(EFFECTS_DURATION, MAC_BASE_COLOR, flashing_effect); + break; + default: + // This should not ever happen, but let's display something if it does! + start_effects(EFFECTS_DURATION, UNKNOWN_LAYER_COLOR, static_effect); + break; + } + previous_layer = current_layer; + } + return state; +} + +static void start_effects(fast_timer_t max_duration, uint8_t r_color, uint8_t g_color, uint8_t b_color, float (*multiplier)(fast_timer_t)) { + effect_r = r_color; + effect_g = g_color; + effect_b = b_color; + effect_multiplier = multiplier; + effect_max_duration = max_duration; + effect_started_time = timer_read_fast(); +} + +static void stop_effects(void) { + effect_r = 0x0; + effect_g = 0x0; + effect_b = 0x0; + effect_multiplier = static_effect; + effect_max_duration = EFFECTS_DURATION; + effect_started_time = 0; +} + +static float flashing_effect(fast_timer_t delta_time) { + return ((delta_time / FLASHING_EFFECT_INTERVAL) + 1) & 0x01; +} + +static float static_effect(fast_timer_t delta_time) { + return 1.0; +} + +static float increasing_effect(fast_timer_t delta_time) { + return ((float)delta_time) / effect_max_duration; +} + bool rgb_matrix_indicators_user(void) { if (effect_started_time > 0) { - /* Render blinking EFFECTS */ - const uint16_t deltaTime = sync_timer_elapsed(effect_started_time); - if (deltaTime <= EFFECTS_TIME) { - const uint8_t led_state = ((deltaTime / EFFECTS_INTERVAL) + 1) & 0x01; - const uint8_t val_r = led_state * r_effect; - const uint8_t val_g = led_state * g_effect; - const uint8_t val_b = led_state * b_effect; + fast_timer_t delta_time = timer_elapsed_fast(effect_started_time); + if (delta_time <= effect_max_duration) { + /* Render effect */ + float multiplier = effect_multiplier(delta_time); + uint8_t val_r = multiplier * effect_r; + uint8_t val_g = multiplier * effect_g; + uint8_t val_b = multiplier * effect_b; rgb_matrix_set_color_all(val_r, val_g, val_b); - if (host_keyboard_led_state().caps_lock) { - set_rgb_caps_leds(); - } return false; } else { - /* EFFECTS duration is finished */ - effect_started_time = 0; - if (rgb_matrix_get_flags() == LED_FLAG_EFFECTS) { - /* It was turned ON because of EFFECTS */ - if (host_keyboard_led_state().caps_lock) { - /* CAPS is still ON. Demote to CAPS */ - rgb_matrix_set_flags(LED_FLAG_CAPS); - } else { - /* There is nothing else keeping RGB enabled. Reset flags and turn if off. */ - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_disable_noeeprom(); - } - } + /* Effect duration is finished */ + stop_effects(); } } - if (rgb_matrix_get_flags() == LED_FLAG_CAPS) { - rgb_matrix_set_color_all(0x0, 0x0, 0x0); - } if (host_keyboard_led_state().caps_lock) { - set_rgb_caps_leds(); + rgb_matrix_set_color_all(CAPS_LOCK_COLOR); + } else if (!user_config.rgb_enabled) { + rgb_matrix_set_color_all(RGB_OFF); } - return false; -} - -static void start_effects(void) { - effect_started_time = sync_timer_read(); - if (!rgb_matrix_is_enabled()) { - /* Turn it ON, signal the cause (EFFECTS) */ - rgb_matrix_set_flags(LED_FLAG_EFFECTS); - rgb_matrix_enable_noeeprom(); - } else if (rgb_matrix_get_flags() == LED_FLAG_CAPS) { - /* It's already ON, promote the cause from CAPS to EFFECTS */ - rgb_matrix_set_flags(LED_FLAG_EFFECTS); + switch (get_highest_layer(layer_state)) { + case WIN_BASE: + case MAC_BASE: + break; + case WIN_FN: + set_rgb_layer_winfn(); + return false; + case MAC_FN: + set_rgb_layer_macfn(); + return false; + default: + // This should never happen, but if it does, let's display something! + rgb_matrix_set_color_all(UNKNOWN_LAYER_COLOR); + return false; } + return true; } // RGB led number layout, function of the key @@ -298,38 +442,69 @@ static void start_effects(void) { // 87, led 07 88, led 18 // 91, led 08 92, led 19 -static void set_rgb_caps_leds(void) { - rgb_matrix_set_color(0, 0xFF, 0x0, 0x0); // ESC - rgb_matrix_set_color(6, 0xFF, 0x0, 0x0); // F1 - rgb_matrix_set_color(12, 0xFF, 0x0, 0x0); // F2 - rgb_matrix_set_color(18, 0xFF, 0x0, 0x0); // F3 - rgb_matrix_set_color(23, 0xFF, 0x0, 0x0); // F4 - rgb_matrix_set_color(28, 0xFF, 0x0, 0x0); // F5 - rgb_matrix_set_color(34, 0xFF, 0x0, 0x0); // F6 - rgb_matrix_set_color(39, 0xFF, 0x0, 0x0); // F7 - rgb_matrix_set_color(44, 0xFF, 0x0, 0x0); // F8 - rgb_matrix_set_color(50, 0xFF, 0x0, 0x0); // F9 - rgb_matrix_set_color(56, 0xFF, 0x0, 0x0); // F10 - rgb_matrix_set_color(61, 0xFF, 0x0, 0x0); // F11 - rgb_matrix_set_color(66, 0xFF, 0x0, 0x0); // F12 - rgb_matrix_set_color(69, 0xFF, 0x0, 0x0); // Prt - rgb_matrix_set_color(67, 0xFF, 0x0, 0x0); // Left side LED 1 - rgb_matrix_set_color(68, 0xFF, 0x0, 0x0); // Right side LED 1 - rgb_matrix_set_color(70, 0xFF, 0x0, 0x0); // Left side LED 2 - rgb_matrix_set_color(71, 0xFF, 0x0, 0x0); // Right side LED 2 - rgb_matrix_set_color(73, 0xFF, 0x0, 0x0); // Left side LED 3 - rgb_matrix_set_color(74, 0xFF, 0x0, 0x0); // Right side LED 3 - rgb_matrix_set_color(76, 0xFF, 0x0, 0x0); // Left side LED 4 - rgb_matrix_set_color(77, 0xFF, 0x0, 0x0); // Right side LED 4 - rgb_matrix_set_color(80, 0xFF, 0x0, 0x0); // Left side LED 5 - rgb_matrix_set_color(81, 0xFF, 0x0, 0x0); // Right side LED 5 - rgb_matrix_set_color(83, 0xFF, 0x0, 0x0); // Left side LED 6 - rgb_matrix_set_color(84, 0xFF, 0x0, 0x0); // Right side LED 6 - rgb_matrix_set_color(87, 0xFF, 0x0, 0x0); // Left side LED 7 - rgb_matrix_set_color(88, 0xFF, 0x0, 0x0); // Right side LED 7 - rgb_matrix_set_color(91, 0xFF, 0x0, 0x0); // Left side LED 8 - rgb_matrix_set_color(92, 0xFF, 0x0, 0x0); // Right side LED 8 - rgb_matrix_set_color(3, 0xFF, 0x0, 0x0); // CAPS LED +static void set_rgb_layer_winfn(void) { + rgb_matrix_set_color(0, WIN_FN_COLOR); + rgb_matrix_set_color(6, WIN_FN_COLOR); + rgb_matrix_set_color(12, WIN_FN_COLOR); + rgb_matrix_set_color(18, WIN_FN_COLOR); + rgb_matrix_set_color(23, WIN_FN_COLOR); + rgb_matrix_set_color(28, WIN_FN_COLOR); + rgb_matrix_set_color(34, WIN_FN_COLOR); + rgb_matrix_set_color(39, WIN_FN_COLOR); + rgb_matrix_set_color(44, WIN_FN_COLOR); + rgb_matrix_set_color(50, WIN_FN_COLOR); + rgb_matrix_set_color(56, WIN_FN_COLOR); + rgb_matrix_set_color(61, WIN_FN_COLOR); + rgb_matrix_set_color(66, WIN_FN_COLOR); + rgb_matrix_set_color(2, WIN_FN_COLOR); + rgb_matrix_set_color(3, WIN_FN_COLOR); + rgb_matrix_set_color(8, WIN_FN_COLOR); + rgb_matrix_set_color(9, WIN_FN_COLOR); + rgb_matrix_set_color(14, WIN_FN_COLOR); + rgb_matrix_set_color(15, WIN_FN_COLOR); + rgb_matrix_set_color(20, WIN_FN_COLOR); + rgb_matrix_set_color(21, WIN_FN_COLOR); + rgb_matrix_set_color(25, WIN_FN_COLOR); + rgb_matrix_set_color(26, WIN_FN_COLOR); + rgb_matrix_set_color(38, WIN_FN_COLOR); + rgb_matrix_set_color(93, WIN_FN_COLOR); + rgb_matrix_set_color(72, WIN_FN_COLOR); + rgb_matrix_set_color(75, WIN_FN_COLOR); + rgb_matrix_set_color(86, WIN_FN_COLOR); + rgb_matrix_set_color(82, WIN_FN_COLOR); +} + +static void set_rgb_layer_macfn(void) { + rgb_matrix_set_color(0, MAC_FN_COLOR); + rgb_matrix_set_color(6, MAC_FN_COLOR); + rgb_matrix_set_color(12, MAC_FN_COLOR); + rgb_matrix_set_color(18, MAC_FN_COLOR); + rgb_matrix_set_color(23, MAC_FN_COLOR); + rgb_matrix_set_color(28, MAC_FN_COLOR); + rgb_matrix_set_color(34, MAC_FN_COLOR); + rgb_matrix_set_color(39, MAC_FN_COLOR); + rgb_matrix_set_color(44, MAC_FN_COLOR); + rgb_matrix_set_color(50, MAC_FN_COLOR); + rgb_matrix_set_color(56, MAC_FN_COLOR); + rgb_matrix_set_color(61, MAC_FN_COLOR); + rgb_matrix_set_color(66, MAC_FN_COLOR); + rgb_matrix_set_color(2, MAC_FN_COLOR); + rgb_matrix_set_color(3, MAC_FN_COLOR); + rgb_matrix_set_color(8, MAC_FN_COLOR); + rgb_matrix_set_color(9, MAC_FN_COLOR); + rgb_matrix_set_color(14, MAC_FN_COLOR); + rgb_matrix_set_color(15, MAC_FN_COLOR); + rgb_matrix_set_color(20, MAC_FN_COLOR); + rgb_matrix_set_color(21, MAC_FN_COLOR); + rgb_matrix_set_color(25, MAC_FN_COLOR); + rgb_matrix_set_color(26, MAC_FN_COLOR); + rgb_matrix_set_color(38, MAC_FN_COLOR); + rgb_matrix_set_color(93, MAC_FN_COLOR); + rgb_matrix_set_color(72, MAC_FN_COLOR); + rgb_matrix_set_color(75, MAC_FN_COLOR); + rgb_matrix_set_color(86, MAC_FN_COLOR); + rgb_matrix_set_color(82, MAC_FN_COLOR); + rgb_matrix_set_color(17, MAC_FN_COLOR); } #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/readme.md index b080f02c6b3..2b21bd2821f 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/readme.md +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/readme.md @@ -7,15 +7,23 @@ The differences are as follows: - Dedicated MacOS and Windows/Linux layers - Switching between them by pressing Fn + CAPS LOCK +- VIA support - Disabled Mouse Keys (to fix issues with KVM switches and also because they're not used here anyway) - RGB turns off after 20 minutes of inactivity - RGB turns off when USB is suspended - Layer 0: - - Print Screen (default) -> Delete - - Delete (default) -> Home + - Delete -> Insert + - Page Up -> Delete + - Page Down -> Home - Layer 1 (accessed by pressing Fn): - - Fn + Delete -> Insert - - Fn + Home -> Print Screen + - Fn + Insert -> Pause + - Fn + Delete -> Scroll Lock + - Fn + Esc -> Clear EEPROM + - Fn + (Left) CMD (macOS layout) -> Toggle the CMD + Q delay + +On the Mac layer, pressing CMD + Q will not immediately send the combination.\ +There's a configurable delay (defaults to 1 second) to send it.\ +This is done mainly to prevent hitting CMD + Q by mistake when alternating between applications with CMD + Tab. This keymap also includes CAPS LOCK ON indicator.\ All left and right side LEDs, and the Caps key LED will turn solid red while CAPS LOCK is ON. diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk index d5942a2e904..14e41063218 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk @@ -3,21 +3,28 @@ # Disabling MouseKey because it breaks my KVM switch MOUSEKEY_ENABLE = no -# Cherry MX-style switches and diodes are not susceptible to noise, no need for noise-resistant algorithms. -# This significantly reduces latency. +# Use sym_eager_pk for better latency when gaming. # -# The matrix scan frequency seems to be around 1820 Hz, so even sym_defer_g would perform ok, -# but the "defer" part would mean we would wait DEBOUNCE ms before sending any events. -# Using "asym_eager_defer_pk" does not seem to benefit us in anything. -# The GMMK Pro has more then enough system resources for a per-key algorithm. -# Using an "eager" algorithm leads to extremely low latency while also reducing the chances of chattering -# due to it's "post-event" debouncing (of sorts). +# Previous issues with sym_defer_pk (and sym_eager_pk and debounce times +# shorter than 8ms) were due to Glorious' horrible hot-swap sockets. +# These issues were 100% resolved after I replaced them with Gateron hot-swap sockets. # -# I have observed zero chattering or double-keypress issues on my Gateron Yellow switches. -# Most chattering issues on the GMMK Pro seem to be related to its proprietary hot-swap sockets anyway. +# The old sockets apparently didn't hold onto the legs of the switches at all. +# +# Using eager might not be a good idea with other switch types, but I only use +# linears now, so this should be ok. +# +# asym_eager_defer_pk also works well and it is more resistant to chatter at +# the cost of delay when releasing a key being slightly higher. DEBOUNCE_TYPE = sym_eager_pk # Useful for debugging # CONSOLE_ENABLE = yes # DEBUG_MATRIX_SCAN_RATE_ENABLE = yes # DEBUG_MATRIX_SCAN_RATE = yes + +# Encoder Map support +ENCODER_MAP_ENABLE = yes + +# Enables VIA +VIA_ENABLE = yes diff --git a/keyboards/gmmk/pro/rev1/iso/info.json b/keyboards/gmmk/pro/rev1/iso/info.json index 7b78ca57163..52ea4538c8f 100644 --- a/keyboards/gmmk/pro/rev1/iso/info.json +++ b/keyboards/gmmk/pro/rev1/iso/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], @@ -21,6 +21,9 @@ {"pin_a": "C15", "pin_b": "C14"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "bootmagic": { "matrix": [1, 3] }, diff --git a/keyboards/gmmk/pro/rev2/ansi/info.json b/keyboards/gmmk/pro/rev2/ansi/info.json index ff693e35739..082b5f86568 100644 --- a/keyboards/gmmk/pro/rev2/ansi/info.json +++ b/keyboards/gmmk/pro/rev2/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], @@ -21,6 +21,9 @@ {"pin_a": "C15", "pin_b": "C14"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "bootmagic": { "matrix": [1, 3] }, diff --git a/keyboards/gmmk/pro/rev2/iso/info.json b/keyboards/gmmk/pro/rev2/iso/info.json index 972551ec413..a4aef24e658 100644 --- a/keyboards/gmmk/pro/rev2/iso/info.json +++ b/keyboards/gmmk/pro/rev2/iso/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "AW20216" + "driver": "aw20216" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], @@ -21,6 +21,9 @@ {"pin_a": "C15", "pin_b": "C14"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "bootmagic": { "matrix": [1, 3] }, diff --git a/keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c b/keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c index d551f4cb504..065cf3eddc0 100644 --- a/keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c +++ b/keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c @@ -236,10 +236,6 @@ void matrix_init_user(void) { #endif } -void matrix_scan_user(void) { - -} - layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case _BL: @@ -263,7 +259,3 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/gopolar/gg86/info.json b/keyboards/gopolar/gg86/info.json index dbdf673f3eb..470709ca752 100644 --- a/keyboards/gopolar/gg86/info.json +++ b/keyboards/gopolar/gg86/info.json @@ -13,7 +13,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "C7", "E6", "D2", "D3"], diff --git a/keyboards/gopolar/gg86/rules.mk b/keyboards/gopolar/gg86/rules.mk index 9eef6b6cc41..acdf49b47da 100644 --- a/keyboards/gopolar/gg86/rules.mk +++ b/keyboards/gopolar/gg86/rules.mk @@ -22,4 +22,3 @@ RGB_MATRIX_ENABLE = yes # OLED enabled OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # OLED display diff --git a/keyboards/gray_studio/aero75/config.h b/keyboards/gray_studio/aero75/config.h index a55a587467e..d00df8f11f6 100644 --- a/keyboards/gray_studio/aero75/config.h +++ b/keyboards/gray_studio/aero75/config.h @@ -5,22 +5,6 @@ #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== all animations 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_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/gray_studio/aero75/info.json b/keyboards/gray_studio/aero75/info.json index e8a08e79e4e..476ee33d617 100644 --- a/keyboards/gray_studio/aero75/info.json +++ b/keyboards/gray_studio/aero75/info.json @@ -12,7 +12,23 @@ "pin": "B10" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["A3", "A5", "A4", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "B1", "A8", "B15", "B14", "B13"], diff --git a/keyboards/gray_studio/aero75/rules.mk b/keyboards/gray_studio/aero75/rules.mk index ecfd4b5b959..4a544448674 100644 --- a/keyboards/gray_studio/aero75/rules.mk +++ b/keyboards/gray_studio/aero75/rules.mk @@ -1,5 +1,3 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Build Options # change yes to no to disable diff --git a/keyboards/gray_studio/apollo80/config.h b/keyboards/gray_studio/apollo80/config.h index 362574dea83..d8a6abbc38c 100644 --- a/keyboards/gray_studio/apollo80/config.h +++ b/keyboards/gray_studio/apollo80/config.h @@ -16,21 +16,4 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 22 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD - /*== or choose 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/gray_studio/apollo80/info.json b/keyboards/gray_studio/apollo80/info.json index 1dfa43bfe1e..bbaa577c923 100644 --- a/keyboards/gray_studio/apollo80/info.json +++ b/keyboards/gray_studio/apollo80/info.json @@ -12,7 +12,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D4", "D6", "D2", "D3", "D5"], diff --git a/keyboards/gray_studio/cod67/config.h b/keyboards/gray_studio/cod67/config.h index 7a2d573aaf7..578f469599a 100644 --- a/keyboards/gray_studio/cod67/config.h +++ b/keyboards/gray_studio/cod67/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/gray_studio/cod67/info.json b/keyboards/gray_studio/cod67/info.json index fe6f1b18670..653885f963e 100644 --- a/keyboards/gray_studio/cod67/info.json +++ b/keyboards/gray_studio/cod67/info.json @@ -8,6 +8,24 @@ "pid": "0x1000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B2" }, @@ -17,6 +35,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D4", "on_state": 0 }, diff --git a/keyboards/gray_studio/hb85/config.h b/keyboards/gray_studio/hb85/config.h deleted file mode 100644 index 41df8a357d2..00000000000 --- a/keyboards/gray_studio/hb85/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 5 -#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/gray_studio/hb85/info.json b/keyboards/gray_studio/hb85/info.json index 138b1bfe5c9..c0bd4749c14 100644 --- a/keyboards/gray_studio/hb85/info.json +++ b/keyboards/gray_studio/hb85/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/gray_studio/space65/config.h b/keyboards/gray_studio/space65/config.h index b1c76459fcf..b5b661bef2a 100644 --- a/keyboards/gray_studio/space65/config.h +++ b/keyboards/gray_studio/space65/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/gray_studio/space65/info.json b/keyboards/gray_studio/space65/info.json index 8bcd90705ac..db7c2f3b68b 100644 --- a/keyboards/gray_studio/space65/info.json +++ b/keyboards/gray_studio/space65/info.json @@ -18,6 +18,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/gray_studio/space65r3/config.h b/keyboards/gray_studio/space65r3/config.h index 88824052b26..27d4b4a6e56 100644 --- a/keyboards/gray_studio/space65r3/config.h +++ b/keyboards/gray_studio/space65r3/config.h @@ -4,22 +4,6 @@ #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLED_NUM 5 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== all animations 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_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/gray_studio/space65r3/info.json b/keyboards/gray_studio/space65r3/info.json index 7caa7cdd603..85e0978a598 100644 --- a/keyboards/gray_studio/space65r3/info.json +++ b/keyboards/gray_studio/space65r3/info.json @@ -12,7 +12,23 @@ "pin": "B10" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["A3", "A5", "A4", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "B0", "A8", "B15", "B14", "B13"], diff --git a/keyboards/gray_studio/space65r3/rules.mk b/keyboards/gray_studio/space65r3/rules.mk index 703a4ac4e13..edf9d72c6e6 100644 --- a/keyboards/gray_studio/space65r3/rules.mk +++ b/keyboards/gray_studio/space65r3/rules.mk @@ -1,5 +1,3 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Build Options # change yes to no to disable diff --git a/keyboards/gray_studio/think65/hotswap/config.h b/keyboards/gray_studio/think65/hotswap/config.h deleted file mode 100644 index 7a2cc1f03c8..00000000000 --- a/keyboards/gray_studio/think65/hotswap/config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright 2019 MechMerlin - -This 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 RGBLED_NUM 22 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/gray_studio/think65/hotswap/info.json b/keyboards/gray_studio/think65/hotswap/info.json index 1912e10989b..382ef80517b 100644 --- a/keyboards/gray_studio/think65/hotswap/info.json +++ b/keyboards/gray_studio/think65/hotswap/info.json @@ -8,6 +8,24 @@ "pid": "0x4001", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/gray_studio/think65/solder/config.h b/keyboards/gray_studio/think65/solder/config.h deleted file mode 100644 index 7a2cc1f03c8..00000000000 --- a/keyboards/gray_studio/think65/solder/config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright 2019 MechMerlin - -This 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 RGBLED_NUM 22 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/gray_studio/think65/solder/info.json b/keyboards/gray_studio/think65/solder/info.json index 7bc54a5bc5b..e6c0b972b85 100644 --- a/keyboards/gray_studio/think65/solder/info.json +++ b/keyboards/gray_studio/think65/solder/info.json @@ -8,6 +8,24 @@ "pid": "0x4000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/gray_studio/think65v3/config.h b/keyboards/gray_studio/think65v3/config.h new file mode 100644 index 00000000000..0a0596e64c6 --- /dev/null +++ b/keyboards/gray_studio/think65v3/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#pragma once +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD +/* 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 + \ No newline at end of file diff --git a/keyboards/gray_studio/think65v3/info.json b/keyboards/gray_studio/think65v3/info.json new file mode 100644 index 00000000000..0fbab667d44 --- /dev/null +++ b/keyboards/gray_studio/think65v3/info.json @@ -0,0 +1,275 @@ +{ + "keyboard_name": "think65v3", + "url": "https://graystudio.club/products/testthink6-5-v3", + "maintainer": "edwardslau", + "manufacturer":"GrayStudio", + "processor": "STM32F072", + "diode_direction": "COL2ROW", + "bootloader": "stm32-dfu", + "usb": { + "vid":"0x4753", + "pid":"0x4003", + "device_version": "0.0.3" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "ws2812": { + "pin": "B10" + } + "matrix_pins": { + "cols": ["A3", "A5", "A4", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "B0", "A8", "B15", "B14", "B13"], + "rows": ["A6", "B12", "A2", "A0", "A1"] + }, +"rgblight": { + "led_count": 6, + "sleep": true, + "max_brightness": 150, + "layers": { + "enabled": true + "override_rgb": true + }, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0,0], "x": 0, "y": 0}, + {"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": [0,15],"x": 15, "y": 0}, + + {"matrix": [1,0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1,2], "x": 1.5, "y": 1}, + {"matrix": [1,3], "x": 2.5, "y": 1}, + {"matrix": [1,4], "x": 3.5, "y": 1}, + {"matrix": [1,5], "x": 4.5, "y": 1}, + {"matrix": [1,6], "x": 5.5, "y": 1}, + {"matrix": [1,7], "x": 6.5, "y": 1}, + {"matrix": [1,8], "x": 7.5, "y": 1}, + {"matrix": [1,9], "x": 8.5, "y": 1}, + {"matrix": [1,10],"x": 9.5, "y": 1}, + {"matrix": [1,11],"x": 10.5, "y": 1}, + {"matrix": [1,12],"x": 11.5, "y": 1}, + {"matrix": [1,13],"x": 12.5, "y": 1}, + {"matrix": [1,14],"x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1,15],"x": 15, "y": 1}, + + {"matrix": [2,0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2,2], "x": 1.75, "y": 2}, + {"matrix": [2,3], "x": 2.75, "y": 2}, + {"matrix": [2,4], "x": 3.75, "y": 2}, + {"matrix": [2,5], "x": 4.75, "y": 2}, + {"matrix": [2,6], "x": 5.75, "y": 2}, + {"matrix": [2,7], "x": 6.75, "y": 2}, + {"matrix": [2,8], "x": 7.75, "y": 2}, + {"matrix": [2,9], "x": 8.75, "y": 2}, + {"matrix": [2,10],"x": 9.75, "y": 2}, + {"matrix": [2,11],"x": 10.75, "y": 2}, + {"matrix": [2,12],"x": 11.75, "y": 2}, + {"matrix": [2,13],"x": 12.75, "y": 2, "w": 2.25}, + + {"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,13],"x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3,14],"x": 14, "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,10],"x": 10, "y": 4, "w": 1.25}, + {"matrix": [4,11],"x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4,13],"x": 13, "y": 4}, + {"matrix": [4,14],"x": 14, "y": 4}, + {"matrix": [4,15],"x": 15, "y": 4} + ] + }, + "LAYOUT_65_blocker": { + "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": [0,15],"x": 15, "y": 0}, + + {"matrix": [1,0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1,2], "x": 1.5, "y": 1}, + {"matrix": [1,3], "x": 2.5, "y": 1}, + {"matrix": [1,4], "x": 3.5, "y": 1}, + {"matrix": [1,5], "x": 4.5, "y": 1}, + {"matrix": [1,6], "x": 5.5, "y": 1}, + {"matrix": [1,7], "x": 6.5, "y": 1}, + {"matrix": [1,8], "x": 7.5, "y": 1}, + {"matrix": [1,9], "x": 8.5, "y": 1}, + {"matrix": [1,10],"x": 9.5, "y": 1}, + {"matrix": [1,11],"x": 10.5, "y": 1}, + {"matrix": [1,12],"x": 11.5, "y": 1}, + {"matrix": [1,13],"x": 12.5, "y": 1}, + {"matrix": [1,14],"x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1,15],"x": 15, "y": 1}, + + {"matrix": [2,0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2,2], "x": 1.75, "y": 2}, + {"matrix": [2,3], "x": 2.75, "y": 2}, + {"matrix": [2,4], "x": 3.75, "y": 2}, + {"matrix": [2,5], "x": 4.75, "y": 2}, + {"matrix": [2,6], "x": 5.75, "y": 2}, + {"matrix": [2,7], "x": 6.75, "y": 2}, + {"matrix": [2,8], "x": 7.75, "y": 2}, + {"matrix": [2,9], "x": 8.75, "y": 2}, + {"matrix": [2,10],"x": 9.75, "y": 2}, + {"matrix": [2,11],"x": 10.75, "y": 2}, + {"matrix": [2,12],"x": 11.75, "y": 2}, + {"matrix": [2,13],"x": 12.75, "y": 2, "w": 2.25}, + + {"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,13],"x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3,14],"x": 14, "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,10],"x": 10, "y": 4, "w": 1.25}, + {"matrix": [4,11],"x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4,13],"x": 13, "y": 4}, + {"matrix": [4,14],"x": 14, "y": 4}, + {"matrix": [4,15],"x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "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": [0,15],"x": 15, "y": 0}, + + {"matrix": [1,0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1,2], "x": 1.5, "y": 1}, + {"matrix": [1,3], "x": 2.5, "y": 1}, + {"matrix": [1,4], "x": 3.5, "y": 1}, + {"matrix": [1,5], "x": 4.5, "y": 1}, + {"matrix": [1,6], "x": 5.5, "y": 1}, + {"matrix": [1,7], "x": 6.5, "y": 1}, + {"matrix": [1,8], "x": 7.5, "y": 1}, + {"matrix": [1,9], "x": 8.5, "y": 1}, + {"matrix": [1,10],"x": 9.5, "y": 1}, + {"matrix": [1,11],"x": 10.5, "y": 1}, + {"matrix": [1,12],"x": 11.5, "y": 1}, + {"matrix": [1,13],"x": 12.5, "y": 1}, + {"matrix": [1,15],"x": 15, "y": 1}, + + {"matrix": [2,0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2,2], "x": 1.75, "y": 2}, + {"matrix": [2,3], "x": 2.75, "y": 2}, + {"matrix": [2,4], "x": 3.75, "y": 2}, + {"matrix": [2,5], "x": 4.75, "y": 2}, + {"matrix": [2,6], "x": 5.75, "y": 2}, + {"matrix": [2,7], "x": 6.75, "y": 2}, + {"matrix": [2,8], "x": 7.75, "y": 2}, + {"matrix": [2,9], "x": 8.75, "y": 2}, + {"matrix": [2,10],"x": 9.75, "y": 2}, + {"matrix": [2,11],"x": 10.75, "y": 2}, + {"matrix": [1,14],"x": 11.75, "y": 2}, + {"matrix": [2,13],"x": 12.75, "y": 2}, + {"matrix": [2,14],"x": 13.75, "y": 1, "w": 1.25, "h": 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,13],"x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3,14],"x": 14, "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,10],"x": 10, "y": 4, "w": 1.25}, + {"matrix": [4,11],"x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4,13],"x": 13, "y": 4}, + {"matrix": [4,14],"x": 14, "y": 4}, + {"matrix": [4,15],"x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/gray_studio/think65v3/keymaps/default/keymap.c b/keyboards/gray_studio/think65v3/keymaps/default/keymap.c new file mode 100644 index 00000000000..82ff711808e --- /dev/null +++ b/keyboards/gray_studio/think65v3/keymaps/default/keymap.c @@ -0,0 +1,20 @@ +// Copyright 2023 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_HOME, + 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_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_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, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gray_studio/think65v3/keymaps/via/keymap.c b/keyboards/gray_studio/think65v3/keymaps/via/keymap.c new file mode 100644 index 00000000000..82ff711808e --- /dev/null +++ b/keyboards/gray_studio/think65v3/keymaps/via/keymap.c @@ -0,0 +1,20 @@ +// Copyright 2023 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_HOME, + 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_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_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, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gray_studio/think65v3/keymaps/via/rules.mk b/keyboards/gray_studio/think65v3/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/gray_studio/think65v3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/gray_studio/think65v3/readme.md b/keyboards/gray_studio/think65v3/readme.md new file mode 100644 index 00000000000..dc09a00d1d2 --- /dev/null +++ b/keyboards/gray_studio/think65v3/readme.md @@ -0,0 +1,21 @@ +# Gray Studio think65v3 + + A 65% keyboard by Graystudio. PCB designed and manufactured by DEMO Studio. + + * Keyboard Maintainer: [edwardslau](https://github.com/edwardslau) + * Hardware Support: Think6.5 V3 + * Hardware Availability: + + Make example for this keyboard (after setting up your build environment): + + make gray_studio/think65v3:default + + Flashing example for this keyboard: + + make gray_studio/think65v3:default:flash + +## Bootloader + +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead + +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 infromation. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/gray_studio/think65v3/rules.mk b/keyboards/gray_studio/think65v3/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/gray_studio/think65v3/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/gray_studio/think65v3/think65v3.c b/keyboards/gray_studio/think65v3/think65v3.c new file mode 100644 index 00000000000..04dd85406fb --- /dev/null +++ b/keyboards/gray_studio/think65v3/think65v3.c @@ -0,0 +1,22 @@ +// Copyright 2023 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include "quantum.h" +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,6, HSV_WHITE} +); +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +void keyboard_post_init_kb(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; + keyboard_post_init_user(); +} +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + rgblight_set_layer_state(0, led_state.caps_lock); + } + return res; +} diff --git a/keyboards/grid600/press/config.h b/keyboards/grid600/press/config.h index 81bccd015b4..a7f362f47b7 100644 --- a/keyboards/grid600/press/config.h +++ b/keyboards/grid600/press/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 4 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/grid600/press/info.json b/keyboards/grid600/press/info.json index 6a5d86e0c73..e808036385d 100644 --- a/keyboards/grid600/press/info.json +++ b/keyboards/grid600/press/info.json @@ -12,6 +12,23 @@ "cols": ["F1", "F4", "F5", "F6"], "rows": ["F0"] }, + "rgblight": { + "hue_steps": 10, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/gvalchca/spaccboard/info.json b/keyboards/gvalchca/spaccboard/info.json index 71c88a0db04..1ce128b5966 100644 --- a/keyboards/gvalchca/spaccboard/info.json +++ b/keyboards/gvalchca/spaccboard/info.json @@ -201,7 +201,7 @@ {"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": 1, "w": 2.25, "h": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, diff --git a/keyboards/h0oni/deskpad/config.h b/keyboards/h0oni/deskpad/config.h index ddcf0ebe4af..441e3b8c1a6 100644 --- a/keyboards/h0oni/deskpad/config.h +++ b/keyboards/h0oni/deskpad/config.h @@ -20,6 +20,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* Defining tapping term */ -#define TAPPING_TERM 250 \ No newline at end of file diff --git a/keyboards/h0oni/deskpad/info.json b/keyboards/h0oni/deskpad/info.json index 96a23f7f615..e51aa7e7dfc 100644 --- a/keyboards/h0oni/deskpad/info.json +++ b/keyboards/h0oni/deskpad/info.json @@ -8,6 +8,9 @@ "pid": "0x4450", "device_version": "0.0.1" }, + "tapping": { + "term": 250 + }, "matrix_pins": { "cols": ["D0", "D4", "D1"], "rows": ["D7", "C6"] diff --git a/keyboards/h0oni/hotduck/config.h b/keyboards/h0oni/hotduck/config.h index 9891423e3fe..4c8c95e41ec 100644 --- a/keyboards/h0oni/hotduck/config.h +++ b/keyboards/h0oni/hotduck/config.h @@ -16,23 +16,6 @@ #pragma once -/* RGB Underglow - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 15 -#define RGBLIGHT_VAL_STEP 15 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/h0oni/hotduck/info.json b/keyboards/h0oni/hotduck/info.json index 6e8e2e61448..939d1ec262b 100644 --- a/keyboards/h0oni/hotduck/info.json +++ b/keyboards/h0oni/hotduck/info.json @@ -13,6 +13,24 @@ "rows": ["B6", "B2", "B3", "B1", "F7", "F6", "F5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "hue_steps": 10, + "saturation_steps": 15, + "brightness_steps": 15, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/hackpad/info.json b/keyboards/hackpad/info.json new file mode 100644 index 00000000000..0a77c9320c5 --- /dev/null +++ b/keyboards/hackpad/info.json @@ -0,0 +1,78 @@ +{ + "manufacturer": "Nico Stuhlmueller", + "keyboard_name": "hackpad", + "maintainer": "ThePurox", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["B1", "B3", "B2", "B6"], + "rows": ["C6", "D7", "E6", "B4", "B5"] + }, + "encoder": { + "rotary": [ + {"pin_a": "F5", "pin_b": "F4"} + ] + }, + "url": "https://git.imaginaerraum.de/Purox/Hackpad", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "pin": "D4" + }, + "rgblight": { + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"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}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4} + ] + } + } +} diff --git a/keyboards/hackpad/keymaps/default/keymap.c b/keyboards/hackpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..43489484ae4 --- /dev/null +++ b/keyboards/hackpad/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2023 Nico Stuhlmueller (@ThePurox) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "keymap_german.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* ┌───┐ + * │MUT│ + * ┌───┬───┬───┼───┤ + * │ 7 │ 8 │ 9 │ + │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ - │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ * │ + * ├───┼───┼───┼───┤ + * │ 0 │ . │Ent│ / │ + * └───┴───┴───┴───┘ + */ + [0] = LAYOUT( LT(1, KC_MUTE), + KC_7, KC_8, KC_9, DE_PLUS, + KC_4, KC_5, KC_6, DE_MINS, + KC_1, KC_2, KC_3, DE_ASTR, + KC_0, KC_DOT, KC_ENT, DE_SLSH), + + [1] = LAYOUT( _______, + RGB_M_P, RGB_M_B, RGB_M_R, RGB_HUI, + RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_HUD, + RGB_M_X, RGB_M_G, RGB_M_TW, RGB_VAI, + RGB_TOG, RGB_SAI, RGB_SAD, RGB_VAD)}; diff --git a/keyboards/hackpad/readme.md b/keyboards/hackpad/readme.md new file mode 100644 index 00000000000..f992e55b39c --- /dev/null +++ b/keyboards/hackpad/readme.md @@ -0,0 +1,31 @@ +# hackpad + +![hackpad](https://git.imaginaerraum.de/Purox/Hackpad/raw/branch/main/assets/pic.jpg) + + +The `Hackpad` is a 4x4 numpad/macropad designed for the Arduino Day 2023 in Bayreuth in cooperation with the hackspace [Imaginärraum e.V.](imaginaerraum.de) and [Fablab-Bayreuth e.V.](fablab-bayreuth.de). +It supports 16 MX-style switches, an EC-11 rotary encoder, and per key RGB LEDs based on SK6812. + +In v0.2 all necessary components are through hole components (except for an optional reset switch and RGB-LEDs), but the ProMicro protrudes out of the case. +In v0.3 this is fixed by moving some diodes to the bottom side. The bottom diodes however are SMD only. + +* Keyboard Maintainer: [Nico Stuhlmueller](https://github.com/ThePurox) +* Hardware Supported: ProMicro is supported in v0.2 and v0.3 of the PCBs +* Hardware Availability: PCBs can be found [here](https://git.imaginaerraum.de/Purox/Hackpad) + +Make example for this keyboard (after setting up your build environment): + + make hackpad:default + +Flashing example for this keyboard: + + make hackpad: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: + +* **Physical reset button**: Briefly press the button on the top 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/hackpad/rules.mk b/keyboards/hackpad/rules.mk new file mode 100644 index 00000000000..7114cc32958 --- /dev/null +++ b/keyboards/hackpad/rules.mk @@ -0,0 +1 @@ +# this file is intentionally left blank diff --git a/keyboards/hadron/ver2/config.h b/keyboards/hadron/ver2/config.h index 7b7acf32b64..ca2798c9076 100644 --- a/keyboards/hadron/ver2/config.h +++ b/keyboards/hadron/ver2/config.h @@ -18,18 +18,3 @@ along with this program. If not, see . // configure oled driver for the 128x32 oled #define OLED_UPDATE_INTERVAL 33 // ~30fps - -/* ws2812 RGB LED*/ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/hadron/ver2/info.json b/keyboards/hadron/ver2/info.json index 612d3af50aa..fb1dc102b7e 100644 --- a/keyboards/hadron/ver2/info.json +++ b/keyboards/hadron/ver2/info.json @@ -7,6 +7,22 @@ "rows": ["D7", "E6", "B4", "B5", "B6"] }, "diode_direction": "COL2ROW", + "rgblight": { + "hue_steps": 10, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/hadron/ver2/rules.mk b/keyboards/hadron/ver2/rules.mk index d07da3fca08..188b4696f18 100644 --- a/keyboards/hadron/ver2/rules.mk +++ b/keyboards/hadron/ver2/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/hadron/ver3/config.h b/keyboards/hadron/ver3/config.h index 02e4116bb60..c9fc1028f82 100644 --- a/keyboards/hadron/ver3/config.h +++ b/keyboards/hadron/ver3/config.h @@ -60,66 +60,54 @@ /* Haptic Driver initialization settings * Feedback Control Settings */ -#define FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ -#define FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ +#define DRV2605L_FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* default 3V ERM vibration motor voltage and library*/ -#if FB_ERM_LRA == 0 -#define RATED_VOLTAGE 3 -#define V_RMS 2.3 -#define V_PEAK 3.30 +#if DRV2605L_FB_ERM_LRA == 0 +#define DRV2605L_RATED_VOLTAGE 3 +#define DRV2605L_V_RMS 2.3 +#define DRV2605L_V_PEAK 3.30 /* Library Selection */ -#define LIB_SELECTION 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ +#define DRV2605L_LIBRARY 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ /* default 2V LRA voltage and library */ -#elif FB_ERM_LRA == 1 -#define RATED_VOLTAGE 2 -#define V_RMS 2.0 -#define V_PEAK 2.85 -#define F_LRA 200 +#elif DRV2605L_FB_ERM_LRA == 1 +#define DRV2605L_RATED_VOLTAGE 2 +#define DRV2605L_V_RMS 2.0 +#define DRV2605L_V_PEAK 2.85 +#define DRV2605L_F_LRA 200 /* Library Selection */ -#define LIB_SELECTION 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ +#define DRV2605L_LIBRARY 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ #endif /* Control 1 register settings */ -#define DRIVE_TIME 25 -#define AC_COUPLE 0 -#define STARTUP_BOOST 1 +#define DRV2605L_DRIVE_TIME 25 +#define DRV2605L_AC_COUPLE 0 +#define DRV2605L_STARTUP_BOOST 1 /* Control 2 Settings */ -#define BIDIR_INPUT 1 -#define BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ -#define SAMPLE_TIME 3 -#define BLANKING_TIME 1 -#define IDISS_TIME 1 +#define DRV2605L_BIDIR_INPUT 1 +#define DRV2605L_BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ +#define DRV2605L_SAMPLE_TIME 3 +#define DRV2605L_BLANKING_TIME 1 +#define DRV2605L_IDISS_TIME 1 /* Control 3 settings */ -#define NG_THRESH 2 -#define ERM_OPEN_LOOP 1 -#define SUPPLY_COMP_DIS 0 -#define DATA_FORMAT_RTO 0 -#define LRA_DRIVE_MODE 0 -#define N_PWM_ANALOG 0 -#define LRA_OPEN_LOOP 0 +#define DRV2605L_NG_THRESH 2 +#define DRV2605L_ERM_OPEN_LOOP 1 +#define DRV2605L_SUPPLY_COMP_DIS 0 +#define DRV2605L_DATA_FORMAT_RTO 0 +#define DRV2605L_LRA_DRIVE_MODE 0 +#define DRV2605L_N_PWM_ANALOG 0 +#define DRV2605L_LRA_OPEN_LOOP 0 /* Control 4 settings */ -#define ZC_DET_TIME 0 -#define AUTO_CAL_TIME 3 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - -#define RGBLED_NUM 10 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define DRV2605L_ZC_DET_TIME 0 +#define DRV2605L_AUTO_CAL_TIME 3 + +#define RGB_MATRIX_LED_COUNT 10 // #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/hadron/ver3/info.json b/keyboards/hadron/ver3/info.json index 753a9676ceb..381a5dc5501 100644 --- a/keyboards/hadron/ver3/info.json +++ b/keyboards/hadron/ver3/info.json @@ -3,7 +3,7 @@ "device_version": "0.0.3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B8", "B2", "B10", "A0", "A1", "A2", "B0", "A3", "B1", "A6", "A7", "B12", "C13", "B11", "B9"], @@ -15,6 +15,21 @@ {"pin_a": "B13", "pin_b": "B14"} ] }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/hadron/ver3/keymaps/ishtob/config.h b/keyboards/hadron/ver3/keymaps/ishtob/config.h deleted file mode 100644 index 6f70f09beec..00000000000 --- a/keyboards/hadron/ver3/keymaps/ishtob/config.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/keyboards/hadron/ver3/keymaps/ishtob/keymap.c b/keyboards/hadron/ver3/keymaps/ishtob/keymap.c index e99ff55caf0..a3b522fa047 100644 --- a/keyboards/hadron/ver3/keymaps/ishtob/keymap.c +++ b/keyboards/hadron/ver3/keymaps/ishtob/keymap.c @@ -239,12 +239,3 @@ bool music_mask_user(uint16_t keycode) { return true; } } - - -void matrix_init_keymap(void) { -} - - -void matrix_scan_keymap(void) { -} - diff --git a/keyboards/hadron/ver3/keymaps/sebaslayout/keymap.c b/keyboards/hadron/ver3/keymaps/sebaslayout/keymap.c index 01fe45bd05e..fcae7f07c6c 100644 --- a/keyboards/hadron/ver3/keymaps/sebaslayout/keymap.c +++ b/keyboards/hadron/ver3/keymaps/sebaslayout/keymap.c @@ -41,17 +41,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ }; - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/hadron/ver3/rules.mk b/keyboards/hadron/ver3/rules.mk index 5739e57d19b..edc5fa7d5bf 100644 --- a/keyboards/hadron/ver3/rules.mk +++ b/keyboards/hadron/ver3/rules.mk @@ -12,7 +12,6 @@ AUDIO_ENABLE = yes RGBLIGHT_ENABLE = yes RGB_MATRIX_ENABLE = no # once arm_rgb is implemented HAPTIC_ENABLE = yes -HAPTIC_DRIVER = DRV2605L +HAPTIC_DRIVER = drv2605l OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLER = yes diff --git a/keyboards/halfcliff/config.h b/keyboards/halfcliff/config.h index 6f5dd093d65..d3c5de43387 100644 --- a/keyboards/halfcliff/config.h +++ b/keyboards/halfcliff/config.h @@ -25,14 +25,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { F5, F6, F7, D7, B5, F5, F6, F7, D7, B5 } #define MATRIX_COL_PINS { B4, E6, C6, B6, B2 } - #define RGBLED_NUM 10 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 5, 5 } - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/halfcliff/info.json b/keyboards/halfcliff/info.json index fb0666fbf43..0c9b4ddb0f4 100644 --- a/keyboards/halfcliff/info.json +++ b/keyboards/halfcliff/info.json @@ -16,6 +16,13 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "split_count": [5, 5] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/halokeys/elemental75/config.h b/keyboards/halokeys/elemental75/config.h index c23763ee9bf..ea52da29280 100644 --- a/keyboards/halokeys/elemental75/config.h +++ b/keyboards/halokeys/elemental75/config.h @@ -15,28 +15,6 @@ */ #pragma once -#define TAP_CODE_DELAY 10 // tap_code function delay for register and unregister - -#define RGBLED_NUM 22 -#define RGBLIGHT_SLEEP - -/* animations enabled */ -#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_DISABLE_KEYCODES - -// Tap dance term declaration -#define TAPPING_TERM 300 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/halokeys/elemental75/info.json b/keyboards/halokeys/elemental75/info.json index 5f8bdb38a6a..1ee23d967ba 100644 --- a/keyboards/halokeys/elemental75/info.json +++ b/keyboards/halokeys/elemental75/info.json @@ -18,11 +18,31 @@ {"pin_a": "B6", "pin_b": "B5"} ] }, + "tapping": { + "term": 300 + }, + "qmk": { + "tap_keycode_delay": 10 + }, "ws2812": { "pin": "A10" }, "rgblight": { - "max_brightness": 225 + "led_count": 22, + "max_brightness": 225, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F303", "bootloader": "stm32-dfu", diff --git a/keyboards/hand88/rules.mk b/keyboards/hand88/rules.mk old mode 100755 new mode 100644 index 266889cfe70..475da662628 --- a/keyboards/hand88/rules.mk +++ b/keyboards/hand88/rules.mk @@ -1,7 +1,3 @@ -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Build Options # change yes to no to disable diff --git a/keyboards/handwired/2x5keypad/config.h b/keyboards/handwired/2x5keypad/config.h index 819f0f640f5..5f360813239 100644 --- a/keyboards/handwired/2x5keypad/config.h +++ b/keyboards/handwired/2x5keypad/config.h @@ -5,6 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* Tap dancing params */ -#define TAPPING_TERM 250 diff --git a/keyboards/handwired/2x5keypad/info.json b/keyboards/handwired/2x5keypad/info.json index 1df0ccbdee5..b33273e19db 100644 --- a/keyboards/handwired/2x5keypad/info.json +++ b/keyboards/handwired/2x5keypad/info.json @@ -8,6 +8,9 @@ "pid": "0x2020", "device_version": "0.0.1" }, + "tapping": { + "term": 250 + }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4"], "rows": ["B3", "B2"] diff --git a/keyboards/handwired/3dp660/config.h b/keyboards/handwired/3dp660/config.h index f804456960f..c2949ab3a7a 100644 --- a/keyboards/handwired/3dp660/config.h +++ b/keyboards/handwired/3dp660/config.h @@ -17,9 +17,6 @@ along with this program. If not, see . #pragma once - -#define TAPPING_TERM 400 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/3dp660/info.json b/keyboards/handwired/3dp660/info.json index c3bc103d773..6d380fc3c60 100644 --- a/keyboards/handwired/3dp660/info.json +++ b/keyboards/handwired/3dp660/info.json @@ -8,6 +8,9 @@ "pid": "0x3660", "device_version": "0.0.1" }, + "tapping": { + "term": 400 + }, "matrix_pins": { "cols": ["D2", "D3", "C6", "C7", "D5", "D4", "D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1"], "rows": ["B0", "B1", "B2", "B3", "B7"] diff --git a/keyboards/handwired/42/config.h b/keyboards/handwired/42/config.h index 57a8664649b..fa9a83d08ec 100644 --- a/keyboards/handwired/42/config.h +++ b/keyboards/handwired/42/config.h @@ -4,5 +4,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define TAPPING_TERM 100 diff --git a/keyboards/handwired/42/info.json b/keyboards/handwired/42/info.json index dccafc6d86a..e2cc8dbf716 100644 --- a/keyboards/handwired/42/info.json +++ b/keyboards/handwired/42/info.json @@ -8,6 +8,12 @@ "pid": "0x0000", "device_version": "0.0.3" }, + "bluetooth": { + "driver": "bluefruit_le" + }, + "tapping": { + "term": 100 + }, "matrix_pins": { "cols": ["F5", "F6", "F7", "F0", "F1", "F4", "B6", "B5", "D7", "C7", "D6", "B7"], "rows": ["D2", "D3", "D0", "D1"] diff --git a/keyboards/handwired/42/rules.mk b/keyboards/handwired/42/rules.mk index 15cf817e7e3..0c5b506f63f 100644 --- a/keyboards/handwired/42/rules.mk +++ b/keyboards/handwired/42/rules.mk @@ -15,4 +15,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/6macro/config.h b/keyboards/handwired/6macro/config.h index 55716a3b7a7..248e43f88e7 100644 --- a/keyboards/handwired/6macro/config.h +++ b/keyboards/handwired/6macro/config.h @@ -17,18 +17,4 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 10 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -// #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 +#define RGB_MATRIX_LED_COUNT 10 diff --git a/keyboards/handwired/6macro/info.json b/keyboards/handwired/6macro/info.json index 5bc9833fa52..63dc42e7db6 100644 --- a/keyboards/handwired/6macro/info.json +++ b/keyboards/handwired/6macro/info.json @@ -8,11 +8,23 @@ "pid": "0x0037", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B0", "B1", "B2"], diff --git a/keyboards/handwired/aek64/config.h b/keyboards/handwired/aek64/config.h index 62911151584..fa8d618c747 100644 --- a/keyboards/handwired/aek64/config.h +++ b/keyboards/handwired/aek64/config.h @@ -22,6 +22,3 @@ along with this program. If not, see . #define RCPC_KEYS KC_RCTL, KC_TRNS, KC_PGDN #define LSPO_KEYS KC_LSFT, KC_TRNS, KC_HOME #define LCPO_KEYS KC_LCTL, KC_TRNS, KC_END - -/* Enable double tab */ -#define TAPPING_TERM 175 diff --git a/keyboards/handwired/aek64/info.json b/keyboards/handwired/aek64/info.json index dfa762ce817..e71156e9882 100644 --- a/keyboards/handwired/aek64/info.json +++ b/keyboards/handwired/aek64/info.json @@ -18,6 +18,9 @@ "levels": 5, "breathing": true }, + "tapping": { + "term": 175 + }, "processor": "at90usb1286", "bootloader": "halfkay", "layouts": { diff --git a/keyboards/handwired/alcor_dactyl/info.json b/keyboards/handwired/alcor_dactyl/info.json index 8d59a107f70..405436b6f5f 100644 --- a/keyboards/handwired/alcor_dactyl/info.json +++ b/keyboards/handwired/alcor_dactyl/info.json @@ -27,7 +27,7 @@ "rows": ["GP5", "GP4", "GP3", "GP2", "GP1", "GP0"] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"x": 0, "y": 0.375}, {"x": 16.5, "y": 0.38} diff --git a/keyboards/handwired/amigopunk/rules.mk b/keyboards/handwired/amigopunk/rules.mk index 395f25f859e..9c75f75d52d 100644 --- a/keyboards/handwired/amigopunk/rules.mk +++ b/keyboards/handwired/amigopunk/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/handwired/angel/config.h b/keyboards/handwired/angel/config.h index 3439d8c8c18..ee492503d12 100644 --- a/keyboards/handwired/angel/config.h +++ b/keyboards/handwired/angel/config.h @@ -17,8 +17,5 @@ along with this program. If not, see . #pragma once -// https://docs.qmk.fm/using-qmk/software-features/tap_hold -#define TAPPING_TERM 200 - /* define if matrix has ghost (lacks anti-ghosting diodes) */ #define MATRIX_HAS_GHOST diff --git a/keyboards/handwired/aranck/config.h b/keyboards/handwired/aranck/config.h index 6f44c0cbba3..b20b3099e9a 100644 --- a/keyboards/handwired/aranck/config.h +++ b/keyboards/handwired/aranck/config.h @@ -31,9 +31,6 @@ along with this program. If not, see . * Aranck-specific definitions END */ - -#define TAPPING_TERM 200 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/arrow_pad/keymaps/default/keymap.c b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c index cecaefe80de..820851f803e 100644 --- a/keyboards/handwired/arrow_pad/keymaps/default/keymap.c +++ b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c @@ -96,9 +96,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) { return true; } -void led_set_user(uint8_t usb_led) +bool led_update_user(led_t led_state) { - if (usb_led & (1<. /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/atreus50/info.json b/keyboards/handwired/atreus50/info.json index cb1d6f6f0a6..3df8e9f7bb1 100644 --- a/keyboards/handwired/atreus50/info.json +++ b/keyboards/handwired/atreus50/info.json @@ -8,6 +8,22 @@ "pid": "0x040D", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C6" }, diff --git a/keyboards/handwired/bdn9_ble/info.json b/keyboards/handwired/bdn9_ble/info.json index eb6e57abdec..e5c94794537 100644 --- a/keyboards/handwired/bdn9_ble/info.json +++ b/keyboards/handwired/bdn9_ble/info.json @@ -8,7 +8,11 @@ "pid": "0x1134", "device_version": "1.0.0" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "backlight": { + "driver": "timer", "pin": "F6", "levels": 5 }, diff --git a/keyboards/handwired/bdn9_ble/rules.mk b/keyboards/handwired/bdn9_ble/rules.mk index c9d3996b93e..0dafe2f289e 100644 --- a/keyboards/handwired/bdn9_ble/rules.mk +++ b/keyboards/handwired/bdn9_ble/rules.mk @@ -15,4 +15,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/bento/rev1/config.h b/keyboards/handwired/bento/rev1/config.h index 75eb7537b2b..65cc7669454 100644 --- a/keyboards/handwired/bento/rev1/config.h +++ b/keyboards/handwired/bento/rev1/config.h @@ -16,22 +16,6 @@ #pragma once - #define RGBLED_NUM 4 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/bento/rev1/info.json b/keyboards/handwired/bento/rev1/info.json index 555731bdd58..6730c14a361 100644 --- a/keyboards/handwired/bento/rev1/info.json +++ b/keyboards/handwired/bento/rev1/info.json @@ -8,6 +8,24 @@ "pid": "0xDAD3", "device_version": "1.0.0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/brain/config.h b/keyboards/handwired/brain/config.h index 61dddcd9c27..91253b16957 100644 --- a/keyboards/handwired/brain/config.h +++ b/keyboards/handwired/brain/config.h @@ -42,10 +42,6 @@ along with this program. If not, see . /* Enables This makes it easier for fast typists to use dual-function keys */ #define PERMISSIVE_HOLD -#define RGBLED_NUM 28 // Number of LEDs - -#define RGBLIGHT_SPLIT - /* * Feature disable options * These options are also useful to firmware size reduction. @@ -61,6 +57,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -//#define TAPPING_TERM 150 -//#define QUICK_TAP_TERM 0 diff --git a/keyboards/handwired/brain/info.json b/keyboards/handwired/brain/info.json index 0454b36669c..910a628ca6a 100644 --- a/keyboards/handwired/brain/info.json +++ b/keyboards/handwired/brain/info.json @@ -20,6 +20,8 @@ "pin": "D3" }, "rgblight": { + "led_count": 28, + "split": true, "max_brightness": 120 }, "split": { diff --git a/keyboards/handwired/chiron/config.h b/keyboards/handwired/chiron/config.h index 677804cbe9b..4d245e80e4b 100644 --- a/keyboards/handwired/chiron/config.h +++ b/keyboards/handwired/chiron/config.h @@ -22,5 +22,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE #define LOCKING_RESYNC_ENABLE - -#define RGBLED_NUM 4 diff --git a/keyboards/handwired/chiron/info.json b/keyboards/handwired/chiron/info.json index 2cb9a7a4d94..0bbdefe9216 100644 --- a/keyboards/handwired/chiron/info.json +++ b/keyboards/handwired/chiron/info.json @@ -17,6 +17,9 @@ "pin": "B6", "levels": 7 }, + "rgblight": { + "led_count": 4 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/ck4x4/rules.mk b/keyboards/handwired/ck4x4/rules.mk index 9a1946bb60f..91a488483f8 100644 --- a/keyboards/handwired/ck4x4/rules.mk +++ b/keyboards/handwired/ck4x4/rules.mk @@ -11,5 +11,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover DEFAULT_FOLDER = handwired/ck4x4 -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/co60/rev7/config.h b/keyboards/handwired/co60/rev7/config.h index 8cafa3c6f3b..7e50f570ed1 100644 --- a/keyboards/handwired/co60/rev7/config.h +++ b/keyboards/handwired/co60/rev7/config.h @@ -25,19 +25,3 @@ along with this program. If not, see . /* RGB underglow configuration */ #define WS2812_SPI SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - -#define RGBLED_NUM 16 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM - -#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/handwired/co60/rev7/info.json b/keyboards/handwired/co60/rev7/info.json index 1f1c2a2cf98..0fb11d04181 100644 --- a/keyboards/handwired/co60/rev7/info.json +++ b/keyboards/handwired/co60/rev7/info.json @@ -12,6 +12,21 @@ "pin": "B8", "breathing": true }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A7", "driver": "spi" diff --git a/keyboards/handwired/colorlice/info.json b/keyboards/handwired/colorlice/info.json index 0cba4487033..0f8383a2aaa 100644 --- a/keyboards/handwired/colorlice/info.json +++ b/keyboards/handwired/colorlice/info.json @@ -12,7 +12,7 @@ "pin": "B1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "B6", "B5", "B4", "D7", "D6", "D4", "E6", "B0", "B3"], diff --git a/keyboards/handwired/concertina/64key/config.h b/keyboards/handwired/concertina/64key/config.h index b315e309ae3..70aafa3bfd4 100644 --- a/keyboards/handwired/concertina/64key/config.h +++ b/keyboards/handwired/concertina/64key/config.h @@ -16,7 +16,4 @@ #pragma once -/* LEDs are not used in the standard 64key configuration. */ -#define RGBLED_NUM 0 - #define PERMISSIVE_HOLD diff --git a/keyboards/handwired/concertina/64key/info.json b/keyboards/handwired/concertina/64key/info.json index 1bca5a6fa48..2786c334519 100644 --- a/keyboards/handwired/concertina/64key/info.json +++ b/keyboards/handwired/concertina/64key/info.json @@ -8,6 +8,9 @@ "pid": "0x3632", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 0 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/consolekeyboard/18key/config.h b/keyboards/handwired/consolekeyboard/18key/config.h deleted file mode 100644 index bbc4eccf18e..00000000000 --- a/keyboards/handwired/consolekeyboard/18key/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 Gareth Edwards - * - * This 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 RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 diff --git a/keyboards/handwired/consolekeyboard/18key/info.json b/keyboards/handwired/consolekeyboard/18key/info.json index 3a37174f364..a49ce18c4b6 100644 --- a/keyboards/handwired/consolekeyboard/18key/info.json +++ b/keyboards/handwired/consolekeyboard/18key/info.json @@ -8,6 +8,15 @@ "pid": "0x3332", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/handwired/consolekeyboard/20key/config.h b/keyboards/handwired/consolekeyboard/20key/config.h deleted file mode 100644 index bbc4eccf18e..00000000000 --- a/keyboards/handwired/consolekeyboard/20key/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 Gareth Edwards - * - * This 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 RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 diff --git a/keyboards/handwired/consolekeyboard/20key/info.json b/keyboards/handwired/consolekeyboard/20key/info.json index 1dc5a331e16..c076b50fa3d 100644 --- a/keyboards/handwired/consolekeyboard/20key/info.json +++ b/keyboards/handwired/consolekeyboard/20key/info.json @@ -8,6 +8,15 @@ "pid": "0x3432", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/handwired/consolekeyboard/27key/config.h b/keyboards/handwired/consolekeyboard/27key/config.h deleted file mode 100644 index bbc4eccf18e..00000000000 --- a/keyboards/handwired/consolekeyboard/27key/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 Gareth Edwards - * - * This 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 RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 diff --git a/keyboards/handwired/consolekeyboard/27key/info.json b/keyboards/handwired/consolekeyboard/27key/info.json index 86682eb0f4d..6f9c3a7d2d0 100644 --- a/keyboards/handwired/consolekeyboard/27key/info.json +++ b/keyboards/handwired/consolekeyboard/27key/info.json @@ -8,6 +8,15 @@ "pid": "0x3433", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/handwired/consolekeyboard/30key/config.h b/keyboards/handwired/consolekeyboard/30key/config.h deleted file mode 100644 index 30d9a2f459e..00000000000 --- a/keyboards/handwired/consolekeyboard/30key/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 Gareth Edwards - * - * This 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 RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 diff --git a/keyboards/handwired/consolekeyboard/30key/info.json b/keyboards/handwired/consolekeyboard/30key/info.json index e2bac91ab1a..d0b726a1ff8 100644 --- a/keyboards/handwired/consolekeyboard/30key/info.json +++ b/keyboards/handwired/consolekeyboard/30key/info.json @@ -8,6 +8,15 @@ "pid": "0x3433", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/handwired/croxsplit44/config.h b/keyboards/handwired/croxsplit44/config.h deleted file mode 100644 index 5703448756d..00000000000 --- a/keyboards/handwired/croxsplit44/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2021 Samux6146 - -This 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 RGBLED_NUM 42 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/handwired/croxsplit44/info.json b/keyboards/handwired/croxsplit44/info.json index 399dae6c33a..c788072d920 100644 --- a/keyboards/handwired/croxsplit44/info.json +++ b/keyboards/handwired/croxsplit44/info.json @@ -8,6 +8,24 @@ "pid": "0x6146", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 42, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C4" }, diff --git a/keyboards/handwired/cyberstar/config.h b/keyboards/handwired/cyberstar/config.h index 813b5650369..4d9d9bf5c26 100644 --- a/keyboards/handwired/cyberstar/config.h +++ b/keyboards/handwired/cyberstar/config.h @@ -27,18 +27,3 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 #define WS2812_DMA_CHANNEL 3 #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB - -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/handwired/cyberstar/info.json b/keyboards/handwired/cyberstar/info.json index 47eaab67a73..6b2db46b1f0 100644 --- a/keyboards/handwired/cyberstar/info.json +++ b/keyboards/handwired/cyberstar/info.json @@ -8,6 +8,23 @@ "pid": "0x432A", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4", "driver": "pwm" diff --git a/keyboards/handwired/cyberstar/rules.mk b/keyboards/handwired/cyberstar/rules.mk index 000ee78e21a..cc9d7bb3f53 100644 --- a/keyboards/handwired/cyberstar/rules.mk +++ b/keyboards/handwired/cyberstar/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/handwired/d48/config.h b/keyboards/handwired/d48/config.h index 64364451ff1..9fc090c3ae3 100644 --- a/keyboards/handwired/d48/config.h +++ b/keyboards/handwired/d48/config.h @@ -1,23 +1,5 @@ #pragma once -/* RGB Underglow */ -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#endif - /* Audio */ #ifdef AUDIO_ENABLE #define STARTUP_SONG_DOOM SONG(E1M1_DOOM) @@ -35,9 +17,6 @@ #define OLED_TIMEOUT 0 // #define OLED_SCROLL_TIMEOUT 1000 -/* Taps (encoder tap_code) */ -#define TAP_CODE_DELAY 10 - /* I2C */ //#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 //#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN) diff --git a/keyboards/handwired/d48/info.json b/keyboards/handwired/d48/info.json index db3f2bbacc1..295fead5879 100644 --- a/keyboards/handwired/d48/info.json +++ b/keyboards/handwired/d48/info.json @@ -8,6 +8,23 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A15" }, @@ -22,6 +39,9 @@ {"pin_a": "A0", "pin_b": "A1"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "STM32F303", "bootloader": "stm32-dfu", "board": "QMK_PROTON_C", diff --git a/keyboards/handwired/d48/rules.mk b/keyboards/handwired/d48/rules.mk index 411362b652f..7fa8dfdd340 100644 --- a/keyboards/handwired/d48/rules.mk +++ b/keyboards/handwired/d48/rules.mk @@ -13,7 +13,6 @@ USE_I2C = no RGBLIGHT_ENABLE = yes ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 UNICODE_ENABLE = yes SRC += ds1307.c taphold.c diff --git a/keyboards/handwired/dactyl/config.h b/keyboards/handwired/dactyl/config.h index f37a8f2722c..94b407d7358 100644 --- a/keyboards/handwired/dactyl/config.h +++ b/keyboards/handwired/dactyl/config.h @@ -37,10 +37,6 @@ along with this program. If not, see . #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 1 - -#define TAPPING_TERM 200 - /* key combination for command */ #define IS_COMMAND() ( \ get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ diff --git a/keyboards/handwired/dactyl/info.json b/keyboards/handwired/dactyl/info.json index 8297e609a1c..e95c380d9c0 100644 --- a/keyboards/handwired/dactyl/info.json +++ b/keyboards/handwired/dactyl/info.json @@ -11,6 +11,9 @@ "processor": "atmega32u4", "bootloader": "halfkay", "debounce": 15, + "tapping": { + "toggle": 1 + }, "layouts": { "LAYOUT_dactyl": { "layout": [ diff --git a/keyboards/handwired/dactyl_cc/info.json b/keyboards/handwired/dactyl_cc/info.json new file mode 100644 index 00000000000..e607bfad1a4 --- /dev/null +++ b/keyboards/handwired/dactyl_cc/info.json @@ -0,0 +1,117 @@ +{ + "keyboard_name": "Dactyl CC", + "manufacturer": "mjohns", + "url": "https://github.com/mjohns/dactyl-cc", + "maintainer": "qmk", + "usb": { + "vid": "0x444E", + "pid": "0x1407", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": true, + "nkro": false + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.1, "w":1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 0.35}, + {"matrix": [0, 2], "x": 2.25, "y": 0.1}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0.1}, + {"matrix": [0, 5], "x": 5.25, "y": 0.1}, + + {"matrix": [6, 0], "x": 11.25, "y": 0.1}, + {"matrix": [6, 1], "x": 12.25, "y": 0.1}, + {"matrix": [6, 2], "x": 13.25, "y": 0}, + {"matrix": [6, 3], "x": 14.25, "y": 0.1}, + {"matrix": [6, 4], "x": 15.25, "y": 0.35}, + {"matrix": [6, 5], "x": 16.25, "y": 0.1, "w":1.25}, + + {"matrix": [1, 0], "x": 0, "y": 1.1, "w":1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1.35}, + {"matrix": [1, 2], "x": 2.25, "y": 1.1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1.1}, + {"matrix": [1, 5], "x": 5.25, "y": 1.1}, + + {"matrix": [7, 0], "x": 11.25, "y": 1.1}, + {"matrix": [7, 1], "x": 12.25, "y": 1.1}, + {"matrix": [7, 2], "x": 13.25, "y": 1}, + {"matrix": [7, 3], "x": 14.25, "y": 1.1}, + {"matrix": [7, 4], "x": 15.25, "y": 1.35}, + {"matrix": [7, 5], "x": 16.25, "y": 1.1, "w":1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.1, "w":1.25}, + {"matrix": [2, 1], "x": 1.25, "y": 2.35}, + {"matrix": [2, 2], "x": 2.25, "y": 2.1}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2.1}, + {"matrix": [2, 5], "x": 5.25, "y": 2.1}, + + {"matrix": [8, 0], "x": 11.25, "y": 2.1}, + {"matrix": [8, 1], "x": 12.25, "y": 2.1}, + {"matrix": [8, 2], "x": 13.25, "y": 2}, + {"matrix": [8, 3], "x": 14.25, "y": 2.1}, + {"matrix": [8, 4], "x": 15.25, "y": 2.35}, + {"matrix": [8, 5], "x": 16.25, "y": 2.1, "w":1.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.1, "w":1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3.35}, + {"matrix": [3, 2], "x": 2.25, "y": 3.1}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3.1}, + {"matrix": [3, 5], "x": 5.25, "y": 3.1}, + + {"matrix": [9, 0], "x": 11.25, "y": 3.1}, + {"matrix": [9, 1], "x": 12.25, "y": 3.1}, + {"matrix": [9, 2], "x": 13.25, "y": 3}, + {"matrix": [9, 3], "x": 14.25, "y": 3.1}, + {"matrix": [9, 4], "x": 15.25, "y": 3.35}, + {"matrix": [9, 5], "x": 16.25, "y": 3.1, "w":1.25}, + + {"matrix": [4, 1], "x": 1.25, "y": 4.35}, + {"matrix": [4, 2], "x": 2.25, "y": 4.1}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4.1}, + + {"matrix": [10, 1], "x": 12.25, "y": 4.1}, + {"matrix": [10, 2], "x": 13.25, "y": 4}, + {"matrix": [10, 3], "x": 14.25, "y": 4.1}, + {"matrix": [10, 4], "x": 15.25, "y": 4.35}, + + {"matrix": [5, 4], "x": 6.25, "y": 5}, + {"matrix": [4, 5], "x": 7.25, "y": 5}, + + {"matrix": [10, 0], "x": 9.25, "y": 5}, + {"matrix": [11, 1], "x": 10.25, "y": 5}, + + {"matrix": [5, 1], "x": 5.25, "y": 6, "h": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 6, "h": 2}, + {"matrix": [5, 5], "x": 7.25, "y": 6}, + + {"matrix": [11, 0], "x": 9.25, "y": 6}, + {"matrix": [11, 3], "x": 10.25, "y": 6, "h": 2}, + {"matrix": [11, 4], "x": 11.25, "y": 6, "h": 2}, + + {"matrix": [5, 3], "x": 7.25, "y": 7}, + {"matrix": [11, 2], "x": 9.25, "y": 7} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_cc/keymaps/default/config.h b/keyboards/handwired/dactyl_cc/keymaps/default/config.h new file mode 100644 index 00000000000..49d5477f0a7 --- /dev/null +++ b/keyboards/handwired/dactyl_cc/keymaps/default/config.h @@ -0,0 +1,28 @@ +// Copyright 2022 mjohns +// SPDX-License-Identifier: GPL-2.0-or-later + +#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 + +/* Enables This makes it easier for fast typists to use dual-function keys */ +#define PERMISSIVE_HOLD + +/* mouse config */ +#define MOUSEKEY_DELAY 0 +// Lowering MOUSEKEY_INTERVAL raises the cursor speed significantly, you may want to lower MOUSEKEY_MAX_SPEED (default: 10) +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 + +/* layer config */ +#define TAPPING_TOGGLE 1 + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/handwired/dactyl_cc/keymaps/default/keymap.c b/keyboards/handwired/dactyl_cc/keymaps/default/keymap.c new file mode 100644 index 00000000000..6422699684c --- /dev/null +++ b/keyboards/handwired/dactyl_cc/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2022 mjohns +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + BASE, + NAV +}; + +#define CTL_ESC LCTL_T(KC_ESC) +#define CTL_CAP LCTL_T(KC_CAPS) +#define ALT_BSP LALT_T(KC_BSPC) +#define LT_SCLN LT(NAV, KC_SCLN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_BSLS, + CTL_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT_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_RSFT, + KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + TT(NAV), KC_DEL, KC_PGUP, KC_RCTL, + KC_BSPC, CTL_ESC, KC_LGUI, KC_PGDN, KC_ENT, KC_SPC, + KC_LALT, KC_RALT + ), + [NAV] = LAYOUT( + QK_BOOT, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_BRIU, KC_P7, KC_P8, KC_P9, KC_NO, QK_BOOT, + _______, KC_VOLU, KC_WBAK, KC_MS_U, KC_WFWD, KC_WH_U, KC_BRID, KC_P4, KC_P5, KC_P6, KC_PMNS, _______, + _______, KC_VOLD, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_PPLS, KC_P1, KC_P2, KC_P3, KC_PSLS, _______, + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_PAST, KC_PCMM, KC_P0, KC_PDOT, KC_PENT, _______, + KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, KC_HOME, _______, + KC_BTN1, KC_BTN2, _______, KC_END, _______, _______, + _______, ALT_BSP + ) +}; diff --git a/keyboards/handwired/dactyl_cc/keymaps/via/config.h b/keyboards/handwired/dactyl_cc/keymaps/via/config.h new file mode 100644 index 00000000000..49d5477f0a7 --- /dev/null +++ b/keyboards/handwired/dactyl_cc/keymaps/via/config.h @@ -0,0 +1,28 @@ +// Copyright 2022 mjohns +// SPDX-License-Identifier: GPL-2.0-or-later + +#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 + +/* Enables This makes it easier for fast typists to use dual-function keys */ +#define PERMISSIVE_HOLD + +/* mouse config */ +#define MOUSEKEY_DELAY 0 +// Lowering MOUSEKEY_INTERVAL raises the cursor speed significantly, you may want to lower MOUSEKEY_MAX_SPEED (default: 10) +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 + +/* layer config */ +#define TAPPING_TOGGLE 1 + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/handwired/dactyl_cc/keymaps/via/keymap.c b/keyboards/handwired/dactyl_cc/keymaps/via/keymap.c new file mode 100644 index 00000000000..aad8656a06c --- /dev/null +++ b/keyboards/handwired/dactyl_cc/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +// Copyright 2022 mjohns +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _NAV, + _SYS, + _BLANK +}; + +#define LT_1BSP LT(1, KC_BSPC) +#define LT_2SPC LT(2, KC_SPC) +#define MH_DEL MEH_T(KC_DEL) +#define HY_ENT HYPR_T(KC_ENT) +#define CA_PGDN LCA_T(KC_PGDN) +#define CAG_END LCAG_T(KC_END) +#define AG_PGUP LAG_T(KC_PGUP) +#define CG_HOME MT(MOD_LGUI | MOD_LCTL, KC_HOME) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL, + LT_1BSP, MH_DEL, CG_HOME, AG_PGUP, HY_ENT, LT_2SPC, + CAG_END, CA_PGDN + ), + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, QK_BOOT, _______, _______, KC_SLEP, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + _______, _______, _______, _______, _______, _______, KC_PDOT, KC_PENT, + _______, _______, _______, KC_P0, + _______, _______, _______, _______, _______, MO(3), + _______, _______ + ), + [_SYS] = 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_VOLU, KC_WBAK, KC_MS_U, KC_WFWD, KC_WH_U, _______, KC_NO, KC_NO, KC_NO, KC_NO, _______, + _______, KC_MUTE, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_PSCR, KC_PAUS, KC_INS, KC_SCRL, _______, + _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _______, KC_NO, KC_NO, KC_NO, KC_NO, _______, + _______, _______, _______, _______, _______, _______, KC_UP, KC_RGHT, + _______, _______, _______, _______, + KC_BTN1, KC_BTN2, _______, _______, _______, _______, + _______, _______ + + ), + [_BLANK] = LAYOUT( + 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_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO + ) +}; diff --git a/keyboards/handwired/dactyl_cc/keymaps/via/rules.mk b/keyboards/handwired/dactyl_cc/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/handwired/dactyl_cc/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/dactyl_cc/readme.md b/keyboards/handwired/dactyl_cc/readme.md new file mode 100644 index 00000000000..580539639bd --- /dev/null +++ b/keyboards/handwired/dactyl_cc/readme.md @@ -0,0 +1,27 @@ +# Dactyl-CC + +![DactylCC](https://i.imgur.com/CUbPLZCh.jpeg) + +Modelled on the *Kinesis Advantage* (KA) 1|2, though missing it's combined function and program row, the *Dactyl CC* retains the finger and thumb key placements of the KA but opts to split board into physical halves. + +* Keyboard Maintainer: [Michael Johns](https://github.com/mjohns) +* Hardware Supported: Pro micro controller or clones of +* Hardware Availability: [Dactyl CC GitHub](https://github.com/mjohns/dactyl-cc) + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_cc:default + +Flashing example for this keyboard: + + make handwired/dactyl_cc: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/handwired/dactyl_cc/rules.mk b/keyboards/handwired/dactyl_cc/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/handwired/dactyl_kinesis/info.json b/keyboards/handwired/dactyl_kinesis/info.json new file mode 100644 index 00000000000..91cb98e0409 --- /dev/null +++ b/keyboards/handwired/dactyl_kinesis/info.json @@ -0,0 +1,141 @@ +{ + "keyboard_name": "Dactyl Kinesis", + "manufacturer": "dmik", + "url": "", + "maintainer": "dmik", + "usb": { + "vid": "0x444D", + "pid": "0x3636", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "audio": false, + "backlight": false, + "rgblight": false + }, + "rgblight": { + "led_count": 12 + }, + "ws2812": { + "pin": "D3" + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "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": [7, 0], "x": 11, "y": 0}, + {"matrix": [7, 1], "x": 12, "y": 0}, + {"matrix": [7, 2], "x": 13, "y": 0}, + {"matrix": [7, 3], "x": 14, "y": 0}, + {"matrix": [7, 4], "x": 15, "y": 0}, + {"matrix": [7, 5], "x": 16, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [8, 0], "x": 11, "y": 1}, + {"matrix": [8, 1], "x": 12, "y": 1}, + {"matrix": [8, 2], "x": 13, "y": 1}, + {"matrix": [8, 3], "x": 14, "y": 1}, + {"matrix": [8, 4], "x": 15, "y": 1}, + {"matrix": [8, 5], "x": 16, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [9, 0], "x": 11, "y": 2}, + {"matrix": [9, 1], "x": 12, "y": 2}, + {"matrix": [9, 2], "x": 13, "y": 2}, + {"matrix": [9, 3], "x": 14, "y": 2}, + {"matrix": [9, 4], "x": 15, "y": 2}, + {"matrix": [9, 5], "x": 16, "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}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [10, 0], "x": 11, "y": 3}, + {"matrix": [10, 1], "x": 12, "y": 3}, + {"matrix": [10, 2], "x": 13, "y": 3}, + {"matrix": [10, 3], "x": 14, "y": 3}, + {"matrix": [10, 4], "x": 15, "y": 3}, + {"matrix": [10, 5], "x": 16, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4}, + + {"matrix": [11, 0], "x": 11, "y": 4}, + {"matrix": [11, 1], "x": 12, "y": 4}, + {"matrix": [11, 2], "x": 13, "y": 4}, + {"matrix": [11, 3], "x": 14, "y": 4}, + {"matrix": [11, 4], "x": 15, "y": 4}, + {"matrix": [11, 5], "x": 16, "y": 4}, + + {"matrix": [5, 0], "x": 1, "y": 5}, + {"matrix": [5, 1], "x": 2, "y": 5}, + {"matrix": [5, 2], "x": 3, "y": 5}, + {"matrix": [5, 3], "x": 4, "y": 5}, + + {"matrix": [12, 2], "x": 12, "y": 5}, + {"matrix": [12, 3], "x": 13, "y": 5}, + {"matrix": [12, 4], "x": 14, "y": 5}, + {"matrix": [12, 5], "x": 15, "y": 5}, + + {"matrix": [6, 4], "x": 6, "y": 6}, + {"matrix": [6, 5], "x": 7, "y": 6}, + + {"matrix": [13, 0], "x": 9, "y": 6}, + {"matrix": [13, 1], "x": 10, "y": 6}, + + {"matrix": [5, 4], "x": 5, "y": 7, "h": 2}, + {"matrix": [5, 5], "x": 6, "y": 7, "h": 2}, + + {"matrix": [12, 0], "x": 10, "y": 7, "h": 2}, + {"matrix": [12, 1], "x": 11, "y": 7, "h": 2}, + + {"matrix": [6, 3], "x": 7, "y": 7}, + {"matrix": [13, 2], "x": 9, "y": 7}, + + {"matrix": [6, 2], "x": 7, "y": 8}, + {"matrix": [13, 3], "x": 9, "y": 8} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_kinesis/keymaps/default/keymap.c b/keyboards/handwired/dactyl_kinesis/keymaps/default/keymap.c new file mode 100644 index 00000000000..05e138da72d --- /dev/null +++ b/keyboards/handwired/dactyl_kinesis/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +// Copyright 2012 Jun Wako +// Copyright 2021 Dmitriy Kuminov (@dmik) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_layers { + _QWERTY, + _LOWER +}; + +#define LOWER MO(_LOWER) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_CAPS, + KC_EQL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, + 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_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, KC_RSFT, + KC_GRV , LOWER , KC_LEFT, KC_RGHT, KC_UP , KC_DOWN, KC_LBRC, KC_RBRC, + KC_LGUI, KC_LALT, KC_RCTL, KC_RGUI, + KC_BSPC, KC_DEL, KC_HOME, KC_PGUP, KC_ENT , KC_SPC , + KC_END , KC_PGDN + ), + + [_LOWER] = LAYOUT( + _______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, KC_INS , _______, _______, _______, _______, + _______, _______ + ) +}; diff --git a/keyboards/handwired/dactyl_kinesis/readme.md b/keyboards/handwired/dactyl_kinesis/readme.md new file mode 100644 index 00000000000..69427406d12 --- /dev/null +++ b/keyboards/handwired/dactyl_kinesis/readme.md @@ -0,0 +1,109 @@ +# Dactyl Kinesis + +Essentially a Dactyl CC physical key layout with an additional top row, further emulating the Kinesis Advantage (*1|2*) physical key layout. + +* Keyboard Maintainer: [dmik](https://github.com/dmik) +* Hardware Supported: Pro Micro controller, or clone of + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_kinesis:default + +Flashing example for this keyboard: + + make handwired/dactyl_kinesis: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). + +## Kinesis Advantage Keymap + +### About + +This keymap is designed after Kinesis Advantage's QWERTY layout with the following key differences: + - There are only 10 F-keys in the main layer, F1 and F2 are moved to additional LOWER layer. + - The INS key acts like a LOWER layer activation key and Del in LOWER layer ats like INS. + - LCtl is placed where CAPS should be and CAPS is moved to a free key after F10. + - Brigtness and volume control keys are added to LOWER layer. + + The keymap file also contains RAISE layer but it is currently equivalent to LOWER layer and does + not have an activation key mapped. It is intended for possible extensions. + +### Keymap + + Main QUERTY layer: + ,-------------------------------------------. ,-------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | CAPS | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | LCtl | A | S | D | F | G | | H | J | K | L | ; | ' | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | LShift | Z | X | C | V | B | | N | M | , | . | / | RShift | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | ` | LOWER| Left | Rght | | Up | Dn | [ | ] | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | LGui | LAlt | | RCtl | RGui | + ,------|------|------| |------+------+------. + | | | Home | | PgUp | | | + | BkSp | Del |------| |------|Enter |Space | + | | | End | | PgDn | | | + `--------------------' `--------------------' + + LOWER layer: + ,-------------------------------------------. ,-------------------------------------------. + | | F11 | F12 | | | | |BriDn |BriUp |VMute |VolDn |VolUp | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | INS |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +### Key Matrix Wiring + +The below picture shows correspondence between the keys and the row/column wires of the left and +right halves: + + ,-------------------------------------------. ,-------------------------------------------. + | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | L10 | L11 | L12 | L13 | L14 | L15 | | R10 | R11 | R12 | R13 | R14 | R15 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | L20 | L21 | L22 | L23 | L24 | L25 | | R20 | R21 | R22 | R23 | R24 | R25 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | L40 | L41 | L42 | L43 | L44 | L45 | | R40 | R41 | R42 | R43 | R44 | R45 | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | L50 | L51 | L52 | L53 | | R52 | R53 | R54 | R55 | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | L64 | L65 | | R60 | R61 | + ,------|------|------| |------+------+------. + | | | L63 | | R62 | | | + | L54 | L55 |------| |------| R50 | R51 | + | | | L62 | | R63 | | | + `--------------------' `--------------------' + +## 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/handwired/dactyl_kinesis/rules.mk b/keyboards/handwired/dactyl_kinesis/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/dactyl_kinesis/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/dactyl_lightcycle/info.json b/keyboards/handwired/dactyl_lightcycle/info.json new file mode 100644 index 00000000000..4d581b974e0 --- /dev/null +++ b/keyboards/handwired/dactyl_lightcycle/info.json @@ -0,0 +1,209 @@ +{ + "keyboard_name": "Dactyl Lightcycle", + "manufacturer": "Adereth", + "url": "https://github.com/adereth/dactyl-keyboard", + "maintainer": "Matt Adereth", + "usb": { + "vid": "0x444C", + "pid": "0xA460", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "mousekey": true, + "extrakey": true, + "audio": false, + "rgblight": false, + "backlight": false, + "nkro": false + }, + "ws2812": { + "pin": "D3" + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "development_board": "promicro", + "community_layouts": ["split_3x6_3", "split_3x5_3"], + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.35}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.1}, + + {"matrix": [5, 0], "x": 11, "y": 0.1}, + {"matrix": [5, 1], "x": 12, "y": 0.1}, + {"matrix": [5, 2], "x": 13, "y": 0}, + {"matrix": [5, 3], "x": 14, "y": 0.1}, + {"matrix": [5, 4], "x": 15, "y": 0.35}, + {"matrix": [5, 5], "x": 16, "y": 0.35}, + + {"matrix": [1, 0], "x": 0, "y": 1.35}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.1}, + + {"matrix": [6, 0], "x": 11, "y": 1.1}, + {"matrix": [6, 1], "x": 12, "y": 1.1}, + {"matrix": [6, 2], "x": 13, "y": 1}, + {"matrix": [6, 3], "x": 14, "y": 1.1}, + {"matrix": [6, 4], "x": 15, "y": 1.35}, + {"matrix": [6, 5], "x": 16, "y": 1.35}, + + {"matrix": [2, 0], "x": 0, "y": 2.35}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.1}, + + {"matrix": [3, 5], "x": 6, "y": 2.1, "h": 1.25}, + {"matrix": [4, 5], "x": 7, "y": 2.1, "h": 1.5}, + + {"matrix": [9, 0], "x": 9, "y": 2.1, "h": 1.5}, + {"matrix": [8, 0], "x": 10, "y": 2.1, "h": 1.25}, + + {"matrix": [7, 0], "x": 11, "y": 2.1}, + {"matrix": [7, 1], "x": 12, "y": 2.1}, + {"matrix": [7, 2], "x": 13, "y": 2}, + {"matrix": [7, 3], "x": 14, "y": 2.1}, + {"matrix": [7, 4], "x": 15, "y": 2.35}, + {"matrix": [7, 5], "x": 16, "y": 2.35}, + + {"matrix": [3, 0], "x": 0, "y": 3.35}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3.1}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.1}, + + {"matrix": [4, 2], "x": 5, "y": 3.1, "h": 2}, + {"matrix": [4, 3], "x": 6, "y": 3.35, "h": 1.75}, + {"matrix": [4, 4], "x": 7, "y": 3.6, "h": 1.5}, + + {"matrix": [9, 1], "x": 9, "y": 3.6, "h": 1.5}, + {"matrix": [9, 2], "x": 10, "y": 3.35, "h": 1.75}, + {"matrix": [9, 3], "x": 11, "y": 3.1, "h": 2}, + + {"matrix": [8, 1], "x": 12, "y": 3.1}, + {"matrix": [8, 2], "x": 13, "y": 3}, + {"matrix": [8, 3], "x": 14, "y": 3.1}, + {"matrix": [8, 4], "x": 15, "y": 3.35}, + {"matrix": [8, 5], "x": 16, "y": 3.35} + ] + }, + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.35}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.1}, + + {"matrix": [5, 0], "x": 11, "y": 0.1}, + {"matrix": [5, 1], "x": 12, "y": 0.1}, + {"matrix": [5, 2], "x": 13, "y": 0}, + {"matrix": [5, 3], "x": 14, "y": 0.1}, + {"matrix": [5, 4], "x": 15, "y": 0.35}, + {"matrix": [5, 5], "x": 16, "y": 0.35}, + + {"matrix": [1, 0], "x": 0, "y": 1.35}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.1}, + + {"matrix": [6, 0], "x": 11, "y": 1.1}, + {"matrix": [6, 1], "x": 12, "y": 1.1}, + {"matrix": [6, 2], "x": 13, "y": 1}, + {"matrix": [6, 3], "x": 14, "y": 1.1}, + {"matrix": [6, 4], "x": 15, "y": 1.35}, + {"matrix": [6, 5], "x": 16, "y": 1.35}, + + {"matrix": [2, 0], "x": 0, "y": 2.35}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.1}, + + {"matrix": [7, 0], "x": 11, "y": 2.1}, + {"matrix": [7, 1], "x": 12, "y": 2.1}, + {"matrix": [7, 2], "x": 13, "y": 2}, + {"matrix": [7, 3], "x": 14, "y": 2.1}, + {"matrix": [7, 4], "x": 15, "y": 2.35}, + {"matrix": [7, 5], "x": 16, "y": 2.35}, + + {"matrix": [4, 2], "x": 5, "y": 3.1, "h": 2}, + {"matrix": [4, 3], "x": 6, "y": 3.35, "h": 1.75}, + {"matrix": [4, 4], "x": 7, "y": 3.6, "h": 1.5}, + + {"matrix": [9, 1], "x": 9, "y": 3.6, "h": 1.5}, + {"matrix": [9, 2], "x": 10, "y": 3.35, "h": 1.75}, + {"matrix": [9, 3], "x": 11, "y": 3.1, "h": 2} + ] + }, + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0.35}, + {"matrix": [0, 2], "x": 1, "y": 0.1}, + {"matrix": [0, 3], "x": 2, "y": 0}, + {"matrix": [0, 4], "x": 3, "y": 0.1}, + {"matrix": [0, 5], "x": 4, "y": 0.1}, + + {"matrix": [5, 0], "x": 10, "y": 0.1}, + {"matrix": [5, 1], "x": 11, "y": 0.1}, + {"matrix": [5, 2], "x": 12, "y": 0}, + {"matrix": [5, 3], "x": 13, "y": 0.1}, + {"matrix": [5, 4], "x": 14, "y": 0.35}, + + {"matrix": [1, 1], "x": 0, "y": 1.35}, + {"matrix": [1, 2], "x": 1, "y": 1.1}, + {"matrix": [1, 3], "x": 2, "y": 1}, + {"matrix": [1, 4], "x": 3, "y": 1.1}, + {"matrix": [1, 5], "x": 4, "y": 1.1}, + + {"matrix": [6, 0], "x": 10, "y": 1.1}, + {"matrix": [6, 1], "x": 11, "y": 1.1}, + {"matrix": [6, 2], "x": 12, "y": 1}, + {"matrix": [6, 3], "x": 13, "y": 1.1}, + {"matrix": [6, 4], "x": 14, "y": 1.35}, + + {"matrix": [2, 1], "x": 0, "y": 2.35}, + {"matrix": [2, 2], "x": 1, "y": 2.1}, + {"matrix": [2, 3], "x": 2, "y": 2}, + {"matrix": [2, 4], "x": 3, "y": 2.1}, + {"matrix": [2, 5], "x": 4, "y": 2.1}, + + {"matrix": [7, 0], "x": 10, "y": 2.1}, + {"matrix": [7, 1], "x": 11, "y": 2.1}, + {"matrix": [7, 2], "x": 12, "y": 2}, + {"matrix": [7, 3], "x": 13, "y": 2.1}, + {"matrix": [7, 4], "x": 14, "y": 2.35}, + + {"matrix": [4, 2], "x": 4, "y": 3.1, "h": 2}, + {"matrix": [4, 3], "x": 5, "y": 3.35, "h": 1.75}, + {"matrix": [4, 4], "x": 6, "y": 3.6, "h": 1.5}, + + {"matrix": [9, 1], "x": 8, "y": 3.6, "h": 1.5}, + {"matrix": [9, 2], "x": 9, "y": 3.35, "h": 1.75}, + {"matrix": [9, 3], "x": 10, "y": 3.1, "h": 2} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_lightcycle/keymaps/default/config.h b/keyboards/handwired/dactyl_lightcycle/keymaps/default/config.h new file mode 100644 index 00000000000..49b067cc586 --- /dev/null +++ b/keyboards/handwired/dactyl_lightcycle/keymaps/default/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2020 Ralph Azucena + +This 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 + +/* Enables This makes it easier for fast typists to use dual-function keys */ +#define PERMISSIVE_HOLD + +/* mouse config */ +#define MOUSEKEY_DELAY 0 +// Lowering MOUSEKEY_INTERVAL raises the cursor speed significantly, you may want to lower MOUSEKEY_MAX_SPEED (default: 10) +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 + +/* layer config */ +#define TAPPING_TOGGLE 1 + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/handwired/dactyl_lightcycle/keymaps/default/keymap.json b/keyboards/handwired/dactyl_lightcycle/keymaps/default/keymap.json new file mode 100644 index 00000000000..a9cc3e2741c --- /dev/null +++ b/keyboards/handwired/dactyl_lightcycle/keymaps/default/keymap.json @@ -0,0 +1,34 @@ +{ + "keyboard": "handwired/dactyl_lightcycle", + "version": 1, + "author": "dunk2k", + "notes": "This file is a keymap(.json) file for handwired/dactyl_lightcycle", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS", + "KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", + "KC_LALT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_DEL", "KC_LGUI", "KC_RGUI", "KC_BSPC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_LALT", + "KC_LCTL", "KC_MINS", "KC_EQL", "KC_LEFT", "KC_RGHT", "LT(1,KC_HOME)", "KC_SPC", "KC_LSFT", "KC_RCTL", "KC_ENT", "LT(2,KC_END)", "KC_UP", "KC_DOWN", "KC_LBRC", "KC_RBRC", "KC_RSFT" + ], + [ + "RCS(KC_ESC)", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NUM", "KC_P7", "KC_P8", "KC_P9", "KC_PMNS", "KC_TRNS", + "KC_CAPS", "KC_SCRL", "KC_INS", "KC_PAUS", "KC_PSCR", "KC_NO", "KC_PAST", "KC_P4", "KC_P5", "KC_P6", "KC_PPLS", "KC_TRNS", + "KC_TRNS", "KC_NO", "KC_NO", "S(KC_HOME)", "S(KC_END)", "KC_NO", "KC_TRNS", "KC_TRNS", "KC_TRNS", "C(KC_BSPC)", "KC_PSLS", "KC_P1", "KC_P2", "KC_P3", "KC_PENT", "KC_TRNS", + "KC_TRNS", "KC_NO", "KC_NO", "LSG(KC_TAB)", "G(KC_TAB)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_RSFT", "MO(3)", "KC_PCMM", "KC_P0", "KC_PDOT", "KC_PEQL", "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_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_TILD", + "KC_TRNS", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_LPRN", "C(KC_DEL)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_RPRN", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_TRNS", + "KC_TRNS", "KC_UNDS", "KC_PLUS", "KC_NO", "A(KC_TAB)", "MO(3)", "KC_LCTL", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_PGDN", "KC_LCBR", "KC_RCBR", "KC_TRNS" + ], + [ + "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_VOLU", "KC_NO", "KC_NO", "KC_NO", "KC_NO", + "KC_NO", "QK_BOOT", "KC_SLEP", "KC_MSTP", "KC_MPLY", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "AG_TOGG", "KC_NO", + "KC_NO", "KC_NO", "KC_NO", "KC_MRWD", "KC_MFFD", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_VOLD", "KC_NO", "KC_NO", "KC_NO", "KC_NO", + "KC_NO", "KC_NO", "KC_NO", "KC_MNXT", "KC_MNXT", "KC_TRNS", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_TRNS", "KC_BRIU", "KC_BRID", "KC_NO", "KC_NO", "KC_NO" + ] + ] +} diff --git a/keyboards/handwired/dactyl_lightcycle/keymaps/via/config.h b/keyboards/handwired/dactyl_lightcycle/keymaps/via/config.h new file mode 100644 index 00000000000..49b067cc586 --- /dev/null +++ b/keyboards/handwired/dactyl_lightcycle/keymaps/via/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2020 Ralph Azucena + +This 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 + +/* Enables This makes it easier for fast typists to use dual-function keys */ +#define PERMISSIVE_HOLD + +/* mouse config */ +#define MOUSEKEY_DELAY 0 +// Lowering MOUSEKEY_INTERVAL raises the cursor speed significantly, you may want to lower MOUSEKEY_MAX_SPEED (default: 10) +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 + +/* layer config */ +#define TAPPING_TOGGLE 1 + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/handwired/dactyl_lightcycle/keymaps/via/keymap.json b/keyboards/handwired/dactyl_lightcycle/keymaps/via/keymap.json new file mode 100644 index 00000000000..c1089e77110 --- /dev/null +++ b/keyboards/handwired/dactyl_lightcycle/keymaps/via/keymap.json @@ -0,0 +1,39 @@ +{ + "keyboard": "handwired/dactyl_lightcycle", + "version": 1, + "author": "dunk2k", + "notes": "This file is a keymap(.json) file for handwired/dactyl_lightcycle", + "config": { + "features": { + "via": true + } + }, + "keymap": "via", + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS", + "KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", + "KC_LALT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_DEL", "KC_LGUI", "KC_RGUI", "KC_BSPC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_LALT", + "KC_LCTL", "KC_MINS", "KC_EQL", "KC_LEFT", "KC_RGHT", "LT(1,KC_HOME)", "KC_SPC", "KC_LSFT", "KC_RCTL", "KC_ENT", "LT(2,KC_END)", "KC_UP", "KC_DOWN", "KC_LBRC", "KC_RBRC", "KC_RSFT" + ], + [ + "RCS(KC_ESC)", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NUM", "KC_P7", "KC_P8", "KC_P9", "KC_PMNS", "KC_TRNS", + "KC_CAPS", "KC_SCRL", "KC_INS", "KC_PAUS", "KC_PSCR", "KC_NO", "KC_PAST", "KC_P4", "KC_P5", "KC_P6", "KC_PPLS", "KC_TRNS", + "KC_TRNS", "KC_NO", "KC_NO", "S(KC_HOME)", "S(KC_END)", "KC_NO", "KC_TRNS", "KC_TRNS", "KC_TRNS", "C(KC_BSPC)", "KC_PSLS", "KC_P1", "KC_P2", "KC_P3", "KC_PENT", "KC_TRNS", + "KC_TRNS", "KC_NO", "KC_NO", "LSG(KC_TAB)", "G(KC_TAB)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_RSFT", "MO(3)", "KC_PCMM", "KC_P0", "KC_PDOT", "KC_PEQL", "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_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_TILD", + "KC_TRNS", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_LPRN", "C(KC_DEL)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_RPRN", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_TRNS", + "KC_TRNS", "KC_UNDS", "KC_PLUS", "KC_NO", "A(KC_TAB)", "MO(3)", "KC_LCTL", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_PGDN", "KC_LCBR", "KC_RCBR", "KC_TRNS" + ], + [ + "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_VOLU", "KC_NO", "KC_NO", "KC_NO", "KC_NO", + "KC_NO", "QK_BOOT", "KC_SLEP", "KC_MSTP", "KC_MPLY", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "AG_TOGG", "KC_NO", + "KC_NO", "KC_NO", "KC_NO", "KC_MRWD", "KC_MFFD", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_VOLD", "KC_NO", "KC_NO", "KC_NO", "KC_NO", + "KC_NO", "KC_NO", "KC_NO", "KC_MNXT", "KC_MNXT", "KC_TRNS", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_TRNS", "KC_BRIU", "KC_BRID", "KC_NO", "KC_NO", "KC_NO" + ] + ] +} diff --git a/keyboards/handwired/dactyl_lightcycle/readme.md b/keyboards/handwired/dactyl_lightcycle/readme.md new file mode 100644 index 00000000000..b351942f443 --- /dev/null +++ b/keyboards/handwired/dactyl_lightcycle/readme.md @@ -0,0 +1,40 @@ +# Dactyl Lightcycle + +![TopElev](https://i.imgur.com/MwPhTrCh.jpg) + +A handwired, split bodied, concave key-well, columnar keyboard. +The *Dactyl Lightcycle* is a variation of the [Dactyl](/keyboards/handwired/dactyl/) keyboard, its differences are: +1. Top (number) row removed +2. Five key thumb cluster; one less than the *Dactyl's* six + +This modernised rendition of the *Dactyl Lightcycle* requires two Pro Micro controllers, rather than the *Dactyl's* original implementation of a micro controller and I/O expander. + +* Keyboard Maintainer: [Matt Adereth](https://github.com/adereth/) +* Hardware Supported: 2x Pro Micro micro controller, or clone of +* Hardware Availability: Case files available on [GitHub](https://github.com/adereth/dactyl-keyboard), file names beginning "lightcycle" apply + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_lightcycle:default + +Flashing example for this keyboard: + + make handwired/dactyl_lightcycle: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 keymap**: Press the key mapped to `QK_BOOT` if it is available + +## QMK Layouts + +The following [community layouts](/layouts/) are supported: +| Layout | Diagram | +| :---: | :---: | +| Split_3x6_3 | ![split_3x6_3](https://i.imgur.com/xBVDsqE.jpg) | +| Split_3x5_3 | ![split_3x5_3](https://i.imgur.com/nc0dbH1.jpg) | diff --git a/keyboards/handwired/dactyl_lightcycle/rules.mk b/keyboards/handwired/dactyl_lightcycle/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/info.json b/keyboards/handwired/dactyl_manuform/3x5_3/info.json deleted file mode 100644 index cfe109fb372..00000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/info.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "keyboard_name": "Dactyl Minidox (3x5+3)", - "manufacturer": "DLFord", - "url": "https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/", - "maintainer": "dlford", - "usb": { - "vid": "0x444D", - "pid": "0x3536", - "device_version": "0.0.3" - }, - "ws2812": { - "pin": "D3" - }, - "rgb_matrix": { - "driver": "WS2812" - }, - "matrix_pins": { - "cols": ["C6", "D7", "E6", "B4", "B5"], - "rows": ["B1", "B3", "B2", "B6"] - }, - "diode_direction": "ROW2COL", - "split": { - "soft_serial_pin": "D0" - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "community_layouts": ["split_3x5_3"], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - - {"matrix": [4, 0], "x": 10, "y": 0}, - {"matrix": [4, 1], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0}, - {"matrix": [4, 3], "x": 13, "y": 0}, - {"matrix": [4, 4], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - - {"matrix": [5, 0], "x": 10, "y": 1}, - {"matrix": [5, 1], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1}, - {"matrix": [5, 3], "x": 13, "y": 1}, - {"matrix": [5, 4], "x": 14, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - - {"matrix": [6, 0], "x": 10, "y": 2}, - {"matrix": [6, 1], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2}, - {"matrix": [6, 3], "x": 13, "y": 2}, - {"matrix": [6, 4], "x": 14, "y": 2}, - - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - - {"matrix": [7, 0], "x": 10, "y": 3}, - {"matrix": [7, 1], "x": 11, "y": 3}, - {"matrix": [7, 2], "x": 12, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk deleted file mode 100644 index f40ace96060..00000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk +++ /dev/null @@ -1,17 +0,0 @@ -# Includes -SRC += features/caps_word.c - -# Build Options -# change yes to no to disable -# -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -DYNAMIC_MACRO_ENABLE = yes # Create macros on the fly -RGB_MATRIX_DRIVER = WS2812 -INDICATOR_LIGHTS = yes # Enable indicator lights for caps lock, etc. -# TAP_DANCE_ENABLE = yes # Send different keycodes if tapped multiple times -# KEY_OVERRIDE_ENABLE = yes # Override key combos -# COMBO_ENABLE = yes # Custom key combos - -LTO_ENABLE = yes -RGBLIGHT_SUPPORTED = yes -RGB_MATRIX_SUPPORTED = yes diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk b/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk deleted file mode 100644 index 38ee6f42528..00000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk +++ /dev/null @@ -1,18 +0,0 @@ -# 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 - -RGB_MATRIX_ENABLE = yes # Enable WS2812 RGB matrix -SPLIT_KEYBOARD = yes - -RGBLIGHT_SUPPORTED = yes -RGB_MATRIX_SUPPORTED = yes diff --git a/keyboards/handwired/dactyl_manuform/4x5/config.h b/keyboards/handwired/dactyl_manuform/4x5/config.h deleted file mode 100644 index 9a4e39dad21..00000000000 --- a/keyboards/handwired/dactyl_manuform/4x5/config.h +++ /dev/null @@ -1,22 +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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/4x5/info.json b/keyboards/handwired/dactyl_manuform/4x5/info.json index 5fdab01ef43..141bb477177 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/info.json +++ b/keyboards/handwired/dactyl_manuform/4x5/info.json @@ -8,6 +8,9 @@ "pid": "0x3435", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/info.json b/keyboards/handwired/dactyl_manuform/4x5_5/info.json index 7ad7118ee47..76f13971d45 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/info.json +++ b/keyboards/handwired/dactyl_manuform/4x5_5/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "Dactyl Manuform 4x5 5 thumb keys", + "keyboard_name": "Dactyl ManuForm 4x5_5", "manufacturer": "ssedrick", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/dactyl_manuform/4x5_5", "maintainer": "ssedrick", @@ -16,9 +16,7 @@ "split": { "soft_serial_pin": "D0" }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "community_layouts": ["split_3x5_3"], + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ @@ -28,11 +26,11 @@ {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [5, 0], "x": 6, "y": 0}, - {"matrix": [5, 1], "x": 7, "y": 0}, - {"matrix": [5, 2], "x": 8, "y": 0}, - {"matrix": [5, 3], "x": 9, "y": 0}, - {"matrix": [5, 4], "x": 10, "y": 0}, + {"matrix": [5, 0], "x": 8, "y": 0}, + {"matrix": [5, 1], "x": 9, "y": 0}, + {"matrix": [5, 2], "x": 10, "y": 0}, + {"matrix": [5, 3], "x": 11, "y": 0}, + {"matrix": [5, 4], "x": 12, "y": 0}, {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, @@ -40,11 +38,11 @@ {"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [6, 0], "x": 6, "y": 1}, - {"matrix": [6, 1], "x": 7, "y": 1}, - {"matrix": [6, 2], "x": 8, "y": 1}, - {"matrix": [6, 3], "x": 9, "y": 1}, - {"matrix": [6, 4], "x": 10, "y": 1}, + {"matrix": [6, 0], "x": 8, "y": 1}, + {"matrix": [6, 1], "x": 9, "y": 1}, + {"matrix": [6, 2], "x": 10, "y": 1}, + {"matrix": [6, 3], "x": 11, "y": 1}, + {"matrix": [6, 4], "x": 12, "y": 1}, {"matrix": [2, 0], "x": 0, "y": 2}, {"matrix": [2, 1], "x": 1, "y": 2}, @@ -52,82 +50,31 @@ {"matrix": [2, 3], "x": 3, "y": 2}, {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [7, 0], "x": 6, "y": 2}, - {"matrix": [7, 1], "x": 7, "y": 2}, - {"matrix": [7, 2], "x": 8, "y": 2}, - {"matrix": [7, 3], "x": 9, "y": 2}, - {"matrix": [7, 4], "x": 10, "y": 2}, + {"matrix": [7, 0], "x": 8, "y": 2}, + {"matrix": [7, 1], "x": 9, "y": 2}, + {"matrix": [7, 2], "x": 10, "y": 2}, + {"matrix": [7, 3], "x": 11, "y": 2}, + {"matrix": [7, 4], "x": 12, "y": 2}, {"matrix": [3, 1], "x": 1, "y": 3}, {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [8, 2], "x": 8, "y": 3}, - {"matrix": [8, 3], "x": 9, "y": 3}, + {"matrix": [8, 2], "x": 10, "y": 3}, + {"matrix": [8, 3], "x": 11, "y": 3}, {"matrix": [3, 3], "x": 3, "y": 4}, + {"matrix": [3, 4], "x": 4, "y": 4}, + {"matrix": [4, 4], "x": 5, "y": 4}, - {"matrix": [8, 1], "x": 7, "y": 4}, + {"matrix": [8, 1], "x": 9, "y": 4}, + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [8, 0], "x": 8, "y": 4}, - {"matrix": [3, 4], "x": 3, "y": 5}, - {"matrix": [4, 4], "x": 4, "y": 5}, + {"matrix": [4, 2], "x": 4, "y": 5}, + {"matrix": [4, 3], "x": 5, "y": 5}, - {"matrix": [9, 0], "x": 6, "y": 5}, - {"matrix": [8, 0], "x": 7, "y": 5}, - - {"matrix": [4, 2], "x": 3, "y": 6}, - {"matrix": [4, 3], "x": 4, "y": 6}, - - {"matrix": [9, 1], "x": 6, "y": 6}, - {"matrix": [9, 2], "x": 7, "y": 6} - ] - }, - "LAYOUT_split_3x5_3": { - "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": [5, 0], "x": 6, "y": 0}, - {"matrix": [5, 1], "x": 7, "y": 0}, - {"matrix": [5, 2], "x": 8, "y": 0}, - {"matrix": [5, 3], "x": 9, "y": 0}, - {"matrix": [5, 4], "x": 10, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - - {"matrix": [6, 0], "x": 6, "y": 1}, - {"matrix": [6, 1], "x": 7, "y": 1}, - {"matrix": [6, 2], "x": 8, "y": 1}, - {"matrix": [6, 3], "x": 9, "y": 1}, - {"matrix": [6, 4], "x": 10, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - - {"matrix": [7, 0], "x": 6, "y": 2}, - {"matrix": [7, 1], "x": 7, "y": 2}, - {"matrix": [7, 2], "x": 8, "y": 2}, - {"matrix": [7, 3], "x": 9, "y": 2}, - {"matrix": [7, 4], "x": 10, "y": 2}, - - {"matrix": [3, 3], "x": 3, "y": 4}, - - {"matrix": [8, 1], "x": 7, "y": 4}, - - {"matrix": [3, 4], "x": 3, "y": 5}, - {"matrix": [4, 4], "x": 4, "y": 5}, - - {"matrix": [9, 0], "x": 6, "y": 5}, - {"matrix": [8, 0], "x": 7, "y": 5} + {"matrix": [9, 1], "x": 7, "y": 5}, + {"matrix": [9, 2], "x": 8, "y": 5} ] } } diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/4x5_5/keymaps/default/keymap.c index cb78c9fb56b..8d38152f969 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x5_5/keymaps/default/keymap.c @@ -2,7 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#include "print.h" enum key_layers { _BASE, @@ -11,145 +10,45 @@ enum key_layers { _LOWER }; -enum layer_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, -}; - #define RAISE MO(_RAISE) #define LOWER MO(_LOWER) #define SH_ESC SFT_T(KC_ESC) -#define ____ KC_TRANSPARENT +#define ____ KC_TRNS const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base (qwerty) - * ,----------------------------------, ,----------------------------------, - * | q | w | e | r | t | | y | u | i | o | p | - * |------+------+------+------+------| |------+------+------+------+------| - * | a | s | d | f | g | | h | j | k | l | ; | - * |------+------+------+------+------| |------+------+------+------+------| - * | z | x | c | v | b | | n | m | , | . | / | - * '------+------+------+-------------' '------+------+------+------+------' - * | [ | ] | | ' | `~ | - * '-------------+------, ,------|-------------' - * | ESC | | BSPC | - * |-------------, ,------+------| - * | GUI | TAB | | SHIFT| SPACE| - * |------+------| |------+------| - * | RAISE| CTRL | | LOWER| ENTER| - * '-------------' '-------------' - */ [_BASE] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LBRC, KC_RBRC, KC_QUOT, KC_GRV, - SH_ESC, KC_BSPC, - KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, - RAISE, KC_LCTL, LOWER, KC_ENT + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LBRC, KC_RBRC, KC_QUOT, KC_GRV, + SH_ESC, KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, KC_BSPC, + RAISE, KC_LCTL, LOWER, KC_ENT ), - /* Colemak - * ,----------------------------------, ,----------------------------------, - * | q | w | f | p | g | | j | l | u | y | ; | - * |------+------+------+------+------| |------+------+------+------+------| - * | a | r | s | t | d | | h | n | e | i | o | - * |------+------+------+------+------| |------+------+------+------+------| - * | z | x | c | v | b | | k | m | , | . | / | - * '------+------+------+-------------' '------+------+------+------+------' - * | [ | ] | | ' | `~ | - * '-------------+------, ,------|-------------' - * | ESC | | BSPC | - * |-------------, ,------+------| - * | GUI | TAB | | SHIFT| SPACE| - * |------+------| |------+------| - * | RAISE| CTRL | | LOWER| ENTER| - * '-------------' '-------------' - */ [_COLEMAK] = LAYOUT( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_QUOT, KC_GRV, - KC_ESC, KC_BSPC, - KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, - RAISE, KC_LCTL, LOWER, KC_ENT + KC_ESC, ____, ____, ____, ____, ____, + ____, ____, ____, ____ ), - /* RAISE - * ,----------------------------------, ,----------------------------------, - * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - * |------+------+------+------+------| |------+------+------+------+------| - * | ( | ) | { | } | = | | - | 4 | 5 | 6 | ; | - * |------+------+------+------+------| |------+------+------+------+------| - * | QK_BOOT| BOOT | [ | ] | | | | 1 | 2 | 3 | | - * |------+------+------+-------------| |------+------+------+------+------, - * | | | | 0 | . | - * '-------------+------, ,------|-------------' - * | ESC | | BSPC | - * |-------------, ,------+------| - * | GUI | TAB | | SHIFT| SPACE| - * |------+------| |------+------| - * | RAISE| CTRL | | LOWER| ENTER| - * '-------------' '-------------' - */ + [_RAISE] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - S(KC_9), S(KC_0), KC_LCBR, KC_RCBR, KC_EQL, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, - QK_RBT, QK_BOOT, KC_LBRC, KC_RBRC, ____, ____, KC_1, KC_2, KC_3, ____, - ____, ____, KC_0, KC_DOT, - ____, ____, - ____, ____, ____, ____, - ____, ____, ____, ____ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + S(KC_9), S(KC_0), KC_LCBR, KC_RCBR, KC_EQL, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, + QK_RBT, QK_BOOT, KC_LBRC, KC_RBRC, ____, ____, KC_1, KC_2, KC_3, ____, + ____, ____, KC_0, KC_DOT, + ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____ ), - /* LOWER - * ,----------------------------------, ,----------------------------------, - * | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - * |------+------+------+------+------| |------+------+------+------+------| - * | ( | ) | { | } | = | | | - | + | | | | - * |------+------+------+------+------| |------+------+------+------+------| - * | | | | | | | | LEFT | DOWN | UP | RIGHT| - * |------+------+------+-------------| |------+------+------+------+------, - * | | | |QWERTY|COLEMA| - * '-------------+------, ,------|-------------' - * | ESC | | BSPC | - * |-------------, ,------+------| - * | GUI | TAB | | SHIFT| SPACE| - * |------+------| |------+------| - * | RAISE| CTRL | | LOWER| ENTER| - * '-------------' '-------------' - */ [_LOWER] = LAYOUT( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, - S(KC_9), S(KC_0), KC_LBRC, KC_RBRC, KC_EQL, ____, KC_MINS, KC_EQL, KC_PIPE, ____, - ____, ____, ____, ____, ____, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - ____, ____, QWERTY, COLEMAK, - ____, ____, - ____, ____, ____, ____, - ____, ____, ____, ____ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + S(KC_9), S(KC_0), KC_LBRC, KC_RBRC, KC_EQL, ____, KC_MINS, KC_EQL, KC_PIPE, ____, + ____, ____, ____, ____, ____, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + ____, ____, KC_QUOT, KC_GRV, + ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____ ) }; - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // If console is enabled, it will print the matrix position and status of each key pressed -#ifdef CONSOLE_ENABLE - uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %d, time: %u, interrupt: %d, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); -#endif - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_BASE); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - } - return true; -} - diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keymaps/ssedrick/keymap.c b/keyboards/handwired/dactyl_manuform/4x5_5/keymaps/ssedrick/keymap.c index 0e962023158..5774ab7f3bd 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/keymaps/ssedrick/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x5_5/keymaps/ssedrick/keymap.c @@ -16,7 +16,6 @@ enum layer_keycodes { COLEMAK, }; - #define RAISE TT(_RAISE) #define LOWER MO(_LOWER) #define SH_ESC SFT_T(KC_ESC) @@ -28,111 +27,40 @@ enum layer_keycodes { #define TAPPING_TOGGLE 2 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base (qwerty) - * ,----------------------------------, ,----------------------------------, - * | q | w | e | r | t | | y | u | i | o | p | - * |------+------+------+------+------| |------+------+------+------+------| - * | a | s | d | f | g | | h | j | k | l | ; | - * |------+------+------+------+------| |------+------+------+------+------| - * | z | x | c | v | b | | n | m | , | . | / | - * '------+------+------+-------------' '------+------+------+------+------' - * | { | } | | ' | `~ | - * '-------------+------, ,------|-------------' - * | ESC | | ENTER| - * |-------------, ,------+------| - * | GUI | TAB | | BCKSP| SPACE| - * |------+------| |------+------| - * | RAISE| CTRL | | SHIFT| LOWER| - * '-------------' '-------------' - */ [_BASE] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LCBR, KC_RCBR, KC_QUOT, KC_GRV, - SH_ESC, KC_ENT, - KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, - RAISE, KC_LCTL, KC_BSPC, LOWER + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCBR, KC_RCBR, KC_QUOT, KC_GRV, + SH_ESC, KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, KC_ENT, + RAISE, KC_LCTL, KC_BSPC, LOWER ), - - /* Colemak - * ,----------------------------------, ,----------------------------------, - * | q | w | f | p | g | | j | l | u | y | ; | - * |------+------+------+------+------| |------+------+------+------+------| - * | a | r | s | t | d | | h | n | e | i | o | - * |------+------+------+------+------| |------+------+------+------+------| - * | z | x | c | v | b | | k | m | , | . | / | - * '------+------+------+-------------' '------+------+------+------+------' - * | [ | ] | | ' | `~ | - * '-------------+------, ,------|-------------' - * | ESC | | BSPC | - * |-------------, ,------+------| - * | GUI | TAB | | SHIFT| SPACE| - * |------+------| |------+------| - * | RAISE| CTRL | | LOWER| ENTER| - * '-------------' '-------------' - */ + [_COLEMAK] = LAYOUT( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LCBR, KC_RCBR, KC_QUOT, KC_GRV, - SH_ESC, KC_ENT, - KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, - RAISE, KC_LCTL, KC_BSPC, LOWER + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCBR, KC_RCBR, KC_QUOT, KC_GRV, + ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____ ), - /* RAISE - * ,----------------------------------, ,----------------------------------, - * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - * |------+------+------+------+------| |------+------+------+------+------| - * | ( | ) | [ | ] | = | | _ | 4 | 5 | 6 | ; | - * |------+------+------+------+------| |------+------+------+------+------| - * | QK_BOOT| BOOT | | | | | | 1 | 2 | 3 | | - * |------+------+------+-------------| |------+------+------+------+------, - * |MAC_LC| | | 0 | . | - * '-------------+------, ,------|-------------' - * | ESC | | BSPC | - * |-------------, ,------+------| - * | GUI | TAB | | SHIFT| SPACE| - * |------+------| |------+------| - * | RAISE| CTRL | | LOWER| ENTER| - * '-------------' '-------------' - */ + [_RAISE] = LAYOUT( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_9), S(KC_0), KC_LBRC, KC_RBRC, KC_EQL, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, QK_RBT, QK_BOOT, ____, ____, ____, ____, KC_1, KC_2, KC_3, ____, MAC_LOCK, ____, KC_0, KC_DOT, - ____, ____, - ____, ____, ____, ____, - ____, ____, ____, ____ + ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____ ), - /* LOWER - * ,----------------------------------, ,----------------------------------, - * | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - * |------+------+------+------+------| |------+------+------+------+------| - * | ( | ) | { | } | = | | _ | - | + | \ | | | - * |------+------+------+------+------| |------+------+------+------+------| - * | NEXT | PLAY | VOLU | VOLD | | | | LEFT | DOWN | UP | RIGHT| - * |------+------+------+-------------| |------+------+------+------+------, - * | | | |QWERTY|COLEMA| - * '-------------+------, ,------|-------------' - * | ESC | | BSPC | - * |-------------, ,------+------| - * | GUI | TAB | | SHIFT| SPACE| - * |------+------| |------+------| - * | RAISE| CTRL | | LOWER| ENTER| - * '-------------' '-------------' - */ [_LOWER] = LAYOUT( KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, S(KC_9), S(KC_0), KC_LBRC, KC_RBRC, KC_EQL, UNDSC, KC_MINS, KC_EQL, KC_BSLS, KC_PIPE, KC_MNXT, KC_MPLY, KC_VOLU, KC_VOLD, ____, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, ____, ____, QWERTY, COLEMAK, - ____, ____, - ____, ____, ____, ____, - ____, ____, ____, ____ + ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____ ) }; diff --git a/keyboards/handwired/dactyl_manuform/4x6/config.h b/keyboards/handwired/dactyl_manuform/4x6/config.h deleted file mode 100644 index 9a4e39dad21..00000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/config.h +++ /dev/null @@ -1,22 +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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/4x6/info.json b/keyboards/handwired/dactyl_manuform/4x6/info.json index 7de3ef0b0d2..5b415fbd2bb 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/info.json +++ b/keyboards/handwired/dactyl_manuform/4x6/info.json @@ -8,6 +8,9 @@ "pid": "0x3436", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c index 2e92d4b86b3..24f6b35f57d 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c @@ -60,5 +60,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { N_PASTE , N_UNDO , KC_BSPC , KC_DEL ), - }; diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk index 9991dcad719..53ce5a31906 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk +++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk @@ -8,3 +8,4 @@ COMMAND_ENABLE = no NKRO_ENABLE = yes RGBLIGHT_ENABLE = yes DEBOUNCE_TYPE = asym_eager_defer_pk +USER_NAME := scheiklp diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/config.h b/keyboards/handwired/dactyl_manuform/4x6_5/config.h deleted file mode 100644 index 9a4e39dad21..00000000000 --- a/keyboards/handwired/dactyl_manuform/4x6_5/config.h +++ /dev/null @@ -1,22 +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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/info.json b/keyboards/handwired/dactyl_manuform/4x6_5/info.json index b9ebd6d7df1..f54f0d56d25 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_5/info.json +++ b/keyboards/handwired/dactyl_manuform/4x6_5/info.json @@ -8,6 +8,9 @@ "pid": "0x3436", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_manuform/5x6/config.h b/keyboards/handwired/dactyl_manuform/5x6/config.h deleted file mode 100644 index 9a4e39dad21..00000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/config.h +++ /dev/null @@ -1,22 +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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/5x6/info.json b/keyboards/handwired/dactyl_manuform/5x6/info.json index 89c2c800c6e..e6372961d8f 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/info.json +++ b/keyboards/handwired/dactyl_manuform/5x6/info.json @@ -8,6 +8,9 @@ "pid": "0x3536", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/thattolleyguy/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/thattolleyguy/rules.mk index 53ca4b51d0a..09e4c42d693 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/thattolleyguy/rules.mk +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/thattolleyguy/rules.mk @@ -1,5 +1,5 @@ RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 DYNAMIC_MACRO_ENABLE = yes # CONSOLE_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/via/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/via/keymap.c new file mode 100644 index 00000000000..337f332c5d9 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2023 QMK Community +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, +}; + +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_5x6( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,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_MINS, + KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, + KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLS, + KC_LBRC,KC_RBRC, KC_PLUS, KC_EQL, + RAISE,KC_SPC, KC_ENT, LOWER, + KC_TAB,KC_HOME, KC_END, KC_DEL, + KC_BSPC, KC_GRV, KC_LGUI, KC_LALT + ), + + [_LOWER] = LAYOUT_5x6( + KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL, + _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,_______,KC_PLUS, + _______,KC_HOME,KC_PGUP,KC_PGDN,KC_END ,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE, + _______,_______,_______,_______,_______,_______, _______, KC_P1 , KC_P2 , KC_P3 ,KC_EQL ,KC_UNDS, + _______,KC_PSCR, _______, KC_P0, + _______,_______, _______,_______, + _______,_______, _______,_______, + _______,_______, _______,_______ + + ), + + [_RAISE] = LAYOUT_5x6( + 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_LBRC, KC_RBRC,_______,KC_NUM,KC_INS ,KC_SCRL,KC_MUTE, + _______,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,KC_VOLD, + _______,_______, KC_EQL ,_______, + _______,_______, _______,_______, + _______,_______, _______,_______, + _______,_______, _______,_______ + ) +}; diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/via/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk index 6e58ff5d15e..c83f96e1028 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk +++ b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk @@ -1,5 +1,4 @@ KEY_LOCK_ENABLE = yes CONSOLE_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/info.json b/keyboards/handwired/dactyl_manuform/5x6_68/info.json index f82f84da9c5..78a602cb64f 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/info.json +++ b/keyboards/handwired/dactyl_manuform/5x6_68/info.json @@ -3,14 +3,25 @@ "manufacturer": "kpagratis", "url": "", "maintainer": "kpagratis", - "bootloader": "caterina", - "processor": "atmega32u4", + "development_board": "promicro", "usb": { "vid": "0xFEED", "pid": "0x0016", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "command": true, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "audio": false, + "backlight": false, + "rgblight": false + }, "split": { + "enabled": true, "soft_serial_pin": "D0" }, "matrix_pins": { @@ -21,80 +32,89 @@ "layouts": { "LAYOUT": { "layout": [ - {"x": 0, "y": 0, "matrix": [0, 0]}, - {"x": 1, "y": 0, "matrix": [0, 1]}, - {"x": 2, "y": 0, "matrix": [0, 2]}, - {"x": 3, "y": 0, "matrix": [0, 3]}, - {"x": 4, "y": 0, "matrix": [0, 4]}, - {"x": 5, "y": 0, "matrix": [0, 5]}, - {"x": 14, "y": 0, "matrix": [6, 0]}, - {"x": 15, "y": 0, "matrix": [6, 1]}, - {"x": 16, "y": 0, "matrix": [6, 2]}, - {"x": 17, "y": 0, "matrix": [6, 3]}, - {"x": 18, "y": 0, "matrix": [6, 4]}, - {"x": 19, "y": 0, "matrix": [6, 5]}, + {"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": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + {"matrix": [6, 4], "x": 15, "y": 0}, + {"matrix": [6, 5], "x": 16, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [7, 0], "x": 11, "y": 1}, + {"matrix": [7, 1], "x": 12, "y": 1}, + {"matrix": [7, 2], "x": 13, "y": 1}, + {"matrix": [7, 3], "x": 14, "y": 1}, + {"matrix": [7, 4], "x": 15, "y": 1}, + {"matrix": [7, 5], "x": 16, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [8, 0], "x": 11, "y": 2}, + {"matrix": [8, 1], "x": 12, "y": 2}, + {"matrix": [8, 2], "x": 13, "y": 2}, + {"matrix": [8, 3], "x": 14, "y": 2}, + {"matrix": [8, 4], "x": 15, "y": 2}, + {"matrix": [8, 5], "x": 16, "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}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [9, 0], "x": 11, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 4], "x": 15, "y": 3}, + {"matrix": [9, 5], "x": 16, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + + {"matrix": [10, 2], "x": 13, "y": 4}, + {"matrix": [10, 3], "x": 14, "y": 4}, + {"matrix": [10, 4], "x": 15, "y": 4}, + {"matrix": [10, 5], "x": 16, "y": 4}, - {"x": 0, "y": 1, "matrix": [1, 0]}, - {"x": 1, "y": 1, "matrix": [1, 1]}, - {"x": 2, "y": 1, "matrix": [1, 2]}, - {"x": 3, "y": 1, "matrix": [1, 3]}, - {"x": 4, "y": 1, "matrix": [1, 4]}, - {"x": 5, "y": 1, "matrix": [1, 5]}, - {"x": 14, "y": 1, "matrix": [7, 0]}, - {"x": 15, "y": 1, "matrix": [7, 1]}, - {"x": 16, "y": 1, "matrix": [7, 2]}, - {"x": 17, "y": 1, "matrix": [7, 3]}, - {"x": 18, "y": 1, "matrix": [7, 4]}, - {"x": 19, "y": 1, "matrix": [7, 5]}, + {"matrix": [4, 4], "x": 4, "y": 5}, + {"matrix": [4, 5], "x": 5, "y": 5}, - {"x": 0, "y": 2, "matrix": [2, 0]}, - {"x": 1, "y": 2, "matrix": [2, 1]}, - {"x": 2, "y": 2, "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": 14, "y": 2, "matrix": [8, 0]}, - {"x": 15, "y": 2, "matrix": [8, 1]}, - {"x": 16, "y": 2, "matrix": [8, 2]}, - {"x": 17, "y": 2, "matrix": [8, 3]}, - {"x": 18, "y": 2, "matrix": [8, 4]}, - {"x": 19, "y": 2, "matrix": [8, 5]}, + {"matrix": [10, 0], "x": 11, "y": 5}, + {"matrix": [10, 1], "x": 12, "y": 5}, - {"x": 0, "y": 3, "matrix": [3, 0]}, - {"x": 1, "y": 3, "matrix": [3, 1]}, - {"x": 2, "y": 3, "matrix": [3, 2]}, - {"x": 3, "y": 3, "matrix": [3, 3]}, - {"x": 4, "y": 3, "matrix": [3, 4]}, - {"x": 5, "y": 3, "matrix": [3, 5]}, - {"x": 14, "y": 3, "matrix": [9, 0]}, - {"x": 15, "y": 3, "matrix": [9, 1]}, - {"x": 16, "y": 3, "matrix": [9, 2]}, - {"x": 17, "y": 3, "matrix": [9, 3]}, - {"x": 18, "y": 3, "matrix": [9, 4]}, - {"x": 19, "y": 3, "matrix": [9, 5]}, + {"matrix": [5, 4], "x": 6, "y": 6}, + {"matrix": [5, 5], "x": 7, "y": 6}, - {"x": 0, "y": 4, "matrix": [4, 0]}, - {"x": 1, "y": 4, "matrix": [4, 1]}, - {"x": 2, "y": 4, "matrix": [4, 2]}, - {"x": 3, "y": 4, "matrix": [4, 3]}, - {"x": 16, "y": 4, "matrix": [10, 2]}, - {"x": 17, "y": 4, "matrix": [10, 3]}, - {"x": 18, "y": 4, "matrix": [10, 4]}, - {"x": 19, "y": 4, "matrix": [10, 5]}, + {"matrix": [11, 0], "x": 9, "y": 6}, + {"matrix": [11, 1], "x": 10, "y": 6}, - {"x": 5, "y": 5, "matrix": [5, 0]}, - {"x": 6, "y": 5, "matrix": [5, 1]}, - {"x": 7, "y": 5, "matrix": [5, 2]}, - {"x": 13, "y": 5, "matrix": [11, 0]}, - {"x": 14, "y": 5, "matrix": [11, 1]}, - {"x": 15, "y": 5, "matrix": [11, 2]}, + {"matrix": [5, 2], "x": 6, "y": 7}, + {"matrix": [5, 3], "x": 7, "y": 7}, - {"x": 5, "y": 6, "matrix": [5, 3]}, - {"x": 6, "y": 6, "matrix": [5, 4]}, - {"x": 7, "y": 6, "matrix": [5, 5]}, - {"x": 13, "y": 6, "matrix": [11, 3]}, - {"x": 14, "y": 6, "matrix": [11, 4]}, - {"x": 15, "y": 6, "matrix": [11, 5]} + {"matrix": [11, 2], "x": 9, "y": 7}, + {"matrix": [11, 3], "x": 10, "y": 7} ] } } diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x6_68/keymaps/default/keymap.c index 20699ed2e14..4e774ea7160 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_manuform/5x6_68/keymaps/default/keymap.c @@ -5,39 +5,45 @@ enum custom_layers { _QWERTY, - _LAYER2, + _LOWER, + _RAISE }; -#define GUI_J RGUI_T(KC_J) -#define GUI_F LGUI_T(KC_F) -#define SFT_A LSFT_T(KC_A) -#define CTL_S LCTL_T(KC_S) -#define ALT_D LALT_T(KC_D) -#define ALT_K RALT_T(KC_K) -#define CTL_L RCTL_T(KC_L) -#define SFT_SC RSFT_T(KC_SCLN) -#define IMPORTS LALT(LCTL(KC_O)) //Intellij Organize Imports -#define LINES LALT(LGUI(KC_L)) //Intellij Reformat Code -#define USAGES LALT(KC_F7) //Intelllj Find Usages -#define RENAME LSFT(KC_F6) //Intellij Refactor Rename +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( - KC_EQL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, - 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_ESC , SFT_A , CTL_S , ALT_D , GUI_F , KC_G , KC_H , GUI_J , ALT_K , CTL_L , SFT_SC , 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_RSFT, - KC_GRV , KC_INS , KC_LEFT, KC_RGHT, KC_DOWN, KC_UP , KC_LBRC, KC_RBRC, - KC_LCTL, KC_LALT, KC_HOME, KC_DEL , KC_PGUP, KC_BSPC, - KC_SPC , KC_DEL , KC_END , MO(_LAYER2), KC_PGDN, KC_ENT + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_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_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_LALT, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_RALT, KC_RCTL, + RAISE, KC_SPC, KC_ENT, LOWER, + KC_HOME, KC_BSPC, KC_DEL, KC_END, + KC_PGUP, KC_LGUI, KC_RGUI, KC_PGDN ), - [_LAYER2] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, - XXXXXXX, IMPORTS, XXXXXXX, USAGES , RENAME , XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, - XXXXXXX, LINES , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, _______,XXXXXXX, XXXXXXX + + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, _______, + _______, KC_SCRL, KC_INS, KC_PAUS, KC_PSCR, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, + _______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + + ), + + [_RAISE] = LAYOUT( + 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_TRNS, KC_TRNS, _______, KC_NUM, _______, _______, KC_MUTE, + _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ ) }; diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/readme.md b/keyboards/handwired/dactyl_manuform/5x6_68/readme.md index 69f68bbfb89..b21270e3911 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/readme.md +++ b/keyboards/handwired/dactyl_manuform/5x6_68/readme.md @@ -1,5 +1,5 @@ -# Dactyl Manuform +# Dactyl Manuform 5x6_68 -This is a 5x6 manuform with a 4 key bottom row and 6 key thumb clusters. +This is a Dactyl ManuForm 5x6 with an extended, 4 key, bottom row; totalling 68 keys. -This results in a 68 key 5x6 \ No newline at end of file +![diagram](https://i.imgur.com/TGd36fWh.png) diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/rules.mk b/keyboards/handwired/dactyl_manuform/5x6_68/rules.mk index 5ef0d2fdb96..6e7633bfe01 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/rules.mk +++ b/keyboards/handwired/dactyl_manuform/5x6_68/rules.mk @@ -1,13 +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 = 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 = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -SPLIT_KEYBOARD = yes +# This file intentionally left blank diff --git a/keyboards/handwired/dactyl_manuform/5x7/config.h b/keyboards/handwired/dactyl_manuform/5x7/config.h deleted file mode 100644 index 9a4e39dad21..00000000000 --- a/keyboards/handwired/dactyl_manuform/5x7/config.h +++ /dev/null @@ -1,22 +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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/5x7/info.json b/keyboards/handwired/dactyl_manuform/5x7/info.json index b166df22a04..68270606cc4 100644 --- a/keyboards/handwired/dactyl_manuform/5x7/info.json +++ b/keyboards/handwired/dactyl_manuform/5x7/info.json @@ -8,6 +8,9 @@ "pid": "0x3537", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_manuform/6x6/promicro/config.h b/keyboards/handwired/dactyl_manuform/6x6/promicro/config.h deleted file mode 100644 index 1da1cb9590a..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x6/promicro/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* 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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/6x6/promicro/info.json b/keyboards/handwired/dactyl_manuform/6x6/promicro/info.json index 2b542a15da2..245310fd3c5 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/promicro/info.json +++ b/keyboards/handwired/dactyl_manuform/6x6/promicro/info.json @@ -7,6 +7,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/config.h b/keyboards/handwired/dactyl_manuform/6x6_4/config.h deleted file mode 100644 index 9a4e39dad21..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_4/config.h +++ /dev/null @@ -1,22 +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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/info.json b/keyboards/handwired/dactyl_manuform/6x6_4/info.json index 567057cf084..955060de7a0 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_4/info.json +++ b/keyboards/handwired/dactyl_manuform/6x6_4/info.json @@ -8,6 +8,9 @@ "pid": "0x3636", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/config.h b/keyboards/handwired/dactyl_manuform/6x6_kinesis/config.h deleted file mode 100644 index 9a4e39dad21..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/config.h +++ /dev/null @@ -1,22 +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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json b/keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json deleted file mode 100644 index 8f14c5049e8..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "keyboard_name": "Dactyl-Manuform (6x6+4)", - "manufacturer": "tshort", - "url": "", - "maintainer": "dmik", - "usb": { - "vid": "0x444D", - "pid": "0x3636", - "device_version": "0.0.1" - }, - "ws2812": { - "pin": "D3" - }, - "matrix_pins": { - "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], - "rows": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"] - }, - "diode_direction": "COL2ROW", - "split": { - "soft_serial_pin": "D0" - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "layouts": { - "LAYOUT_6x6_kinesis": { - "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": [7, 0], "x": 11, "y": 0}, - {"matrix": [7, 1], "x": 12, "y": 0}, - {"matrix": [7, 2], "x": 13, "y": 0}, - {"matrix": [7, 3], "x": 14, "y": 0}, - {"matrix": [7, 4], "x": 15, "y": 0}, - {"matrix": [7, 5], "x": 16, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - - {"matrix": [8, 0], "x": 11, "y": 1}, - {"matrix": [8, 1], "x": 12, "y": 1}, - {"matrix": [8, 2], "x": 13, "y": 1}, - {"matrix": [8, 3], "x": 14, "y": 1}, - {"matrix": [8, 4], "x": 15, "y": 1}, - {"matrix": [8, 5], "x": 16, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - - {"matrix": [9, 0], "x": 11, "y": 2}, - {"matrix": [9, 1], "x": 12, "y": 2}, - {"matrix": [9, 2], "x": 13, "y": 2}, - {"matrix": [9, 3], "x": 14, "y": 2}, - {"matrix": [9, 4], "x": 15, "y": 2}, - {"matrix": [9, 5], "x": 16, "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}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - - {"matrix": [10, 0], "x": 11, "y": 3}, - {"matrix": [10, 1], "x": 12, "y": 3}, - {"matrix": [10, 2], "x": 13, "y": 3}, - {"matrix": [10, 3], "x": 14, "y": 3}, - {"matrix": [10, 4], "x": 15, "y": 3}, - {"matrix": [10, 5], "x": 16, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - - {"matrix": [11, 0], "x": 11, "y": 4}, - {"matrix": [11, 1], "x": 12, "y": 4}, - {"matrix": [11, 2], "x": 13, "y": 4}, - {"matrix": [11, 3], "x": 14, "y": 4}, - {"matrix": [11, 4], "x": 15, "y": 4}, - {"matrix": [11, 5], "x": 16, "y": 4}, - - {"matrix": [5, 0], "x": 1, "y": 5}, - {"matrix": [5, 1], "x": 2, "y": 5}, - {"matrix": [5, 2], "x": 3, "y": 5}, - {"matrix": [5, 3], "x": 4, "y": 5}, - - {"matrix": [12, 2], "x": 12, "y": 5}, - {"matrix": [12, 3], "x": 13, "y": 5}, - {"matrix": [12, 4], "x": 14, "y": 5}, - {"matrix": [12, 5], "x": 15, "y": 5}, - - {"matrix": [5, 4], "x": 5, "y": 7, "h": 2}, - {"matrix": [5, 5], "x": 6, "y": 7, "h": 2}, - - {"matrix": [12, 0], "x": 10, "y": 7, "h": 2}, - {"matrix": [12, 1], "x": 11, "y": 7, "h": 2}, - - {"matrix": [6, 4], "x": 6, "y": 6}, - {"matrix": [6, 5], "x": 7, "y": 6}, - - {"matrix": [13, 0], "x": 9, "y": 6}, - {"matrix": [13, 1], "x": 10, "y": 6}, - - {"matrix": [6, 2], "x": 7, "y": 8}, - {"matrix": [6, 3], "x": 7, "y": 7}, - - {"matrix": [13, 2], "x": 9, "y": 7}, - {"matrix": [13, 3], "x": 9, "y": 8} - ] - } - } -} diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/6x6_kinesis/keymaps/default/keymap.c deleted file mode 100644 index 2ef9794d6d7..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/keymaps/default/keymap.c +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2012 Jun Wako -// Copyright 2021 Dmitriy Kuminov (@dmik) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum custom_layers { - _QWERTY, - _LOWER, - _RAISE, -}; - -#define RAISE MO(_RAISE) -#define LOWER MO(_LOWER) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_6x6_kinesis( - KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_CAPS, - KC_EQL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, - 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_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, KC_RSFT, - KC_GRV , LOWER , KC_LEFT, KC_RGHT, KC_UP , KC_DOWN, KC_LBRC, KC_RBRC, - KC_BSPC, KC_DEL , KC_ENT , KC_SPC , - KC_LGUI, KC_LALT, KC_RCTL, KC_RGUI, - KC_END , KC_HOME, KC_PGUP, KC_PGDN - ), - - [_LOWER] = LAYOUT_6x6_kinesis( - _______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_INS , _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______ - ), - - [_RAISE] = LAYOUT_6x6_kinesis( - _______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_INS , _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______ - ), -}; diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/readme.md b/keyboards/handwired/dactyl_manuform/6x6_kinesis/readme.md deleted file mode 100644 index 1e44cc96015..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/readme.md +++ /dev/null @@ -1,85 +0,0 @@ -# Kinesis Advantage Keymap - -## About this keymap - -This keymap is designed after Kinesis Advantage's QWERTY layout with the following key differences: - - There are only 10 F-keys in the main layer, F1 and F2 are moved to additional LOWER layer. - - The INS key acts like a LOWER layer activation key and Del in LOWER layer ats like INS. - - LCtl is placed where CAPS should be and CAPS is moved to a free key after F10. - - Brigtness and volume control keys are added to LOWER layer. - - The keymap file also contains RAISE layer but it is currently equivalent to LOWER layer and does - not have an activation key mapped. It is intended for possible extensions. - -## Mapping details - - Main QUERTY layer: - ,-------------------------------------------. ,-------------------------------------------. - | ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | CAPS | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | LCtl | A | S | D | F | G | | H | J | K | L | ; | ' | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | LShift | Z | X | C | V | B | | N | M | , | . | / | RShift | - `--------+------+------+------+------+------' `------+------+------+------+------+--------' - | ` | LOWER| Left | Rght | | Up | Dn | [ | ] | - `---------------------------' `---------------------------' - ,-------------. ,-------------. - | LGui | LAlt | | RCtl | RGui | - ,------|------|------| |------+------+------. - | | | Home | | PgUp | | | - | BkSp | Del |------| |------|Enter |Space | - | | | End | | PgDn | | | - `--------------------' `--------------------' - - LOWER layer: - ,-------------------------------------------. ,-------------------------------------------. - | | F11 | F12 | | | | |BriDn |BriUp |VMute |VolDn |VolUp | | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | | | | | | | | | | | | | | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | | | | | | | | | | | | | | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | | | | | | | | | | | | | | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | | | | | | | | | | | | | | - `--------+------+------+------+------+------' `------+------+------+------+------+--------' - | | | | | | | | | | - `---------------------------' `---------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | | | | - | | INS |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' - -## Soldering details - -The below picture shows correspondence between the keys and the row/column wires of the left and -right halves: - - LOWER layer: - ,-------------------------------------------. ,-------------------------------------------. - | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | L10 | L11 | L12 | L13 | L14 | L15 | | R10 | R11 | R12 | R13 | R14 | R15 | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | L20 | L21 | L22 | L23 | L24 | L25 | | R20 | R21 | R22 | R23 | R24 | R25 | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | L40 | L41 | L42 | L43 | L44 | L45 | | R40 | R41 | R42 | R43 | R44 | R45 | - `--------+------+------+------+------+------' `------+------+------+------+------+--------' - | L50 | L51 | L52 | L53 | | R52 | R53 | R54 | R55 | - `---------------------------' `---------------------------' - ,-------------. ,-------------. - | L64 | L65 | | R60 | R61 | - ,------|------|------| |------+------+------. - | | | L63 | | R62 | | | - | L54 | L55 |------| |------| R50 | R51 | - | | | L62 | | R63 | | | - `--------------------' `--------------------' diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/rules.mk b/keyboards/handwired/dactyl_manuform/6x6_kinesis/rules.mk deleted file mode 100644 index b893863bb52..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/rules.mk +++ /dev/null @@ -1,13 +0,0 @@ -# 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 = no # Console for debug -COMMAND_ENABLE = yes # 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 -SPLIT_KEYBOARD = yes diff --git a/keyboards/handwired/dactyl_manuform/6x7/config.h b/keyboards/handwired/dactyl_manuform/6x7/config.h deleted file mode 100644 index 9a4e39dad21..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x7/config.h +++ /dev/null @@ -1,22 +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 - -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 diff --git a/keyboards/handwired/dactyl_manuform/6x7/info.json b/keyboards/handwired/dactyl_manuform/6x7/info.json index ea983da9c8b..529d92bd3f9 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/info.json +++ b/keyboards/handwired/dactyl_manuform/6x7/info.json @@ -8,21 +8,35 @@ "pid": "0x3636", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "command": true, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "audio": false, + "backlight": false, + "rgblight": false + }, "ws2812": { "pin": "D3" }, "matrix_pins": { - "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "B7"], + "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "D1"], "rows": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", "split": { + "enabled": true, "soft_serial_pin": "D0" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "rgblight": { + "led_count": 12 + }, + "development_board": "promicro", "layouts": { - "LAYOUT_6x7": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/handwired/dactyl_manuform/6x7/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/6x7/keymaps/default/keymap.c index 83fab9409df..5653786dcfb 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_manuform/6x7/keymaps/default/keymap.c @@ -12,7 +12,7 @@ enum custom_layer { #define LOWER MO(_LOWER) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_6x7( + [_QWERTY] = 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_LBRC , KC_RBRC, _______, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_QUOT , KC_BSLS, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_BSPC,KC_GRV, KC_LGUI, KC_LALT ), - [_LOWER] = LAYOUT_6x7( + [_LOWER] = 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_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL , _______, _______, _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,_______,KC_PLUS, _______, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______, _______,_______ ), - [_RAISE] = LAYOUT_6x7( + [_RAISE] = LAYOUT( _______,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_LBRC, KC_RBRC,_______,KC_NUM ,KC_INS ,KC_SCRL,KC_MUTE, _______, _______,_______,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU, _______, diff --git a/keyboards/handwired/dactyl_manuform/6x7/keymaps/iso-de/keymap.c b/keyboards/handwired/dactyl_manuform/6x7/keymaps/iso-de/keymap.c index 0e8436788e6..dbbc54cdcab 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keymaps/iso-de/keymap.c +++ b/keyboards/handwired/dactyl_manuform/6x7/keymaps/iso-de/keymap.c @@ -10,7 +10,7 @@ enum custom_layer { #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTZ] = LAYOUT_6x7( + [_QWERTZ] = 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_HOME, 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_END , XXXXXXX, 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, @@ -18,12 +18,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, 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_MPLY, KC_LEFT, KC_RGHT, KC_UP , KC_DOWN, KC_SPC , KC_LSFT, KC_RALT, KC_ENT , - KC_LGUI, KC_LALT, KC_BSPC, KC_DEL , KC_PGDN, KC_PGUP, KC_TAB , KC_INS ), - [_RAISE] = LAYOUT_6x7( + [_RAISE] = LAYOUT( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -31,7 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLU, KC_VOLD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/dactyl_manuform/6x7/rules.mk b/keyboards/handwired/dactyl_manuform/6x7/rules.mk index b893863bb52..e69de29bb2d 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/rules.mk +++ b/keyboards/handwired/dactyl_manuform/6x7/rules.mk @@ -1,13 +0,0 @@ -# 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 = no # Console for debug -COMMAND_ENABLE = yes # 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 -SPLIT_KEYBOARD = yes diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h b/keyboards/handwired/dactyl_manuform/dmote/62key/config.h index 41af664c258..e8bbf91d080 100644 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h +++ b/keyboards/handwired/dactyl_manuform/dmote/62key/config.h @@ -1,9 +1,5 @@ #pragma once // WS2812 RGB LED, normally used to indicate keyboard state: -#define RGBLIGHT_EFFECT_KNIGHT #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 -#define RGBLIGHT_EFFECT_CHRISTMAS #define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 -#define RGBLED_NUM 6 // Used when chaining strips -#define RGBLED_SPLIT { 3, 3 } // Used when not chaining strips diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/info.json b/keyboards/handwired/dactyl_manuform/dmote/62key/info.json index c2a818bde29..8e27a68f16e 100644 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/info.json +++ b/keyboards/handwired/dactyl_manuform/dmote/62key/info.json @@ -10,6 +10,14 @@ "pid": "0x3632", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 6, + "split_count": [3, 3], + "animations": { + "knight": true, + "christmas": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/handwired/dactyl_manuform/readme.md b/keyboards/handwired/dactyl_manuform/readme.md index 560562f5442..dd281844007 100644 --- a/keyboards/handwired/dactyl_manuform/readme.md +++ b/keyboards/handwired/dactyl_manuform/readme.md @@ -1,188 +1,112 @@ -# Dactyl Manuform (4x5, 5x6, 5x7, 6x6, 6x7) +# Dactyl ManuForm -the [Dactyl-Manuform](https://github.com/tshort/dactyl-keyboard) is a split curved keyboard based on the design of [adereth dactyl](https://github.com/adereth/dactyl-keyboard) and thumb cluster design of the [manuform](https://geekhack.org/index.php?topic=46015.0) keyboard, the hardware is similar to the let's split keyboard. all information needed for making one is in the first link. -![Imgur](https://i.imgur.com/7y0Vbyd.jpg) +![Imgur](https://i.imgur.com/7y0Vbydh.jpg) +*Pair of Dactyl Manuform 4x6* -## First Time Setup +Forked from the [Dactyl](/keyboards/handwired/dactyl), the *Dactyl ManuForm* is a parameterized, handwired, split bodied, tented, concave key-well design that incorporates the thumb cluster from the [ManuForm](https://geekhack.org/index.php?topic=46015.0). -Download or clone the `qmk_firmware` repo and navigate to its top level directory. Once your build environment is setup, you'll be able to generate the default .hex using: +* Keyboard Maintainer: [Tom Short](https://github.com/tshort) +* Hardware Supported: Pro Micro, or clone of +* Hardware Availability: [Github](https://github.com/tshort/dactyl-keyboard) -Depending on your Layout chose one of the follwing commands: +## Variants -``` -$ make handwired/dactyl_manuform/YOUR_LAYOUT:YOUR_KEYMAP_NAME -``` - -example: - -``` -$ make handwired/dactyl_manuform/4x5:default -``` - -If everything worked correctly you will see a file: - -``` -dactyl_manuform_YOUR_LAYOUT_YOUR_KEYMAP_NAME.hex -``` - -For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/docs/faq_keymap.md) in the main readme.md. - -## Keymaps - -### [Keymaps 4x5](/keyboards/handwired/dactyl_manuform/4x5/keymaps/) - -#### Default - -Simple QWERTY layout with 3 Layers. - -#### Dvorak - -### [Keymaps 5x6](/keyboards/handwired/dactyl_manuform/5x6/keymaps/) - -#### Default - -Just a copy of the Impstyle keymap. Feel free to adjust it. - -#### Impstyle - -A simple QWERTY keymap with 3 Layers. Both sides are connected via serial and the Left ist the master. - -### [Keymaps 5x6_5](/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/) - -Similar layout to 5x6 but with only 5 thumb keys per side instead of 6. - -#### Default -QWERTY layout with 7 Layers. +*Dactyl ManuForm's* are built in variations that cater for different row and column counts, and thumb clusters. -#### Via -Similar to Default but adds support for the [Via](https://www.caniusevia.com/) keymap configurator. Reduces the number of layers to 4 to comply with Via defaults, and remaps -some keys to accomodate that constraint. +As standard: +- The finger keywell bottom row has 2 keys, 1 each in ring and middle columns + - Exception to this rule is the `5x7` variant - that has two additional keys, per half, in this row +- The thumb cluster has 6 keys, arranged in a staggered 2 columns by 3 rows -### [Keymaps 5x7 aka almost Ergodox](/keyboards/handwired/dactyl_manuform/5x7/keymaps/) +Variants are denoted as `RowCount`*x*`ColumnCount`*(_`Alteration`)* -#### Default +### Row +| Count | Description | +| :---: | :---: | +| 4 | Three rows, typically for alphabet and some puncuation characters, with 2 key (finger keywell) bottom row | +| 5 | As *4 row* with number row above | +| 6 | As *5 row* with function row above | -Keymap of Loligagger from geekhack. +### Column +| Count | Description | +| :---: | :---: | +| 5 | A column for each finger with additional column for first finger | +| 6 | As *5 column* with additional pinky finger column | +| 7 | As *6 column* with either an additional first finger column (`5x7`) or additional pinky column (`6x7`) | -### [Keymaps 6x6](/keyboards/handwired/dactyl_manuform/6x6/keymaps/) +### Alteration +| Code | Description | +| :---: | :---: | +| 5 | Thumb cluster replaced with five key thumb cluster of [Dactyl Manuform Mini](https://github.com/l4u/dactyl-manuform-mini-keyboard) | +| 2_5 | Same as code *5* with two additional keys added to finger key-well bottom row | -#### Default +## Case Files Generator -Simple QWERTY layout with 3 Layers. +[Dactyl Generator](https://ryanis.cool/dactyl), created by [rianadon](https://github.com/rianadon), is a web based file generator that negates having to compose case files using programming languages, which was the matter when using the original *Dactyl* and *Dactyl ManuForm* GitHub repos, by instead compiling case files based on options and parameters configured in a web front end. -### [Keymaps 6x7](/keyboards/handwired/dactyl_manuform/6x7/keymaps/) +## Compile -#### Default +Make example for this keyboard (after setting up your build environment) in the 5x6 variant: -Simple QWERTY layout with 3 Layers. + make handwired/dactyl_manuform/5x6:default -### [Keymaps 3x5_3](/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/) +Flashing example for this keyboard: -#### Dlford + make handwired/dactyl_manuform/5x6:default:flash -QWERTY/Colemak layout with per key RGB and other features +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). -## Required Hardware - -Apart from diodes and key switches for the keyboard matrix in each half, you -will need: - -- 2 Arduino Pro Micros. You can find these on AliExpress for ≈3.50USD each. -- 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable - -Alternatively, you can use any sort of cable and socket that has at least 3 -wires. If you want to use I2C to communicate between halves, you will need a -cable with at least 4 wires and 2x 4.7kΩ pull-up resistors - -## Optional Hardware - -A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`. - -## Wiring - -The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and digital pin 3 (i.e. -PD0 on the ATmega32u4) between the two Pro Micros. +## Keymaps -Next, wire your key matrix to any of the remaining 17 IO pins of the pro micro -and modify the `matrix.c` accordingly. +### Default -The wiring for serial: +The default functional layout, based on QWERTY, and every variant has this keymap; used as a starting point/template for custom keymaps and for debugging purposes when soldering key matrix to controller. -![serial wiring](https://i.imgur.com/C3D1GAQ.png) +### VIA +Similar to *Default* but adds support for the [VIA](https://usevia.app/) keymap configurator. Layer count set to 4 to comply with VIA defaults, and remaps keys to accommodate this constraint, if applicable. -The wiring for i2c: +Variants with VIA support: +- 4x6 +- 5x6_5 +- 5x7 -![i2c wiring](https://i.imgur.com/Hbzhc6E.png) +### Miryoku -The pull-up resistors may be placed on either half. It is also possible -to use 4 resistors and have the pull-ups in both halves, but this is -unnecessary in simple use cases. +For more information on this layout schematic, please see the [Miryoku Reference Manual](https://github.com/manna-harbour/miryoku/tree/master/docs/reference). +For QMK specifics, please see [Miryoku QMK](https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku). -You can change your configuration between serial and i2c by modifying your `config.h` file. +Variants with *Miryoku* support: +- 4x5 +- 4x5_5 +- 4x6 +- 4x6_5 +- 5x6 -## Notes on Software Configuration +## Non-Pro Micro Controller Compilation -the keymaps in here are for the 4x5 layout of the keyboard only. +If building a Dactyl Manuform with controllers that aren't a pro micro, the Converter feature of QMK will allow compilation of firmware for the intended variant and supported controller without having to create a new QMK keyboard/keymap. +Please see [Converters](https://docs.qmk.fm/#/feature_converters?id=supported-converters) documentation for list of controllers that are supported converting from `pro_micro` and how to implement conversion. ## Flashing -To flash your firmware take a look at: [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing) - -## Choosing which board to plug the USB cable into (choosing Master) - -Because the two boards are identical, the firmware has logic to differentiate the left and right board. - -It uses two strategies to figure things out: looking at the EEPROM (memory on the chip) or looking if the current board has the usb cable. - -The EEPROM approach requires additional setup (flashing the eeprom) but allows you to swap the usb cable to either side. - -The USB cable approach is easier to setup and if you just want the usb cable on the left board, you do not need to do anything extra. +To flash your board with generated firmware file, please see [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing) -### Setting the left hand as master +## Handedness configurations -If you always plug the usb cable into the left board, nothing extra is needed as this is the default. Comment out `EE_HANDS` and comment out `I2C_MASTER_RIGHT` or `MASTER_RIGHT` if for some reason it was set. +See [Handedness](https://docs.qmk.fm/#/config_options?id=setting-handedness) documentation for more information on configuring handedness/master half. -### Setting the right hand as master - -If you always plug the usb cable into the right board, add an extra flag to your `config.h` - -``` - #define MASTER_RIGHT -``` - -### Setting EE_hands to use either hands as master - -If you define `EE_HANDS` in your `config.h`, you will need to set the -EEPROM for the left and right halves. - -The EEPROM is used to store whether the -half is left handed or right handed. This makes it so that the same firmware -file will run on both hands instead of having to flash left and right handed -versions of the firmware to each half. To flash the EEPROM file for the left -half run: +## VIA Configuration +Variants with a `via` keymap are VIA capable. +Compile firmware, for [enabled variant](#via), with it's `via` keymap and flash board with this firmware file. ``` -make handwired/dactyl_promicro:default:dfu-split-left -make handwired/dactyl_promicro:default:dfu-split-right +qmk compile -kb handwired/dactyl_manuform/4x6 -km via ``` -After you have flashed the EEPROM, you then need to set `EE_HANDS` in your config.h, rebuild the hex files and reflash. - -Note that you need to program both halves, but you have the option of using -different keymaps for each half. You could program the left half with a QWERTY -layout and the right half with a Colemak layout using bootmagic's default layout option. -Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the -right half is connected. - -## Notes on Using Pro Micro 3.3V +## Bootloader -Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects -the frequency on the 3.3V board. +Enter the bootloader in 3 ways: -Also, if the slave board is producing weird characters in certain columns, -update the following line in `matrix.c` to the following: - -``` -// wait_us(30); // without this wait read unstable value. -wait_us(300); // without this wait read unstable value. -``` +* **Bootmagic reset**: If enabled, 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 or controller - 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/handwired/dactyl_maximus/info.json b/keyboards/handwired/dactyl_maximus/info.json new file mode 100644 index 00000000000..081fab571ad --- /dev/null +++ b/keyboards/handwired/dactyl_maximus/info.json @@ -0,0 +1,137 @@ +{ + "keyboard_name": "Dactyl Maximus", + "manufacturer": "handwired", + "url": "", + "maintainer": "dunk2k", + "usb": { + "vid": "0x444C", + "pid": "0xA57B", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D1" + }, + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.35}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0.35}, + {"matrix": [0, 3], "x": 3, "y": 0.1}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0.1}, + {"matrix": [0, 6], "x": 6, "y": 0.1}, + + {"matrix": [6, 0], "x": 12, "y": 0.1}, + {"matrix": [6, 1], "x": 13, "y": 0.1}, + {"matrix": [6, 2], "x": 14, "y": 0}, + {"matrix": [6, 3], "x": 15, "y": 0.1}, + {"matrix": [6, 4], "x": 16, "y": 0.35}, + {"matrix": [6, 5], "x": 17, "y": 0.35}, + {"matrix": [6, 6], "x": 18, "y": 0.35}, + + {"matrix": [1, 0], "x": 0, "y": 1.35}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1.35}, + {"matrix": [1, 3], "x": 3, "y": 1.1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1.1}, + {"matrix": [1, 6], "x": 6, "y": 1.1}, + + {"matrix": [7, 0], "x": 12, "y": 1.1}, + {"matrix": [7, 1], "x": 13, "y": 1.1}, + {"matrix": [7, 2], "x": 14, "y": 1}, + {"matrix": [7, 3], "x": 15, "y": 1.1}, + {"matrix": [7, 4], "x": 16, "y": 1.35}, + {"matrix": [7, 5], "x": 17, "y": 1.35}, + {"matrix": [7, 6], "x": 18, "y": 1.35}, + + {"matrix": [2, 0], "x": 0, "y": 2.35}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2.35}, + {"matrix": [2, 3], "x": 3, "y": 2.1}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2.1}, + {"matrix": [2, 6], "x": 6, "y": 2.1}, + + {"matrix": [8, 0], "x": 12, "y": 2.1}, + {"matrix": [8, 1], "x": 13, "y": 2.1}, + {"matrix": [8, 2], "x": 14, "y": 2}, + {"matrix": [8, 3], "x": 15, "y": 2.1}, + {"matrix": [8, 4], "x": 16, "y": 2.35}, + {"matrix": [8, 5], "x": 17, "y": 2.35}, + {"matrix": [8, 6], "x": 18, "y": 2.35}, + + {"matrix": [3, 0], "x": 0, "y": 3.35}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3.35}, + {"matrix": [3, 3], "x": 3, "y": 3.1}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3.1}, + {"matrix": [3, 6], "x": 6, "y": 3.1}, + + {"matrix": [9, 0], "x": 12, "y": 3.1}, + {"matrix": [9, 1], "x": 13, "y": 3.1}, + {"matrix": [9, 2], "x": 14, "y": 3}, + {"matrix": [9, 3], "x": 15, "y": 3.1}, + {"matrix": [9, 4], "x": 16, "y": 3.35}, + {"matrix": [9, 5], "x": 17, "y": 3.35}, + {"matrix": [9, 6], "x": 18, "y": 3.35}, + + {"matrix": [4, 0], "x": 0, "y": 4.35}, + {"matrix": [4, 1], "x": 1, "y": 4.35}, + {"matrix": [4, 2], "x": 2, "y": 4.35}, + {"matrix": [4, 3], "x": 3, "y": 4.1}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4.1}, + + {"matrix": [10, 1], "x": 13, "y": 4.1}, + {"matrix": [10, 2], "x": 14, "y": 4}, + {"matrix": [10, 3], "x": 15, "y": 4.1}, + {"matrix": [10, 4], "x": 16, "y": 4.35}, + {"matrix": [10, 5], "x": 17, "y": 4.35}, + {"matrix": [10, 6], "x": 18, "y": 4.35}, + + {"matrix": [4, 6], "x": 7, "y": 5}, + {"matrix": [5, 6], "x": 8, "y": 5}, + + {"matrix": [11, 0], "x": 10, "y": 5}, + {"matrix": [10, 0], "x": 11, "y": 5}, + + {"matrix": [5, 3], "x": 6, "y": 6}, + {"matrix": [5, 4], "x": 7, "y": 6}, + {"matrix": [5, 5], "x": 8, "y": 6}, + + {"matrix": [11, 1], "x": 10, "y": 6}, + {"matrix": [11, 2], "x": 11, "y": 6}, + {"matrix": [11, 3], "x": 12, "y": 6}, + + {"matrix": [5, 0], "x": 6, "y": 7}, + {"matrix": [5, 1], "x": 7, "y": 7}, + {"matrix": [5, 2], "x": 8, "y": 7}, + + {"matrix": [11, 4], "x": 10, "y": 7}, + {"matrix": [11, 5], "x": 11, "y": 7}, + {"matrix": [11, 6], "x": 12, "y": 7} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_maximus/keymaps/default/keymap.c b/keyboards/handwired/dactyl_maximus/keymaps/default/keymap.c new file mode 100644 index 00000000000..cfd95db563e --- /dev/null +++ b/keyboards/handwired/dactyl_maximus/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +// Copyright 2021 Duncan Sutherland (https://github.com/dunk2k) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define CUT C(KC_X) +#define COPY C(KC_C) +#define PSTE C(KC_V) +#define UNDO C(KC_Z) +#define REDO C(KC_Y) +#define SALL C(KC_A) +#define APP_N A(KC_TAB) +#define APP_P LSA(KC_TAB) +#define SLFT S(KC_HOME) +#define SRGHT S(KC_END) +#define APP_X A(KC_F4) +#define TSKMG RCS(KC_ESC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + APP_P, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR, APP_N, + SLFT, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, SRGHT, + COPY, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, PSTE, + CUT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, SALL, + UNDO, KC_LCTL, KC_LALT, KC_LGUI, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_RGUI, KC_RALT, KC_RCTL, REDO, + KC_HOME, KC_PGUP, KC_VOLU, KC_END, + MO(1), KC_SPC, KC_DEL, KC_BSPC, KC_ENT, MO(2), + KC_UP, KC_DOWN, KC_PGDN, KC_VOLD, KC_LEFT, KC_RGHT + ), + + [1] = LAYOUT( + 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_NO, KC_TRNS, + KC_TRNS, TSKMG, APP_X, KC_SCRL, KC_INS, KC_PAUS, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_NUM, KC_TRNS, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_P0, KC_PDOT, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_RCTL, + KC_TRNS, KC_NO, KC_NO, KC_RSFT, KC_PENT, KC_LALT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_NO + ), + + [2] = LAYOUT( + 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_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_ACL2, KC_ACL1, KC_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, KC_NO, KC_SLEP, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, 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, KC_BTN1, KC_BTN2, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/handwired/dactyl_maximus/keymaps/via/keymap.c b/keyboards/handwired/dactyl_maximus/keymaps/via/keymap.c new file mode 100644 index 00000000000..cfd95db563e --- /dev/null +++ b/keyboards/handwired/dactyl_maximus/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +// Copyright 2021 Duncan Sutherland (https://github.com/dunk2k) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define CUT C(KC_X) +#define COPY C(KC_C) +#define PSTE C(KC_V) +#define UNDO C(KC_Z) +#define REDO C(KC_Y) +#define SALL C(KC_A) +#define APP_N A(KC_TAB) +#define APP_P LSA(KC_TAB) +#define SLFT S(KC_HOME) +#define SRGHT S(KC_END) +#define APP_X A(KC_F4) +#define TSKMG RCS(KC_ESC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + APP_P, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR, APP_N, + SLFT, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, SRGHT, + COPY, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, PSTE, + CUT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, SALL, + UNDO, KC_LCTL, KC_LALT, KC_LGUI, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_RGUI, KC_RALT, KC_RCTL, REDO, + KC_HOME, KC_PGUP, KC_VOLU, KC_END, + MO(1), KC_SPC, KC_DEL, KC_BSPC, KC_ENT, MO(2), + KC_UP, KC_DOWN, KC_PGDN, KC_VOLD, KC_LEFT, KC_RGHT + ), + + [1] = LAYOUT( + 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_NO, KC_TRNS, + KC_TRNS, TSKMG, APP_X, KC_SCRL, KC_INS, KC_PAUS, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_NUM, KC_TRNS, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSLS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_P0, KC_PDOT, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_RCTL, + KC_TRNS, KC_NO, KC_NO, KC_RSFT, KC_PENT, KC_LALT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_NO + ), + + [2] = LAYOUT( + 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_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_ACL2, KC_ACL1, KC_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, KC_NO, KC_SLEP, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, 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, KC_BTN1, KC_BTN2, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/handwired/dactyl_maximus/keymaps/via/rules.mk b/keyboards/handwired/dactyl_maximus/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/handwired/dactyl_maximus/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/dactyl_maximus/readme.md b/keyboards/handwired/dactyl_maximus/readme.md new file mode 100644 index 00000000000..d4c2d44def6 --- /dev/null +++ b/keyboards/handwired/dactyl_maximus/readme.md @@ -0,0 +1,34 @@ +# Dactyl Maximus + +![KeycapLess](https://i.imgur.com/OJs3bkWh.jpg) +*Thanks to [unit-5370](https://github.com/unit-5370) for image* + +The largest [Dactyl](/keyboards/handwired/dactyl/) variation available from a Dactyl generator. This variation is electronically more similar to the [Dactyl (Pro Micro)](/keyboards/handwired/dactyl_promicro/) as it requires two micro controllers, one per half, instead of the *Dactyl's* original implementation of one microcontroller and an I/O expander. + +* Keyboard Maintainer: [Duncan Sutherland](https://github.com/dunk2k) +* Hardware Supported: Pro Micro controller, of clone of +* Case Files: [Dactyl Generator](https://ryanis.cool/dactyl/#original) + +'Keys' settings for *Dactyl Generator* link: +* Number of Columns: 7 +* Use Number Row: true +* Use Bottom Row: true +* Thumb Key Count: 8 + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_maximus:default + +Flashing example for this keyboard: + + make handwired/dactyl_maximus: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/handwired/dactyl_maximus/rules.mk b/keyboards/handwired/dactyl_maximus/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/dactyl_maximus/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c b/keyboards/handwired/dactyl_minidox/3x5_3.c similarity index 100% rename from keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c rename to keyboards/handwired/dactyl_minidox/3x5_3.c diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/config.h b/keyboards/handwired/dactyl_minidox/config.h similarity index 100% rename from keyboards/handwired/dactyl_manuform/3x5_3/config.h rename to keyboards/handwired/dactyl_minidox/config.h diff --git a/keyboards/handwired/dactyl_minidox/info.json b/keyboards/handwired/dactyl_minidox/info.json new file mode 100644 index 00000000000..a0bb416ce48 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "Dactyl Minidox", + "manufacturer": "dlford", + "url": "https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/", + "maintainer": "dlford", + "usb": { + "vid": "0x444D", + "pid": "0x3536", + "device_version": "0.0.3" + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["C6", "D7", "E6", "B4", "B5"], + "rows": ["B1", "B3", "B2", "B6"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "development_board": "promicro", + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_3" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + + {"matrix": [4, 0], "x": 10, "y": 0}, + {"matrix": [4, 1], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0}, + {"matrix": [4, 3], "x": 13, "y": 0}, + {"matrix": [4, 4], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + + {"matrix": [5, 0], "x": 10, "y": 1}, + {"matrix": [5, 1], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1}, + {"matrix": [5, 3], "x": 13, "y": 1}, + {"matrix": [5, 4], "x": 14, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + + {"matrix": [6, 0], "x": 10, "y": 2}, + {"matrix": [6, 1], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2}, + {"matrix": [6, 3], "x": 13, "y": 2}, + {"matrix": [6, 4], "x": 14, "y": 2}, + + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + + {"matrix": [7, 0], "x": 10, "y": 3}, + {"matrix": [7, 1], "x": 11, "y": 3}, + {"matrix": [7, 2], "x": 12, "y": 3} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/default/keymap.c b/keyboards/handwired/dactyl_minidox/keymaps/default/keymap.c similarity index 100% rename from keyboards/handwired/dactyl_manuform/3x5_3/keymaps/default/keymap.c rename to keyboards/handwired/dactyl_minidox/keymaps/default/keymap.c diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h b/keyboards/handwired/dactyl_minidox/keymaps/dlford/config.h similarity index 100% rename from keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h rename to keyboards/handwired/dactyl_minidox/keymaps/dlford/config.h diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c b/keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.c similarity index 100% rename from keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c rename to keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.c diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h b/keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.h similarity index 100% rename from keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h rename to keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.h diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c b/keyboards/handwired/dactyl_minidox/keymaps/dlford/keymap.c similarity index 100% rename from keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c rename to keyboards/handwired/dactyl_minidox/keymaps/dlford/keymap.c diff --git a/keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk b/keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk new file mode 100644 index 00000000000..d24f7a0cbd8 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk @@ -0,0 +1,16 @@ +# Includes +SRC += features/caps_word.c + +# Build Options +# change yes to no to disable +# +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +DYNAMIC_MACRO_ENABLE = yes # Create macros on the fly +INDICATOR_LIGHTS = yes # Enable indicator lights for caps lock, etc. +# TAP_DANCE_ENABLE = yes # Send different keycodes if tapped multiple times +# KEY_OVERRIDE_ENABLE = yes # Override key combos +# COMBO_ENABLE = yes # Custom key combos + +LTO_ENABLE = yes +RGBLIGHT_SUPPORTED = yes +RGB_MATRIX_SUPPORTED = yes diff --git a/keyboards/handwired/dactyl_minidox/keymaps/via/config.h b/keyboards/handwired/dactyl_minidox/keymaps/via/config.h new file mode 100644 index 00000000000..bb5b0bf6af6 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/via/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2021 @dlford +This 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 diff --git a/keyboards/handwired/dactyl_minidox/keymaps/via/keymap.c b/keyboards/handwired/dactyl_minidox/keymaps/via/keymap.c new file mode 100644 index 00000000000..80b9b62b535 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _RAISE, + _LOWER, + _BLANK +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT + ), + [_RAISE] = LAYOUT_split_3x5_3( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [_LOWER] = LAYOUT_split_3x5_3( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [_BLANK] = LAYOUT_split_3x5_3( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/dactyl_minidox/keymaps/via/rules.mk b/keyboards/handwired/dactyl_minidox/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/dactyl_minidox/readme.md b/keyboards/handwired/dactyl_minidox/readme.md new file mode 100644 index 00000000000..5826403a80f --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/readme.md @@ -0,0 +1,27 @@ +# Dactyl Minidox + +![DactylMinidox](https://i.imgur.com/PqjgeRfh.jpg) + +A 36 key (3x5+3), split bodied keyboard derived from the [Dactyl ManuForm](/keyboards/handwired/dactyl_manuform/). + +* Keyboard Maintainer: [Dan Ford](https://github.com/dlford) +* Hardware Supported: Pro Micro controller, or clone of +* Hardware Availability: [Build Guide](https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/) + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_minidox:default + +Flashing example for this keyboard: + + make handwired/dactyl_minidox: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/handwired/dactyl_minidox/rules.mk b/keyboards/handwired/dactyl_minidox/rules.mk new file mode 100644 index 00000000000..e22ac7f3ffc --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/rules.mk @@ -0,0 +1,12 @@ +# 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/dactyl_promicro/config.h b/keyboards/handwired/dactyl_promicro/config.h index ab6beb807f0..543ef8e6c5a 100644 --- a/keyboards/handwired/dactyl_promicro/config.h +++ b/keyboards/handwired/dactyl_promicro/config.h @@ -33,8 +33,6 @@ along with this program. If not, see . /* Enables This makes it easier for fast typists to use dual-function keys */ #define PERMISSIVE_HOLD -#define RGBLED_NUM 12 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/dactyl_promicro/info.json b/keyboards/handwired/dactyl_promicro/info.json index 5f0b4f85a28..2ae20d2f4a8 100644 --- a/keyboards/handwired/dactyl_promicro/info.json +++ b/keyboards/handwired/dactyl_promicro/info.json @@ -16,6 +16,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_promicro/keymaps/default/keymap.c b/keyboards/handwired/dactyl_promicro/keymaps/default/keymap.c index ed2d1440c83..1dd2f478410 100644 --- a/keyboards/handwired/dactyl_promicro/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_promicro/keymaps/default/keymap.c @@ -1,5 +1,22 @@ -#include QMK_KEYBOARD_H +/* +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 . +*/ + +#include QMK_KEYBOARD_H #define _QWERTY 0 #define _LOWER 1 diff --git a/keyboards/handwired/dactyl_promicro/readme.md b/keyboards/handwired/dactyl_promicro/readme.md index a426319b4e5..63fd3a8df6d 100644 --- a/keyboards/handwired/dactyl_promicro/readme.md +++ b/keyboards/handwired/dactyl_promicro/readme.md @@ -1,93 +1,30 @@ -# Dactyl with Arduino Pro Micro +# Dactyl (Pro Micro) -See https://github.com/adereth/dactyl-keyboard for the original Version. +![Dactyl](https://i.imgur.com/a7uY1eSh.png) -This Dactyl uses the Arduino Pro Mirco (2x). -Wiring is a 6x6 Matrix like the [Dactyl Manuform](https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/dactyl_manuform) +A split body, concave shaped key well, columnar keyboard with a 6 key thumb cluster that takes inspiration from the Kinesis Advantage keyboard range. This rendition of the *Dactyl* requires two micro controllers rather than the [original implementation](/keyboards/handwired/dactyl/) of a micro controller and I/O expander. +* Keyboard Maintainer: [Matt Adereth](https://github.com/adereth) +* Hardware Supported: Pro Micro controller, or clones of +* Hardware Availability: [GitHub](https://github.com/adereth/dactyl-keyboard) -## Build the Firmware: +Make example for this keyboard (after setting up your build environment): - - Build the firmware with `make handwired/dactyl_promicro:`, for example `make handwired/dactyl:default` - - This will result in a hex file called `handwired_dactyl_promicro_.hex`, e.g. - `handwired_dactyl_promicro_default.hex` + make handwired/dactyl_promicro:default -How to setup your build enviroment can be found here: [Installing Build Tools](https://docs.qmk.fm/#/getting_started_build_tools) +Flashing example for this keyboard: -## Required Hardware + make handwired/dactyl_promicro:default:flash -Apart from diodes and key switches for the keyboard matrix in each half, you -will need: - -* 2 Arduino Pro Micros. You can find these on AliExpress for ≈3.50USD each. -* 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable - -Alternatively, you can use any sort of cable and socket that has at least 3 -wires. If you want to use I2C to communicate between halves, you will need a -cable with at least 4 wires and 2x 4.7kΩ pull-up resistors +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). ## Optional Hardware -A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`. - -## Wiring - -The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and digital pin 3 (i.e. -PD0 on the ATmega32u4) between the two Pro Micros. - -Next, wire your key matrix to any of the remaining 17 IO pins of the pro micro -and modify the `matrix.c` accordingly. - -The wiring for serial: - -![serial wiring](https://i.imgur.com/C3D1GAQ.png) - -The wiring for i2c: - -![i2c wiring](https://i.imgur.com/Hbzhc6E.png) - -The pull-up resistors may be placed on either half. It is also possible -to use 4 resistors and have the pull-ups in both halves, but this is -unnecessary in simple use cases. - -You can change your configuration between serial and i2c by modifying your `config.h` file. - -## Notes on Software Configuration -the keymaps in here are for the 4x5 layout of the keyboard only. - -## Flashing - -To flash your firmware take a look at: [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing). - -Under Windows the most convenient way is installing the [QMK Drivers](https://github.com/qmk/qmk_driver_installer/releases) and use the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases). - - -## Choosing which board to plug the USB cable into (choosing Master) - -### Setting the right or left hand as master - -If you always plug the usb cable into the right board, add an extra flag to your `config.h` -``` - #define MASTER_RIGHT -``` - -OR - -``` - #define MASTER_LEFT -``` - - -Notes on Using Pro Micro 3.3V ------------------------------ +A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`. -Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects -the frequency on the 3.3V board. +## Bootloader -Also, if the slave board is producing weird characters in certain columns, -update the following line in `matrix.c` to the following: +Enter the bootloader in 2 ways: -``` -// _delay_us(30); // without this wait read unstable value. -_delay_us(300); // without this wait read unstable value. -``` +* **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/handwired/dactyl_rah/config.h b/keyboards/handwired/dactyl_rah/config.h index e40f6dfc69e..107d8e16683 100644 --- a/keyboards/handwired/dactyl_rah/config.h +++ b/keyboards/handwired/dactyl_rah/config.h @@ -24,9 +24,6 @@ along with this program. If not, see . #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -/* layer config */ -#define TAPPING_TOGGLE 1 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/handwired/dactyl_rah/info.json b/keyboards/handwired/dactyl_rah/info.json index 9234536a232..bfacb99a4b0 100644 --- a/keyboards/handwired/dactyl_rah/info.json +++ b/keyboards/handwired/dactyl_rah/info.json @@ -18,6 +18,9 @@ }, "processor": "atmega32u4", "bootloader": "caterina", + "tapping": { + "toggle": 1 + }, "layouts": { "LAYOUT_6x6": { "layout": [ diff --git a/keyboards/handwired/dactylmacropad/config.h b/keyboards/handwired/dactylmacropad/config.h deleted file mode 100644 index a2a5455ab14..00000000000 --- a/keyboards/handwired/dactylmacropad/config.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2022 bwprobably -// 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 TAP_CODE_DELAY 100 diff --git a/keyboards/handwired/dactylmacropad/info.json b/keyboards/handwired/dactylmacropad/info.json index 6744d4b7015..5d40a240a9f 100644 --- a/keyboards/handwired/dactylmacropad/info.json +++ b/keyboards/handwired/dactylmacropad/info.json @@ -28,6 +28,9 @@ {"pin_a": "D1", "pin_b": "D0"} ] }, + "qmk": { + "tap_keycode_delay": 100 + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/daishi/config.h b/keyboards/handwired/daishi/config.h deleted file mode 100644 index 2e6498ab5d8..00000000000 --- a/keyboards/handwired/daishi/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2019 Crokto - -This 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 delay for tap_code on rotary encoder */ -#define TAP_CODE_DELAY 10 diff --git a/keyboards/handwired/daishi/info.json b/keyboards/handwired/daishi/info.json index 37d80633a79..6b6508eb83b 100644 --- a/keyboards/handwired/daishi/info.json +++ b/keyboards/handwired/daishi/info.json @@ -18,6 +18,9 @@ {"pin_a": "F1", "pin_b": "F0", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "at90usb1286", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/handwired/datahand/config.h b/keyboards/handwired/datahand/config.h index 0b2de61490a..b1d8cc9c773 100644 --- a/keyboards/handwired/datahand/config.h +++ b/keyboards/handwired/datahand/config.h @@ -20,8 +20,6 @@ #define MATRIX_ROWS 13 #define MATRIX_COLS 4 -//#define DIODE_DIRECTION - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/datahand/keymaps/default/keymap.c b/keyboards/handwired/datahand/keymaps/default/keymap.c index 7ebcff366ff..608c45dea34 100644 --- a/keyboards/handwired/datahand/keymaps/default/keymap.c +++ b/keyboards/handwired/datahand/keymaps/default/keymap.c @@ -302,8 +302,9 @@ void matrix_init_user(void) { #endif } -void led_set_user(uint8_t usb_led) { - lock_led_set(usb_led & (1<. #pragma once -#define TAPPING_TERM 500 #define PERMISSIVE_HOLD /* diff --git a/keyboards/handwired/ergocheap/info.json b/keyboards/handwired/ergocheap/info.json index 12bff57b3e0..17d78632377 100644 --- a/keyboards/handwired/ergocheap/info.json +++ b/keyboards/handwired/ergocheap/info.json @@ -8,6 +8,9 @@ "pid": "0x6942", "device_version": "0.0.1" }, + "tapping": { + "term": 500 + }, "matrix_pins": { "cols": ["A8", "A9", "B14", "B12", "B13", "B15", "B3", "B11", "A4", "A5", "A6", "A7", "B0", "B1", "B10"], "rows": ["B5", "B6", "B7", "B9", "B8"] diff --git a/keyboards/handwired/ergocheap/rules.mk b/keyboards/handwired/ergocheap/rules.mk index 2c8f1f42bf1..10c9a692dff 100644 --- a/keyboards/handwired/ergocheap/rules.mk +++ b/keyboards/handwired/ergocheap/rules.mk @@ -1,5 +1,3 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Build Options # change yes to no to disable diff --git a/keyboards/handwired/frenchdev/config.h b/keyboards/handwired/frenchdev/config.h index 9cb309c78ff..d758c602394 100644 --- a/keyboards/handwired/frenchdev/config.h +++ b/keyboards/handwired/frenchdev/config.h @@ -31,10 +31,6 @@ along with this program. If not, see . #define MOUSEKEY_MAX_SPEED 2 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 1 - -#define TAPPING_TERM 200 - /* key combination for command */ #define IS_COMMAND() ( \ get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ diff --git a/keyboards/handwired/frenchdev/info.json b/keyboards/handwired/frenchdev/info.json index d5981aebd47..8d031b3c42f 100644 --- a/keyboards/handwired/frenchdev/info.json +++ b/keyboards/handwired/frenchdev/info.json @@ -9,6 +9,9 @@ }, "processor": "atmega32u4", "bootloader": "halfkay", + "tapping": { + "toggle": 1 + }, "layouts": { "LAYOUT": { "layout": [ @@ -116,15 +119,15 @@ {"matrix": [1, 0], "x": 18, "y": 5.9}, {"matrix": [0, 0], "x": 19, "y": 5.9}, - {"matrix": [8, 3], "x": 2.25, "y": 7.5, "w": 1.5, "h": 2}, - {"matrix": [8, 4], "x": 3.75, "y": 7.5, "w": 1.5, "h": 2}, + {"matrix": [8, 3], "x": 2.25, "y": 7.5, "w": 1.75, "h": 2}, + {"matrix": [8, 4], "x": 4, "y": 7.5, "w": 1.75, "h": 2}, - {"matrix": [8, 5], "x": 5.25, "y": 7.5, "w": 1.5, "h": 2}, + {"matrix": [8, 5], "x": 5.75, "y": 7.5, "w": 1.75, "h": 2}, - {"matrix": [7, 3], "x": 13.25, "y": 7.5, "w": 1.5, "h": 2}, - {"matrix": [7, 4], "x": 14.75, "y": 7.5, "w": 1.5, "h": 2}, + {"matrix": [7, 3], "x": 12.5, "y": 7.5, "w": 1.75, "h": 2}, + {"matrix": [7, 4], "x": 14.25, "y": 7.5, "w": 1.75, "h": 2}, - {"matrix": [7, 5], "x": 16.25, "y": 7.5, "w": 1.5, "h": 2} + {"matrix": [7, 5], "x": 16, "y": 7.5, "w": 1.75, "h": 2} ] } } diff --git a/keyboards/handwired/frenchdev/keymaps/default/keymap.c b/keyboards/handwired/frenchdev/keymaps/default/keymap.c index e5a5dcc6c16..60e355f290e 100644 --- a/keyboards/handwired/frenchdev/keymaps/default/keymap.c +++ b/keyboards/handwired/frenchdev/keymaps/default/keymap.c @@ -351,11 +351,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void led_set_user(uint8_t usb_led) { - if (usb_led & (1<. #define EE_HANDS -/* ws2812 RGB LED */ -#if !defined(RGBLED_NUM) -# define RGBLED_NUM 30 -# define RGBLIGHT_SPLIT -# define RGBLED_SPLIT { 16, 14 } -// Switch RGB sides with LED MAP. -# define RGBLIGHT_LED_MAP { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30} # define RGBLIGHT_LAYERS -#endif -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLIGHT_SLEEP -#define RGBLIGHT_HUE_STEP 16 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/handwired/freoduo/info.json b/keyboards/handwired/freoduo/info.json index 5ddf21ee795..0be6c8cdb98 100644 --- a/keyboards/handwired/freoduo/info.json +++ b/keyboards/handwired/freoduo/info.json @@ -16,6 +16,27 @@ "split": { "soft_serial_pin": "D0" }, +"rgblight": { + "hue_steps": 16, + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 30, + "sleep": true, + "led_map": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], + "split_count": [16, 14], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } +}, "ws2812": { "pin": "D4" }, diff --git a/keyboards/handwired/fruity60/info.json b/keyboards/handwired/fruity60/info.json index dab7f609a80..34b1edc8207 100644 --- a/keyboards/handwired/fruity60/info.json +++ b/keyboards/handwired/fruity60/info.json @@ -8,6 +8,9 @@ "pid": "0xB170", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "D2", "D3", "B7", "D6", "C7"], "rows": ["B6", "B5", "D7", "C6", "D0", "D1"] diff --git a/keyboards/handwired/fruity60/rules.mk b/keyboards/handwired/fruity60/rules.mk index 61260f5e398..79e2ef4eff9 100644 --- a/keyboards/handwired/fruity60/rules.mk +++ b/keyboards/handwired/fruity60/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/hacked_motospeed/info.json b/keyboards/handwired/hacked_motospeed/info.json index 86736773ece..899bd58bcbf 100644 --- a/keyboards/handwired/hacked_motospeed/info.json +++ b/keyboards/handwired/hacked_motospeed/info.json @@ -8,6 +8,9 @@ "pid": "0x0690", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "rn42" + }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F3", "F2", "E0", "E1", "C0", "C1", "C2", "C3"], "rows": ["B3", "B4", "F1", "B5", "B6", "D5", "D4", "D6", "D7", "C4"] diff --git a/keyboards/handwired/hacked_motospeed/rules.mk b/keyboards/handwired/hacked_motospeed/rules.mk index 50716e356f8..362a7fadbed 100644 --- a/keyboards/handwired/hacked_motospeed/rules.mk +++ b/keyboards/handwired/hacked_motospeed/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = RN42 diff --git a/keyboards/handwired/heisenberg/config.h b/keyboards/handwired/heisenberg/config.h index 00362c53758..7ad28a9c225 100644 --- a/keyboards/handwired/heisenberg/config.h +++ b/keyboards/handwired/heisenberg/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 6 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -47,9 +31,6 @@ along with this program. If not, see . * Heisenberg-specific definitions END */ - -#define TAPPING_TERM 200 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/heisenberg/info.json b/keyboards/handwired/heisenberg/info.json index 5b3e000fba3..09e03bd0631 100644 --- a/keyboards/handwired/heisenberg/info.json +++ b/keyboards/handwired/heisenberg/info.json @@ -8,6 +8,21 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/handwired/hnah108/info.json b/keyboards/handwired/hnah108/info.json index 4d7d3e03861..a399ffedf5d 100644 --- a/keyboards/handwired/hnah108/info.json +++ b/keyboards/handwired/hnah108/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F0", "E6", "B0", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7"], diff --git a/keyboards/handwired/hnah40rgb/info.json b/keyboards/handwired/hnah40rgb/info.json index 9f952d685a8..fce74cefef5 100644 --- a/keyboards/handwired/hnah40rgb/info.json +++ b/keyboards/handwired/hnah40rgb/info.json @@ -12,7 +12,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D5", "D6", "D3", "D2", "B6", "C6", "C7", "F7", "F6", "F5", "F4"], diff --git a/keyboards/handwired/itstleo9/info.json b/keyboards/handwired/itstleo9/info.json new file mode 100644 index 00000000000..ba9de4d774f --- /dev/null +++ b/keyboards/handwired/itstleo9/info.json @@ -0,0 +1,36 @@ +{ + "manufacturer": "Its TLeo", + "keyboard_name": "ItsTleo9", + "maintainer": "Its TLeo", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4954" + }, + "community_layouts": ["ortho_3x3"], + "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 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/handwired/itstleo9/keymaps/default/keymap.c b/keyboards/handwired/itstleo9/keymaps/default/keymap.c new file mode 100644 index 00000000000..ea111ba6fea --- /dev/null +++ b/keyboards/handwired/itstleo9/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ A │ B │ C │ + * ├───┼───┼───┤ + * │ D │ E │ F │ + * ├───┼───┼───┤ + * │ G │ H │ I │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_3x3( + KC_A, KC_B, KC_C, + KC_D, KC_E, KC_F, + KC_G, KC_H, KC_I + ) +}; diff --git a/keyboards/handwired/itstleo9/keymaps/via/keymap.c b/keyboards/handwired/itstleo9/keymaps/via/keymap.c new file mode 100644 index 00000000000..ea111ba6fea --- /dev/null +++ b/keyboards/handwired/itstleo9/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ A │ B │ C │ + * ├───┼───┼───┤ + * │ D │ E │ F │ + * ├───┼───┼───┤ + * │ G │ H │ I │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_3x3( + KC_A, KC_B, KC_C, + KC_D, KC_E, KC_F, + KC_G, KC_H, KC_I + ) +}; diff --git a/keyboards/handwired/itstleo9/keymaps/via/rules.mk b/keyboards/handwired/itstleo9/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/handwired/itstleo9/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/handwired/itstleo9/promicro/info.json b/keyboards/handwired/itstleo9/promicro/info.json new file mode 100644 index 00000000000..4cbc1050c0c --- /dev/null +++ b/keyboards/handwired/itstleo9/promicro/info.json @@ -0,0 +1,7 @@ +{ + "development_board": "promicro", + "matrix_pins": { + "cols": ["D1", "D0", "D4"], + "rows": ["F4", "F5", "F6"] + } +} \ No newline at end of file diff --git a/keyboards/handwired/itstleo9/promicro/rules.mk b/keyboards/handwired/itstleo9/promicro/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/itstleo9/promicro/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/itstleo9/readme.md b/keyboards/handwired/itstleo9/readme.md new file mode 100644 index 00000000000..233407b3931 --- /dev/null +++ b/keyboards/handwired/itstleo9/readme.md @@ -0,0 +1,37 @@ +# itstleo9 + +Handwired 3x3 macropad built with Pro Micro compatible microcontrollers + +* Keyboard Maintainer: [ItsTLeo](https://github.com/ItsTLeo) +* Hardware Supported: RP2040/ATmega32U4 Pro Micro +* Hardware Availability: [RP2040](https://aliexpress.com/item/1005005616524430.html), [ATmega32U4](https://aliexpress.com/item/32888212119.html) + +Make example for this keyboard (after setting up your build environment): + + make handwired/itstleo9/promicro:default + make handwired/itstleo9/rp2040:default + +Flashing example for this keyboard: + + make handwired/itstleo9/promicro:default:flash + make handwired/itstleo9/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). Dont know how to make a handwire keyboard, check it out [SkottoKeebs handwire tutorial](https://www.youtube.com/watch?v=hjml-K-pV4E&pp=ygUTaGFuZHdpcmUgYSBtYWNyb3BhZA%3D%3D) + +## Matrix pin (RP2040 ver) + +* **cols** : GP10 , GP11 , GP12 +* **rows** : GP21 , GP20 , GP19 + +## Matrix pin (Promicro ver) + +* **cols** : D1 , D0 , D4 +* **rows** : F4 , F5 , F6 + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left key) and plug in the keyboard +* **Physical reset button**: Double-press reset button +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/itstleo9/rp2040/info.json b/keyboards/handwired/itstleo9/rp2040/info.json new file mode 100644 index 00000000000..0272150df12 --- /dev/null +++ b/keyboards/handwired/itstleo9/rp2040/info.json @@ -0,0 +1,9 @@ +{ + "bootloader": "rp2040", + "processor": "RP2040", + + "matrix_pins": { + "cols": ["GP10", "GP11", "GP12"], + "rows": ["GP21", "GP20", "GP19"] + } +} \ No newline at end of file diff --git a/keyboards/handwired/itstleo9/rp2040/rules.mk b/keyboards/handwired/itstleo9/rp2040/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/itstleo9/rp2040/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/jopr/config.h b/keyboards/handwired/jopr/config.h index 5d5233ca999..59717346c33 100644 --- a/keyboards/handwired/jopr/config.h +++ b/keyboards/handwired/jopr/config.h @@ -7,9 +7,3 @@ #define LOCKING_RESYNC_ENABLE #define NO_ACTION_ONESHOT -#define TAPPING_TOGGLE 3 - -#define RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 1 -#define RGBLIGHT_SAT_STEP 1 -#define RGBLIGHT_VAL_STEP 1 diff --git a/keyboards/handwired/jopr/info.json b/keyboards/handwired/jopr/info.json index efebe52d0bc..78fb52cb995 100644 --- a/keyboards/handwired/jopr/info.json +++ b/keyboards/handwired/jopr/info.json @@ -8,6 +8,12 @@ "pid": "0x1000", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 1, + "saturation_steps": 1, + "brightness_steps": 1, + "led_count": 1 + }, "ws2812": { "pin": "F4" }, @@ -18,6 +24,9 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "tapping": { + "toggle": 3 + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/jopr/keymaps/default/keymap.c b/keyboards/handwired/jopr/keymaps/default/keymap.c index 1dc0f3a59e3..fc615b01091 100644 --- a/keyboards/handwired/jopr/keymaps/default/keymap.c +++ b/keyboards/handwired/jopr/keymaps/default/keymap.c @@ -22,23 +22,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { writePinHigh(F1); } else { writePinLow(F1); } - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { writePinHigh(F0); } else { writePinLow(F0); } - if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) { + if (!led_state.num_lock) { tap_code(KC_NUM_LOCK); } + return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { static bool sysreq_led = false; diff --git a/keyboards/handwired/jopr/keymaps/modded_white/keymap.c b/keyboards/handwired/jopr/keymaps/modded_white/keymap.c index edaabe78e6b..69d1a56bb5c 100644 --- a/keyboards/handwired/jopr/keymaps/modded_white/keymap.c +++ b/keyboards/handwired/jopr/keymaps/modded_white/keymap.c @@ -22,23 +22,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { writePinHigh(F1); } else { writePinLow(F1); } - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { writePinHigh(F0); } else { writePinLow(F0); } - if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) { + if (!led_state.num_lock) { tap_code(KC_NUM_LOCK); } + return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { static bool sysreq_led = false; diff --git a/keyboards/handwired/jscotto/scotto36/info.json b/keyboards/handwired/jscotto/scotto36/info.json deleted file mode 100644 index 3247b4019bd..00000000000 --- a/keyboards/handwired/jscotto/scotto36/info.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "manufacturer": "Joe Scotto", - "keyboard_name": "Scotto36", - "maintainer": "joe-scotto", - "bootloader": "caterina", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - // 4, 5, 6, 7, 8, 9, A3, A2, A1, A0 - "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "F7"], - // 15, 14, 16, 10 - "rows": ["B1", "B3", "B2", "B6"] - }, - "processor": "atmega32u4", - "url": "", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_ortho_3x10_6": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - - // Row 4 - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c deleted file mode 100644 index ad8451ac09f..00000000000 --- a/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c +++ /dev/null @@ -1,281 +0,0 @@ -/* -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 (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 (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 -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), - [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Layer Names -enum layer_names { - _MAC_DEFAULT, - _MAC_CODE, - _MAC_NUM, - _MAC_FUNC, - _WIN_DEFAULT, - _WIN_CODE, - _WIN_NUM, - _WIN_FUNC -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x10_6( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_ortho_3x10_6( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_ortho_3x10_6( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_ortho_3x10_6( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_ortho_3x10_6( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_ortho_3x10_6( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE,KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_ortho_3x10_6( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_ortho_3x10_6( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ) -}; - -// OLED -#ifdef OLED_ENABLE -// WPM responsiveness -#define IDLE_FRAMES 5 -#define IDLE_SPEED 20 // Speed at which animation goes into idle -#define TAP_FRAMES 2 -#define TAP_SPEED 40 // WPM to trigger Bongo -#define ANIM_FRAME_DURATION 200 // Frame MS -#define ANIM_SIZE 636 // Number of bytes in array, max 1024 - -uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; -uint8_t current_idle_frame = 0; -uint8_t current_tap_frame = 0; - -static void render_animation(void) { - static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; - static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; - static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - }; - - void animation_phase(void) { - if (get_current_wpm() <= IDLE_SPEED) { - current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; - oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); - } - - if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { - oled_write_raw_P(prep[0], ANIM_SIZE); - } - - if (get_current_wpm() >= TAP_SPEED) { - current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; - oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); - } - } - if (get_current_wpm() != 000) { - oled_on(); // Enables OLED on any alpha keypress - - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - - anim_sleep = timer_read32(); - } else { - if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - } - } -} - -// Draw to OLED -bool oled_task_user(void) { - // Render Bongo Cat - render_animation(); - - // WPM text - oled_set_cursor(0, 0); - sprintf(wpm_str, "%03d", get_current_wpm()); // %03d defines digits to display - oled_write(wpm_str, false); - - // Layer text - oled_set_cursor(0, 1); - switch (get_highest_layer(layer_state)) { - case _MAC_DEFAULT : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("MAIN"), false); - break; - case _MAC_CODE : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("CODE"), false); - break; - case _MAC_NUM : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("NUM"), false); - break; - case _MAC_FUNC : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("FUNC"), false); - break; - case _WIN_DEFAULT : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("MAIN"), false); - break; - case _WIN_CODE : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("CODE"), false); - break; - case _WIN_NUM : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("NUM"), false); - break; - case _WIN_FUNC : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("FUNC"), false); - break; - } - - // Caps lock text - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0, 3); - oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(""), false); - - return false; -} -#endif - diff --git a/keyboards/handwired/jscotto/scotto36/readme.md b/keyboards/handwired/jscotto/scotto36/readme.md deleted file mode 100644 index f38d0231c58..00000000000 --- a/keyboards/handwired/jscotto/scotto36/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Scotto36 - -![Scotto36](https://i.imgur.com/MCGv0ZHh.jpeg) - -A 36 key handwired ortholinear ergo keyboard. Featuring an OLED display with Bongo Cat. Case files available [here](https://github.com/joe-scotto/keyboards.git). - -- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -- Hardware Supported: ATmega32U4 -- Hardware Availability: [Amazon](https://amazon.com) - - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make handwired/jscotto/scotto36:default - -Flashing example for this keyboard: - - make handwired/jscotto/scotto36:default - -# Bootloader -Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in to enter bootloader mode. - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/jscotto/scotto40/info.json b/keyboards/handwired/jscotto/scotto40/info.json deleted file mode 100644 index 767ff1de549..00000000000 --- a/keyboards/handwired/jscotto/scotto40/info.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "manufacturer": "Joe Scotto", - "keyboard_name": "Scotto40", - "maintainer": "joe-scotto", - "bootloader": "caterina", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"], - "rows": ["B1", "B3", "B2", "B6"] - }, - "processor": "atmega32u4", - "url": "", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_ortho_3x10_7": { - "layout": [ - // Row 1 - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - - // Row 4 - {"matrix": [3, 0], "x": 0, "y": 3}, - - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3, "w": 2}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - - {"matrix": [3, 9], "x": 9, "y": 3} - ] - }, - "LAYOUT_ortho_3x10_8": { - "layout": [ - // Row 1 - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - - // Row 4 - {"matrix": [3, 0], "x": 0, "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, 9], "x": 9, "y": 3} - ] - }, - "LAYOUT_ortho_4x10": { - "layout": [ - // Row 1 - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - - // Row 4 - {"matrix": [3, 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}, - {"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} - ] - } - } -} diff --git a/keyboards/handwired/jscotto/scotto40/readme.md b/keyboards/handwired/jscotto/scotto40/readme.md deleted file mode 100644 index 867313ecfc2..00000000000 --- a/keyboards/handwired/jscotto/scotto40/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Scotto40 - -![Scotto40](https://i.imgur.com/wtW5xOth.jpeg) - -A 37, 38, or 40 key handwired ortholinear keyboard. Case files available [here](https://github.com/joe-scotto/keyboards). - -- 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/scotto40:default - -Flashing example for this keyboard: - - make handwired/jscotto/scotto40: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/info.json b/keyboards/handwired/jscotto/scotto9/info.json deleted file mode 100644 index 8bd393bd434..00000000000 --- a/keyboards/handwired/jscotto/scotto9/info.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "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/readme.md b/keyboards/handwired/jscotto/scotto9/readme.md deleted file mode 100644 index 2e5291cba73..00000000000 --- a/keyboards/handwired/jscotto/scotto9/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# 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/scottocmd/info.json b/keyboards/handwired/jscotto/scottocmd/info.json deleted file mode 100644 index 991be93b52c..00000000000 --- a/keyboards/handwired/jscotto/scottocmd/info.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "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" - }, - "bootmagic": { - "matrix": [1, 0] - }, - "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/keymap.c b/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c deleted file mode 100644 index b1c77ae9447..00000000000 --- a/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c +++ /dev/null @@ -1,515 +0,0 @@ -/* -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 (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 (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 -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(void) { - // 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/readme.md b/keyboards/handwired/jscotto/scottocmd/readme.md deleted file mode 100644 index b08d02d678e..00000000000 --- a/keyboards/handwired/jscotto/scottocmd/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# 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 deleted file mode 100644 index 9f00574d5d0..00000000000 --- a/keyboards/handwired/jscotto/scottocmd/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -OLED_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/handwired/jscotto/scottostarter/info.json b/keyboards/handwired/jscotto/scottostarter/info.json deleted file mode 100644 index 65fe2d93106..00000000000 --- a/keyboards/handwired/jscotto/scottostarter/info.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "manufacturer": "Joe Scotto", - "keyboard_name": "ScottoStarter", - "maintainer": "joe-scotto", - "bootloader": "caterina", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - // RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1, TX0 - "cols": ["D2", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "D3"], - // 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_4x11_8": { - "layout": [ - // Row 1 - {"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}, - - // 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, 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}, - {"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, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 7], "x": 7, "y": 4}, - {"matrix": [4, 8], "x": 8, "y": 4}, - {"matrix": [4, 9], "x": 9, "y": 4}, - {"matrix": [4, 10], "x": 10, "y": 4} - ] - } - } -} diff --git a/keyboards/handwired/jscotto/scottostarter/readme.md b/keyboards/handwired/jscotto/scottostarter/readme.md deleted file mode 100644 index 5886bc9d3b0..00000000000 --- a/keyboards/handwired/jscotto/scottostarter/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# ScottoStarter - -![ScottoStarter](https://i.imgur.com/bspbVPah.jpg) - -A 52 key ortholinear keyboard that is designed to help transition you into smaller layouts. 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/scottostarter:default - -Flashing example for this keyboard: - - make handwired/jscotto/scottostarter: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/k_numpad17/config.h b/keyboards/handwired/k_numpad17/config.h index 9bcc1ca12ed..9f71a07f90c 100644 --- a/keyboards/handwired/k_numpad17/config.h +++ b/keyboards/handwired/k_numpad17/config.h @@ -17,9 +17,6 @@ along with this program. If not, see . #pragma once - -#define TAPPING_TERM 400 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/k_numpad17/info.json b/keyboards/handwired/k_numpad17/info.json index e0cd79a9c00..97d5f38774b 100644 --- a/keyboards/handwired/k_numpad17/info.json +++ b/keyboards/handwired/k_numpad17/info.json @@ -8,6 +8,9 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "tapping": { + "term": 400 + }, "matrix_pins": { "cols": ["B2", "B1", "F6", "F4"], "rows": ["D1", "D4", "C6", "D7", "E6"] diff --git a/keyboards/handwired/kbod/config.h b/keyboards/handwired/kbod/config.h index f9528817727..b9449c4714b 100644 --- a/keyboards/handwired/kbod/config.h +++ b/keyboards/handwired/kbod/config.h @@ -37,5 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/handwired/kbod/info.json b/keyboards/handwired/kbod/info.json index 6508b3d8596..69005c65790 100644 --- a/keyboards/handwired/kbod/info.json +++ b/keyboards/handwired/kbod/info.json @@ -18,6 +18,9 @@ }, "processor": "atmega32u4", "bootloader": "caterina", + "tapping": { + "toggle": 2 + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/lovelive9/config.h b/keyboards/handwired/lovelive9/config.h index a946442dc05..5de39092bf5 100644 --- a/keyboards/handwired/lovelive9/config.h +++ b/keyboards/handwired/lovelive9/config.h @@ -1,22 +1,3 @@ - - #pragma once -#define RGBLED_NUM 9 // Number of LEDs - -#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_EFFECT_SNAKE_LENGTH 4 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -#define TAPPING_TERM 200 diff --git a/keyboards/handwired/lovelive9/info.json b/keyboards/handwired/lovelive9/info.json index 4000b543c31..835fa55bef6 100644 --- a/keyboards/handwired/lovelive9/info.json +++ b/keyboards/handwired/lovelive9/info.json @@ -17,6 +17,22 @@ "backlight": { "breathing_period": 2 }, + "rgblight": { + "hue_steps": 10, + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h index d20625da085..95e7d9d1aa6 100644 --- a/keyboards/handwired/macroboard/config.h +++ b/keyboards/handwired/macroboard/config.h @@ -23,22 +23,6 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM6 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_PWM_TARGET_PERIOD 800000 -#define RGBLIGHT_LED_MAP { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1 } - -# define RGBLED_NUM 24 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/handwired/macroboard/info.json b/keyboards/handwired/macroboard/info.json index b82cee4fb52..5c27c96ae9f 100644 --- a/keyboards/handwired/macroboard/info.json +++ b/keyboards/handwired/macroboard/info.json @@ -8,6 +8,23 @@ "pid": "0x2137", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "led_map": [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true + } + }, "ws2812": { "pin": "B9" }, diff --git a/keyboards/handwired/marauder/config.h b/keyboards/handwired/marauder/config.h index bdb092a3ae8..9d56df98e1d 100644 --- a/keyboards/handwired/marauder/config.h +++ b/keyboards/handwired/marauder/config.h @@ -17,9 +17,3 @@ #pragma once #define LAYER_STATE_8BIT - - #define RGBLED_NUM 7 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ diff --git a/keyboards/handwired/marauder/info.json b/keyboards/handwired/marauder/info.json index a4bab132846..5c17825a634 100644 --- a/keyboards/handwired/marauder/info.json +++ b/keyboards/handwired/marauder/info.json @@ -8,6 +8,12 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "sleep": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/marauder/keymaps/orvia/rules.mk b/keyboards/handwired/marauder/keymaps/orvia/rules.mk index 9b5ee6b6fa5..e39f8c6e9e8 100644 --- a/keyboards/handwired/marauder/keymaps/orvia/rules.mk +++ b/keyboards/handwired/marauder/keymaps/orvia/rules.mk @@ -1,4 +1,3 @@ VIA_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # OLED Driver Enable WPM_ENABLE = yes # WPM counting Enable diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c b/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c index 7d541270fba..26e6fc630ce 100644 --- a/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c +++ b/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c @@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }, #ifdef UNICODE_H [_RUNE] = { - {KC_ESC, X(INGWZ), X(WUNJO), X(EHWAZ), X(RAIDO), X(TIWAZ), X(IWAZ), X(UR), X(ISAZ), X(ETHEL), X(PERTH), SC(BSPC) }, - {ED(TAB), X(ANSUZ), X(SOWIL), X(DAGAZ), X(FE), X(GEBO), X(HAGLZ), X(JERAN), X(KAUNA), X(LAUKZ), XXXXXXX, NM(SCLN) }, - {MT_QUOT, XXXXXXX, X(ALGIZ), X(THURS), X(KAUNA), X(WUNJO), X(BEORC), X(NAUDZ), X(MANNZ), KC_COMM, FK(DOT), RS(SLSH) }, + {KC_ESC, UM(INGWZ), UM(WUNJO), UM(EHWAZ), UM(RAIDO), UM(TIWAZ), UM(IWAZ), UM(UR), UM(ISAZ), UM(ETHEL), UM(PERTH), SC(BSPC) }, + {ED(TAB), UM(ANSUZ), UM(SOWIL), UM(DAGAZ), UM(FE), UM(GEBO), UM(HAGLZ), UM(JERAN), UM(KAUNA), UM(LAUKZ), XXXXXXX, NM(SCLN) }, + {MT_QUOT, XXXXXXX, UM(ALGIZ), UM(THURS), UM(KAUNA), UM(WUNJO), UM(BEORC), UM(NAUDZ), UM(MANNZ), KC_COMM, FK(DOT), RS(SLSH) }, {LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) } }, #endif diff --git a/keyboards/handwired/mutepad/config.h b/keyboards/handwired/mutepad/config.h index 83c78b16342..632465bba71 100644 --- a/keyboards/handwired/mutepad/config.h +++ b/keyboards/handwired/mutepad/config.h @@ -3,8 +3,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/mutepad/info.json b/keyboards/handwired/mutepad/info.json index e8df528eff3..5adb2505fbc 100644 --- a/keyboards/handwired/mutepad/info.json +++ b/keyboards/handwired/mutepad/info.json @@ -19,6 +19,9 @@ {"pin_a": "F4", "pin_b": "F5", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/handwired/myskeeb/config.h b/keyboards/handwired/myskeeb/config.h index 2e2a2bbcbf5..8c37524a0e5 100644 --- a/keyboards/handwired/myskeeb/config.h +++ b/keyboards/handwired/myskeeb/config.h @@ -13,7 +13,3 @@ #define OLED_FONT_HEIGHT 8 #define OLED_FONT_WIDTH 6 #define OLED_FONT_H "skeeb_font.c" - -// Tap Dance - -#define TAPPING_TERM 200 diff --git a/keyboards/handwired/myskeeb/oled.c b/keyboards/handwired/myskeeb/oled.c index 3f43590b8e9..675b290630d 100644 --- a/keyboards/handwired/myskeeb/oled.c +++ b/keyboards/handwired/myskeeb/oled.c @@ -127,13 +127,13 @@ void render_layer_state(void){ } // Keylock State -void render_keylock_status(uint8_t led_usb_state) { +void render_keylock_status(led_t led_state) { oled_write_P(PSTR(" "), false); - oled_write_P(led_usb_state & (1<. + */ + +#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 + diff --git a/keyboards/handwired/nortontechpad/info.json b/keyboards/handwired/nortontechpad/info.json new file mode 100644 index 00000000000..51871b42e32 --- /dev/null +++ b/keyboards/handwired/nortontechpad/info.json @@ -0,0 +1,53 @@ +{ + "keyboard_name": "NortonTechPad", + "manufacturer": "NortonTech", + "url": "", + "maintainer": "NortonTech", + "usb": { + "vid": "0x9879", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D7", "E6", "B4", "B5"], + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "development_board": "promicro", + "community_layouts": ["numpad_5x4"], + "layouts": { + "LAYOUT_numpad_5x4": { + "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": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [1, 3], "x": 3, "y": 1, "h": 2}, + + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 3, "h": 2} + ] + } + } +} diff --git a/keyboards/handwired/nortontechpad/keymaps/default/keymap.c b/keyboards/handwired/nortontechpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..dca76ce990d --- /dev/null +++ b/keyboards/handwired/nortontechpad/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2020 Joel Schneider + * + * This 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_numpad_5x4( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ) +}; diff --git a/keyboards/handwired/nortontechpad/keymaps/via/keymap.c b/keyboards/handwired/nortontechpad/keymaps/via/keymap.c new file mode 100644 index 00000000000..dca76ce990d --- /dev/null +++ b/keyboards/handwired/nortontechpad/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2020 Joel Schneider + * + * This 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_numpad_5x4( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ) +}; diff --git a/keyboards/handwired/nortontechpad/keymaps/via/rules.mk b/keyboards/handwired/nortontechpad/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/handwired/nortontechpad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/nortontechpad/readme.md b/keyboards/handwired/nortontechpad/readme.md new file mode 100644 index 00000000000..6aacc8d72ae --- /dev/null +++ b/keyboards/handwired/nortontechpad/readme.md @@ -0,0 +1,27 @@ +# NortonTechPad + + + +The NortonTechPad is a numpad inspired by the SiCK-Pad,it is also 3D printed and designed to be inexpensive. + +- Keyboard Maintainer: [NortonTech](https://github.com/NortonTech-Official) +- Hardware Supported: Pro Micro + + +Make example for this keyboard (after setting up your build environment): + + make handwired/nortontechpad:default + +Flashing example for this keyboard: + + make handwired/nortontechpad: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 and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: Short the GND and RST pins on the Pro Micro with something conductive. +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. diff --git a/keyboards/handwired/nortontechpad/rules.mk b/keyboards/handwired/nortontechpad/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/nortontechpad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/obuwunkunubi/spaget/rules.mk b/keyboards/handwired/obuwunkunubi/spaget/rules.mk index bf275d4f6f2..9652815de21 100644 --- a/keyboards/handwired/obuwunkunubi/spaget/rules.mk +++ b/keyboards/handwired/obuwunkunubi/spaget/rules.mk @@ -14,6 +14,4 @@ UNICODE_ENABLE = yes # Unicode AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable OLED display support ENCODER_ENABLE = yes # Enable encoder support - diff --git a/keyboards/handwired/onekey/blackpill_f401/config.h b/keyboards/handwired/onekey/blackpill_f401/config.h index 6183ee98197..22143dfac51 100644 --- a/keyboards/handwired/onekey/blackpill_f401/config.h +++ b/keyboards/handwired/onekey/blackpill_f401/config.h @@ -19,7 +19,6 @@ #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 2 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h b/keyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h index 6183ee98197..22143dfac51 100755 --- a/keyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h +++ b/keyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h @@ -19,7 +19,6 @@ #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 2 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/blackpill_f411/config.h b/keyboards/handwired/onekey/blackpill_f411/config.h index 6183ee98197..22143dfac51 100644 --- a/keyboards/handwired/onekey/blackpill_f411/config.h +++ b/keyboards/handwired/onekey/blackpill_f411/config.h @@ -19,7 +19,6 @@ #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 2 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h index 6183ee98197..22143dfac51 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h @@ -19,7 +19,6 @@ #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 2 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/bluepill/rules.mk b/keyboards/handwired/onekey/bluepill/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/onekey/bluepill/rules.mk +++ b/keyboards/handwired/onekey/bluepill/rules.mk @@ -1,2 +1 @@ -# 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/rules.mk b/keyboards/handwired/onekey/bluepill_f103c6/rules.mk index 8fd4321938e..71bc488563a 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/rules.mk +++ b/keyboards/handwired/onekey/bluepill_f103c6/rules.mk @@ -7,9 +7,6 @@ BOOTLOADER_TYPE = stm32duino DFU_ARGS = -d 1EAF:0003 -a 2 -R DFU_SUFFIX_ARGS = -v 1EAF -p 0003 -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # LTO is required to fit the firmware into the available 24K of flash LTO_ENABLE = yes diff --git a/keyboards/handwired/onekey/bluepill_uf2boot/rules.mk b/keyboards/handwired/onekey/bluepill_uf2boot/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/onekey/bluepill_uf2boot/rules.mk +++ b/keyboards/handwired/onekey/bluepill_uf2boot/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h index 7ef807c5d11..09cf9659412 100644 --- a/keyboards/handwired/onekey/config.h +++ b/keyboards/handwired/onekey/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAPPING_TERM 500 #define PERMISSIVE_HOLD /* diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/config.h b/keyboards/handwired/onekey/evb_wb32f3g71/config.h index 4a65e9a72fe..5f6f04f7b41 100644 --- a/keyboards/handwired/onekey/evb_wb32f3g71/config.h +++ b/keyboards/handwired/onekey/evb_wb32f3g71/config.h @@ -3,13 +3,8 @@ #pragma once - #define ADC_PIN A0 -#define BACKLIGHT_PWM_DRIVER PWMD4 -#define BACKLIGHT_PWM_CHANNEL 3 -#define BACKLIGHT_PAL_MODE 2 - #define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) #define SOLENOID_PIN B12 diff --git a/keyboards/handwired/onekey/evb_wb32fq95/config.h b/keyboards/handwired/onekey/evb_wb32fq95/config.h index 4a65e9a72fe..5f6f04f7b41 100644 --- a/keyboards/handwired/onekey/evb_wb32fq95/config.h +++ b/keyboards/handwired/onekey/evb_wb32fq95/config.h @@ -3,13 +3,8 @@ #pragma once - #define ADC_PIN A0 -#define BACKLIGHT_PWM_DRIVER PWMD4 -#define BACKLIGHT_PWM_CHANNEL 3 -#define BACKLIGHT_PAL_MODE 2 - #define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) #define SOLENOID_PIN B12 diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index 339dfe5974e..17bb84a82c1 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -7,6 +7,9 @@ "pid": "0x6465", "device_version": "0.0.1" }, + "tapping": { + "term": 500 + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/handwired/onekey/kb2040/rules.mk b/keyboards/handwired/onekey/kb2040/rules.mk index a5429ba9935..0e5631b02b3 100644 --- a/keyboards/handwired/onekey/kb2040/rules.mk +++ b/keyboards/handwired/onekey/kb2040/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 OPT_DEFS += -DHAL_USE_I2C=TRUE diff --git a/keyboards/handwired/onekey/keymaps/apa102/rules.mk b/keyboards/handwired/onekey/keymaps/apa102/rules.mk index 70932cb7516..5f15fa9e708 100644 --- a/keyboards/handwired/onekey/keymaps/apa102/rules.mk +++ b/keyboards/handwired/onekey/keymaps/apa102/rules.mk @@ -1,2 +1,2 @@ RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = APA102 +RGBLIGHT_DRIVER = apa102 diff --git a/keyboards/handwired/onekey/keymaps/haptic/rules.mk b/keyboards/handwired/onekey/keymaps/haptic/rules.mk index 802f7e5ddee..05201736e60 100644 --- a/keyboards/handwired/onekey/keymaps/haptic/rules.mk +++ b/keyboards/handwired/onekey/keymaps/haptic/rules.mk @@ -1,2 +1,2 @@ HAPTIC_ENABLE = yes -HAPTIC_DRIVER = SOLENOID +HAPTIC_DRIVER = solenoid diff --git a/keyboards/handwired/onekey/keymaps/oled/rules.mk b/keyboards/handwired/onekey/keymaps/oled/rules.mk index 83757b19096..f39e8ce4bde 100644 --- a/keyboards/handwired/onekey/keymaps/oled/rules.mk +++ b/keyboards/handwired/onekey/keymaps/oled/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 TAP_DANCE_ENABLE = yes CONSOLE_ENABLE = yes diff --git a/keyboards/handwired/onekey/nucleo_f446re/config.h b/keyboards/handwired/onekey/nucleo_f446re/config.h index c6c04ed6154..4401623e85c 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/config.h +++ b/keyboards/handwired/onekey/nucleo_f446re/config.h @@ -2,11 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD4 -#define BACKLIGHT_PWM_CHANNEL 3 -#define BACKLIGHT_PAL_MODE 2 - #define ADC_PIN A0 #define SOLENOID_PINS { B12, B13, B14, B15 } diff --git a/keyboards/handwired/onekey/nucleo_g431rb/info.json b/keyboards/handwired/onekey/nucleo_g431rb/info.json new file mode 100644 index 00000000000..4e5e3b1cba3 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_g431rb/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "Onekey Nucleo G431RB", + "processor": "STM32G431", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A9"], + "rows": ["A10"] + }, + "backlight": { + "pin": "B8" + }, + "ws2812": { + "pin": "A0" + }, + "apa102": { + "data_pin": "A0", + "clock_pin": "B13" + } +} diff --git a/keyboards/handwired/onekey/nucleo_g431rb/readme.md b/keyboards/handwired/onekey/nucleo_g431rb/readme.md new file mode 100644 index 00000000000..3b393e12768 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_g431rb/readme.md @@ -0,0 +1,7 @@ +# ST Microelectronics Nucleo64-G431RB onekey + +Supported Hardware: + +To trigger keypress, short together pins *A9* and *A10*. + +The usual USB connection to ST-Link will not work for QMK -- pins *A11* and *A12* need to be connected to *D-* and *D+* respectively. diff --git a/keyboards/handwired/onekey/nucleo_g431rb/rules.mk b/keyboards/handwired/onekey/nucleo_g431rb/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/handwired/onekey/nucleo_g474re/info.json b/keyboards/handwired/onekey/nucleo_g474re/info.json new file mode 100644 index 00000000000..02f59be74e9 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_g474re/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "Onekey Nucleo G474RE", + "processor": "STM32G474", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A9"], + "rows": ["A10"] + }, + "backlight": { + "pin": "B8" + }, + "ws2812": { + "pin": "A0" + }, + "apa102": { + "data_pin": "A0", + "clock_pin": "B13" + } +} diff --git a/keyboards/handwired/onekey/nucleo_g474re/readme.md b/keyboards/handwired/onekey/nucleo_g474re/readme.md new file mode 100644 index 00000000000..f6115b10c7d --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_g474re/readme.md @@ -0,0 +1,7 @@ +# ST Microelectronics Nucleo64-G474RE onekey + +Supported Hardware: + +To trigger keypress, short together pins *A9* and *A10*. + +The usual USB connection to ST-Link will not work for QMK -- pins *A11* and *A12* need to be connected to *D-* and *D+* respectively. diff --git a/keyboards/handwired/onekey/nucleo_g474re/rules.mk b/keyboards/handwired/onekey/nucleo_g474re/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/handwired/onekey/nucleo_h723zg/info.json b/keyboards/handwired/onekey/nucleo_h723zg/info.json new file mode 100644 index 00000000000..7596d007b2d --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_h723zg/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "Onekey Nucleo H723ZG", + "processor": "STM32H723", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A9"], + "rows": ["A10"] + }, + "backlight": { + "pin": "B8" + }, + "ws2812": { + "pin": "A0" + }, + "apa102": { + "data_pin": "A0", + "clock_pin": "B13" + } +} diff --git a/keyboards/handwired/onekey/nucleo_h723zg/readme.md b/keyboards/handwired/onekey/nucleo_h723zg/readme.md new file mode 100755 index 00000000000..97a2da51153 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_h723zg/readme.md @@ -0,0 +1,5 @@ +# ST Microelectronics Nucleo144-H723 onekey + +Supported Hardware: + +To trigger keypress, short together pins *A9* and *A10*. diff --git a/keyboards/handwired/onekey/nucleo_h723zg/rules.mk b/keyboards/handwired/onekey/nucleo_h723zg/rules.mk new file mode 100755 index 00000000000..e69de29bb2d diff --git a/keyboards/handwired/onekey/nucleo_l432kc/config.h b/keyboards/handwired/onekey/nucleo_l432kc/config.h index d344a110942..03e017892c7 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/config.h +++ b/keyboards/handwired/onekey/nucleo_l432kc/config.h @@ -2,9 +2,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD4 -#define BACKLIGHT_PWM_CHANNEL 3 -#define BACKLIGHT_PAL_MODE 2 - #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/proton_c/config.h b/keyboards/handwired/onekey/proton_c/config.h index 49376e474e2..07ce9292211 100644 --- a/keyboards/handwired/onekey/proton_c/config.h +++ b/keyboards/handwired/onekey/proton_c/config.h @@ -16,9 +16,4 @@ #pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD4 -#define BACKLIGHT_PWM_CHANNEL 3 -#define BACKLIGHT_PAL_MODE 2 - #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h index 5cbfb8dbffc..0563ebfa5f1 100644 --- a/keyboards/handwired/onekey/rp2040/config.h +++ b/keyboards/handwired/onekey/rp2040/config.h @@ -13,7 +13,6 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define BACKLIGHT_PWM_DRIVER PWMD4 #define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B #define AUDIO_PIN GP16 diff --git a/keyboards/handwired/onekey/stm32f0_disco/config.h b/keyboards/handwired/onekey/stm32f0_disco/config.h index 806eb69df4e..b8880f65813 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/config.h +++ b/keyboards/handwired/onekey/stm32f0_disco/config.h @@ -16,9 +16,7 @@ #pragma once - #define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 0 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/stm32f0_disco/rules.mk b/keyboards/handwired/onekey/stm32f0_disco/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/rules.mk +++ b/keyboards/handwired/onekey/stm32f0_disco/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/handwired/onekey/stm32f3_disco/config.h b/keyboards/handwired/onekey/stm32f3_disco/config.h new file mode 100644 index 00000000000..a0e3c54ec1c --- /dev/null +++ b/keyboards/handwired/onekey/stm32f3_disco/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/stm32f3_disco/halconf.h b/keyboards/handwired/onekey/stm32f3_disco/halconf.h new file mode 100644 index 00000000000..e9d7ece8fc9 --- /dev/null +++ b/keyboards/handwired/onekey/stm32f3_disco/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/handwired/onekey/stm32f3_disco/info.json b/keyboards/handwired/onekey/stm32f3_disco/info.json new file mode 100644 index 00000000000..b541cd8ae4d --- /dev/null +++ b/keyboards/handwired/onekey/stm32f3_disco/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "Onekey STM32F3 Discovery", + "processor": "STM32F303", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["B4"], + "rows": ["B5"] + }, + "backlight": { + "pin": "E8" + }, + "ws2812": { + "pin": "A0" + }, + "apa102": { + "data_pin": "A0", + "clock_pin": "B13" + } +} diff --git a/keyboards/handwired/onekey/stm32f3_disco/mcuconf.h b/keyboards/handwired/onekey/stm32f3_disco/mcuconf.h new file mode 100644 index 00000000000..9172860b0f1 --- /dev/null +++ b/keyboards/handwired/onekey/stm32f3_disco/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/stm32f3_disco/readme.md b/keyboards/handwired/onekey/stm32f3_disco/readme.md new file mode 100644 index 00000000000..ff5c061184b --- /dev/null +++ b/keyboards/handwired/onekey/stm32f3_disco/readme.md @@ -0,0 +1,5 @@ +# STM32F303 Discovery kit onekey + +* Supported Hardware: [STM32F303 Discovery](https://www.st.com/en/evaluation-tools/stm32f3discovery.html) + +To trigger keypress, short together pins *B4* and *B5*. diff --git a/keyboards/handwired/onekey/stm32f3_disco/rules.mk b/keyboards/handwired/onekey/stm32f3_disco/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/handwired/onekey/stm32f405_feather/rules.mk b/keyboards/handwired/onekey/stm32f405_feather/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/rules.mk +++ b/keyboards/handwired/onekey/stm32f405_feather/rules.mk @@ -1,2 +1 @@ -# 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_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/onekey/teensy_32/rules.mk +++ b/keyboards/handwired/onekey/teensy_32/rules.mk @@ -1,2 +1 @@ -# 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/rules.mk b/keyboards/handwired/onekey/teensy_35/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/onekey/teensy_35/rules.mk +++ b/keyboards/handwired/onekey/teensy_35/rules.mk @@ -1,2 +1 @@ -# 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/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk index 9803d8cc703..abd2f7fce97 100644 --- a/keyboards/handwired/onekey/teensy_lc/rules.mk +++ b/keyboards/handwired/onekey/teensy_lc/rules.mk @@ -1,4 +1,2 @@ USE_CHIBIOS_CONTRIB = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/orbweaver/info.json b/keyboards/handwired/orbweaver/info.json index 9db6243a694..489a7e28887 100644 --- a/keyboards/handwired/orbweaver/info.json +++ b/keyboards/handwired/orbweaver/info.json @@ -13,7 +13,7 @@ "nkro": true }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "rows": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], diff --git a/keyboards/handwired/ortho5x14/config.h b/keyboards/handwired/ortho5x14/config.h index c37ac425370..5f60fd44d7e 100644 --- a/keyboards/handwired/ortho5x14/config.h +++ b/keyboards/handwired/ortho5x14/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAPPING_TERM 200 - //#define PERMISSIVE_HOLD /* diff --git a/keyboards/handwired/osborne1/info.json b/keyboards/handwired/osborne1/info.json index d226b4dd71a..2f613b5876d 100644 --- a/keyboards/handwired/osborne1/info.json +++ b/keyboards/handwired/osborne1/info.json @@ -12,6 +12,9 @@ "mousekey": false, "nkro": false }, + "bluetooth": { + "driver": "bluefruit_le" + }, "matrix_pins": { "cols": ["D3", "D2", "F0", "F1", "F4", "F5", "F6", "F7"], "rows": ["D0", "B7", "B5", "C6", "D1", "B6", "D7", "D6"] diff --git a/keyboards/handwired/osborne1/rules.mk b/keyboards/handwired/osborne1/rules.mk index 2bf3fe5811e..9ccac102c70 100644 --- a/keyboards/handwired/osborne1/rules.mk +++ b/keyboards/handwired/osborne1/rules.mk @@ -1,2 +1 @@ BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/owlet60/config.h b/keyboards/handwired/owlet60/config.h index ba5322f32fb..f37ee57798d 100644 --- a/keyboards/handwired/owlet60/config.h +++ b/keyboards/handwired/owlet60/config.h @@ -40,22 +40,6 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/owlet60/info.json b/keyboards/handwired/owlet60/info.json index d0369117553..f6bd2d2f239 100644 --- a/keyboards/handwired/owlet60/info.json +++ b/keyboards/handwired/owlet60/info.json @@ -12,7 +12,23 @@ "pin": "D0" }, "rgblight": { - "max_brightness": 128 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "max_brightness": 128, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/owlet60/keymaps/oled_testing/keymap.c b/keyboards/handwired/owlet60/keymaps/oled_testing/keymap.c index f617fb5e682..f54ceb44910 100644 --- a/keyboards/handwired/owlet60/keymaps/oled_testing/keymap.c +++ b/keyboards/handwired/owlet60/keymaps/oled_testing/keymap.c @@ -67,24 +67,6 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; } bool oled_task_user(void) { - // Host Keyboard Layer Status - /*oled_write_P(PSTR("Lyr: "), false); - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_P(PSTR("Alpha\n"), false); - break; - case 1: - oled_write_P(PSTR("FN\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); - } - - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(led_usb_state & (1< - diff --git a/keyboards/handwired/pill60/blackpill_f401/mcuconf.h b/keyboards/handwired/pill60/blackpill_f401/mcuconf.h index ab89514fb1c..563b86d26db 100644 --- a/keyboards/handwired/pill60/blackpill_f401/mcuconf.h +++ b/keyboards/handwired/pill60/blackpill_f401/mcuconf.h @@ -19,6 +19,3 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE - -#undef STM32_PWM_USE_TIM5 -#define STM32_PWM_USE_TIM5 TRUE \ No newline at end of file diff --git a/keyboards/handwired/pill60/blackpill_f411/halconf.h b/keyboards/handwired/pill60/blackpill_f411/halconf.h index 435bf3274e9..f563693fac7 100644 --- a/keyboards/handwired/pill60/blackpill_f411/halconf.h +++ b/keyboards/handwired/pill60/blackpill_f411/halconf.h @@ -23,7 +23,4 @@ #define HAL_USE_I2C TRUE -#define HAL_USE_PWM TRUE - #include_next - diff --git a/keyboards/handwired/pill60/blackpill_f411/mcuconf.h b/keyboards/handwired/pill60/blackpill_f411/mcuconf.h index ab89514fb1c..563b86d26db 100644 --- a/keyboards/handwired/pill60/blackpill_f411/mcuconf.h +++ b/keyboards/handwired/pill60/blackpill_f411/mcuconf.h @@ -19,6 +19,3 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE - -#undef STM32_PWM_USE_TIM5 -#define STM32_PWM_USE_TIM5 TRUE \ No newline at end of file diff --git a/keyboards/handwired/pill60/bluepill/halconf.h b/keyboards/handwired/pill60/bluepill/halconf.h index 459ec86e2da..d423df15129 100644 --- a/keyboards/handwired/pill60/bluepill/halconf.h +++ b/keyboards/handwired/pill60/bluepill/halconf.h @@ -23,7 +23,4 @@ #define HAL_USE_I2C TRUE -#define HAL_USE_PWM TRUE - #include_next - diff --git a/keyboards/handwired/pill60/bluepill/mcuconf.h b/keyboards/handwired/pill60/bluepill/mcuconf.h index 22f8b02704c..f335353541c 100644 --- a/keyboards/handwired/pill60/bluepill/mcuconf.h +++ b/keyboards/handwired/pill60/bluepill/mcuconf.h @@ -26,9 +26,5 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE -#undef STM32_PWM_USE_TIM2 -#define STM32_PWM_USE_TIM2 TRUE - #undef STM32_SPI_USE_SPI2 #define STM32_SPI_USE_SPI2 FALSE - diff --git a/keyboards/handwired/pill60/bluepill/rules.mk b/keyboards/handwired/pill60/bluepill/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/pill60/bluepill/rules.mk +++ b/keyboards/handwired/pill60/bluepill/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/handwired/pill60/config.h b/keyboards/handwired/pill60/config.h deleted file mode 100644 index 399d0f2212c..00000000000 --- a/keyboards/handwired/pill60/config.h +++ /dev/null @@ -1,19 +0,0 @@ - /* Copyright 2020 Imam Rafii - * - * This 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 PWMD5 -#define BACKLIGHT_PWM_CHANNEL 1 diff --git a/keyboards/handwired/pill60/info.json b/keyboards/handwired/pill60/info.json index 6cc337f8eee..ac8c9013ba9 100644 --- a/keyboards/handwired/pill60/info.json +++ b/keyboards/handwired/pill60/info.json @@ -13,11 +13,6 @@ {"pin_a": "B9", "pin_b": "B8", "resolution": 2} ] }, - "backlight": { - "driver": "software", - "pin": "B14", - "levels": 5 - }, "debounce": 1, "layouts": { "LAYOUT": { diff --git a/keyboards/handwired/pill60/rules.mk b/keyboards/handwired/pill60/rules.mk index f8bae6b6dfa..6bb5fa15810 100644 --- a/keyboards/handwired/pill60/rules.mk +++ b/keyboards/handwired/pill60/rules.mk @@ -7,12 +7,10 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -SLEEP_LED_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes DEFAULT_FOLDER = handwired/pill60/bluepill diff --git a/keyboards/handwired/prime_exl_plus/config.h b/keyboards/handwired/prime_exl_plus/config.h index a660e0ddfa1..cb77f4eda20 100644 --- a/keyboards/handwired/prime_exl_plus/config.h +++ b/keyboards/handwired/prime_exl_plus/config.h @@ -17,18 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 10 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/prime_exl_plus/info.json b/keyboards/handwired/prime_exl_plus/info.json index cb4a939a02d..c463d5baa7a 100644 --- a/keyboards/handwired/prime_exl_plus/info.json +++ b/keyboards/handwired/prime_exl_plus/info.json @@ -8,6 +8,21 @@ "pid": "0x6579", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/handwired/prkl30/feather/config.h b/keyboards/handwired/prkl30/feather/config.h deleted file mode 100644 index bb71df9c64f..00000000000 --- a/keyboards/handwired/prkl30/feather/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2020 Erkki Halinen & Toni Johansson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -/* RGB Light Configuration */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 13 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/handwired/prkl30/feather/info.json b/keyboards/handwired/prkl30/feather/info.json index 08c6e107ddf..a89fe9ec57f 100644 --- a/keyboards/handwired/prkl30/feather/info.json +++ b/keyboards/handwired/prkl30/feather/info.json @@ -1,7 +1,27 @@ { + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 13, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "matrix_pins": { "cols": ["D3", "D1", "B7", "D6", "C7", "B6", "B5", "D7", "C6", "D0"], "rows": ["F4", "F1", "F0", "D2"] diff --git a/keyboards/handwired/prkl30/feather/rules.mk b/keyboards/handwired/prkl30/feather/rules.mk index 6b109855a57..aaab95b9e04 100644 --- a/keyboards/handwired/prkl30/feather/rules.mk +++ b/keyboards/handwired/prkl30/feather/rules.mk @@ -16,4 +16,3 @@ AUDIO_ENABLE = no # This can be enabled if a speaker is connected to t RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port. BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/prkl30/promicro/config.h b/keyboards/handwired/prkl30/promicro/config.h deleted file mode 100644 index bb71df9c64f..00000000000 --- a/keyboards/handwired/prkl30/promicro/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2020 Erkki Halinen & Toni Johansson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -/* RGB Light Configuration */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 13 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/handwired/prkl30/promicro/info.json b/keyboards/handwired/prkl30/promicro/info.json index 69c3ae8bfe4..395cb9f2760 100644 --- a/keyboards/handwired/prkl30/promicro/info.json +++ b/keyboards/handwired/prkl30/promicro/info.json @@ -3,6 +3,23 @@ "cols": ["B4", "B5", "F6", "F5", "F4", "F7", "B1", "B3", "B2", "B6"], "rows": ["D4", "C6", "D7", "E6"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 13, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/handwired/promethium/info.json b/keyboards/handwired/promethium/info.json index 6daf5dd0c69..c26325069b4 100644 --- a/keyboards/handwired/promethium/info.json +++ b/keyboards/handwired/promethium/info.json @@ -11,6 +11,9 @@ "ws2812": { "pin": "B5" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/handwired/promethium/keymaps/default/keymap.c b/keyboards/handwired/promethium/keymaps/default/keymap.c index 100db976781..ff73e51d5eb 100644 --- a/keyboards/handwired/promethium/keymaps/default/keymap.c +++ b/keyboards/handwired/promethium/keymaps/default/keymap.c @@ -779,9 +779,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_PUNC] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______, - KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______, - KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, UM(LTEQ), UM(GTEQ), _______, + KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, UM(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______, + KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, UM(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COLN, _______, _______, _______, _______ ), @@ -836,9 +836,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_GREEKU] = LAYOUT( - _______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______, - _______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______, - _______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______, + _______, XXXXXXX, XXXXXXX,UM(UEPSI), UM(URHO), UM(UTAU),UM(UUPSI),UM(UTHET),UM(UIOTA),UM(UOMIC), UM(UPI), _______, + _______,UM(UALPH),UM(USIGM),UM(UDELT), UM(UPHI),UM(UGAMM), UM(UETA), UM(UXI),UM(UKAPP),UM(ULAMB), KC_QUOT, _______, + _______,UM(UZETA), UM(UCHI), UM(UPSI),UM(UOMEG),UM(UBETA), UM(UNU), UM(UMU), KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -855,9 +855,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_GREEKL] = LAYOUT( - _______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______, - _______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______, - _______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______, + _______, XXXXXXX,UM(FSIGM),UM(LEPSI), UM(LRHO), UM(LTAU),UM(LUPSI),UM(LTHET),UM(LIOTA),UM(LOMIC), UM(LPI), _______, + _______,UM(LALPH),UM(LSIGM),UM(LDELT), UM(LPHI),UM(LGAMM), UM(LETA), UM(LXI),UM(LKAPP),UM(LLAMB), KC_QUOT, _______, + _______,UM(LZETA), UM(LCHI), UM(LPSI),UM(LOMEG),UM(LBETA), UM(LNU), UM(LMU), KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -893,10 +893,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_EMOJI] = LAYOUT( - X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW), - X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS), - X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH), - X(POO), X(EYES), X(HUNRD),_______, X(SKULL),X(HORNS), X(HALO), X(FEAR),_______,X(YUMMY),X(DISAP),X(NOEVK), + UM(HART2), UM(CRY2),UM(WEARY),UM(EYERT),UM(SMIRK), UM(TJOY),UM(RECYC),UM(UNAMU),UM(MUSIC),UM(OKHND),UM(PENSV), UM(PHEW), + UM(THMUP), UM(PRAY),UM(SMILE),UM(SMIL2),UM(FLUSH), UM(GRIN),UM(HEART), UM(BYE), UM(KISS),UM(CELEB), UM(COOL),UM(NOEVS), + UM(THMDN),UM(SLEEP), UM(CLAP), UM(CRY), UM(VIC),UM(BHART), UM(SUN),UM(SMEYE), UM(WINK), UM(MOON),UM(CONFU),UM(NOEVH), + UM(POO), UM(EYES), UM(HUNRD),_______, UM(SKULL),UM(HORNS), UM(HALO), UM(FEAR),_______,UM(YUMMY),UM(DISAP),UM(NOEVK), _______, _______, _______ ), @@ -1303,8 +1303,8 @@ void turn_off_capslock(void) { rgbsps_send(); } - void led_set_user(uint8_t usb_led) { - bool new_capslock = usb_led & (1<. #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 1 - /* key combination for command */ #define IS_COMMAND() ( \ get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ diff --git a/keyboards/handwired/pterodactyl/info.json b/keyboards/handwired/pterodactyl/info.json index 213b7aa53bb..ad83f34999d 100644 --- a/keyboards/handwired/pterodactyl/info.json +++ b/keyboards/handwired/pterodactyl/info.json @@ -11,6 +11,12 @@ "processor": "atmega32u4", "bootloader": "caterina", "debounce": 0, + "tapping": { + "toggle": 1 + }, + "bluetooth": { + "driver": "bluefruit_le" + }, "layouts": { "LAYOUT_pterodactyl": { "layout": [ diff --git a/keyboards/handwired/pterodactyl/rules.mk b/keyboards/handwired/pterodactyl/rules.mk index eb2487d4103..9f0cabc750f 100644 --- a/keyboards/handwired/pterodactyl/rules.mk +++ b/keyboards/handwired/pterodactyl/rules.mk @@ -16,7 +16,6 @@ AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes CUSTOM_MATRIX = yes BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/handwired/pytest/macro/keymaps/default/keymap.json b/keyboards/handwired/pytest/macro/keymaps/default/keymap.json index 23c371aa343..3bef21a0b21 100644 --- a/keyboards/handwired/pytest/macro/keymaps/default/keymap.json +++ b/keyboards/handwired/pytest/macro/keymaps/default/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "handwired/pytest/basic", + "keyboard": "handwired/pytest/macro", "keymap": "default_json", "layout": "LAYOUT_ortho_1x1", "layers": [["QK_MACRO_0"]], diff --git a/keyboards/handwired/qc60/info.json b/keyboards/handwired/qc60/info.json index b78ca3c807e..7fba95f9d13 100644 --- a/keyboards/handwired/qc60/info.json +++ b/keyboards/handwired/qc60/info.json @@ -8,6 +8,9 @@ "pid": "0x0C60", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 1 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/qc60/proto/config.h b/keyboards/handwired/qc60/proto/config.h deleted file mode 100644 index a64c4ebeecb..00000000000 --- a/keyboards/handwired/qc60/proto/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -/* ws2812 RGB LED */ -#define RGBLED_NUM 1 // Number of LEDs diff --git a/keyboards/handwired/riblee_f401/config.h b/keyboards/handwired/riblee_f401/config.h index 09a304e1c73..3e384e5b5b3 100644 --- a/keyboards/handwired/riblee_f401/config.h +++ b/keyboards/handwired/riblee_f401/config.h @@ -16,6 +16,7 @@ #pragma once -#define MOUSEKEY_INTERVAL 32 +#define BACKLIGHT_PWM_DRIVER PWMD5 +#define BACKLIGHT_PWM_CHANNEL 1 -#define TAPPING_TERM 175 \ No newline at end of file +#define MOUSEKEY_INTERVAL 32 diff --git a/keyboards/handwired/riblee_f401/halconf.h b/keyboards/handwired/riblee_f401/halconf.h index 3c20471df1a..b537d56c268 100644 --- a/keyboards/handwired/riblee_f401/halconf.h +++ b/keyboards/handwired/riblee_f401/halconf.h @@ -23,5 +23,6 @@ #define SERIAL_USB_BUFFERS_SIZE 256 -#include_next +#define HAL_USE_PWM TRUE +#include_next diff --git a/keyboards/handwired/riblee_f401/info.json b/keyboards/handwired/riblee_f401/info.json index 7b9b320b98b..933973d5f39 100644 --- a/keyboards/handwired/riblee_f401/info.json +++ b/keyboards/handwired/riblee_f401/info.json @@ -8,13 +8,15 @@ "pid": "0x002A", "device_version": "0.0.1" }, + "tapping": { + "term": 175 + }, "matrix_pins": { "cols": ["B10", "B1", "B0", "B15", "A8", "B3", "B4", "B5", "B6", "B7", "B8", "B9"], "rows": ["A6", "A5", "A4", "A3", "A2"] }, "diode_direction": "COL2ROW", "backlight": { - "driver": "software", "pin": "A0", "levels": 5 }, diff --git a/keyboards/handwired/riblee_f401/mcuconf.h b/keyboards/handwired/riblee_f401/mcuconf.h new file mode 100644 index 00000000000..674f5e362fa --- /dev/null +++ b/keyboards/handwired/riblee_f401/mcuconf.h @@ -0,0 +1,6 @@ +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM5 +#define STM32_PWM_USE_TIM5 TRUE diff --git a/keyboards/handwired/riblee_f411/config.h b/keyboards/handwired/riblee_f411/config.h index 425b35f266a..c39cbc87f5e 100644 --- a/keyboards/handwired/riblee_f411/config.h +++ b/keyboards/handwired/riblee_f411/config.h @@ -17,5 +17,3 @@ #pragma once #define MOUSEKEY_INTERVAL 32 - -#define TAPPING_TERM 175 diff --git a/keyboards/handwired/riblee_f411/info.json b/keyboards/handwired/riblee_f411/info.json index d13dfb22919..1c957e99404 100644 --- a/keyboards/handwired/riblee_f411/info.json +++ b/keyboards/handwired/riblee_f411/info.json @@ -8,6 +8,9 @@ "pid": "0x002B", "device_version": "0.0.1" }, + "tapping": { + "term": 175 + }, "matrix_pins": { "cols": ["B10", "B1", "B0", "B15", "A8", "B3", "B4", "B5", "B14", "A0", "B8", "B9"], "rows": ["A6", "A5", "A4", "A3", "A2"] diff --git a/keyboards/handwired/scottokeebs/scotto34/info.json b/keyboards/handwired/scottokeebs/scotto34/info.json new file mode 100644 index 00000000000..6fcce38d709 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto34/info.json @@ -0,0 +1,74 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "Scotto34", + "maintainer": "joe-scotto", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP3", "GP2", "GP7", "GP8", "GP13", "GP16", "GP17", "GP18", "GP19", "GP20"], + "rows": ["GP0", "GP4", "GP9", "GP14"] + }, + "processor": "RP2040", + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0013", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x5_2"], + "layouts": { + "LAYOUT_split_3x5_2": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 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 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/config.h new file mode 100644 index 00000000000..572a1b24ead --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/config.h @@ -0,0 +1,22 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c new file mode 100644 index 00000000000..8231ad94fc0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, 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_split_3x5_2( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_2( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_2( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h similarity index 100% rename from keyboards/handwired/jscotto/scotto36/keymaps/default/config.h rename to keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..f65f6aa17af --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c @@ -0,0 +1,196 @@ +/* +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 + +// Tap dance declarations +enum { + TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI, + TD_ESC_LCTL_LALT_WINDOWS_EMOJI +}; + +// Custom tapping term for multi function keys +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI) : + case TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Begin quad TD +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_HOLD, + TD_DOUBLE_HOLD, + TD_TRIPLE_HOLD, + TD_SINGLE_TAP, + TD_DOUBLE_TAP, + TD_TRIPLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Create an instance of 'td_tap_t' for the 'x' tap dance. +static td_tap_t xtap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return TD_SINGLE_TAP; + } else { + return TD_SINGLE_HOLD; + } + } else if (state->count == 2) { + if (state->interrupted || !state->pressed) { + return TD_DOUBLE_TAP; + } else { + return TD_DOUBLE_HOLD; + } + } else if (state->count == 3) { + if (state->interrupted || !state->pressed) { + return TD_TRIPLE_TAP; + } else { + return TD_TRIPLE_HOLD; + } + } + + return TD_UNKNOWN; +} + +void td_esc_lalt_lctl_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: tap_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; + case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; + default: break; + } +} + +void td_esc_lalt_lctl_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + case TD_DOUBLE_HOLD: unregister_code(KC_LCTL); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_esc_lctl_lalt_windows_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: tap_code16(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; + case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; + default: break; + } +} + +void td_esc_lctl_lalt_windows_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break; + default: break; + } + xtap_state.state = TD_NONE; +} + + // Tap Dance definitions +tap_dance_action_t tap_dance_actions[] = { + [TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lalt_lctl_spotlight_emoji_finished, td_esc_lalt_lctl_spotlight_emoji_reset), + [TD_ESC_LCTL_LALT_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lctl_lalt_windows_emoji_finished, td_esc_lctl_lalt_windows_emoji_reset) +}; +// For the x tap dance. Put it here so it can be used in any keymap +void x_finished(tap_dance_state_t *state, void *user_data); +void x_reset(tap_dance_state_t *state, void *user_data); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI), LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) + ), + [1] = LAYOUT_split_3x5_2( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_2( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_2( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), TO(5), TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [4] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI), KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT) + ), + [5] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, KC_SLSH, + KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT) + ), + [6] = LAYOUT_split_3x5_2( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [7] = LAYOUT_split_3x5_2( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(8), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [8] = LAYOUT_split_3x5_2( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), TO(5), TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk similarity index 100% rename from keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk rename to keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk diff --git a/keyboards/handwired/scottokeebs/scotto34/readme.md b/keyboards/handwired/scottokeebs/scotto34/readme.md new file mode 100644 index 00000000000..88e9185ec20 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto34/readme.md @@ -0,0 +1,29 @@ +# Scotto34 + +![Scotto34](https://i.imgur.com/BkpEBQjh.jpg) + +A low-profile 34-key split monoblock ortholinear keyboard that uses 18x17mm spaced Choc switches and an exposed controller in the middle. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: RP2040 +* Hardware Availability: [Amazon](https://amazon.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scotto34:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scotto34:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scotto34/rules.mk b/keyboards/handwired/scottokeebs/scotto34/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/handwired/scottokeebs/scotto36/info.json b/keyboards/handwired/scottokeebs/scotto36/info.json new file mode 100644 index 00000000000..fe8ecb6629f --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto36/info.json @@ -0,0 +1,76 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "Scotto36", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 4, 5, 6, 7, 8, 9, A3, A2, A1, A0 + "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "F7"], + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x534B" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + + // Row 2 + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + + // Row 3 + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + + // Row 4 + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3} + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scotto36/keymaps/default/config.h similarity index 100% rename from keyboards/handwired/jscotto/scotto40/keymaps/default/config.h rename to keyboards/handwired/scottokeebs/scotto36/keymaps/default/config.h diff --git a/keyboards/handwired/scottokeebs/scotto36/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto36/keymaps/default/keymap.c new file mode 100644 index 00000000000..590f59aa07d --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto36/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h similarity index 100% rename from keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h rename to keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h diff --git a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..293082af663 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c @@ -0,0 +1,281 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +#include +char wpm_str[10]; + +// Tap Dance declarations +enum { + TD_ESC_SPOTLIGHT_EMOJI, + TD_ESC_WINDOWS_EMOJI +}; + +void td_esc_spotlight_emoji (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 (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 +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_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [4] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) + ), + [5] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE,KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ), + [6] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ), + [7] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ) +}; + +// OLED +#ifdef OLED_ENABLE +// WPM responsiveness +#define IDLE_FRAMES 5 +#define IDLE_SPEED 20 // Speed at which animation goes into idle +#define TAP_FRAMES 2 +#define TAP_SPEED 40 // WPM to trigger Bongo +#define ANIM_FRAME_DURATION 200 // Frame MS +#define ANIM_SIZE 636 // Number of bytes in array, max 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +static void render_animation(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + }; + + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIM_SIZE); + } + + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + if (get_current_wpm() != 000) { + oled_on(); // Enables OLED on any alpha keypress + + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +// Draw to OLED +bool oled_task_user(void) { + // Render Bongo Cat + render_animation(); + + // WPM text + oled_set_cursor(0, 0); + sprintf(wpm_str, "%03d", get_current_wpm()); // %03d defines digits to display + oled_write(wpm_str, false); + + // Layer text + oled_set_cursor(0, 1); + switch (get_highest_layer(layer_state)) { + case _MAC_DEFAULT : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("MAIN"), false); + break; + case _MAC_CODE : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("CODE"), false); + break; + case _MAC_NUM : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("NUM"), false); + break; + case _MAC_FUNC : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("FUNC"), false); + break; + case _WIN_DEFAULT : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("MAIN"), false); + break; + case _WIN_CODE : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("CODE"), false); + break; + case _WIN_NUM : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("NUM"), false); + break; + case _WIN_FUNC : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("FUNC"), false); + break; + } + + // Caps lock text + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0, 3); + oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(""), false); + + return false; +} +#endif + diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk similarity index 100% rename from keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk rename to keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk diff --git a/keyboards/handwired/scottokeebs/scotto36/readme.md b/keyboards/handwired/scottokeebs/scotto36/readme.md new file mode 100644 index 00000000000..a8cbe3cf41c --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto36/readme.md @@ -0,0 +1,27 @@ +# Scotto36 + +![Scotto36](https://i.imgur.com/MCGv0ZHh.jpeg) + +A 36-key split monoblock ergonomic ortholinear keyboard with 15° of angle on each half. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scotto36:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scotto36:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scotto36/rules.mk b/keyboards/handwired/scottokeebs/scotto36/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto36/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scotto40/info.json b/keyboards/handwired/scottokeebs/scotto40/info.json new file mode 100644 index 00000000000..b10f677c4d3 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto40/info.json @@ -0,0 +1,183 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "Scotto40", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 2, 3, 4, 5, 6, 7, 8, 9, A3, A2 + "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"], + + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x534B" + }, + "community_layouts": ["ortho_4x10"], + "layouts": { + "LAYOUT_ortho_3x10_7": { + "layout": [ + // Row 1 + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + + // Row 2 + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + + // Row 3 + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + + // Row 4 + {"matrix": [3, 0], "x": 0, "y": 3}, + + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3, "w": 2}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + + {"matrix": [3, 9], "x": 9, "y": 3} + ] + }, + "LAYOUT_ortho_3x10_8": { + "layout": [ + // Row 1 + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + + // Row 2 + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + + // Row 3 + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + + // Row 4 + {"matrix": [3, 0], "x": 0, "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, 9], "x": 9, "y": 3} + ] + }, + "LAYOUT_ortho_4x10": { + "layout": [ + // Row 1 + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + + // Row 2 + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + + // Row 3 + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + + // Row 4 + {"matrix": [3, 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}, + {"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} + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scottostarter/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scotto40/keymaps/default/config.h similarity index 100% rename from keyboards/handwired/jscotto/scottostarter/keymaps/default/config.h rename to keyboards/handwired/scottokeebs/scotto40/keymaps/default/config.h diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto40/keymaps/default/keymap.c new file mode 100644 index 00000000000..63aa7608433 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto40/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4x10( + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_NO, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC, KC_NO, KC_NO + ), + [1] = LAYOUT_ortho_4x10( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_4x10( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_4x10( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c similarity index 100% rename from keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c rename to keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk new file mode 100644 index 00000000000..e5ddcae8d92 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scotto40/readme.md b/keyboards/handwired/scottokeebs/scotto40/readme.md new file mode 100644 index 00000000000..f81e6398474 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto40/readme.md @@ -0,0 +1,27 @@ +# Scotto40 + +![Scotto40](https://i.imgur.com/wtW5xOth.jpeg) + +An ortholinear keyboard that features either a 37, 38, or 40-key layout. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scotto40:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scotto40:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scotto40/rules.mk b/keyboards/handwired/scottokeebs/scotto40/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto40/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scotto9/info.json b/keyboards/handwired/scottokeebs/scotto9/info.json new file mode 100644 index 00000000000..a42d2063001 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto9/info.json @@ -0,0 +1,47 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "Scotto9", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "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"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x534B" + }, + "community_layouts": ["ortho_3x3"], + "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/scottokeebs/scotto9/keymaps/default/keymap.c similarity index 100% rename from keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c rename to keyboards/handwired/scottokeebs/scotto9/keymaps/default/keymap.c diff --git a/keyboards/handwired/scottokeebs/scotto9/readme.md b/keyboards/handwired/scottokeebs/scotto9/readme.md new file mode 100644 index 00000000000..ab876711385 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto9/readme.md @@ -0,0 +1,27 @@ +# Scotto9 + +![Scotto9](https://i.imgur.com/inbmNSEh.jpeg) + +A 9-key macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scotto9:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scotto9:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scotto9/rules.mk b/keyboards/handwired/scottokeebs/scotto9/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto9/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottoalp/info.json b/keyboards/handwired/scottokeebs/scottoalp/info.json new file mode 100644 index 00000000000..d6262e11e64 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoalp/info.json @@ -0,0 +1,76 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoAlp", + "maintainer": "joe-scotto", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 4, 5, 6, 7, 8, 9, A3, A2, A1, A0 + "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "F7"], + + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0007", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT_ortho_3x10_5": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c new file mode 100644 index 00000000000..88b4a4b0b43 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x10_5( + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LGUI, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) + ), + [1] = LAYOUT_ortho_3x10_5( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_3x10_5( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_3x10_5( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..dfe688267e3 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c @@ -0,0 +1,174 @@ +/* +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 + +// Tap dance declarations +enum { + TD_LCTL_ESC_SPOTLIGHT_EMOJI, + TD_LALT_ESC_WINDOWS_EMOJI +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_LALT_ESC_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Begin quad TD +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_HOLD, + TD_SINGLE_TAP, + TD_DOUBLE_TAP, + TD_TRIPLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Create an instance of 'td_tap_t' for the 'x' tap dance. +static td_tap_t xtap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return TD_SINGLE_TAP; + } else { + return TD_SINGLE_HOLD; + } + } else if (state->count == 2) { + return TD_DOUBLE_TAP; + } else if (state->count == 3) { + return TD_TRIPLE_TAP; + } + + return TD_UNKNOWN; +} + +void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; + case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; + default: break; + } +} + +void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; + case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; + default: break; + } +} + +void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + default: break; + } + xtap_state.state = TD_NONE; +} + + // Tap Dance definitions +tap_dance_action_t tap_dance_actions[] = { + [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), + [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), +}; +// For the x tap dance. Put it here so it can be used in any keymap +void x_finished(tap_dance_state_t *state, void *user_data); +void x_reset(tap_dance_state_t *state, void *user_data); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x10_5( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) + ), + [1] = LAYOUT_ortho_3x10_5( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_3x10_5( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_3x10_5( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [4] = LAYOUT_ortho_3x10_5( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) + ), + [5] = LAYOUT_ortho_3x10_5( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) + ), + [6] = LAYOUT_ortho_3x10_5( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) + ), + [7] = LAYOUT_ortho_3x10_5( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk new file mode 100644 index 00000000000..e5ddcae8d92 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottoalp/readme.md b/keyboards/handwired/scottokeebs/scottoalp/readme.md new file mode 100644 index 00000000000..07c7d889de7 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoalp/readme.md @@ -0,0 +1,27 @@ +# ScottoAlp + +![ScottoAlp](https://i.imgur.com/XKpYcMgh.jpeg) + +A 35-key ortholinear keyboard with a 3u spacebar and is compatible with both MX or Alps. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/jscotto/scottoalp:default + +Flashing example for this keyboard: + + make handwired/jscotto/scottoalp:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoalp/rules.mk b/keyboards/handwired/scottokeebs/scottoalp/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoalp/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scottocmd/config.h b/keyboards/handwired/scottokeebs/scottocmd/config.h similarity index 100% rename from keyboards/handwired/jscotto/scottocmd/config.h rename to keyboards/handwired/scottokeebs/scottocmd/config.h diff --git a/keyboards/handwired/scottokeebs/scottocmd/info.json b/keyboards/handwired/scottokeebs/scottocmd/info.json new file mode 100644 index 00000000000..d945b70ce9c --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/info.json @@ -0,0 +1,89 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoCMD", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true + }, + "build": { + "lto": 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"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0005", + "vid": "0x534B" + }, + "bootmagic": { + "matrix": [1, 0] + }, + "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/scottokeebs/scottocmd/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c new file mode 100644 index 00000000000..dbb5cbc4a97 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* +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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4_3x10_4( + KC_LCTL, KC_2, KC_3, 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_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_4_3x10_4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_4_3x10_4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..c196c3b1e90 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c @@ -0,0 +1,511 @@ +/* +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 (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 (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 +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; + +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(void) { + // 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/scottokeebs/scottocmd/keymaps/scotto/rules.mk similarity index 100% rename from keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk rename to keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk diff --git a/keyboards/handwired/scottokeebs/scottocmd/readme.md b/keyboards/handwired/scottokeebs/scottocmd/readme.md new file mode 100644 index 00000000000..f5c5f3306c3 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/readme.md @@ -0,0 +1,27 @@ +# ScottoCMD + +![ScottoCMD](https://i.imgur.com/rxiMZNnh.jpg) + +A 40-key ortholinear keyboard with a 6.25u spacebar, 4 dedicated function keys and 0.96" 128x64 OLED display. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4, 0.96" 128x64 I2C OLED +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottocmd:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottocmd: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 (1,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/handwired/scottokeebs/scottocmd/rules.mk b/keyboards/handwired/scottokeebs/scottocmd/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c b/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c new file mode 100644 index 00000000000..9027b500288 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c @@ -0,0 +1,39 @@ +/* +Copyright 2023 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 "quantum.h" + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_90; // flips the display 180 degrees if offhand +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + // Default OLED code + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0,7); + oled_write_P(led_state.caps_lock ? PSTR(" Caps Lock "): PSTR(" ScottoCMD "), false); + + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoergo/info.json b/keyboards/handwired/scottokeebs/scottoergo/info.json new file mode 100644 index 00000000000..cc4fb126b6e --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoergo/info.json @@ -0,0 +1,76 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoErgo", + "maintainer": "joe-scotto", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": [ "GP0", "GP1", "GP2", "GP3", "GP4", "GP22", "GP21", "GP20", "GP19", "GP18"], + "rows": ["GP12", "GP13", "GP14", "GP15"] + }, + "processor": "RP2040", + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0016", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c new file mode 100644 index 00000000000..451f48a9687 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2023 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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LGUI, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..f4d0a0c7bba --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c @@ -0,0 +1,174 @@ +/* +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 + +// Tap dance declarations +enum { + TD_LCTL_ESC_SPOTLIGHT_EMOJI, + TD_LALT_ESC_WINDOWS_EMOJI +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_LALT_ESC_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Begin quad TD +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_HOLD, + TD_SINGLE_TAP, + TD_DOUBLE_TAP, + TD_TRIPLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Create an instance of 'td_tap_t' for the 'x' tap dance. +static td_tap_t xtap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return TD_SINGLE_TAP; + } else { + return TD_SINGLE_HOLD; + } + } else if (state->count == 2) { + return TD_DOUBLE_TAP; + } else if (state->count == 3) { + return TD_TRIPLE_TAP; + } + + return TD_UNKNOWN; +} + +void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; + case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; + default: break; + } +} + +void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; + case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; + default: break; + } +} + +void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + default: break; + } + xtap_state.state = TD_NONE; +} + + // Tap Dance definitions +tap_dance_action_t tap_dance_actions[] = { + [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), + [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), +}; +// For the x tap dance. Put it here so it can be used in any keymap +void x_finished(tap_dance_state_t *state, void *user_data); +void x_reset(tap_dance_state_t *state, void *user_data); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [4] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [5] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [6] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [7] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk new file mode 100644 index 00000000000..e5ddcae8d92 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottoergo/readme.md b/keyboards/handwired/scottokeebs/scottoergo/readme.md new file mode 100644 index 00000000000..8bbf388304a --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoergo/readme.md @@ -0,0 +1,27 @@ +# ScottoErgo + +![ScottoErgo](https://i.imgur.com/FtdSJRBh.jpg) + +A 36-key column staggered ortholinear ergonomic keyboard with an exposed controller, aviator connector for USB, 10° of tilt, and 20° of angle. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: RP2040 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottoergo:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottoergo:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoergo/rules.mk b/keyboards/handwired/scottokeebs/scottoergo/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoergo/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottofrog/info.json b/keyboards/handwired/scottokeebs/scottofrog/info.json new file mode 100644 index 00000000000..202626b70ff --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/info.json @@ -0,0 +1,54 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoFrog", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0017", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT_ortho_3x5_5": { + "layout": [ + { "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": [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": [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": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c new file mode 100644 index 00000000000..9a220170e49 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* +Copyright 2023 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_3x5_5( + KC_Q, KC_W, KC_E, KC_W, KC_R, + KC_A, KC_S, KC_D, KC_F, KC_G, + KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_NO, KC_NO, KC_NO, KC_LCTL, KC_SPC + ) +}; diff --git a/keyboards/handwired/scottokeebs/scottofrog/readme.md b/keyboards/handwired/scottokeebs/scottofrog/readme.md new file mode 100644 index 00000000000..59b7f2e8280 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/readme.md @@ -0,0 +1,27 @@ +# ScottoFrog + +![ScottoFrog](https://i.imgur.com/x1VxGggh.jpg) + +A 17-key macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottofrog:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottofrog: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/handwired/scottokeebs/scottofrog/rules.mk b/keyboards/handwired/scottokeebs/scottofrog/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottogame/config.h b/keyboards/handwired/scottokeebs/scottogame/config.h new file mode 100644 index 00000000000..a168f0ef218 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/config.h @@ -0,0 +1,21 @@ +/* +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 + +// OLED +#define OLED_DISPLAY_128X64 \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottogame/info.json b/keyboards/handwired/scottokeebs/scottogame/info.json new file mode 100644 index 00000000000..5c300b866e4 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/info.json @@ -0,0 +1,89 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoGame", + "maintainer": "joe-scotto", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + // RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1 + "cols": ["D2", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6"], + + // A0, 15, 14, 16, 10 + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0006", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT_ortho_6_3x10_6": { + "layout": [ + // Row 1 + { "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, 6], "x": 6, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 3 + { "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 }, + { "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 }, + + // Row 5 + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "x": 2, "y": 4 }, + { "matrix": [4, 3], "x": 3, "y": 4 }, + { "matrix": [4, 6], "x": 6, "y": 4 }, + { "matrix": [4, 7], "x": 7, "y": 4 }, + { "matrix": [4, 8], "x": 8, "y": 4 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c new file mode 100644 index 00000000000..786587e543b --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* +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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [1] = LAYOUT_ortho_6_3x10_6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_6_3x10_6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_6_3x10_6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..09fdf5dd9ab --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c @@ -0,0 +1,289 @@ +/* +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 + +// Tap Dance declarations +enum { + TD_ESC_SPOTLIGHT_EMOJI, + TD_ESC_WINDOWS_EMOJI +}; + +void td_esc_spotlight_emoji (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 (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 +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_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [1] = LAYOUT_ortho_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [2] = LAYOUT_ortho_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [3] = LAYOUT_ortho_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [4] = LAYOUT_ortho_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI), + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) + ), + [5] = LAYOUT_ortho_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI), + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ), + [6] = LAYOUT_ortho_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI), + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ), + [7] = LAYOUT_ortho_6_3x10_6( + KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI), + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ) +}; + +#ifdef OLED_ENABLE +// WPM responsiveness +#define IDLE_FRAMES 5 +#define IDLE_SPEED 20 // Speed at which animation goes into idle +#define TAP_FRAMES 2 +#define TAP_SPEED 40 // WPM to trigger Bongo +#define ANIM_FRAME_DURATION 200 // Frame MS +#define ANIM_SIZE 636 // Number of bytes in array, max 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +static void render_animation(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + }; + + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIM_SIZE); + } + + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + if (get_current_wpm() != 000) { + oled_on(); // Enables OLED on any alpha keypress + + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +// Draw to OLED +bool oled_task_user() { + oled_set_cursor(0, 0); + oled_write(" ScottoGame ", false); + + // Render Bongo Cat + oled_set_cursor(86, 0); + render_animation(); + + // WPM text + oled_set_cursor(0,5); + oled_write(get_u8_str(get_current_wpm(), '0'), false); + + // Layer text + oled_set_cursor(0, 6); + switch (get_highest_layer(layer_state)) { + case _MAC_DEFAULT : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 7); + oled_write_P(PSTR("MAIN"), false); + break; + case _MAC_CODE : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 7); + oled_write_P(PSTR("CODE"), false); + break; + case _MAC_NUM : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 7); + oled_write_P(PSTR("NUM"), false); + break; + case _MAC_FUNC : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 7); + oled_write_P(PSTR("FUNC"), false); + break; + case _WIN_DEFAULT : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 7); + oled_write_P(PSTR("MAIN"), false); + break; + case _WIN_CODE : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 7); + oled_write_P(PSTR("CODE"), false); + break; + case _WIN_NUM : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 7); + oled_write_P(PSTR("NUM"), false); + break; + case _WIN_FUNC : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 7); + oled_write_P(PSTR("FUNC"), false); + break; + } + + // Caps lock text + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0, 4); + oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); + + return false; +} +#endif diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk new file mode 100644 index 00000000000..bcee933e75e --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk @@ -0,0 +1,2 @@ +WPM_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottogame/readme.md b/keyboards/handwired/scottokeebs/scottogame/readme.md new file mode 100644 index 00000000000..c622df1b4ef --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/readme.md @@ -0,0 +1,27 @@ +# ScottoGame + +![ScottoGame](https://i.imgur.com/uXUWY7wh.jpg) + +A 42-key ortholinear keyboard with a dedicated action button, split spacebar, 5 function keys, and a 0.96" 128x64 OLED display. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4, 0.96" 128x64 I2C OLED +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottogame:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottogame:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottogame/rules.mk b/keyboards/handwired/scottokeebs/scottogame/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottogame/scottogame.c b/keyboards/handwired/scottokeebs/scottogame/scottogame.c new file mode 100644 index 00000000000..bea5a57a3b7 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/scottogame.c @@ -0,0 +1,34 @@ +/* +Copyright 2023 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 "quantum.h" + +#ifdef OLED_ENABLE + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + // Default OLED code + oled_set_cursor(0, 0); + oled_write(" ScottoGame ", false); + + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoinvader/info.json b/keyboards/handwired/scottokeebs/scottoinvader/info.json new file mode 100644 index 00000000000..89a4fca4b48 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoinvader/info.json @@ -0,0 +1,78 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoInvader", + "maintainer": "joe-scotto", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 3, 4, 5, 6, 7, 8, 9, A3, A2, A1 + "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6"] + + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0010", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c new file mode 100644 index 00000000000..2633845d509 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LGUI, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..f4d0a0c7bba --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c @@ -0,0 +1,174 @@ +/* +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 + +// Tap dance declarations +enum { + TD_LCTL_ESC_SPOTLIGHT_EMOJI, + TD_LALT_ESC_WINDOWS_EMOJI +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_LALT_ESC_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Begin quad TD +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_HOLD, + TD_SINGLE_TAP, + TD_DOUBLE_TAP, + TD_TRIPLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Create an instance of 'td_tap_t' for the 'x' tap dance. +static td_tap_t xtap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return TD_SINGLE_TAP; + } else { + return TD_SINGLE_HOLD; + } + } else if (state->count == 2) { + return TD_DOUBLE_TAP; + } else if (state->count == 3) { + return TD_TRIPLE_TAP; + } + + return TD_UNKNOWN; +} + +void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; + case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; + default: break; + } +} + +void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; + case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; + default: break; + } +} + +void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + default: break; + } + xtap_state.state = TD_NONE; +} + + // Tap Dance definitions +tap_dance_action_t tap_dance_actions[] = { + [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), + [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), +}; +// For the x tap dance. Put it here so it can be used in any keymap +void x_finished(tap_dance_state_t *state, void *user_data); +void x_reset(tap_dance_state_t *state, void *user_data); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [4] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [5] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [6] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [7] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk new file mode 100644 index 00000000000..e5ddcae8d92 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottoinvader/readme.md b/keyboards/handwired/scottokeebs/scottoinvader/readme.md new file mode 100644 index 00000000000..c04920498a8 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoinvader/readme.md @@ -0,0 +1,27 @@ +# ScottoInvader + +![ScottoInvader](https://i.imgur.com/rXssnx7h.jpeg) + +A 36-key column-staggered ortholinear keyboard. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottoinvader:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottoinvader:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoinvader/rules.mk b/keyboards/handwired/scottokeebs/scottoinvader/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoinvader/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottonum/info.json b/keyboards/handwired/scottokeebs/scottonum/info.json new file mode 100644 index 00000000000..2907b47af86 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottonum/info.json @@ -0,0 +1,56 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoNum", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + "direct": [ + ["D3", "D2", "D1", "D0"], + ["D4", "C6", "D7", "E6"], + ["B4", "B5", "F4"], + ["F5", "F6", "F7", "B1"], + ["B3", "B2"] + ] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0014", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT_numpad_4x5": { + "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": [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 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c new file mode 100644 index 00000000000..a4b50f7769d --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +/* +Copyright 2023 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_numpad_4x5( + KC_CIRCUMFLEX, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ) +}; diff --git a/keyboards/handwired/scottokeebs/scottonum/readme.md b/keyboards/handwired/scottokeebs/scottonum/readme.md new file mode 100644 index 00000000000..66cbff80608 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottonum/readme.md @@ -0,0 +1,27 @@ +# ScottoNum + +![ScottoNum](https://i.imgur.com/VMiA19uh.jpg) + +A 17-key macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottonum:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottonum: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/handwired/scottokeebs/scottonum/rules.mk b/keyboards/handwired/scottokeebs/scottonum/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottonum/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottosplit/info.json b/keyboards/handwired/scottokeebs/scottosplit/info.json new file mode 100644 index 00000000000..792084b82cc --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/info.json @@ -0,0 +1,78 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoSplit", + "maintainer": "joe-scotto", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 3, 4, 5, 6, 7, 8, 9, A3, A2, A1 + "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6"] + + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0012", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h new file mode 100644 index 00000000000..de6c83da9a4 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c new file mode 100644 index 00000000000..2633845d509 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LGUI, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..f4d0a0c7bba --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c @@ -0,0 +1,174 @@ +/* +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 + +// Tap dance declarations +enum { + TD_LCTL_ESC_SPOTLIGHT_EMOJI, + TD_LALT_ESC_WINDOWS_EMOJI +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_LALT_ESC_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Begin quad TD +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_HOLD, + TD_SINGLE_TAP, + TD_DOUBLE_TAP, + TD_TRIPLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Create an instance of 'td_tap_t' for the 'x' tap dance. +static td_tap_t xtap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return TD_SINGLE_TAP; + } else { + return TD_SINGLE_HOLD; + } + } else if (state->count == 2) { + return TD_DOUBLE_TAP; + } else if (state->count == 3) { + return TD_TRIPLE_TAP; + } + + return TD_UNKNOWN; +} + +void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; + case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; + default: break; + } +} + +void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; + case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; + default: break; + } +} + +void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + default: break; + } + xtap_state.state = TD_NONE; +} + + // Tap Dance definitions +tap_dance_action_t tap_dance_actions[] = { + [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), + [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), +}; +// For the x tap dance. Put it here so it can be used in any keymap +void x_finished(tap_dance_state_t *state, void *user_data); +void x_reset(tap_dance_state_t *state, void *user_data); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) + ), + [4] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [5] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [6] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ), + [7] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk new file mode 100644 index 00000000000..e5ddcae8d92 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottosplit/readme.md b/keyboards/handwired/scottokeebs/scottosplit/readme.md new file mode 100644 index 00000000000..94e73afd130 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/readme.md @@ -0,0 +1,27 @@ +# ScottoSplit + +![ScottoSplit](https://i.imgur.com/u6rSzyHh.jpg) + +A 36-key split column-staggered ortholinear keyboard that uses a single MCU and VGA cable to connect the halves. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/jscotto/scottosplit:default + +Flashing example for this keyboard: + + make handwired/jscotto/scottosplit:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottosplit/rules.mk b/keyboards/handwired/scottokeebs/scottosplit/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottostarter/info.json b/keyboards/handwired/scottokeebs/scottostarter/info.json new file mode 100644 index 00000000000..ade3db28a0e --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottostarter/info.json @@ -0,0 +1,94 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoStarter", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1, TX0 + "cols": ["D2", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "D3"], + // A0, 15, 14, 16, 10 + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0008", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_4x11_8": { + "layout": [ + // Row 1 + {"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}, + + // 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, 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}, + {"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, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 7], "x": 7, "y": 4}, + {"matrix": [4, 8], "x": 8, "y": 4}, + {"matrix": [4, 9], "x": 9, "y": 4}, + {"matrix": [4, 10], "x": 10, "y": 4} + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottostarter/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottostarter/keymaps/default/config.h new file mode 100644 index 00000000000..1a6512052c1 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottostarter/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scottostarter/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottostarter/keymaps/default/keymap.c similarity index 100% rename from keyboards/handwired/jscotto/scottostarter/keymaps/default/keymap.c rename to keyboards/handwired/scottokeebs/scottostarter/keymaps/default/keymap.c diff --git a/keyboards/handwired/scottokeebs/scottostarter/readme.md b/keyboards/handwired/scottokeebs/scottostarter/readme.md new file mode 100644 index 00000000000..346db2f5fd6 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottostarter/readme.md @@ -0,0 +1,27 @@ +# ScottoStarter + +![ScottoStarter](https://i.imgur.com/bspbVPah.jpg) + +A 52-key ortholinear keyboard designed to help ease the transition into smaller layouts. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottostarter:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottostarter:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottostarter/rules.mk b/keyboards/handwired/scottokeebs/scottostarter/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottostarter/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/handwired/sejin_eat1010r2/rules.mk b/keyboards/handwired/sejin_eat1010r2/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/sejin_eat1010r2/rules.mk +++ b/keyboards/handwired/sejin_eat1010r2/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/handwired/selene/config.h b/keyboards/handwired/selene/config.h index 7ee210aa846..31c0cc59f75 100644 --- a/keyboards/handwired/selene/config.h +++ b/keyboards/handwired/selene/config.h @@ -16,7 +16,5 @@ #pragma once -#define RGBLED_NUM 50 - #define LOCKING_SUPPORT_ENABLE #define LOCKING_RESYNC_ENABLE diff --git a/keyboards/handwired/selene/info.json b/keyboards/handwired/selene/info.json index 24cb90487c4..b99e41bda58 100644 --- a/keyboards/handwired/selene/info.json +++ b/keyboards/handwired/selene/info.json @@ -8,6 +8,9 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 50 + }, "ws2812": { "pin": "A3" }, diff --git a/keyboards/handwired/slash/info.json b/keyboards/handwired/slash/info.json index 070cbb2c750..95abaeb9c71 100644 --- a/keyboards/handwired/slash/info.json +++ b/keyboards/handwired/slash/info.json @@ -8,6 +8,9 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "matrix_pins": { "cols": ["D2", "F0", "F1", "F4", "F5", "F6", "F7", "D3"], "rows": ["C7", "D6", "B7", "B6", "B5", "D7", "C6", "D0"] diff --git a/keyboards/handwired/slash/rules.mk b/keyboards/handwired/slash/rules.mk index c99c2847cea..ca7f6f843fb 100644 --- a/keyboards/handwired/slash/rules.mk +++ b/keyboards/handwired/slash/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/sono1/stm32f103/rules.mk b/keyboards/handwired/sono1/stm32f103/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/sono1/stm32f103/rules.mk +++ b/keyboards/handwired/sono1/stm32f103/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/handwired/split65/promicro/config.h b/keyboards/handwired/split65/promicro/config.h index b92456da981..f5c5ee3be29 100644 --- a/keyboards/handwired/split65/promicro/config.h +++ b/keyboards/handwired/split65/promicro/config.h @@ -15,8 +15,6 @@ */ #pragma once -#define MATRIX_IO_DELAY 5 - #define SELECT_SOFT_SERIAL_SPEED 1 // Feature diable options diff --git a/keyboards/handwired/split65/promicro/info.json b/keyboards/handwired/split65/promicro/info.json index e1540d99a2c..ea41cb3ac17 100644 --- a/keyboards/handwired/split65/promicro/info.json +++ b/keyboards/handwired/split65/promicro/info.json @@ -1,7 +1,8 @@ { "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"], - "rows": ["D4", "C6", "D7", "E6", "B4"] + "rows": ["D4", "C6", "D7", "E6", "B4"], + "io_delay": 5 }, "diode_direction": "COL2ROW", "split": { diff --git a/keyboards/handwired/split65/stm32/config.h b/keyboards/handwired/split65/stm32/config.h index 020e44f02ed..3d48891e7e7 100644 --- a/keyboards/handwired/split65/stm32/config.h +++ b/keyboards/handwired/split65/stm32/config.h @@ -21,8 +21,6 @@ #define AUDIO_PIN_ALT A4 #define AUDIO_PIN_ALT_AS_NEGATIVE -#define MATRIX_IO_DELAY 5 - #define SELECT_SOFT_SERIAL_SPEED 1 #define SERIAL_USART_DRIVER SD1 #define SERIAL_USART_TX_PAL_MODE 7 diff --git a/keyboards/handwired/split65/stm32/info.json b/keyboards/handwired/split65/stm32/info.json index b9956ed7abc..61aff0e7eab 100644 --- a/keyboards/handwired/split65/stm32/info.json +++ b/keyboards/handwired/split65/stm32/info.json @@ -1,7 +1,8 @@ { "matrix_pins": { "cols": ["A2", "A1", "A0", "B8", "B13", "B14", "B15", "B9"], - "rows": ["B5", "B4", "B3", "B2", "B1"] + "rows": ["B5", "B4", "B3", "B2", "B1"], + "io_delay": 5 }, "diode_direction": "COL2ROW", "split": { diff --git a/keyboards/handwired/splittest/bluepill/rules.mk b/keyboards/handwired/splittest/bluepill/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/handwired/splittest/bluepill/rules.mk +++ b/keyboards/handwired/splittest/bluepill/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/handwired/splittest/config.h b/keyboards/handwired/splittest/config.h deleted file mode 100644 index 49bc3cbddb4..00000000000 --- a/keyboards/handwired/splittest/config.h +++ /dev/null @@ -1,54 +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 - -/* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLED_SPLIT { 6, 6 } - -/* - * 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/handwired/splittest/info.json b/keyboards/handwired/splittest/info.json index efd82d20c47..73ffb66e9b4 100644 --- a/keyboards/handwired/splittest/info.json +++ b/keyboards/handwired/splittest/info.json @@ -8,6 +8,22 @@ "pid": "0x1111", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/steamvan/keymaps/jmdaly/keymap.c b/keyboards/handwired/steamvan/keymaps/jmdaly/keymap.c index 7b6a4c1e741..21ba0e5b3d5 100644 --- a/keyboards/handwired/steamvan/keymaps/jmdaly/keymap.c +++ b/keyboards/handwired/steamvan/keymaps/jmdaly/keymap.c @@ -62,19 +62,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______ ) }; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/handwired/steamvan/rev1/config.h b/keyboards/handwired/steamvan/rev1/config.h index ffd061fa17e..88323300f8a 100644 --- a/keyboards/handwired/steamvan/rev1/config.h +++ b/keyboards/handwired/steamvan/rev1/config.h @@ -25,18 +25,4 @@ along with this program. If not, see . #define WS2812_SPI SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - -#define RGBLED_NUM 16 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM - #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/handwired/steamvan/rev1/info.json b/keyboards/handwired/steamvan/rev1/info.json index b76753f19f4..54164b57388 100644 --- a/keyboards/handwired/steamvan/rev1/info.json +++ b/keyboards/handwired/steamvan/rev1/info.json @@ -17,6 +17,21 @@ "pin": "B8", "breathing": true }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A7", "driver": "spi" diff --git a/keyboards/handwired/swiftrax/bumblebee/config.h b/keyboards/handwired/swiftrax/bumblebee/config.h index 4fe6fb4428e..fa4c9291e74 100644 --- a/keyboards/handwired/swiftrax/bumblebee/config.h +++ b/keyboards/handwired/swiftrax/bumblebee/config.h @@ -17,9 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB Indicators */ -#define RGBLED_NUM 3 - /* Solenid Pin */ #define SOLENOID_PIN D2 diff --git a/keyboards/handwired/swiftrax/bumblebee/info.json b/keyboards/handwired/swiftrax/bumblebee/info.json index 9a46cb98495..e2cad64ad8b 100644 --- a/keyboards/handwired/swiftrax/bumblebee/info.json +++ b/keyboards/handwired/swiftrax/bumblebee/info.json @@ -8,6 +8,9 @@ "pid": "0xE881", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 3 + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/handwired/swiftrax/bumblebee/keymaps/default/keymap.c b/keyboards/handwired/swiftrax/bumblebee/keymaps/default/keymap.c index 7e7247c80fa..fef24f402fa 100644 --- a/keyboards/handwired/swiftrax/bumblebee/keymaps/default/keymap.c +++ b/keyboards/handwired/swiftrax/bumblebee/keymaps/default/keymap.c @@ -17,13 +17,13 @@ along with this program. If not, see . #include QMK_KEYBOARD_H #define SOLENOID_DEFAULT_BUZZ 1 -#define FB_ERM_LRA 0 -#define FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* Please refer to your datasheet for the optimal setting for your specific motor. */ -#define RATED_VOLTAGE 3 -#define V_PEAK 5 +#define DRV2605L_RATED_VOLTAGE 3 +#define DRV2605L_V_PEAK 5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( diff --git a/keyboards/handwired/swiftrax/bumblebee/keymaps/default/rules.mk b/keyboards/handwired/swiftrax/bumblebee/keymaps/default/rules.mk index 9c6098640a1..ef72559a0c1 100644 --- a/keyboards/handwired/swiftrax/bumblebee/keymaps/default/rules.mk +++ b/keyboards/handwired/swiftrax/bumblebee/keymaps/default/rules.mk @@ -1,2 +1 @@ AUDIO_ENABLE = yes -HAPTIC_ENABLE += SOLENOID \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/bumblebee/keymaps/via/keymap.c b/keyboards/handwired/swiftrax/bumblebee/keymaps/via/keymap.c index a48f9981005..12791a69dd6 100644 --- a/keyboards/handwired/swiftrax/bumblebee/keymaps/via/keymap.c +++ b/keyboards/handwired/swiftrax/bumblebee/keymaps/via/keymap.c @@ -17,13 +17,13 @@ along with this program. If not, see . #include QMK_KEYBOARD_H #define SOLENOID_DEFAULT_BUZZ 1 -#define FB_ERM_LRA 0 -#define FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* Please refer to your datasheet for the optimal setting for your specific motor. */ -#define RATED_VOLTAGE 3 -#define V_PEAK 5 +#define DRV2605L_RATED_VOLTAGE 3 +#define DRV2605L_V_PEAK 5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( diff --git a/keyboards/handwired/swiftrax/bumblebee/keymaps/via/rules.mk b/keyboards/handwired/swiftrax/bumblebee/keymaps/via/rules.mk index 8c797e43095..1e79dbce26a 100644 --- a/keyboards/handwired/swiftrax/bumblebee/keymaps/via/rules.mk +++ b/keyboards/handwired/swiftrax/bumblebee/keymaps/via/rules.mk @@ -1,5 +1,4 @@ VIA_ENABLE = yes -#HAPTIC_ENABLE += SOLENOID AUDIO_ENABLE = yes #either solenoid or audio not both can be enabled LTO_ENABLE = yes diff --git a/keyboards/handwired/swiftrax/glacier/config.h b/keyboards/handwired/swiftrax/glacier/config.h index 4bff062d6ce..7f9b0b12d49 100644 --- a/keyboards/handwired/swiftrax/glacier/config.h +++ b/keyboards/handwired/swiftrax/glacier/config.h @@ -19,15 +19,3 @@ along with this program. If not, see . /*EEPROM for via*/ #define DYNAMIC_KEYMAP_LAYER_COUNT 3 - -/* RGB */ -#define RGBLED_NUM 12 -#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_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/handwired/swiftrax/glacier/info.json b/keyboards/handwired/swiftrax/glacier/info.json index 3aed06628fa..ddfb4ce1ad1 100644 --- a/keyboards/handwired/swiftrax/glacier/info.json +++ b/keyboards/handwired/swiftrax/glacier/info.json @@ -8,6 +8,20 @@ "pid": "0xE890", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/handwired/swiftrax/koalafications/rules.mk b/keyboards/handwired/swiftrax/koalafications/rules.mk index 51909d1883c..efd14377bf4 100644 --- a/keyboards/handwired/swiftrax/koalafications/rules.mk +++ b/keyboards/handwired/swiftrax/koalafications/rules.mk @@ -11,5 +11,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes diff --git a/keyboards/handwired/swiftrax/the_galleon/rules.mk b/keyboards/handwired/swiftrax/the_galleon/rules.mk index 5587a8dbbc6..dec78ae4080 100644 --- a/keyboards/handwired/swiftrax/the_galleon/rules.mk +++ b/keyboards/handwired/swiftrax/the_galleon/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no # Rotary Encoder OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # I2C OLED diff --git a/keyboards/handwired/swiftrax/walter/config.h b/keyboards/handwired/swiftrax/walter/config.h deleted file mode 100644 index 5fdda201e0c..00000000000 --- a/keyboards/handwired/swiftrax/walter/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2021 Swiftrax - -This 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 RGBLED_NUM 24 -#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/handwired/swiftrax/walter/info.json b/keyboards/handwired/swiftrax/walter/info.json index a52a0470e70..804f88503bc 100644 --- a/keyboards/handwired/swiftrax/walter/info.json +++ b/keyboards/handwired/swiftrax/walter/info.json @@ -8,6 +8,21 @@ "pid": "0xE964", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/handwired/symmetry60/config.h b/keyboards/handwired/symmetry60/config.h index c92944a48fa..a85f398caec 100644 --- a/keyboards/handwired/symmetry60/config.h +++ b/keyboards/handwired/symmetry60/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/symmetry60/info.json b/keyboards/handwired/symmetry60/info.json index 54d58d8b7f2..3f8427f3c88 100644 --- a/keyboards/handwired/symmetry60/info.json +++ b/keyboards/handwired/symmetry60/info.json @@ -8,6 +8,23 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/handwired/t111/info.json b/keyboards/handwired/t111/info.json index f4ecf44eabc..f25b0790988 100644 --- a/keyboards/handwired/t111/info.json +++ b/keyboards/handwired/t111/info.json @@ -96,7 +96,7 @@ {"matrix": [2, 10], "x": 10.75, "y": 3.5}, {"matrix": [3, 10], "x": 11.75, "y": 3.5}, {"matrix": [4, 10], "x": 12.75, "y": 3.5}, - {"matrix": [5, 10], "x": 13.75, "y": 2.5, "w": 1.5, "h": 2}, + {"matrix": [5, 10], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, {"matrix": [6, 10], "x": 15.5, "y": 3.5}, {"matrix": [7, 10], "x": 16.5, "y": 3.5}, diff --git a/keyboards/handwired/t111/keymaps/oleg/keymap.c b/keyboards/handwired/t111/keymaps/oleg/keymap.c index dd0c0971970..b372de027bf 100644 --- a/keyboards/handwired/t111/keymaps/oleg/keymap.c +++ b/keyboards/handwired/t111/keymaps/oleg/keymap.c @@ -117,10 +117,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT( VRSN, KC_SLEP, _______, UC_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, X(UAT), X(UHSH), X(UDLR), X(USCT), X(UCFX), X(UAMP), X(UAST), _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, - _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, _______, _______, _______, KC_SYRQ, KC_SCRL, KC_PAUS, XP(ULSB, ULCB), XP(URSB, URCB), _______, _______, _______, _______, _______, _______, _______, - _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, _______, _______, _______, _______, _______, XP(USCO, UCLN), XP(UAPO, UQOT), _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_BTN4, _______, _______, _______, _______, XP(UCOM, ULTH), XP(UDOT, UGTH), XP(USLS, UQUE), KC_APP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, UM(UAT), UM(UHSH), UM(UDLR), UM(USCT), UM(UCFX), UM(UAMP), UM(UAST), _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, _______, _______, _______, KC_SYRQ, KC_SCRL, KC_PAUS, UP(ULSB, ULCB), UP(URSB, URCB), _______, _______, _______, _______, _______, _______, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, _______, _______, _______, _______, _______, UP(USCO, UCLN), UP(UAPO, UQOT), _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_BTN4, _______, _______, _______, _______, UP(UCOM, ULTH), UP(UDOT, UGTH), UP(USLS, UQUE), KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/handwired/t111/rules.mk b/keyboards/handwired/t111/rules.mk index 3939229475d..2542c545bff 100644 --- a/keyboards/handwired/t111/rules.mk +++ b/keyboards/handwired/t111/rules.mk @@ -1,5 +1,3 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Build Options # change yes to no to disable diff --git a/keyboards/handwired/tennie/config.h b/keyboards/handwired/tennie/config.h index c1acec70015..7c77f53a82d 100644 --- a/keyboards/handwired/tennie/config.h +++ b/keyboards/handwired/tennie/config.h @@ -18,21 +18,6 @@ along with this program. If not, see . #pragma once #define RGBW - #define RGBLED_NUM 1 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -// #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 -#define RGBLIGHT_EFFECT_TWINKLE /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/handwired/tennie/info.json b/keyboards/handwired/tennie/info.json index a48d64f730c..32198e1cf62 100644 --- a/keyboards/handwired/tennie/info.json +++ b/keyboards/handwired/tennie/info.json @@ -8,6 +8,23 @@ "pid": "0x1313", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/handwired/terminus_mini/config.h b/keyboards/handwired/terminus_mini/config.h index 50ee7eac613..6243804dc58 100644 --- a/keyboards/handwired/terminus_mini/config.h +++ b/keyboards/handwired/terminus_mini/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once -//define tapping-toggle count -#define TAPPING_TOGGLE 1 - -//define maximum duration of hold required to register a tap vs hold default is 200 -#define TAPPING_TERM 150 //reduce time required to register a held key - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/terminus_mini/info.json b/keyboards/handwired/terminus_mini/info.json index 6948b13edc7..5593be8bb7a 100644 --- a/keyboards/handwired/terminus_mini/info.json +++ b/keyboards/handwired/terminus_mini/info.json @@ -8,6 +8,10 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "tapping": { + "term": 150, + "toggle": 1 + }, "matrix_pins": { "cols": ["B0", "D0", "D5", "B6", "D4", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], "rows": ["B5", "B4", "D7", "D6"] diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/info.json b/keyboards/handwired/tractyl_manuform/4x6_right/info.json index 0a3a77c91df..9e172c8089a 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/info.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/info.json @@ -7,7 +7,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C0", "C1", "C2", "C3", "C4", "C5"], diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h index a0355469e91..af4b3c0ac0e 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #pragma once -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 20 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT \ - { 10, 10 } - #define AUDIO_PIN C6 #define EE_HANDS diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/info.json index e0d074c2b6d..92e0baace1f 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/info.json @@ -17,7 +17,9 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 80 + "led_count": 20, + "max_brightness": 80, + "split_count": [10, 10] }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h index 2d05b71c92e..3a7f97f8d2f 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h @@ -29,11 +29,6 @@ along with this program. If not, see . // #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. -#define RGBLED_NUM 20 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT \ - { 10, 10 } - #define DEBUG_LED_PIN C13 /* Audio config */ diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json index 0e0e020ddfb..62fa261ac72 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json @@ -5,6 +5,10 @@ "rows": ["B10", "B11", "B12", "A14", "A13", "A15"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 20, + "split_count": [10, 10] + }, "ws2812": { "pin": "A6", "driver": "pwm" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h index 73ea40fb764..2ad18267ad5 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h @@ -31,12 +31,6 @@ along with this program. If not, see . #define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_PWM_TARGET_PERIOD 800000 - -#define RGBLED_NUM 57 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT \ - { 26, 31 } - #define DEBUG_LED_PIN C13 /* Audio config */ diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json index 671e3746c66..3f0c316928b 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json @@ -5,6 +5,13 @@ "rows": ["B12", "B13", "B14", "B15", "A8", "A10"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 57, + "split_count": [26, 31] + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, "ws2812": { "pin": "A1", "driver": "pwm" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk index cd07b8d49f6..b466a6234ad 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk @@ -5,5 +5,3 @@ MOUSE_SHARED_EP = yes EEPROM_DRIVER = spi SERIAL_DRIVER = usart AUDIO_DRIVER = pwm_hardware - -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h index a449a126d6a..5cb2a76de23 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h @@ -31,6 +31,6 @@ #define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 5 -#define FB_ERM_LRA 0 -#define DRV_GREETING alert_750ms -#define DRV_MODE_DEFAULT buzz +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_BUZZ_1_100 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 9f5341e973d..1cf7a3fccfa 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk +++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk @@ -35,7 +35,7 @@ ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411) LTO_SUPPORTED = no OVERLOAD_FEATURES = yes HAPTIC_ENABLE = yes - HAPTIC_DRIVER = DRV2605L + HAPTIC_DRIVER = drv2605l endif ifeq ($(strip $(OVERLOAD_FEATURES)), yes) diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h index ce8e65e9248..331a5ec7311 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #pragma once -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 20 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT \ - { 10, 10 } -#define RGBLIGHT_LIMIT_VAL 80 - #define DEBUG_LED_PIN D6 #define AUDIO_PIN C6 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/info.json index c65b2266015..a131ac085bd 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/info.json @@ -17,7 +17,9 @@ "pin": "E7" }, "rgblight": { - "max_brightness": 80 + "led_count": 20, + "max_brightness": 80, + "split_count": [10, 10] }, "processor": "at90usb1286", "bootloader": "halfkay" diff --git a/keyboards/handwired/traveller/config.h b/keyboards/handwired/traveller/config.h deleted file mode 100644 index f015683e68c..00000000000 --- a/keyboards/handwired/traveller/config.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -# define RGBLED_NUM 1 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - -/* - * 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/handwired/traveller/info.json b/keyboards/handwired/traveller/info.json index 91fe9e1cf44..ea1b3e35305 100644 --- a/keyboards/handwired/traveller/info.json +++ b/keyboards/handwired/traveller/info.json @@ -8,6 +8,10 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "led_count": 1 + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/handwired/tritium_numpad/config.h b/keyboards/handwired/tritium_numpad/config.h index 838776b5eb4..b9449c4714b 100644 --- a/keyboards/handwired/tritium_numpad/config.h +++ b/keyboards/handwired/tritium_numpad/config.h @@ -22,10 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Underlight configuration - */ -#define RGBLED_NUM 4 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/tritium_numpad/info.json b/keyboards/handwired/tritium_numpad/info.json index 8f56d909474..2e2fc6c81f6 100644 --- a/keyboards/handwired/tritium_numpad/info.json +++ b/keyboards/handwired/tritium_numpad/info.json @@ -21,6 +21,9 @@ "num_lock": "D5", "on_state": 0 }, + "rgblight": { + "led_count": 4 + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/handwired/tsubasa/config.h b/keyboards/handwired/tsubasa/config.h index dee2156fb54..52b64de9f63 100644 --- a/keyboards/handwired/tsubasa/config.h +++ b/keyboards/handwired/tsubasa/config.h @@ -18,15 +18,5 @@ along with this program. If not, see . #pragma once #define MASTER_RIGHT -# define RGBLED_NUM 12 -# define RGBLIGHT_SPLIT -# define RGBLED_SPLIT {6, 6} -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 1 -# define RGBLIGHT_VAL_STEP 1 -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define SPLIT_WPM_ENABLE #define SPLIT_LAYER_STATE_ENABLE diff --git a/keyboards/handwired/tsubasa/info.json b/keyboards/handwired/tsubasa/info.json index 351731a6139..245afe30cc4 100644 --- a/keyboards/handwired/tsubasa/info.json +++ b/keyboards/handwired/tsubasa/info.json @@ -8,6 +8,17 @@ "pid": "0x0000", "device_version": "1.0.0" }, + "rgblight": { + "saturation_steps": 1, + "brightness_steps": 1, + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, "ws2812": { "pin": "D2" }, @@ -59,21 +70,21 @@ {"matrix": [6, 3], "x": 12, "y": 1}, {"matrix": [6, 4], "x": 13, "y": 1}, {"matrix": [6, 5], "x": 14, "y": 1}, + {"matrix": [8, 5], "x": 15, "y": 1}, - {"matrix": [8, 5], "x": 0.25, "y": 2}, - {"matrix": [2, 0], "x": 1.25, "y": 2}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 0], "x": 0.25, "y": 2}, + {"matrix": [2, 1], "x": 1.25, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 9.25, "y": 2}, - {"matrix": [7, 0], "x": 10.25, "y": 2}, - {"matrix": [7, 1], "x": 11.25, "y": 2}, - {"matrix": [7, 2], "x": 12.25, "y": 2}, - {"matrix": [7, 3], "x": 13.25, "y": 2}, - {"matrix": [7, 4], "x": 14.25, "y": 2}, - {"matrix": [7, 5], "x": 15, "y": 1}, + {"matrix": [7, 0], "x": 9.25, "y": 2}, + {"matrix": [7, 1], "x": 10.25, "y": 2}, + {"matrix": [7, 2], "x": 11.25, "y": 2}, + {"matrix": [7, 3], "x": 12.25, "y": 2}, + {"matrix": [7, 4], "x": 13.25, "y": 2}, + {"matrix": [7, 5], "x": 14.25, "y": 2}, {"matrix": [3, 0], "x": 0.75, "y": 3}, {"matrix": [3, 1], "x": 1.75, "y": 3}, diff --git a/keyboards/handwired/tsubasa/rules.mk b/keyboards/handwired/tsubasa/rules.mk index cddbc1e33fa..5838d93ad55 100644 --- a/keyboards/handwired/tsubasa/rules.mk +++ b/keyboards/handwired/tsubasa/rules.mk @@ -15,5 +15,4 @@ LTO_ENABLE = yes ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes diff --git a/keyboards/handwired/twadlee/tp69/rules.mk b/keyboards/handwired/twadlee/tp69/rules.mk index b1b6b8e616d..b73afc0e44a 100644 --- a/keyboards/handwired/twadlee/tp69/rules.mk +++ b/keyboards/handwired/twadlee/tp69/rules.mk @@ -14,5 +14,3 @@ PS2_MOUSE_ENABLE = no USE_CHIBIOS_CONTRIB = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/twig/twig50/config.h b/keyboards/handwired/twig/twig50/config.h index d3d188ef425..e4347a75b52 100644 --- a/keyboards/handwired/twig/twig50/config.h +++ b/keyboards/handwired/twig/twig50/config.h @@ -3,8 +3,6 @@ #pragma once -#define TAPPING_TERM 150 - #ifdef AUDIO_ENABLE #define AUDIO_PIN A5 #define AUDIO_PIN_ALT A4 diff --git a/keyboards/handwired/twig/twig50/info.json b/keyboards/handwired/twig/twig50/info.json index c32734cecb4..24eb51d03c1 100644 --- a/keyboards/handwired/twig/twig50/info.json +++ b/keyboards/handwired/twig/twig50/info.json @@ -9,6 +9,9 @@ "device_version": "0.2.1", "force_nkro": true }, + "tapping": { + "term": 150 + }, "matrix_pins": { "cols": ["A2", "A1", "A0", "B8", "B13", "B14", "B15", "B9", "B10", "B11", "B3", "B2", "B1", "B0"], "rows": ["B7", "B6", "B5", "B4"] diff --git a/keyboards/handwired/unk/rev1/config.h b/keyboards/handwired/unk/rev1/config.h index de1208a7eca..2a7f301a6a9 100644 --- a/keyboards/handwired/unk/rev1/config.h +++ b/keyboards/handwired/unk/rev1/config.h @@ -25,8 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 12 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/unk/rev1/info.json b/keyboards/handwired/unk/rev1/info.json index 162faca32cb..171ae7bb027 100644 --- a/keyboards/handwired/unk/rev1/info.json +++ b/keyboards/handwired/unk/rev1/info.json @@ -8,6 +8,9 @@ "pid": "0x3060", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/uthol/rev2/config.h b/keyboards/handwired/uthol/rev2/config.h index bf9b590421f..f4c4fda7cf6 100644 --- a/keyboards/handwired/uthol/rev2/config.h +++ b/keyboards/handwired/uthol/rev2/config.h @@ -18,5 +18,4 @@ #pragma once //RGB Stuff -#define RGBLED_NUM 39 #define RGBLIGHT_DEFAULT_HUE 201 diff --git a/keyboards/handwired/uthol/rev2/info.json b/keyboards/handwired/uthol/rev2/info.json index 7c46269579a..89515a8fefb 100644 --- a/keyboards/handwired/uthol/rev2/info.json +++ b/keyboards/handwired/uthol/rev2/info.json @@ -3,6 +3,9 @@ "usb": { "device_version": "0.0.2" }, + "rgblight": { + "led_count": 39 + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/handwired/uthol/rev2/rules.mk b/keyboards/handwired/uthol/rev2/rules.mk index 445e503d0bd..c6e22b8dd29 100644 --- a/keyboards/handwired/uthol/rev2/rules.mk +++ b/keyboards/handwired/uthol/rev2/rules.mk @@ -6,4 +6,3 @@ EXTRAKEY_ENABLE = yes NKRO_ENABLE = yes LTO_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = WS2812 diff --git a/keyboards/handwired/uthol/rev3/config.h b/keyboards/handwired/uthol/rev3/config.h index dd7ef6a5a91..a3a2eb1ca09 100644 --- a/keyboards/handwired/uthol/rev3/config.h +++ b/keyboards/handwired/uthol/rev3/config.h @@ -31,19 +31,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAPPING_TERM 500 #define PERMISSIVE_HOLD -// RGB Stuff -#define RGBLED_NUM 39 -#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_HUE 201 diff --git a/keyboards/handwired/uthol/rev3/info.json b/keyboards/handwired/uthol/rev3/info.json index 5ba12dc8464..79818d46704 100644 --- a/keyboards/handwired/uthol/rev3/info.json +++ b/keyboards/handwired/uthol/rev3/info.json @@ -3,6 +3,24 @@ "usb": { "device_version": "0.0.3" }, + "rgblight": { + "led_count": 39, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "tapping": { + "term": 500 + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/handwired/uthol/rev3/rules.mk b/keyboards/handwired/uthol/rev3/rules.mk index 2eaa7224979..1577cf8a775 100644 --- a/keyboards/handwired/uthol/rev3/rules.mk +++ b/keyboards/handwired/uthol/rev3/rules.mk @@ -5,9 +5,7 @@ BOOTMAGIC_ENABLE = yes NKRO_ENABLE = yes KEYBOARD_SHARED_EP = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes EXTRAKEY_ENABLE = yes ENCODER_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = WS2812 diff --git a/keyboards/handwired/wulkan/keymaps/default/keymap.c b/keyboards/handwired/wulkan/keymaps/default/keymap.c index b73592760e2..3a333198a44 100644 --- a/keyboards/handwired/wulkan/keymaps/default/keymap.c +++ b/keyboards/handwired/wulkan/keymaps/default/keymap.c @@ -95,8 +95,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12( - _______, QK_BOOT, _______, _______, KC_WH_U, _______, _______, KC_MS_U, _______, _______, XP(SE_ARNG_LOW, SE_ARNG_HIGH), KC_DEL, - _______, _______, _______, _______, KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, XP(SE_ODIA_LOW, SE_ODIA_HIGH), XP(SE_ADIA_LOW, SE_ADIA_HIGH), _______, + _______, QK_BOOT, _______, _______, KC_WH_U, _______, _______, KC_MS_U, _______, _______, UP(SE_ARNG_LOW, SE_ARNG_HIGH), KC_DEL, + _______, _______, _______, _______, KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, UP(SE_ODIA_LOW, SE_ODIA_HIGH), UP(SE_ADIA_LOW, SE_ADIA_HIGH), _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, KC_BTN1, _______, KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/xealous/rev1/info.json b/keyboards/handwired/xealous/rev1/info.json index e2334043472..b8b45e5ee14 100644 --- a/keyboards/handwired/xealous/rev1/info.json +++ b/keyboards/handwired/xealous/rev1/info.json @@ -9,6 +9,9 @@ "device_version": "0.0.1", "force_nkro": true }, + "build": { + "debounce_type": "sym_eager_pk" + }, "matrix_pins": { "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], "rows": ["B5", "B4", "E6", "D7", "D4"] diff --git a/keyboards/handwired/xealous/rules.mk b/keyboards/handwired/xealous/rules.mk index a9391e9f567..aff4db8cfd7 100644 --- a/keyboards/handwired/xealous/rules.mk +++ b/keyboards/handwired/xealous/rules.mk @@ -13,6 +13,5 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SPLIT_KEYBOARD = yes # Use shared split_common code SRC += matrix.c -DEBOUNCE_TYPE = sym_eager_pk DEFAULT_FOLDER = handwired/xealous/rev1 diff --git a/keyboards/handwired/z150/rules.mk b/keyboards/handwired/z150/rules.mk index 8e7bef8b5c8..421d72570ef 100644 --- a/keyboards/handwired/z150/rules.mk +++ b/keyboards/handwired/z150/rules.mk @@ -1,5 +1,3 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Build Options # change yes to no to disable diff --git a/keyboards/hardwareabstraction/handwire/rules.mk b/keyboards/hardwareabstraction/handwire/rules.mk index d782fba2a81..8a33a553313 100644 --- a/keyboards/hardwareabstraction/handwire/rules.mk +++ b/keyboards/hardwareabstraction/handwire/rules.mk @@ -1,8 +1,7 @@ LTO_ENABLE = yes HAPTIC_ENABLE = yes -HAPTIC_DRIVER += SOLENOID +HAPTIC_DRIVER = solenoid OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/config.h b/keyboards/hazel/bad_wings/keymaps/miketronic/config.h new file mode 100644 index 00000000000..1f5c059c004 --- /dev/null +++ b/keyboards/hazel/bad_wings/keymaps/miketronic/config.h @@ -0,0 +1,16 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once + +# define TAPPING_TERM 160 +# define TAPPING_TERM_PER_KEY +# define HOLD_ON_OTHER_KEY_PRESS +# define QUICK_TAP_TERM TAPPING_TERM / 2 +# define QUICK_TAP_TERM_PER_KEY + +# define CIRQUE_PINNACLE_TAP_ENABLE +# define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE +# define CIRQUE_PINNACLE_ATTENUATION_4X +# define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE +//# define CIRQUE_DEVICE_GESTURES_SCROLL_ENABLE diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c b/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c new file mode 100644 index 00000000000..3ebcc79fded --- /dev/null +++ b/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c @@ -0,0 +1,258 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#include "miketronic.h" + + +/* +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, 1, 2, 3); +} + + + [0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \ + KC_Z, LGUI_T(KC_X), LALT_T(KC_C), KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ + KC_LCTL, OSL(1), OSM(MOD_LSFT), KC_SPC, LT(2, KC_BSPC), KC_ENT + ), + [1] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RBRC, KC_RCBR, KC_RPRN, KC_RABK, KC_NO, \ + KC_GRV, KC_TILD, KC_UNDS, KC_EQL, KC_NO, KC_LBRC, KC_LCBR, KC_LPRN, KC_LABK, KC_BACKSLASH, \ + KC_NO, KC_NO, KC_PLUS, KC_MINS, KC_NO, KC_NO, KC_NO, KC_COLN, KC_DOT, KC_SCLN, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PIPE, KC_NO, \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_NO, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_3( + KC_ESC, KC_F1, KC_F4, KC_F7, KC_F10, KC_NO, KC_HOME, KC_UP, KC_END, KC_BSPC, \ + KC_TAB, KC_F2, KC_F5, KC_F8, KC_F11, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, \ + KC_NO, KC_F3, KC_F6, KC_F9, KC_F12, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +*/ + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* WORKMAN + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│ + * │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ + * │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │ + * │SHIFT│ │ ┃ EX ┃ │ │ ┃ ┃ │ │ │ + * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ + * │ Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ENTER│ + * │ FN │ CTRL│ OS │ ALT │LOWER│ │RAISE│ │ , │ . │ │ + * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ + * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ + * │SHIFT│ │ │ │ │ │PASTE│ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ +*/ + [_WM] = LAYOUT_split_3x5_3_wrapper ( + _____________WORKMAN_310_001_L_____________, _____________WORKMAN_310_001_R_____________, + _____________WORKMAN_310_002_L_____________, _____________WORKMAN_310_002_R_____________, + _____________WORKMAN_310_003_L_____________, _____________WORKMAN_310_003_R_____________, + _________3KEY_LEFT___________, _________3KEY_RIGHT__________ + ), + + [_QW] = LAYOUT_split_3x5_3_wrapper ( + _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, + _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, + _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, + _________3KEY_LEFT___________, _________3KEY_RIGHT__________ + ), + + + + /* LOWER + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │ + * │ │ <> │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ + * │ @ # │ & % │ ┃ ┃ │ │ . ┃ 4 ┃ 5 │ 6 │ UP │ + * │ │ │ ┃ ┃ │ │ENTER┃ ┃ │ │RIGHT│ + * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ + * │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ DOWN│ + * │ │ │ │ │LOWER│ │ │ │ 0 │ │ LEFT│ + * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ + * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ + * │SHIFT│ │ │ │ │ │PASTE│ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ +*/ + [_LOWER] = LAYOUT_split_3x5_3_wrapper ( + _______________LOWER_310_L1________________, _______________LOWER_310_R1________________, + _______________LOWER_310_L2________________, _______________LOWER_310_R2________________, + _______________LOWER_310_L3________________, _______________LOWER_310_R3________________, + _________3KEY_LEFT___________, _________3KEY_RIGHT__________ + ), + + + + /* RAISE + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * │ BOOT│DEBUG│ │ │ MAKE│ │ │ F7 │ F8 │ F9 │ F10 │ + * │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ + * │ │ RGB │ RGB ┃ RGB ┃ RGB │ │ _ ┃ F4 ┃ F5 │ F6 │ F11 │ + * │ │ TOG │ MOD ┃ HUI ┃ HUD │ │ - ┃ ┃ │ │ │ + * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ + * │ │ RGB │ RGB │ RGB │ RGB │ │ │ F1 │ F2 │ F3 │ F12 │ + * │ │ SAI │ SAD │ VAI │ VAD │ │RAISE│ │ │ │ │ + * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ + * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ + * │SHIFT│ │ │ │ │ │PASTE│ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ +*/ + [_RAISE] = LAYOUT_split_3x5_3_wrapper ( + _______________RAISE_310_L1________________, _______________RAISE_310_R1________________, + _______________RAISE_310_L2________________, _______________RAISE_310_R2________________, + _______________RAISE_310_L3________________, _______________RAISE_310_R3________________, + _________3KEY_LEFT___________, _________3KEY_RIGHT__________ + ), + + + + /* EXTRAS + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * │ ! │ │ │ │ │ │ │ /\ | () | [] | ; │ + * │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ + * │ │ │ ┃EXTRA┃ │ │ ┃ @ # ┃ & % | │ ' │ + * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ + * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ , │ . │ ? │ + * │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ + * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ + * │SHIFT│ │ │ │ │ │PASTE│ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ +*/ + [_EX] = LAYOUT_split_3x5_3_wrapper ( + ______________EXTRAS_310_L1________________, ______________EXTRAS_310_R1________________, + ______________EXTRAS_310_L2________________, ______________EXTRAS_310_R2________________, + ______________EXTRAS_310_L3________________, ______________EXTRAS_310_R3________________, + _________3KEY_LEFT___________, _________3KEY_RIGHT__________ + ), + + + + /* FUNCTION + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * │COPY │CLIP │ SS │ │ │ │ │ /\ │ UP │ │ DEL │ + * │PASTE│ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ + * │ TAB │ M05 │ M06 ┃ M07 ┃ M08 │ │ ┃ LEFT┃ DOWN│RIGHT│ UP │ + * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │RIGHT│ + * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ + * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ , │ . │DOWN │ + * │ FN │ │ │ │ │ │ │ │ │ │LEFT │ + * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ + * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ + * │SHIFT│ │ │ │ │ │PASTE│ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ +*/ + [_FN] = LAYOUT_split_3x5_3_wrapper ( + _____________FUNCTION_310_L1_______________, _____________FUNCTION_310_R1_______________, + _____________FUNCTION_310_L2_______________, _____________FUNCTION_310_R2_______________, + _____________FUNCTION_310_L3_______________, _____________FUNCTION_310_R3_______________, + _________3KEY_LEFT___________, _________3KEY_RIGHT__________ + ), + + + + /* SYMBOLS + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │ + * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ + * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │ + * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ + * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ + * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │ + * │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ + * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ + * │SHIFT│ │ │ │ │ │PASTE│ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ +*/ + [_SYMB] = LAYOUT_split_3x5_3_wrapper ( + KC_DLR, KC_CIRC, KC_LABK, KC_RABK, XXXX, XXXX, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS, + KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL, XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS, + KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH, KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT, + _________3KEY_LEFT___________, _________3KEY_RIGHT__________ + ), + +}; + + +bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SFT_T(KC_A): + // Do not force the mod-tap key press to be handled as a modifier + // if any other key was pressed while the mod-tap key is held down. + return false; + case TEX: + return false; + case CTRLX: + return false; + case FNZ: + return false; + case MGUI: + return false; + case VLOWER: + return false; + case KRAISE: + return false; + default: + // Force the dual-role key press to be handled as a modifier if any + // other key was pressed while the mod-tap key is held down. + return true; + } +} + + +#ifdef AUDIO_ENABLE +float leader_start_song[][2] = SONG(ONE_UP_SOUND); +float leader_succeed_song[][2] = SONG(ALL_STAR); +float leader_fail_song[][2] = SONG(RICK_ROLL); +#endif + +void matrix_scan_user(void); + +void leader_start_user(void) { +#ifdef AUDIO_ENABLE + PLAY_SONG(leader_start_song); +#endif +} + +bool did_leader_succeed; + +void leader_end_user(void) { + did_leader_succeed = false; + + if (leader_sequence_one_key(KC_E)) { + SEND_STRING(SS_LCTL(SS_LSFT("t"))); + did_leader_succeed = true; + } else if (leader_sequence_two_keys(KC_E, KC_D)) { + SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c")); + did_leader_succeed = true; + } else if (leader_sequence_two_keys(KC_A, KC_T)) { + SEND_STRING("@guidehouse.com"); + did_leader_succeed = true; + } + + +#ifdef AUDIO_ENABLE + if (did_leader_succeed) { + PLAY_SONG(leader_succeed_song); + } else { + PLAY_SONG(leader_fail_song); + } +#endif +} + diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk b/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk new file mode 100644 index 00000000000..72c338c1574 --- /dev/null +++ b/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk @@ -0,0 +1,31 @@ +# Common feature for all keyboards +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +EXTRAKEY_ENABLE = yes # Audio control and System control +TAP_DANCE_ENABLE = yes # Tap Dance keys +NKRO_ENABLE = yes # Enable N-Key Rollover +MACROS_ENABLED = yes + +# Keyboard specific +MOUSEKEY_ENABLE = yes # Mouse keys +CAPS_WORD_ENABLE = yes +KEY_OVERRIDE_ENABLE = yes +LEADER_ENABLE = yes + + + LTO_ENABLE = no # Enabled this causes longer build time, but smaller file. + AUTO_SHIFT_ENABLE = no + UNICODE_ENABLE = no # Unicode + CONSOLE_ENABLE = no # Console for debug + COMMAND_ENABLE = no # Commands for debug and configuration + RGBLIGHT_ENABLE = no + BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality + SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend (it uses the same timer as BACKLIGHT_ENABLE) + AUDIO_ENABLE = no # Audio output on port C6 + MIDI_ENABLE = no # MIDI support + BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID + GRAVE_ESC_ENABLE = no + SPACE_CADET_ENABLE = no + COMBO_ENABLE = no + OLED_ENABLE = no + ENCODER_ENABLE = no + ENCODER_MAP_ENABLE = no diff --git a/keyboards/heliotrope/info.json b/keyboards/heliotrope/info.json index b443c4d54c9..3b382c7bc91 100644 --- a/keyboards/heliotrope/info.json +++ b/keyboards/heliotrope/info.json @@ -28,7 +28,7 @@ "pin": "A4" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 7, "y": 5}, {"flags": 4, "matrix": [0, 1], "x": 22, "y": 5}, diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h index cf4e9f4ffea..f5eb4c13e10 100644 --- a/keyboards/helix/pico/config.h +++ b/keyboards/helix/pico/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #pragma once #define QUICK_TAP_TERM 0 -#define TAPPING_TERM 100 #define SERIAL_SLAVE_BUFFER_LENGTH ((MATRIX_ROWS)/2) #define SERIAL_MASTER_BUFFER_LENGTH ((MATRIX_ROWS)/2) @@ -48,8 +47,6 @@ along with this program. If not, see . #define AUDIO_PIN B5 #endif -//#define RGBLED_NUM 12 // Number of LEDs. see ./keymaps/default/config.h - // Helix keyboard RGB LED support // see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes #ifdef RGBLED_BACK @@ -73,8 +70,6 @@ along with this program. If not, see . #endif #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for Helix keyboard diff --git a/keyboards/helix/pico/info.json b/keyboards/helix/pico/info.json index 1147d09f372..953cc2ea101 100644 --- a/keyboards/helix/pico/info.json +++ b/keyboards/helix/pico/info.json @@ -11,6 +11,21 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 100 + }, + "rgblight": { + "hue_steps": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/helix/pico/qmk_conf/config.h b/keyboards/helix/pico/qmk_conf/config.h index 7653185198b..15b33928956 100644 --- a/keyboards/helix/pico/qmk_conf/config.h +++ b/keyboards/helix/pico/qmk_conf/config.h @@ -26,18 +26,3 @@ along with this program. If not, see . #define STARTUP_SONG SONG(STARTUP_SOUND) #define AUDIO_CLICKY #endif - -// If you need more program area, try select and reduce rgblight modes to use. - -// Selection of RGBLIGHT MODE to use. -#if defined(LED_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 -#endif diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h index 1d716367571..212d0e1e384 100644 --- a/keyboards/helix/rev2/config.h +++ b/keyboards/helix/rev2/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #pragma once #define QUICK_TAP_TERM 0 -#define TAPPING_TERM 100 #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_LED_STATE_ENABLE @@ -55,8 +54,6 @@ along with this program. If not, see . #endif #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for Helix keyboard diff --git a/keyboards/helix/rev2/info.json b/keyboards/helix/rev2/info.json index 105b05e6e3b..0056ba90b1b 100644 --- a/keyboards/helix/rev2/info.json +++ b/keyboards/helix/rev2/info.json @@ -16,6 +16,21 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 100 + }, + "rgblight": { + "hue_steps": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/helix/rev2/keymaps/default/keymap.c b/keyboards/helix/rev2/keymaps/default/keymap.c index 25b0c3dff8e..b777d35d453 100644 --- a/keyboards/helix/rev2/keymaps/default/keymap.c +++ b/keyboards/helix/rev2/keymaps/default/keymap.c @@ -340,10 +340,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - void matrix_init_user(void) { #ifdef AUDIO_ENABLE startup_user(); @@ -351,10 +347,6 @@ void matrix_init_user(void) { #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_get_mode(); #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif } diff --git a/keyboards/helix/rev2/keymaps/default/oled_display.c b/keyboards/helix/rev2/keymaps/default/oled_display.c index 384356bd144..4eb815ce487 100644 --- a/keyboards/helix/rev2/keymaps/default/oled_display.c +++ b/keyboards/helix/rev2/keymaps/default/oled_display.c @@ -136,150 +136,3 @@ bool oled_task_user(void) { return false; } #endif // end of OLED_ENABLE - -//SSD1306 OLED update loop -/* - The following code is left as a sample to help you transition from SSD1306OLED to OLED_ENABLE. - - * `matrix_write(matrix, data)` is replaced by `oled_write(data, false)`. - * `matrix_write_P(matrix, data)` is replaced by `oled_write_P(data, false)`. - * It is no longer necessary to call `iota_gfx_task()`. - * `matrix_update()` are no longer needed. - * `iota_gfx_task_user()` is no longer needed. Instead, `bool oled_task_user(void)` is provided. - - 以下のコードは、SSD1306OLED から OLED_ENABLE に移行する助けになるようにサンプルとして残してあります。 - - * `matrix_write(matrix, data)` は、`oled_write(data, false)` に書き換えます。 - * `matrix_write_P(matrix, data)` は、`oled_write_P(data, false)` に書き換えます。 - * `iota_gfx_task()` を呼び出す必要はなくなります。 - * `matrix_update()` は不要になります。 - * `iota_gfx_task_user()` は不要になります。代りに `bool oled_task_user(void)` を用意します。 - */ - -#ifdef SSD1306OLED -#include "ssd1306.h" -#define oled_write(data,flag) matrix_write(matrix, data) -#define oled_write_P(data,flag) matrix_write_P(matrix, data) - -void matrix_scan_user(void) { - iota_gfx_task(); // this is what updates the display continuously -} - -void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -static void render_logo(struct CharacterMatrix *matrix) { - - static const char helix_logo[] PROGMEM ={ - 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(helix_logo, false); -} - -static void render_rgbled_status(bool full, struct CharacterMatrix *matrix) { -# ifdef RGBLIGHT_ENABLE - char buf[30]; - if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { - if (full) { - snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", - rgblight_get_mode(), - rgblight_get_hue()/RGBLIGHT_HUE_STEP, - rgblight_get_sat()/RGBLIGHT_SAT_STEP, - rgblight_get_val()/RGBLIGHT_VAL_STEP); - } else { - snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); - } - oled_write(buf, false); - } -# endif -} - -static void render_layer_status(struct CharacterMatrix *matrix) { - // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - char buf[10]; - oled_write_P(PSTR("Layer: "), false); - switch (layer_state) { - case L_BASE: - oled_write_P(PSTR("Default"), false); - break; - case L_RAISE: - oled_write_P(PSTR("Raise"), false); - break; - case L_LOWER: - oled_write_P(PSTR("Lower"), false); - break; - case L_ADJUST: - case L_ADJUST_TRI: - oled_write_P(PSTR("Adjust"), false); - break; - default: - oled_write_P(PSTR("Undef-"), false); - snprintf(buf,sizeof(buf), "%ld", layer_state); - oled_write(buf, false); - } - oled_write_P(PSTR("\n"), false); -} - -void render_status(struct CharacterMatrix *matrix) { - // Render to mode icon - static const char os_logo[][2][3] PROGMEM = {{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; - if (is_mac_mode()) { - oled_write_P(os_logo[0][0], false); - oled_write_P(PSTR("\n"), false); - oled_write_P(os_logo[0][1], false); - } else { - oled_write_P(os_logo[1][0], false); - oled_write_P(PSTR("\n"), false); - oled_write_P(os_logo[1][1], false); - } - - oled_write_P(PSTR(" "), false); - render_layer_status(matrix); - - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("NUMLOCK") : PSTR(" "), false); - oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); - oled_write_P(led_state.scroll_lock ? PSTR("SCLK") : PSTR(" "), false); - oled_write_P(PSTR("\n"), false); - render_rgbled_status(true, matrix); -} - -# if OLED_UPDATE_INTERVAL > 0 -uint16_t oled_update_timeout; -# endif - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - -# if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } -# endif - -# if OLED_UPDATE_INTERVAL > 0 - if (timer_elapsed(oled_update_timeout) < OLED_UPDATE_INTERVAL) { - return; - } - oled_update_timeout = timer_read(); -# endif - matrix_clear(&matrix); - if (is_keyboard_master()) { - render_status(&matrix); - } else { - render_logo(&matrix); - render_rgbled_status(false, &matrix); - render_layer_status(&matrix); - } - matrix_update(&display, &matrix); -} - -#endif // end of SSD1306OLED diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c b/keyboards/helix/rev2/keymaps/edvorakjp/oled.c index 14e3e5533b9..38a91c1639f 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c +++ b/keyboards/helix/rev2/keymaps/edvorakjp/oled.c @@ -5,13 +5,9 @@ #ifdef OLED_ENABLE void render_host_led_state(void) { char led_state_str[24]; - uint8_t leds = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); - bool is_num_lock_enabled = leds & (1 << USB_LED_NUM_LOCK); - bool is_caps_lock_enabled = leds & (1 << USB_LED_CAPS_LOCK); - bool is_scroll_lock_enabled = leds & (1 << USB_LED_SCROLL_LOCK); - - snprintf(led_state_str, sizeof(led_state_str), "NL:%s CL:%s SL:%s", is_num_lock_enabled ? "on" : "- ", is_caps_lock_enabled ? "on" : "- ", is_scroll_lock_enabled ? "on" : "- "); + snprintf(led_state_str, sizeof(led_state_str), "NL:%s CL:%s SL:%s", led_state.num_lock ? "on" : "- ", led_state.caps_lock ? "on" : "- ", led_state.scroll_lock ? "on" : "- "); oled_write(led_state_str, false); } diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c index 32b446c498d..75e50968bcf 100644 --- a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c +++ b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c @@ -2,9 +2,6 @@ #include "keymap_japanese.h" #include #include -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif // * If you want to recognize that you pressed the Adjust key with the Lower / Raise key you can enable this comment out. However, the binary size may be over. * // #define ADJUST_MACRO_ENABLE @@ -192,7 +189,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -#if defined(SSD1306OLED) || defined(OLED_ENABLE) +#if defined(OLED_ENABLE) char keylog[24] = {}; const char code_to_name[60] = { ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', @@ -205,7 +202,7 @@ const char code_to_name[60] = { static inline void set_keylog(uint16_t keycode, keyrecord_t *record) { char name = ' '; - uint8_t leds = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); if (keycode < 60) { @@ -218,9 +215,9 @@ static inline void set_keylog(uint16_t keycode, keyrecord_t *record) record->event.key.col, keycode, name, - (leds & (1<event.pressed) { set_keylog(keycode, record); } @@ -310,121 +307,8 @@ void matrix_init_user(void) { #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_get_mode(); #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -void matrix_scan_user(void) { - iota_gfx_task(); // this is what updates the display continuously -} - -static inline void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -//assign the right code to your layers for OLED display -#define L_BASE _BASE -#define L_LOWER (1<<_LOWER) -#define L_RAISE (1<<_RAISE) -#define L_ADJUST (1<<_ADJUST) -#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) -#define L_LOW_E (1<<_LOW_E) -#define L_RAI_E (1<<_RAI_E) -#define L_ADJUST_TRIE (L_ADJUST|L_RAI_E|L_LOW_E) - -const char helix_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}; - -static inline void render_logo(struct CharacterMatrix *matrix) { - - matrix_write(matrix, helix_logo); -} - -const char mac_win_logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; - -static inline void render_status(struct CharacterMatrix *matrix) { - - char buf[20]; - // Render to mode icon - if(keymap_config.swap_lalt_lgui==false){ - matrix_write(matrix, mac_win_logo[0][0]); - matrix_write_P(matrix, PSTR("\n")); - matrix_write(matrix, mac_win_logo[0][1]); - } else { - matrix_write(matrix, mac_win_logo[1][0]); - matrix_write_P(matrix, PSTR("\n")); - matrix_write(matrix, mac_win_logo[1][1]); - } - - #ifdef RGBLIGHT_ENABLE - snprintf(buf, sizeof(buf), " LED mode:%d", (short)RGB_current_mode); - matrix_write(matrix, buf); - #endif - - // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - matrix_write_P(matrix, PSTR("\nLayer: ")); - switch (layer_state) { - case L_BASE: - matrix_write_P(matrix, default_layer_state == (1UL<<_BAS_E) ? PSTR("BaseEx") : PSTR("Base")); - break; - case L_RAISE: - matrix_write_P(matrix, PSTR("Raise")); - break; - case L_RAI_E: - matrix_write_P(matrix, PSTR("RaiseEx")); - break; - case L_LOWER: - matrix_write_P(matrix, PSTR("Lower")); - break; - case L_LOW_E: - matrix_write_P(matrix, PSTR("LowerEx")); - break; - case L_ADJUST: - case L_ADJUST_TRI: - case L_ADJUST_TRIE: - matrix_write_P(matrix, PSTR("Adjust")); - break; - default: - snprintf(buf, sizeof(buf), "%d", (short)layer_state); - matrix_write(matrix, buf); - } - - matrix_write(matrix, keylog); -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - - #if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } - #endif - - matrix_clear(&matrix); - if (is_keyboard_master()) { - render_status(&matrix); - } else { - render_logo(&matrix); - } - - matrix_update(&display, &matrix); } -#endif // end of SSD1306OLED - //OLED update loop #ifdef OLED_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { diff --git a/keyboards/helix/rev2/keymaps/froggy/keymap.c b/keyboards/helix/rev2/keymaps/froggy/keymap.c index 8463365f59d..dc047d31187 100644 --- a/keyboards/helix/rev2/keymaps/froggy/keymap.c +++ b/keyboards/helix/rev2/keymaps/froggy/keymap.c @@ -4,10 +4,6 @@ #define MIN(x, y) (((x) < (y)) ? (x) : (y)) #define MAX(x, y) (((x) > (y)) ? (x) : (y)) -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - #define LAYOUT_half( \ L00, L01, L02, L03, L04, L05, \ L10, L11, L12, L13, L14, L15, \ @@ -450,10 +446,6 @@ void matrix_init_user(void) { #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_get_mode(); #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif } @@ -555,10 +547,6 @@ uint8_t layer_state_old; //runs every scan cycle (a lot) void matrix_scan_user(void) { - #ifdef SSD1306OLED - iota_gfx_task(); // this is what updates the display continuously - #endif - if(delay_key_stat && (timer_elapsed(key_timer) > DELAY_TIME)){ register_delay_code(_BASE); if(!delay_key_pressed){ @@ -629,119 +617,6 @@ void matrix_scan_user(void) { #endif } -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -// Render to OLED -void render_status(struct CharacterMatrix *matrix) { - - // froggy logo - static char logo[4][1][17]= - { - { - {0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0} - }, - { - {0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0} - }, - { - {0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0} - }, - { - {0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0} - } - }; - - static char indctr[8][2][4]= - { - // white icon - { - {0x60,0x61,0x62,0}, - {0x63,0x64,0} - }, - { - {0x80,0x81,0x82,0}, - {0x83,0x84,0} - }, - { - {0xa0,0xa1,0xa2,0}, - {0xa3,0xa4,0} - }, - { - {0xc0,0xc1,0xc2,0}, - {0xc3,0xc4,0} - }, - // Black icon - { - {0x75,0x76,0x77,0}, - {0x78,0x79,0} - }, - { - {0x95,0x96,0x97,0}, - {0x98,0x99,0} - }, - { - {0xb5,0xb6,0xb7,0}, - {0xb8,0xb9,0} - }, - { - {0xd5,0xd6,0xd7,0}, - {0xd8,0xd9,0} - }, - }; - - int rown = 0; - int rowf = 0; - int rowa = 0; - int rows = 0; - - //Set Indicator icon - if (host_keyboard_leds() & (1< -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif #define LAYOUT_half( \ L00, L01, L02, L03, L04, L05, \ @@ -563,15 +560,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } - -//keyboard start-up code. Runs once when the firmware starts up. -void matrix_init_user(void) { - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - // LED Effect #ifdef RGBLIGHT_ENABLE unsigned char rgb[7][5][3]; @@ -632,10 +620,6 @@ layer_state_t layer_state_old; //runs every scan cycle (a lot) void matrix_scan_user(void) { - #ifdef SSD1306OLED - iota_gfx_task(); // this is what updates the display continuously - #endif - if(delay_key_stat && (timer_elapsed(key_timer) > DELAY_TIME)){ if (IS_MODE_106()) register_delay_code(_BASE_106); @@ -693,141 +677,6 @@ void matrix_scan_user(void) { #endif } -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -// Render to OLED -void render_status(struct CharacterMatrix *matrix) { - - // froggy logo - static char logo[4][17]= - { - {0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0}, - {0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0}, - {0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0}, - {0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0}, - }; - - static char modectl[4][2][4]= - { - { - {0x65,0x66,0x67,0}, //WIN - {0x85,0x86,0x87,0}, //WIN - }, - { - {0xa5,0xa6,0xa7,0}, //US(101) - {0xc5,0xc6,0xc7,0}, //US(101) - }, - { - {0xbd,0xbe,0xbf,0}, //MAC - {0xdd,0xde,0xdf,0}, //MAC - }, - { - {0xba,0xbb,0xbc,0}, //JP(106) - {0xda,0xdb,0xdc,0}, //JP(106) - }, - }; - - static char indctr[8][2][4]= - { - // white icon - { - {0x60,0x61,0x62,0}, //NUM - {0x63,0x64,0} //FUNC - }, - { - {0x80,0x81,0x82,0}, //NUM - {0x83,0x84,0} //FUNC - }, - { - {0xa0,0xa1,0xa2,0}, //CAPS - {0xa3,0xa4,0} //SCLK - }, - { - {0xc0,0xc1,0xc2,0}, //CAPS - {0xc3,0xc4,0} //SCLK - }, - // Black icon - { - {0x75,0x76,0x77,0}, //NUM - {0x78,0x79,0} //FUNC - }, - { - {0x95,0x96,0x97,0}, //NUM - {0x98,0x99,0} //FUNC - }, - { - {0xb5,0xb6,0xb7,0}, //CAPS - {0xb8,0xb9,0} //SCLK - }, - { - {0xd5,0xd6,0xd7,0}, //CAPS - {0xd8,0xd9,0} //SCLK - }, - }; - - int rown = 0; - int rowf = 0; - int rowa = 0; - int rows = 0; - int rowm = 0; - int rowj = 1; - - //Set Indicator icon - if (host_keyboard_leds() & (1< #include -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif // 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. @@ -331,10 +328,6 @@ void matrix_init_user(void) { #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_get_mode(); #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif } @@ -363,135 +356,6 @@ void music_scale_user(void) #endif - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -void matrix_scan_user(void) { - iota_gfx_task(); // this is what updates the display continuously -} - -void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -//assign the right code to your layers for OLED display -#define L_BASE 0 -#define L_LOWER (1<<_LOWER) -#define L_RAISE (1<<_RAISE) -#define L_ADJUST (1<<_ADJUST) -#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) - -static void render_logo(struct CharacterMatrix *matrix) { - - static const char helix_logo[] PROGMEM ={ - 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}; - matrix_write_P(matrix, helix_logo); - //matrix_write_P(&matrix, PSTR(" Split keyboard kit")); -} - -static void render_rgbled_status(bool full, struct CharacterMatrix *matrix) { -#ifdef RGBLIGHT_ENABLE - char buf[30]; - if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { - if (full) { - snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", - rgblight_get_mode(), - rgblight_get_hue()/RGBLIGHT_HUE_STEP, - rgblight_get_sat()/RGBLIGHT_SAT_STEP, - rgblight_get_val()/RGBLIGHT_VAL_STEP); - } else { - snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); - } - matrix_write(matrix, buf); - } -#endif -} - -static void render_layer_status(struct CharacterMatrix *matrix) { - // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - char buf[10]; - matrix_write_P(matrix, PSTR("Layer: ")); - switch (layer_state) { - case L_BASE: - matrix_write_P(matrix, PSTR("Default")); - break; - case L_RAISE: - matrix_write_P(matrix, PSTR("Raise")); - break; - case L_LOWER: - matrix_write_P(matrix, PSTR("Lower")); - break; - case L_ADJUST: - case L_ADJUST_TRI: - matrix_write_P(matrix, PSTR("Adjust")); - break; - default: - matrix_write_P(matrix, PSTR("Undef-")); - snprintf(buf,sizeof(buf), "%ld", layer_state); - matrix_write(matrix, buf); - } -} - -void render_status(struct CharacterMatrix *matrix) { - - // Render to mode icon - static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; - if(keymap_config.swap_lalt_lgui==false){ - matrix_write_P(matrix, os_logo[0][0]); - matrix_write_P(matrix, PSTR("\n")); - matrix_write_P(matrix, os_logo[0][1]); - }else{ - matrix_write_P(matrix, os_logo[1][0]); - matrix_write_P(matrix, PSTR("\n")); - matrix_write_P(matrix, os_logo[1][1]); - } - - matrix_write_P(matrix, PSTR(" ")); - render_layer_status(matrix); - matrix_write_P(matrix, PSTR("\n")); - - // Host Keyboard LED Status - matrix_write_P(matrix, (host_keyboard_leds() & (1< else diff --git a/keyboards/helix/rev2/qmk_conf/config.h b/keyboards/helix/rev2/qmk_conf/config.h deleted file mode 100644 index b8c1041cdc7..00000000000 --- a/keyboards/helix/rev2/qmk_conf/config.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -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 - -// place overrides here - -// If you need more program area, try select and reduce rgblight modes to use. - -// Selection of RGBLIGHT MODE to use. -#if defined(LED_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 -#endif diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h index 2eda425a4f1..1e60ed1f0f3 100644 --- a/keyboards/helix/rev3_4rows/config.h +++ b/keyboards/helix/rev3_4rows/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#include - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 @@ -46,10 +44,8 @@ along with this program. If not, see . /* Dip switch on matrix grid */ #define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {5,6}, {6,6} } -#define RGBLED_NUM 50 // Number of LEDs - #ifdef RGB_MATRIX_ENABLE - #define RGB_MATRIX_LED_COUNT RGBLED_NUM + #define RGB_MATRIX_LED_COUNT 50 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended @@ -57,28 +53,6 @@ along with this program. If not, see . // # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 -#endif - -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 25, 25 } -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #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 #endif /* Custom font */ diff --git a/keyboards/helix/rev3_4rows/info.json b/keyboards/helix/rev3_4rows/info.json index 9a832bbb5b9..ffe1c987e2b 100644 --- a/keyboards/helix/rev3_4rows/info.json +++ b/keyboards/helix/rev3_4rows/info.json @@ -9,7 +9,10 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10, }, "encoder": { "rotary": [ @@ -23,7 +26,15 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 120 + "led_count": 50, + "max_brightness": 120, + "split_count": [25, 25], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/helix/rev3_4rows/keymaps/default/oled_display.c b/keyboards/helix/rev3_4rows/keymaps/default/oled_display.c index e951f627c83..ee5277a7df9 100644 --- a/keyboards/helix/rev3_4rows/keymaps/default/oled_display.c +++ b/keyboards/helix/rev3_4rows/keymaps/default/oled_display.c @@ -16,6 +16,8 @@ #include QMK_KEYBOARD_H +#include + // Defines names for use in layer keycodes and the keymap enum layer_names { _QWERTY = 0, diff --git a/keyboards/helix/rev3_4rows/keymaps/via/oled_display.c b/keyboards/helix/rev3_4rows/keymaps/via/oled_display.c index e951f627c83..ee5277a7df9 100644 --- a/keyboards/helix/rev3_4rows/keymaps/via/oled_display.c +++ b/keyboards/helix/rev3_4rows/keymaps/via/oled_display.c @@ -16,6 +16,8 @@ #include QMK_KEYBOARD_H +#include + // Defines names for use in layer keycodes and the keymap enum layer_names { _QWERTY = 0, diff --git a/keyboards/helix/rev3_4rows/rules.mk b/keyboards/helix/rev3_4rows/rules.mk index 23b73845f0a..a46f9d9c59f 100644 --- a/keyboards/helix/rev3_4rows/rules.mk +++ b/keyboards/helix/rev3_4rows/rules.mk @@ -3,7 +3,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow SPLIT_KEYBOARD = yes RGB_MATRIX_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes DIP_SWITCH_ENABLE = no LTO_ENABLE = yes diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h index bd09cc60abe..f48115663cb 100644 --- a/keyboards/helix/rev3_5rows/config.h +++ b/keyboards/helix/rev3_5rows/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#include - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 @@ -46,10 +44,8 @@ along with this program. If not, see . /* Dip switch on matrix grid */ #define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {5,6}, {6,6} } -#define RGBLED_NUM 64 // Number of LEDs - #ifdef RGB_MATRIX_ENABLE - #define RGB_MATRIX_LED_COUNT RGBLED_NUM + #define RGB_MATRIX_LED_COUNT 64 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended @@ -57,28 +53,6 @@ along with this program. If not, see . // # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 -#endif - -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 32, 32 } -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #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 #endif /* Custom font */ diff --git a/keyboards/helix/rev3_5rows/info.json b/keyboards/helix/rev3_5rows/info.json index 2ae80dd9011..f7546b1322c 100644 --- a/keyboards/helix/rev3_5rows/info.json +++ b/keyboards/helix/rev3_5rows/info.json @@ -9,7 +9,10 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "encoder": { "rotary": [ @@ -23,7 +26,15 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 120 + "led_count": 64, + "max_brightness": 120, + "split_count": [32, 32], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/helix/rev3_5rows/keymaps/default/oled_display.c b/keyboards/helix/rev3_5rows/keymaps/default/oled_display.c index e951f627c83..ee5277a7df9 100644 --- a/keyboards/helix/rev3_5rows/keymaps/default/oled_display.c +++ b/keyboards/helix/rev3_5rows/keymaps/default/oled_display.c @@ -16,6 +16,8 @@ #include QMK_KEYBOARD_H +#include + // Defines names for use in layer keycodes and the keymap enum layer_names { _QWERTY = 0, diff --git a/keyboards/helix/rev3_5rows/keymaps/via/oled_display.c b/keyboards/helix/rev3_5rows/keymaps/via/oled_display.c index e951f627c83..ee5277a7df9 100644 --- a/keyboards/helix/rev3_5rows/keymaps/via/oled_display.c +++ b/keyboards/helix/rev3_5rows/keymaps/via/oled_display.c @@ -16,6 +16,8 @@ #include QMK_KEYBOARD_H +#include + // Defines names for use in layer keycodes and the keymap enum layer_names { _QWERTY = 0, diff --git a/keyboards/helix/rev3_5rows/rules.mk b/keyboards/helix/rev3_5rows/rules.mk index 23b73845f0a..a46f9d9c59f 100644 --- a/keyboards/helix/rev3_5rows/rules.mk +++ b/keyboards/helix/rev3_5rows/rules.mk @@ -3,7 +3,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow SPLIT_KEYBOARD = yes RGB_MATRIX_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes DIP_SWITCH_ENABLE = no LTO_ENABLE = yes diff --git a/keyboards/hfdkb/ac001/config.h b/keyboards/hfdkb/ac001/config.h index 899a134762c..6c0c2a2cf61 100644 --- a/keyboards/hfdkb/ac001/config.h +++ b/keyboards/hfdkb/ac001/config.h @@ -16,8 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 5 - /* ws2812 RGB LED */ #define RGB_MATRIX_LED_COUNT 5 diff --git a/keyboards/hfdkb/ac001/info.json b/keyboards/hfdkb/ac001/info.json index 2efee90deba..0a361d63ed7 100644 --- a/keyboards/hfdkb/ac001/info.json +++ b/keyboards/hfdkb/ac001/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A5", "A6", "A7", "C4", "C5"], @@ -20,6 +20,9 @@ "ws2812": { "pin": "A1" }, + "qmk": { + "tap_keycode_delay": 5 + }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", "layouts": { diff --git a/keyboards/hfdkb/keyboard_sw/k83/config.h b/keyboards/hfdkb/keyboard_sw/k83/config.h deleted file mode 100644 index a4660c93be8..00000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/config.h +++ /dev/null @@ -1,85 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * This 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 RGB_TRIGGER_ON_KEYDOWN - -/* encoder resolution */ -#define TAP_CODE_DELAY 15 - -/* DIP switch */ -#define DIP_SWITCH_PINS \ - { A9 } - -/* 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 - -/* SPI Config for spi flash*/ -#define SPI_DRIVER SPIDQ -#define SPI_SCK_PIN B3 -#define SPI_MOSI_PIN B5 -#define SPI_MISO_PIN B4 -#define SPI_MOSI_PAL_MODE 5 - -#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) - -/* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 -#define I2C1_SDA_PIN B7 -#define I2C1_SCL_PIN B6 -#define I2C1_SCL_PAL_MODE 4 -#define I2C1_OPMODE OPMODE_I2C -#define I2C1_CLOCK_SPEED 400000 /* 400000 */ - -#define DRIVER_1_LED_TOTAL 61 -#define DRIVER_2_LED_TOTAL 21 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + 10) - -#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended - -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_KEYRELEASES - -// 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_BREATHING -#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_RAINDROPS -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -// 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_MULTISPLASH - -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 /* The maximum brightness level */ diff --git a/keyboards/hfdkb/keyboard_sw/k83/info.json b/keyboards/hfdkb/keyboard_sw/k83/info.json deleted file mode 100644 index 559fa3d790e..00000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/info.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "keyboard_name": "KB83", - "manufacturer": "www.hfd.cn", - "maintainer": "hfd", - "usb": { - "vid": "0xFFFE", - "pid": "0x0007", - "device_version": "1.0.0", - "force_nkro": true - }, - "rgb_matrix": { - "driver": "IS31FL3733" - }, - "processor": "WB32FQ95", - "bootloader": "wb32-dfu", - "matrix_pins": { - "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2"], - "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] - }, - "diode_direction": "ROW2COL", - "encoder": { - "rotary": [ - {"pin_a": "B14", "pin_b": "B13", "resolution": 4} - ] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 2, "y": 0}, - {"matrix": [0, 2], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 4], "x": 5, "y": 0}, - - {"matrix": [0, 5], "x": 6.5, "y": 0}, - {"matrix": [0, 6], "x": 7.5, "y": 0}, - {"matrix": [0, 7], "x": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - - {"matrix": [0, 9], "x": 11, "y": 0}, - {"matrix": [0, 10], "x": 12, "y": 0}, - {"matrix": [0, 11], "x": 13, "y": 0}, - {"matrix": [0, 12], "x": 14, "y": 0}, - - {"matrix": [0, 13], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "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}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 14, "y": 1.25}, - - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - - {"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, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.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}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, - - {"matrix": [3, 15], "x": 16.25, "y": 2.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 2.25, "y": 4.25}, - {"matrix": [4, 2], "x": 3.25, "y": 4.25}, - {"matrix": [4, 3], "x": 4.25, "y": 4.25}, - {"matrix": [4, 4], "x": 5.25, "y": 4.25}, - {"matrix": [4, 5], "x": 6.25, "y": 4.25}, - {"matrix": [4, 6], "x": 7.25, "y": 4.25}, - {"matrix": [4, 7], "x": 8.25, "y": 4.25}, - {"matrix": [4, 8], "x": 9.25, "y": 4.25}, - {"matrix": [4, 9], "x": 10.25, "y": 4.25}, - {"matrix": [4, 10], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, - - {"matrix": [4, 14], "x": 16.25, "y": 4.25}, - {"matrix": [4, 15], "x": 16.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [5, 10], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 11], "x": 13.75, "y": 5.25, "w": 1.25}, - - {"matrix": [5, 13], "x": 15.25, "y": 5.25}, - {"matrix": [5, 14], "x": 16.25, "y": 5.25}, - {"matrix": [5, 15], "x": 17.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/hfdkb/keyboard_sw/k83/readme.md b/keyboards/hfdkb/keyboard_sw/k83/readme.md deleted file mode 100644 index 871e9b89364..00000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# k83 - -A customizable 75% encoder keyboard. - -* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) -* Hardware Supported: k83 - -Make example for this keyboard (after setting up your build environment): - - make hfdkb/keyboard_sw/k83:default - -Flashing example for this keyboard: - - make hfdkb/keyboard_sw/k83:default:flash - -**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard. - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/hhkb/ansi/config.h b/keyboards/hhkb/ansi/config.h index 723fe29479a..7fe9f1f9dbc 100644 --- a/keyboards/hhkb/ansi/config.h +++ b/keyboards/hhkb/ansi/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . #define MATRIX_ROWS 8 #define MATRIX_COLS 8 -#define TAPPING_TERM 200 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/hhkb/jp/config.h b/keyboards/hhkb/jp/config.h index 9de64724b78..88b9c9b6cc8 100644 --- a/keyboards/hhkb/jp/config.h +++ b/keyboards/hhkb/jp/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . #define MATRIX_ROWS 16 #define MATRIX_COLS 8 -#define TAPPING_TERM 200 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/hhkb/yang/info.json b/keyboards/hhkb/yang/info.json index bfff105e907..24cd750e09c 100644 --- a/keyboards/hhkb/yang/info.json +++ b/keyboards/hhkb/yang/info.json @@ -11,6 +11,9 @@ "indicators": { "caps_lock": "F4" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "processor": "atmega32u4", "bootloader": "lufa-ms", "debounce": 0, diff --git a/keyboards/hhkb/yang/rules.mk b/keyboards/hhkb/yang/rules.mk index 71ec705822b..99f77d0c162 100644 --- a/keyboards/hhkb/yang/rules.mk +++ b/keyboards/hhkb/yang/rules.mk @@ -11,9 +11,6 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # USB Nkey Rollover -# Disable bluetooth until the UART code is merged -BLUETOOTH_DRIVER = BluefruitLE - # Custom matrix file for the HHKB CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/hidtech/bastyl/config.h b/keyboards/hidtech/bastyl/config.h index 48ac76c74b7..a033888b412 100644 --- a/keyboards/hidtech/bastyl/config.h +++ b/keyboards/hidtech/bastyl/config.h @@ -18,19 +18,6 @@ #pragma once -#define RGBLED_NUM 38 -#define RGBLIGHT_SPLIT -#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 LOCKING_SUPPORT_ENABLE #define LOCKING_RESYNC_ENABLE #define MASTER_RIGHT diff --git a/keyboards/hidtech/bastyl/info.json b/keyboards/hidtech/bastyl/info.json index 02b8854e360..ee43e96bdd0 100644 --- a/keyboards/hidtech/bastyl/info.json +++ b/keyboards/hidtech/bastyl/info.json @@ -19,6 +19,22 @@ "ws2812": { "pin": "D2" }, + "rgblight": { + "led_count": 38, + "split": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c b/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c index 8dbb3113091..e068f81a73f 100644 --- a/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c +++ b/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c @@ -33,15 +33,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //-------------------------------// KC_LBRC, TD(LOCKS), TD(LAYERS), KC_RBRC), - [SYMB] = LAYOUT(_______, XP(IEX, SS1), X(SS2), X(SS3), XP(CUR, GBP), X(EUR), X(V14), X(V12), X(V34), XP(LSQ, LDQ), XP(RSQ, RDQ), _______, + [SYMB] = LAYOUT(_______, UP(IEX, SS1), UM(SS2), UM(SS3), UP(CUR, GBP), UM(EUR), UM(V14), UM(V12), UM(V34), UP(LSQ, LDQ), UP(RSQ, RDQ), _______, //-------------------------------// - _______, XP(A_D, AXD), XP(A_R, ACR), XP(E_A, ECA), XP(REG, CPL), X(THR), XP(U_D, UCD), XP(U_A, UCA), XP(I_A, ICA), XP(O_A, OCA), XP(O_D, OCD), _______, + _______, UP(A_D, AXD), UP(A_R, ACR), UP(E_A, ECA), UP(REG, CPL), UM(THR), UP(U_D, UCD), UP(U_A, UCA), UP(I_A, ICA), UP(O_A, OCA), UP(O_D, OCD), _______, //-------------------------------// - _______, XP(A_A, ACA), XP(S_S, SEC), XP(ETH, ETC), X(EMD), _______, _______, _______, _______, XP(O_S, OCS), XP(PLC, DEG), XP(ACT, DIS), + _______, UP(A_A, ACA), UP(S_S, SEC), UP(ETH, ETC), UM(EMD), _______, _______, _______, _______, UP(O_S, OCS), UP(PLC, DEG), UP(ACT, DIS), //-------------------------------// - _______, XP(AEL, AEC), _______, XP(CPR, CNT), _______, _______, _______, _______, XP(N_T, NCT), X(MCR), XP(C_C, CCC), _______, + _______, UP(AEL, AEC), _______, UP(CPR, CNT), _______, _______, _______, _______, UP(N_T, NCT), UM(MCR), UP(C_C, CCC), _______, //-------------------------------// - X(IQM), XP(NOT, BKB), _______, _______, X(YEN), XP(MLT, DIV), + UM(IQM), UP(NOT, BKB), _______, _______, UM(YEN), UP(MLT, DIV), //-------------------------------// _______, _______, _______, _______), diff --git a/keyboards/hifumi/config.h b/keyboards/hifumi/config.h deleted file mode 100644 index bcf040c6cb1..00000000000 --- a/keyboards/hifumi/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2019 zk-phi - -This 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 - -/* ws2812 RGB LED */ -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 5 -#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/hifumi/info.json b/keyboards/hifumi/info.json index a4aeccf83ad..6c2f53aab83 100644 --- a/keyboards/hifumi/info.json +++ b/keyboards/hifumi/info.json @@ -13,6 +13,22 @@ "rows": ["D4", "C6"] }, "diode_direction": "COL2ROW", + "rgblight": { + "hue_steps": 5, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/hillside/46/0_1/config.h b/keyboards/hillside/46/0_1/config.h index 81736ff1759..20c4deca40c 100644 --- a/keyboards/hillside/46/0_1/config.h +++ b/keyboards/hillside/46/0_1/config.h @@ -8,20 +8,18 @@ #define SPLIT_HAND_MATRIX_GRID B5, F6 #define MATRIX_MASKED -#define RGBLIGHT_SLEEP - /* Haptic hardware */ // The Pimoroni is the likely hardware, for which these settings work -#define FB_ERM_LRA 1 -#define FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 1 +#define DRV2605L_FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* Please refer to your datasheet for optimal setting for your specific motor.*/ -#define RATED_VOLTAGE 2 -#define V_PEAK 2.8 -#define V_RMS 2.0 -#define F_LRA 205 /* resonance freq */ +#define DRV2605L_RATED_VOLTAGE 2 +#define DRV2605L_V_PEAK 2.8 +#define DRV2605L_V_RMS 2.0 +#define DRV2605L_F_LRA 205 /* resonance freq */ /* Haptic waveforms */ // Two mild waveforms -#define DRV_GREETING alert_750ms -#define DRV_MODE_DEFAULT sharp_tick3_60 +#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_SHARP_TICK_3_60 diff --git a/keyboards/hillside/46/0_1/info.json b/keyboards/hillside/46/0_1/info.json index 8b5fa112f7a..7512debabdf 100644 --- a/keyboards/hillside/46/0_1/info.json +++ b/keyboards/hillside/46/0_1/info.json @@ -36,7 +36,8 @@ "split": true, "hue_steps": 8, "saturation_steps": 8, - "brightness_steps": 8 + "brightness_steps": 8, + "sleep": true }, "ws2812": { "pin": "D3" diff --git a/keyboards/hillside/46/0_1/rules.mk b/keyboards/hillside/46/0_1/rules.mk index 2501147ea82..3c12e55b581 100644 --- a/keyboards/hillside/46/0_1/rules.mk +++ b/keyboards/hillside/46/0_1/rules.mk @@ -5,4 +5,4 @@ LTO_ENABLE = yes # Use link time optimization for smaller firmware # enable it and set its driver here or in your keymap folder # The Pimoroni board's driver is DRV2605L # HAPTIC_ENABLE = yes # Enable haptic driver -# HAPTIC_DRIVER = DRV2605L +# HAPTIC_DRIVER = drv2605l diff --git a/keyboards/hillside/48/0_1/config.h b/keyboards/hillside/48/0_1/config.h index 72f1a842c77..150573c1655 100644 --- a/keyboards/hillside/48/0_1/config.h +++ b/keyboards/hillside/48/0_1/config.h @@ -3,20 +3,18 @@ #pragma once -#define RGBLIGHT_SLEEP - /* Haptic hardware */ // The Pimoroni is the likely hardware, for which these settings work -#define FB_ERM_LRA 1 -#define FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 1 +#define DRV2605L_FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* Please refer to your datasheet for optimal setting for your specific motor.*/ -#define RATED_VOLTAGE 2 -#define V_PEAK 2.8 -#define V_RMS 2.0 -#define F_LRA 205 /* resonance freq */ +#define DRV2605L_RATED_VOLTAGE 2 +#define DRV2605L_V_PEAK 2.8 +#define DRV2605L_V_RMS 2.0 +#define DRV2605L_F_LRA 205 /* resonance freq */ /* Haptic waveforms */ // Two mild waveforms -#define DRV_GREETING alert_750ms -#define DRV_MODE_DEFAULT sharp_tick3_60 +#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_SHARP_TICK_3_60 diff --git a/keyboards/hillside/48/0_1/info.json b/keyboards/hillside/48/0_1/info.json index 19e38259d37..2159d1ca687 100644 --- a/keyboards/hillside/48/0_1/info.json +++ b/keyboards/hillside/48/0_1/info.json @@ -37,7 +37,8 @@ "split": true, "hue_steps": 8, "saturation_steps": 8, - "brightness_steps": 8 + "brightness_steps": 8, + "sleep": true }, "ws2812": { "pin": "D3" diff --git a/keyboards/hillside/48/0_1/rules.mk b/keyboards/hillside/48/0_1/rules.mk index 2501147ea82..3c12e55b581 100644 --- a/keyboards/hillside/48/0_1/rules.mk +++ b/keyboards/hillside/48/0_1/rules.mk @@ -5,4 +5,4 @@ LTO_ENABLE = yes # Use link time optimization for smaller firmware # enable it and set its driver here or in your keymap folder # The Pimoroni board's driver is DRV2605L # HAPTIC_ENABLE = yes # Enable haptic driver -# HAPTIC_DRIVER = DRV2605L +# HAPTIC_DRIVER = drv2605l diff --git a/keyboards/hillside/52/0_1/config.h b/keyboards/hillside/52/0_1/config.h index 81736ff1759..20c4deca40c 100644 --- a/keyboards/hillside/52/0_1/config.h +++ b/keyboards/hillside/52/0_1/config.h @@ -8,20 +8,18 @@ #define SPLIT_HAND_MATRIX_GRID B5, F6 #define MATRIX_MASKED -#define RGBLIGHT_SLEEP - /* Haptic hardware */ // The Pimoroni is the likely hardware, for which these settings work -#define FB_ERM_LRA 1 -#define FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 1 +#define DRV2605L_FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* Please refer to your datasheet for optimal setting for your specific motor.*/ -#define RATED_VOLTAGE 2 -#define V_PEAK 2.8 -#define V_RMS 2.0 -#define F_LRA 205 /* resonance freq */ +#define DRV2605L_RATED_VOLTAGE 2 +#define DRV2605L_V_PEAK 2.8 +#define DRV2605L_V_RMS 2.0 +#define DRV2605L_F_LRA 205 /* resonance freq */ /* Haptic waveforms */ // Two mild waveforms -#define DRV_GREETING alert_750ms -#define DRV_MODE_DEFAULT sharp_tick3_60 +#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_SHARP_TICK_3_60 diff --git a/keyboards/hillside/52/0_1/info.json b/keyboards/hillside/52/0_1/info.json index 8584ee15124..63bbf3b2577 100644 --- a/keyboards/hillside/52/0_1/info.json +++ b/keyboards/hillside/52/0_1/info.json @@ -36,7 +36,8 @@ "split": true, "hue_steps": 8, "saturation_steps": 8, - "brightness_steps": 8 + "brightness_steps": 8, + "sleep": true }, "ws2812": { "pin": "D3" diff --git a/keyboards/hillside/52/0_1/rules.mk b/keyboards/hillside/52/0_1/rules.mk index 2501147ea82..3c12e55b581 100644 --- a/keyboards/hillside/52/0_1/rules.mk +++ b/keyboards/hillside/52/0_1/rules.mk @@ -5,4 +5,4 @@ LTO_ENABLE = yes # Use link time optimization for smaller firmware # enable it and set its driver here or in your keymap folder # The Pimoroni board's driver is DRV2605L # HAPTIC_ENABLE = yes # Enable haptic driver -# HAPTIC_DRIVER = DRV2605L +# HAPTIC_DRIVER = drv2605l diff --git a/keyboards/hineybush/h08_ocelot/config.h b/keyboards/hineybush/h08_ocelot/config.h index e275779f4c7..474c1d6701d 100644 --- a/keyboards/hineybush/h08_ocelot/config.h +++ b/keyboards/hineybush/h08_ocelot/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 7 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/h08_ocelot/info.json b/keyboards/hineybush/h08_ocelot/info.json index addd71a5a8c..989e23e7574 100644 --- a/keyboards/hineybush/h08_ocelot/info.json +++ b/keyboards/hineybush/h08_ocelot/info.json @@ -17,7 +17,23 @@ "pin": "F1" }, "rgblight": { - "max_brightness": 220 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "max_brightness": 220, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/hineybush/h60/config.h b/keyboards/hineybush/h60/config.h index a4d338b500d..994b108d8e8 100644 --- a/keyboards/hineybush/h60/config.h +++ b/keyboards/hineybush/h60/config.h @@ -17,33 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /*== all animations 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 -// /*== or choose 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/h60/info.json b/keyboards/hineybush/h60/info.json index 3069b4a4b37..59820b17979 100644 --- a/keyboards/hineybush/h60/info.json +++ b/keyboards/hineybush/h60/info.json @@ -17,6 +17,24 @@ "pin": "B7", "levels": 12 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/hineybush/h65/config.h b/keyboards/hineybush/h65/config.h index ae0ecc61cf3..474c1d6701d 100644 --- a/keyboards/hineybush/h65/config.h +++ b/keyboards/hineybush/h65/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 17 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/h65/info.json b/keyboards/hineybush/h65/info.json index dba8541b991..f6fd12edaa0 100644 --- a/keyboards/hineybush/h65/info.json +++ b/keyboards/hineybush/h65/info.json @@ -20,6 +20,24 @@ "indicators": { "caps_lock": "E6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 17, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/hineybush/h65_hotswap/config.h b/keyboards/hineybush/h65_hotswap/config.h index ae0ecc61cf3..474c1d6701d 100644 --- a/keyboards/hineybush/h65_hotswap/config.h +++ b/keyboards/hineybush/h65_hotswap/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 17 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/h65_hotswap/info.json b/keyboards/hineybush/h65_hotswap/info.json index a4c09e02da3..63b78036171 100644 --- a/keyboards/hineybush/h65_hotswap/info.json +++ b/keyboards/hineybush/h65_hotswap/info.json @@ -20,6 +20,24 @@ "indicators": { "caps_lock": "E6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 17, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/hineybush/h660s/config.h b/keyboards/hineybush/h660s/config.h index e4d5a87a008..373b97179ea 100644 --- a/keyboards/hineybush/h660s/config.h +++ b/keyboards/hineybush/h660s/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/h660s/info.json b/keyboards/hineybush/h660s/info.json index be6e28b2618..b99ab329751 100644 --- a/keyboards/hineybush/h660s/info.json +++ b/keyboards/hineybush/h660s/info.json @@ -17,6 +17,20 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/hineybush/h75_singa/config.h b/keyboards/hineybush/h75_singa/config.h index 760e5fdd706..2e3e4304220 100644 --- a/keyboards/hineybush/h75_singa/config.h +++ b/keyboards/hineybush/h75_singa/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 22 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/h75_singa/info.json b/keyboards/hineybush/h75_singa/info.json index f4a94774f4c..22a04e509da 100644 --- a/keyboards/hineybush/h75_singa/info.json +++ b/keyboards/hineybush/h75_singa/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/hineybush/h87a/config.h b/keyboards/hineybush/h87a/config.h index 26b995ddd0f..68b99c1a55d 100644 --- a/keyboards/hineybush/h87a/config.h +++ b/keyboards/hineybush/h87a/config.h @@ -21,19 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep diff --git a/keyboards/hineybush/h87a/info.json b/keyboards/hineybush/h87a/info.json index ee067e1f321..9b2eb97e7c9 100644 --- a/keyboards/hineybush/h87a/info.json +++ b/keyboards/hineybush/h87a/info.json @@ -20,7 +20,23 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c b/keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c index 76fd4abae93..6d064455b36 100644 --- a/keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c +++ b/keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c @@ -278,15 +278,16 @@ void led_init_ports(void) { DDRE |= (1<<6); // OUT } -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { DDRD |= (1 << 5); PORTD &= ~(1 << 5); } else { DDRD &= ~(1 << 5); PORTD &= ~(1 << 5); } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { DDRE |= (1 << 6); PORTE &= ~(1 << 6); } else { DDRE &= ~(1 << 6); PORTE &= ~(1 << 6); } + return false; } diff --git a/keyboards/hineybush/h88/config.h b/keyboards/hineybush/h88/config.h index 0eb28d50c1e..8099d5a0e41 100644 --- a/keyboards/hineybush/h88/config.h +++ b/keyboards/hineybush/h88/config.h @@ -21,19 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep diff --git a/keyboards/hineybush/h88/info.json b/keyboards/hineybush/h88/info.json index 7c78582c769..dfd7e8211c8 100644 --- a/keyboards/hineybush/h88/info.json +++ b/keyboards/hineybush/h88/info.json @@ -16,6 +16,24 @@ "backlight": { "pin": "B7" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/hineybush/hbcp/config.h b/keyboards/hineybush/hbcp/config.h index ee8f76aafde..f76948d482b 100644 --- a/keyboards/hineybush/hbcp/config.h +++ b/keyboards/hineybush/hbcp/config.h @@ -35,25 +35,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { B1, B6, D0, C7, C6, C5 } #define MATRIX_COL_PINS { F0, F1, F2, F3, F4, F5, F6, F7, A0, A1, A2, A3, A4, A5, B5, B4, B3, B2 } -//EITHERWAY is supported through a custom matrix -//#define DIODE_DIRECTION EITHERWAY - - #define RGBLED_NUM 27 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/hbcp/hbcp.c b/keyboards/hineybush/hbcp/hbcp.c index d4601cd2e3c..7d0f5ecf730 100644 --- a/keyboards/hineybush/hbcp/hbcp.c +++ b/keyboards/hineybush/hbcp/hbcp.c @@ -45,32 +45,40 @@ void eeconfig_init_kb(void) { // EEPROM is getting reset! #ifdef RGBLIGHT_ENABLE -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - sethsv_raw(HSV_CAPS, (LED_TYPE *)&led[0]); - } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[0]); - } - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - sethsv_raw(HSV_NLCK, (LED_TYPE *)&led[1]); - } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[1]); - } - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - sethsv_raw(HSV_SCRL, (LED_TYPE *)&led[2]); - } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[2]); +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + if (led_state.caps_lock) { + sethsv_raw(HSV_CAPS, (LED_TYPE *)&led[0]); + } else { + sethsv(HSV_BLACK, (LED_TYPE *)&led[0]); + } + if (led_state.num_lock) { + sethsv_raw(HSV_NLCK, (LED_TYPE *)&led[1]); + } else { + sethsv(HSV_BLACK, (LED_TYPE *)&led[1]); + } + if (led_state.scroll_lock) { + sethsv_raw(HSV_SCRL, (LED_TYPE *)&led[2]); + } else { + sethsv(HSV_BLACK, (LED_TYPE *)&led[2]); + } + rgblight_set(); } - rgblight_set(); + return false; } __attribute__ ((weak)) void keyboard_post_init_user(void) { rgblight_set_effect_range(3, RGBLED_NUM-3); - led_set_user(_BV(USB_LED_CAPS_LOCK)|_BV(USB_LED_NUM_LOCK)|_BV(USB_LED_SCROLL_LOCK)); + led_t led_state = { + .caps_lock = true, + .num_lock = true, + .scroll_lock = true + }; + led_update_kb(led_state); wait_ms(300); - led_set_user(0); + led_update_kb((led_t){0}); } __attribute__ ((weak)) diff --git a/keyboards/hineybush/hbcp/info.json b/keyboards/hineybush/hbcp/info.json index 45d52629ae6..ca92b3f4a52 100644 --- a/keyboards/hineybush/hbcp/info.json +++ b/keyboards/hineybush/hbcp/info.json @@ -16,7 +16,23 @@ "pin": "B0" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 27, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "at90usb1286", "bootloader": "atmel-dfu", diff --git a/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c b/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c index 5f1d7700f60..26a67fe7ca8 100644 --- a/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c +++ b/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c @@ -77,23 +77,24 @@ void matrix_scan_user(void) { #ifdef RGBLIGHT_ENABLE // The first three LEDs are used as indicators for CAPS_LOCK, NUM_LOCK and SCROLL_LOCK. -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { sethsv_raw(HSV_SOFT_RED, (LED_TYPE *)&led[0]); } else { sethsv(HSV_BLACK, (LED_TYPE *)&led[0]); } - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { sethsv_raw(HSV_WARM_WHITE, (LED_TYPE *)&led[1]); } else { sethsv(HSV_BLACK, (LED_TYPE *)&led[1]); } - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { sethsv_raw(HSV_SOFT_BLUE, (LED_TYPE *)&led[2]); } else { sethsv(HSV_BLACK, (LED_TYPE *)&led[2]); } rgblight_set(); + return false; } #endif diff --git a/keyboards/hineybush/physix/config.h b/keyboards/hineybush/physix/config.h index 848c217499a..2e3e4304220 100644 --- a/keyboards/hineybush/physix/config.h +++ b/keyboards/hineybush/physix/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 26 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/physix/info.json b/keyboards/hineybush/physix/info.json index 191621ff47d..60d86fbebb7 100644 --- a/keyboards/hineybush/physix/info.json +++ b/keyboards/hineybush/physix/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 26, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/hineybush/sm68/config.h b/keyboards/hineybush/sm68/config.h index 98b32f8c37a..2e3e4304220 100644 --- a/keyboards/hineybush/sm68/config.h +++ b/keyboards/hineybush/sm68/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hineybush/sm68/info.json b/keyboards/hineybush/sm68/info.json index 6029c4faf95..234c595d481 100644 --- a/keyboards/hineybush/sm68/info.json +++ b/keyboards/hineybush/sm68/info.json @@ -13,6 +13,19 @@ "rows": ["B2", "B1", "B0", "D4", "D1"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/hnahkb/stella/config.h b/keyboards/hnahkb/stella/config.h index 3589952afbd..9f9d81bea91 100644 --- a/keyboards/hnahkb/stella/config.h +++ b/keyboards/hnahkb/stella/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 14 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hnahkb/stella/info.json b/keyboards/hnahkb/stella/info.json index 0c002b22c4d..98f8f721f30 100644 --- a/keyboards/hnahkb/stella/info.json +++ b/keyboards/hnahkb/stella/info.json @@ -22,6 +22,9 @@ "scroll_lock": "B7", "on_state": 0 }, + "rgblight": { + "led_count": 14, + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/hnahkb/vn66/config.h b/keyboards/hnahkb/vn66/config.h index 61b2d4967b5..0369461b671 100644 --- a/keyboards/hnahkb/vn66/config.h +++ b/keyboards/hnahkb/vn66/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hnahkb/vn66/info.json b/keyboards/hnahkb/vn66/info.json index aca01048105..cef3127be95 100644 --- a/keyboards/hnahkb/vn66/info.json +++ b/keyboards/hnahkb/vn66/info.json @@ -27,6 +27,24 @@ "caps_lock": "E6", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/holyswitch/lightweight65/info.json b/keyboards/holyswitch/lightweight65/info.json index 438fb5fe897..a6252d27b5e 100644 --- a/keyboards/holyswitch/lightweight65/info.json +++ b/keyboards/holyswitch/lightweight65/info.json @@ -23,8 +23,14 @@ "command": false, "nkro": true, }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, + "community_layouts": [ + "65_ansi_blocker" + ], "layouts": { - "LAYOUT": { + "LAYOUT_65_ansi_blocker": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c b/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c index bac1c8d4bca..a5e4a91ea81 100644 --- a/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c +++ b/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c @@ -17,14 +17,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_65_ansi_blocker( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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( + [1] = LAYOUT_65_ansi_blocker( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/holyswitch/lightweight65/keymaps/via/keymap.c b/keyboards/holyswitch/lightweight65/keymaps/via/keymap.c index bac1c8d4bca..a5e4a91ea81 100644 --- a/keyboards/holyswitch/lightweight65/keymaps/via/keymap.c +++ b/keyboards/holyswitch/lightweight65/keymaps/via/keymap.c @@ -17,14 +17,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_65_ansi_blocker( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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( + [1] = LAYOUT_65_ansi_blocker( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/horrortroll/caticorn/rev1/hotswap/info.json b/keyboards/horrortroll/caticorn/rev1/hotswap/info.json index d53b92ee8fb..ecd3c8a0433 100644 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/info.json +++ b/keyboards/horrortroll/caticorn/rev1/hotswap/info.json @@ -1,20 +1,27 @@ { "keyboard_name": "Caticorn Hotswap", "manufacturer": "HorrorTroll", - "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", "pid": "0x6002", "device_version": "0.0.1" }, + "diode_direction": "COL2ROW", "matrix_pins": { "cols": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP20", "GP21", "GP16", "GP17", "GP18", "GP19", "GP15", "GP14", "GP13", "GP10", "GP9"], "rows": ["GP7", "GP0", "GP8", "GP25", "GP11", "GP12"] }, - "diode_direction": "COL2ROW", "processor": "RP2040", "bootloader": "rp2040", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true + }, "community_layouts": ["tkl_f13_ansi"], "layouts": { "LAYOUT_tkl_f13_ansi": { diff --git a/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/default/keymap.c b/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/default/keymap.c index 81ba8347ecb..06819cffd11 100644 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/default/keymap.c +++ b/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2022 HorrorTroll +/* Copyright 2023 HorrorTroll * * This 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,8 +26,6 @@ enum layer_names { _FN, }; -// enum layer_keycodes { }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -86,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │ │ │ Fn │ │ ││ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ [_FN] = LAYOUT_tkl_f13_ansi( QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, KC_MYCM, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/config.h b/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/config.h deleted file mode 100644 index 4a9ae9bdc28..00000000000 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2022 HorrorTroll - * - * This 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 2 diff --git a/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/keymap.c b/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/keymap.c index d98822de17e..06819cffd11 100644 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/keymap.c +++ b/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2022 HorrorTroll +/* Copyright 2023 HorrorTroll * * This 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,8 +26,6 @@ enum layer_names { _FN, }; -// enum layer_keycodes { }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* diff --git a/keyboards/horrortroll/caticorn/rev1/hotswap/readme.md b/keyboards/horrortroll/caticorn/rev1/hotswap/readme.md index b9023e8c716..167fbe4c4aa 100644 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/readme.md +++ b/keyboards/horrortroll/caticorn/rev1/hotswap/readme.md @@ -1,10 +1,12 @@ # Caticorn Hotswap (Rev 1) +![Caticorn](https://i.imgur.com/DPbDtwKh.png) + A TKL keyboard, which controlled by an RP2040 chipset. * Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll) * Hardware Supported: RP2040 -* Hardware Availability: Prototype PCB +* Hardware Availability: Private prototype (only 5 PCB available) Make example for this keyboard (after setting up your build environment): @@ -21,5 +23,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard -* **Physical reset button**: Press and hold the button on the back of the PCB, then plug USB onto PC +* **Physical reset button**: Press and hold the button on the back of the PCB, then plug in the keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/horrortroll/caticorn/rev1/hotswap/rules.mk b/keyboards/horrortroll/caticorn/rev1/hotswap/rules.mk index f8fe1f7dbb3..6e7633bfe01 100644 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/rules.mk +++ b/keyboards/horrortroll/caticorn/rev1/hotswap/rules.mk @@ -1,16 +1 @@ -# 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 - -# EEPROM driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = rp2040_flash \ No newline at end of file +# This file intentionally left blank diff --git a/keyboards/horrortroll/caticorn/rev1/solder/info.json b/keyboards/horrortroll/caticorn/rev1/solder/info.json index 30fb0f0eee9..d14278f9894 100644 --- a/keyboards/horrortroll/caticorn/rev1/solder/info.json +++ b/keyboards/horrortroll/caticorn/rev1/solder/info.json @@ -1,20 +1,27 @@ { "keyboard_name": "Caticorn Solder", "manufacturer": "HorrorTroll", - "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", "pid": "0x6001", "device_version": "0.0.1" }, + "diode_direction": "COL2ROW", "matrix_pins": { "cols": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP20", "GP21", "GP16", "GP17", "GP18", "GP19", "GP15", "GP14", "GP13", "GP10", "GP9"], "rows": ["GP7", "GP0", "GP8", "GP25", "GP11", "GP12"] }, - "diode_direction": "COL2ROW", "processor": "RP2040", "bootloader": "rp2040", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true + }, "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift"], "layouts": { "LAYOUT_all": { diff --git a/keyboards/horrortroll/caticorn/rev1/solder/keymaps/default/keymap.c b/keyboards/horrortroll/caticorn/rev1/solder/keymaps/default/keymap.c index 5723984bf44..9bb6640f2f8 100644 --- a/keyboards/horrortroll/caticorn/rev1/solder/keymaps/default/keymap.c +++ b/keyboards/horrortroll/caticorn/rev1/solder/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2022 HorrorTroll +/* Copyright 2023 HorrorTroll * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,231 +22,75 @@ // entirely and just use numbers. enum layer_names { - _F12, - _F13, - _F12_7U, - _F13_7U, + _BASE, _FN, }; -enum layer_keycodes { - TOG_F12 = SAFE_RANGE, //Enable default layer for F12 layout - TOG_F13, //Enable default layer for F13 layout - F12_TGN, //Enable default layer for F12 Tsangan layout - F13_TGN, //Enable default layer for F13 Tsangan layout -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PSc│Scr│Pse│ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ¥ │Bks││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 │ ; │ ' │ Enter │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ Fn│ │ ↑ │ - ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ - │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ GUI│RCrl││ ← │ ↓ │ → │ - └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ | │ ││ │ │ │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ - │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | ││ │ │ │ - ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ - │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │ │ │ │ - ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ - │ │ │ │ │ │ │ │ ││ │ │ │ - └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ -*/ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_F12] = 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_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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - /* ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ¥ │Bks││Ins│Hom│PgU│ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + │ ` │ 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 │ ; │ ' │ Enter │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ Fn│ │ ↑ │ - ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RShift │ │ ↑ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ GUI│RCrl││ ← │ ↓ │ → │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ | │ ││ │ │ │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ ││ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | ││ │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │ │ │ │ - ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RShift │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ │ │ │ │ │ │ │ │ ││ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_F13] = 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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - -/* - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PSc│Scr│Pse│ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ¥ │Bks││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 │ ; │ ' │ Enter │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ Fn│ │ ↑ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴───┼───┴─┬───┬┴───┤┌───┼───┼───┐ - │LCrl │GUI│LAlt │ Space │RAlt │ Fn│RCrl││ ← │ ↓ │ → │ - └─────┴───┴─────┴────────────────────────────┴─────┴───┴────┘└───┴───┴───┘ - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ | │ ││ │ │ │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ - │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | ││ │ │ │ - ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ - │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │ │ │ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴───┼───┴─┬───┬┴───┤┌───┼───┼───┐ - │ │ │ │ │ │ │ ││ │ │ │ - └─────┴───┴─────┴────────────────────────────┴─────┴───┴────┘└───┴───┴───┘ -*/ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_F12_7U] = 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_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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - -/* - ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ - │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│ - └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ¥ │Bks││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 │ ; │ ' │ Enter │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ Fn│ │ ↑ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴───┼───┴─┬───┬┴───┤┌───┼───┼───┐ - │LCrl │GUI│LAlt │ Space │RAlt │ Fn│RCrl││ ← │ ↓ │ → │ - └─────┴───┴─────┴────────────────────────────┴─────┴───┴────┘└───┴───┴───┘ - ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ - │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ │ │ - └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ | │ ││ │ │ │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ - │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | ││ │ │ │ - ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ - │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │ │ │ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴───┼───┴─┬───┬┴───┤┌───┼───┼───┐ - │ │ │ │ │ │ │ ││ │ │ │ - └─────┴───┴─────┴────────────────────────────┴─────┴───┴────┘└───┴───┴───┘ -*/ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_F13_7U] = 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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_BASE] = 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), /* ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ - │Rst││ │MeP│VoD│VoU││Mut│Stp│Prv│Ply││Nxt│Mai│Hom│Cal││Sch││ │ │ │ + │Rst││MeP│VoD│VoU││Mut│Stp│Prv│Ply││Nxt│Mai│Hom│Cal│Sch││ ││ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │NKO│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + │NKO│ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ │ │ │ │ │ │ Fn │ │ ││ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_FN] = LAYOUT_all( - QK_BOOT, _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, - NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TOG_F12, TOG_F13, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, F12_TGN, F13_TGN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN] = LAYOUT_tkl_f13_ansi( + QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, _______, + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TOG_F12: - if (record->event.pressed) { - set_single_persistent_default_layer(_F12); - } - return false; - case TOG_F13: - if (record->event.pressed) { - set_single_persistent_default_layer(_F13); - } - return false; - case F12_TGN: - if (record->event.pressed) { - set_single_persistent_default_layer(_F12_7U); - } - return false; - case F13_TGN: - if (record->event.pressed) { - set_single_persistent_default_layer(_F13_7U); - } - return false; - } - return true; -} diff --git a/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/config.h b/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/config.h deleted file mode 100644 index 8fe93c228c4..00000000000 --- a/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2022 HorrorTroll - * - * This 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 5 diff --git a/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/keymap.c b/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/keymap.c index 5723984bf44..a39ee0f6a8d 100644 --- a/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/keymap.c +++ b/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2022 HorrorTroll +/* Copyright 2023 HorrorTroll * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,16 +24,8 @@ enum layer_names { _F12, _F13, - _F12_7U, - _F13_7U, - _FN, -}; - -enum layer_keycodes { - TOG_F12 = SAFE_RANGE, //Enable default layer for F12 layout - TOG_F13, //Enable default layer for F13 layout - F12_TGN, //Enable default layer for F12 Tsangan layout - F13_TGN, //Enable default layer for F13 Tsangan layout + _FN1, + _FN2, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -68,14 +60,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │ │ │ │ │ ││ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ [_F12] = 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_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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + 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_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_INT3, 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_NUBS, 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), /* @@ -108,99 +100,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { │ │ │ │ │ │ │ │ ││ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ [_F13] = 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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - -/* - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PSc│Scr│Pse│ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ¥ │Bks││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 │ ; │ ' │ Enter │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ Fn│ │ ↑ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴───┼───┴─┬───┬┴───┤┌───┼───┼───┐ - │LCrl │GUI│LAlt │ Space │RAlt │ Fn│RCrl││ ← │ ↓ │ → │ - └─────┴───┴─────┴────────────────────────────┴─────┴───┴────┘└───┴───┴───┘ - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ | │ ││ │ │ │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ - │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | ││ │ │ │ - ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ - │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │ │ │ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴───┼───┴─┬───┬┴───┤┌───┼───┼───┐ - │ │ │ │ │ │ │ ││ │ │ │ - └─────┴───┴─────┴────────────────────────────┴─────┴───┴────┘└───┴───┴───┘ -*/ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_F12_7U] = 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_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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + 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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), /* ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ - │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│ - └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ¥ │Bks││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 │ ; │ ' │ Enter │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ Fn│ │ ↑ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴───┼───┴─┬───┬┴───┤┌───┼───┼───┐ - │LCrl │GUI│LAlt │ Space │RAlt │ Fn│RCrl││ ← │ ↓ │ → │ - └─────┴───┴─────┴────────────────────────────┴─────┴───┴────┘└───┴───┴───┘ - ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ - │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ │ │ + │Rst││ │MeP│VoD│VoU││Mut│Stp│Prv│Ply││Nxt│Mai│Hom│Cal││Sch││ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ | │ ││ │ │ │ + │NKO│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ - │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | ││ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ - │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │ │ │ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴───┼───┴─┬───┬┴───┤┌───┼───┼───┐ - │ │ │ │ │ │ │ ││ │ │ │ - └─────┴───┴─────┴────────────────────────────┴─────┴───┴────┘└───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + │ │ │ │ │ │ Fn │ │ ││ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_F13_7U] = 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_INT3, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_FN1] = LAYOUT_all( + QK_BOOT, _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, TO(_F13), + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ - │Rst││ │MeP│VoD│VoU││Mut│Stp│Prv│Ply││Nxt│Mai│Hom│Cal││Sch││ │ │ │ + │Rst││MeP│VoD│VoU│Mut││Stp│Prv│Ply│Nxt││Mai│Hom│Cal│Sch││ ││ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ │NKO│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ @@ -215,38 +153,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_FN] = LAYOUT_all( - QK_BOOT, _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, - NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TOG_F12, TOG_F13, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, F12_TGN, F13_TGN, _______, + [_FN2] = LAYOUT_all( + QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, TO(_F12), + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TOG_F12: - if (record->event.pressed) { - set_single_persistent_default_layer(_F12); - } - return false; - case TOG_F13: - if (record->event.pressed) { - set_single_persistent_default_layer(_F13); - } - return false; - case F12_TGN: - if (record->event.pressed) { - set_single_persistent_default_layer(_F12_7U); - } - return false; - case F13_TGN: - if (record->event.pressed) { - set_single_persistent_default_layer(_F13_7U); - } - return false; - } - return true; -} diff --git a/keyboards/horrortroll/caticorn/rev1/solder/readme.md b/keyboards/horrortroll/caticorn/rev1/solder/readme.md index e25e3bd5636..7fcb4cac5b6 100644 --- a/keyboards/horrortroll/caticorn/rev1/solder/readme.md +++ b/keyboards/horrortroll/caticorn/rev1/solder/readme.md @@ -1,10 +1,12 @@ # Caticorn Solder (Rev 1) +![Caticorn](https://i.imgur.com/g5aCKQUh.png) + A TKL keyboard, which controlled by an RP2040 chipset. * Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll) * Hardware Supported: RP2040 -* Hardware Availability: Prototype PCB +* Hardware Availability: Private prototype (only 5 PCB available) Make example for this keyboard (after setting up your build environment): @@ -21,5 +23,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard -* **Physical reset button**: Press and hold the button on the back of the PCB, then plug USB onto PC +* **Physical reset button**: Press and hold the button on the back of the PCB, then plug in the keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/horrortroll/caticorn/rev1/solder/rules.mk b/keyboards/horrortroll/caticorn/rev1/solder/rules.mk index 4f873e37383..6e7633bfe01 100644 --- a/keyboards/horrortroll/caticorn/rev1/solder/rules.mk +++ b/keyboards/horrortroll/caticorn/rev1/solder/rules.mk @@ -1,16 +1 @@ -# 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 - -# EEPROM driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = rp2040_flash +# This file intentionally left blank diff --git a/keyboards/horrortroll/chinese_pcb/black_e65/config.h b/keyboards/horrortroll/chinese_pcb/black_e65/config.h deleted file mode 100644 index de5824e2223..00000000000 --- a/keyboards/horrortroll/chinese_pcb/black_e65/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2022 HorrorTroll - * - * This 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 RGBLIGHT_ENABLE - /* RGB Lighting config */ - #define RGBLED_NUM 24 - - /* RGB Lighting effect */ - #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 -#endif diff --git a/keyboards/horrortroll/chinese_pcb/black_e65/info.json b/keyboards/horrortroll/chinese_pcb/black_e65/info.json index 2ceb38706f2..7ee7b8b3f88 100644 --- a/keyboards/horrortroll/chinese_pcb/black_e65/info.json +++ b/keyboards/horrortroll/chinese_pcb/black_e65/info.json @@ -21,6 +21,21 @@ "indicators": { "caps_lock": "C7" }, + "rgblight": { + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/info.json b/keyboards/horrortroll/chinese_pcb/devil68_pro/info.json index 192e9285fc8..7f8a448d077 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/info.json +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B1", "B0", "B5", "B6", "C6", "C7", "E2", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], diff --git a/keyboards/horrortroll/handwired_k552/info.json b/keyboards/horrortroll/handwired_k552/info.json index 6bdd2ee2fce..d137a03a526 100644 --- a/keyboards/horrortroll/handwired_k552/info.json +++ b/keyboards/horrortroll/handwired_k552/info.json @@ -13,7 +13,7 @@ "pin": "C14" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B15", "C6", "C7", "A3", "A1", "C3", "C1", "B14", "B13", "A9", "B3", "B4", "A0", "C11", "C4", "C0", "C2"], diff --git a/keyboards/horrortroll/handwired_k552/rules.mk b/keyboards/horrortroll/handwired_k552/rules.mk index 2d1a6e93ca4..fd1825af356 100644 --- a/keyboards/horrortroll/handwired_k552/rules.mk +++ b/keyboards/horrortroll/handwired_k552/rules.mk @@ -26,15 +26,11 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # RGB Matrix enabled RGB_MATRIX_ENABLE = yes # OLED enabled OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes # Wear-levelling driver diff --git a/keyboards/horrortroll/lemon40/config.h b/keyboards/horrortroll/lemon40/config.h deleted file mode 100644 index 90374871735..00000000000 --- a/keyboards/horrortroll/lemon40/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2022 HorrorTroll - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* RGB light config */ -#ifdef RGBLIGHT_ENABLE - - /* RGB light pin */ - #define RGBLED_NUM 15 - - /* RGB light effect */ - #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_ALTERNATING - #define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/horrortroll/lemon40/info.json b/keyboards/horrortroll/lemon40/info.json index f4b4c383c9a..7162e2c2c7a 100644 --- a/keyboards/horrortroll/lemon40/info.json +++ b/keyboards/horrortroll/lemon40/info.json @@ -9,6 +9,20 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "led_count": 15, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/horrortroll/lemon40/rules.mk b/keyboards/horrortroll/lemon40/rules.mk index 933affaa863..9ac59719d8e 100644 --- a/keyboards/horrortroll/lemon40/rules.mk +++ b/keyboards/horrortroll/lemon40/rules.mk @@ -15,7 +15,6 @@ AUDIO_ENABLE = no # Audio output # OLED enabled OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes # Additional thing to reduce compiled size diff --git a/keyboards/hotdox/config.h b/keyboards/hotdox/config.h index 4e801399da2..60d9fe62174 100644 --- a/keyboards/hotdox/config.h +++ b/keyboards/hotdox/config.h @@ -11,10 +11,6 @@ #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 1 - -#define TAPPING_TERM 200 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hotdox/info.json b/keyboards/hotdox/info.json index 51c0465899a..8184588e5d7 100644 --- a/keyboards/hotdox/info.json +++ b/keyboards/hotdox/info.json @@ -12,6 +12,9 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "tapping": { + "toggle": 1 + }, "community_layouts": ["ergodox"], "layouts": { "LAYOUT_ergodox": { diff --git a/keyboards/hotdox76v2/info.json b/keyboards/hotdox76v2/info.json index 007e7f23542..c66bd5eb8a5 100644 --- a/keyboards/hotdox76v2/info.json +++ b/keyboards/hotdox76v2/info.json @@ -19,7 +19,7 @@ "lto": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "E6"], diff --git a/keyboards/hp69/config.h b/keyboards/hp69/config.h index cb64849d068..02238ba6127 100644 --- a/keyboards/hp69/config.h +++ b/keyboards/hp69/config.h @@ -17,19 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 20 -#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_SLEEP - #define AUDIO_PIN A5 #define AUDIO_PIN_ALT A4 #define AUDIO_PIN_ALT_AS_NEGATIVE diff --git a/keyboards/hp69/info.json b/keyboards/hp69/info.json index 8484902252e..e852321e897 100644 --- a/keyboards/hp69/info.json +++ b/keyboards/hp69/info.json @@ -17,6 +17,22 @@ "caps_lock": "A6", "scroll_lock": "A7" }, + "rgblight": { + "led_count": 20, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A3" }, diff --git a/keyboards/hs60/v1/info.json b/keyboards/hs60/v1/info.json index 798d889bd78..c87ca19e3b8 100644 --- a/keyboards/hs60/v1/info.json +++ b/keyboards/hs60/v1/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["F1", "F4", "F5", "E6", "F0", "B7", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5"], diff --git a/keyboards/hub16/config.h b/keyboards/hub16/config.h index a628c11ddc1..68576635a8f 100755 --- a/keyboards/hub16/config.h +++ b/keyboards/hub16/config.h @@ -26,25 +26,6 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define RGBLED_NUM 11 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - -/* Tap Dance timing */ -#define TAPPING_TERM 200 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hub16/info.json b/keyboards/hub16/info.json index 4d8161d28d8..920b42feec8 100644 --- a/keyboards/hub16/info.json +++ b/keyboards/hub16/info.json @@ -14,6 +14,24 @@ {"pin_a": "B5", "pin_b": "B4"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 11, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/hub20/config.h b/keyboards/hub20/config.h index 5fc99ecbf50..a72b1389ad6 100644 --- a/keyboards/hub20/config.h +++ b/keyboards/hub20/config.h @@ -18,10 +18,7 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 27 - #define RGB_MATRIX_LED_COUNT 27 - #define RGBLED_NUM 27 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES @@ -75,12 +72,6 @@ along with this program. If not, see . // #define ENABLE_RGB_MATRIX_SOLID_SPLASH // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -/* Tap delay for tap vs hold */ -#define TAPPING_TERM 200 - -/* Slow down key press speed to ensure computer picks it up */ -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/hub20/info.json b/keyboards/hub20/info.json index 994b9405d9b..92aa3605a96 100644 --- a/keyboards/hub20/info.json +++ b/keyboards/hub20/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A6", "A7", "B7", "B6"], @@ -22,6 +22,12 @@ {"pin_a": "A8", "pin_b": "A9"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, + "rgblight": { + "led_count": 27 + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/hub20/rules.mk b/keyboards/hub20/rules.mk index 081ea9225a0..f559246b9e3 100644 --- a/keyboards/hub20/rules.mk +++ b/keyboards/hub20/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/hubble/config.h b/keyboards/hubble/config.h deleted file mode 100644 index ad5e772c749..00000000000 --- a/keyboards/hubble/config.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2022 Anton Chernenko (@ch3rny) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - - -/* rgb */ -#define RGBLED_NUM 7 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/hubble/info.json b/keyboards/hubble/info.json index b89647e5249..735cf4237df 100644 --- a/keyboards/hubble/info.json +++ b/keyboards/hubble/info.json @@ -14,6 +14,22 @@ "rgblight": true, "velocikey": true }, + "rgblight": { + "led_count": 7, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/ibm/model_m/modelh/config.h b/keyboards/ibm/model_m/modelh/config.h new file mode 100644 index 00000000000..ac95ccfe662 --- /dev/null +++ b/keyboards/ibm/model_m/modelh/config.h @@ -0,0 +1,45 @@ +/* +Copyright 2020 John Hawthorn + +This 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 + + +/* Model H customizations */ + +#define MODELH_STATUS_LED C13 + +/* 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 + + +/* + * 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/ibm/model_m/modelh/info.json b/keyboards/ibm/model_m/modelh/info.json new file mode 100644 index 00000000000..6d55d5c6bdd --- /dev/null +++ b/keyboards/ibm/model_m/modelh/info.json @@ -0,0 +1,282 @@ +{ + "manufacturer": "IBM", + "keyboard_name": "Model M", + "maintainer": "jhawthorn", + "bootloader": "stm32duino", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": false + }, + "indicators": { + "caps_lock": "B8", + "num_lock": "B7", + "scroll_lock": "B9", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4", "A3"], + "rows": ["B6", "B5", "B4", "A15", "B3", "A0", "A2", "A1"] + }, + "processor": "STM32F103", + "url": "modelh.club", + "usb": { + "device_version": "1.0.0", + "max_power": 100, + "pid": "0xB155", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_fullsize_ansi_wkl": { + "layout": [ + {"matrix": [0, 2], "x": 0, "y": 0}, + + {"matrix": [2, 3], "x": 2, "y": 0}, + {"matrix": [2, 4], "x": 3, "y": 0}, + {"matrix": [1, 4], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [1, 9], "x": 8.5, "y": 0}, + {"matrix": [2, 9], "x": 9.5, "y": 0}, + + {"matrix": [2, 6], "x": 11, "y": 0}, + {"matrix": [3, 6], "x": 12, "y": 0}, + {"matrix": [3, 11], "x": 13, "y": 0}, + {"matrix": [3, 12], "x": 14, "y": 0}, + + {"matrix": [3, 15], "x": 15.25, "y": 0}, + {"matrix": [4, 15], "x": 16.25, "y": 0}, + {"matrix": [6, 14], "x": 17.25, "y": 0}, + + {"matrix": [2, 2], "x": 0, "y": 1.5}, + {"matrix": [3, 2], "x": 1, "y": 1.5}, + {"matrix": [3, 3], "x": 2, "y": 1.5}, + {"matrix": [3, 4], "x": 3, "y": 1.5}, + {"matrix": [3, 5], "x": 4, "y": 1.5}, + {"matrix": [2, 5], "x": 5, "y": 1.5}, + {"matrix": [2, 7], "x": 6, "y": 1.5}, + {"matrix": [3, 7], "x": 7, "y": 1.5}, + {"matrix": [3, 8], "x": 8, "y": 1.5}, + {"matrix": [3, 9], "x": 9, "y": 1.5}, + {"matrix": [3, 10], "x": 10, "y": 1.5}, + {"matrix": [2, 10], "x": 11, "y": 1.5}, + {"matrix": [2, 8], "x": 12, "y": 1.5}, + {"matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [2, 12], "x": 15.25, "y": 1.5}, + {"matrix": [2, 14], "x": 16.25, "y": 1.5}, + {"matrix": [2, 13], "x": 17.25, "y": 1.5}, + + {"matrix": [6, 11], "x": 18.5, "y": 1.5}, + {"matrix": [6, 12], "x": 19.5, "y": 1.5}, + {"matrix": [6, 13], "x": 20.5, "y": 1.5}, + {"matrix": [7, 13], "x": 21.5, "y": 1.5}, + + {"matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"matrix": [1, 8], "x": 12.5, "y": 2.5}, + {"matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 11], "x": 15.25, "y": 2.5}, + {"matrix": [3, 14], "x": 16.25, "y": 2.5}, + {"matrix": [3, 13], "x": 17.25, "y": 2.5}, + + {"matrix": [4, 11], "x": 18.5, "y": 2.5}, + {"matrix": [4, 12], "x": 19.5, "y": 2.5}, + {"matrix": [4, 13], "x": 20.5, "y": 2.5}, + {"matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, + + {"matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"matrix": [6, 6], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [1, 11], "x": 18.5, "y": 3.5}, + {"matrix": [1, 12], "x": 19.5, "y": 3.5}, + {"matrix": [1, 13], "x": 20.5, "y": 3.5}, + + {"matrix": [1, 1], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"matrix": [0, 14], "x": 16.25, "y": 4.5}, + + {"matrix": [5, 11], "x": 18.5, "y": 4.5}, + {"matrix": [5, 12], "x": 19.5, "y": 4.5}, + {"matrix": [5, 13], "x": 20.5, "y": 4.5}, + {"matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"matrix": [7, 14], "x": 15.25, "y": 5.5}, + {"matrix": [7, 11], "x": 16.25, "y": 5.5}, + {"matrix": [7, 12], "x": 17.25, "y": 5.5}, + + {"matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, + {"matrix": [0, 13], "x": 20.5, "y": 5.5} + ] + }, + "LAYOUT_fullsize_iso_wkl": { + "layout": [ + {"matrix": [0, 2], "x": 0, "y": 0}, + + {"matrix": [2, 3], "x": 2, "y": 0}, + {"matrix": [2, 4], "x": 3, "y": 0}, + {"matrix": [1, 4], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [1, 9], "x": 8.5, "y": 0}, + {"matrix": [2, 9], "x": 9.5, "y": 0}, + + {"matrix": [2, 6], "x": 11, "y": 0}, + {"matrix": [3, 6], "x": 12, "y": 0}, + {"matrix": [3, 11], "x": 13, "y": 0}, + {"matrix": [3, 12], "x": 14, "y": 0}, + + {"matrix": [3, 15], "x": 15.25, "y": 0}, + {"matrix": [4, 15], "x": 16.25, "y": 0}, + {"matrix": [6, 14], "x": 17.25, "y": 0}, + + {"matrix": [2, 2], "x": 0, "y": 1.5}, + {"matrix": [3, 2], "x": 1, "y": 1.5}, + {"matrix": [3, 3], "x": 2, "y": 1.5}, + {"matrix": [3, 4], "x": 3, "y": 1.5}, + {"matrix": [3, 5], "x": 4, "y": 1.5}, + {"matrix": [2, 5], "x": 5, "y": 1.5}, + {"matrix": [2, 7], "x": 6, "y": 1.5}, + {"matrix": [3, 7], "x": 7, "y": 1.5}, + {"matrix": [3, 8], "x": 8, "y": 1.5}, + {"matrix": [3, 9], "x": 9, "y": 1.5}, + {"matrix": [3, 10], "x": 10, "y": 1.5}, + {"matrix": [2, 10], "x": 11, "y": 1.5}, + {"matrix": [2, 8], "x": 12, "y": 1.5}, + {"matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [2, 12], "x": 15.25, "y": 1.5}, + {"matrix": [2, 14], "x": 16.25, "y": 1.5}, + {"matrix": [2, 13], "x": 17.25, "y": 1.5}, + + {"matrix": [6, 11], "x": 18.5, "y": 1.5}, + {"matrix": [6, 12], "x": 19.5, "y": 1.5}, + {"matrix": [6, 13], "x": 20.5, "y": 1.5}, + {"matrix": [7, 13], "x": 21.5, "y": 1.5}, + + {"matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"matrix": [1, 8], "x": 12.5, "y": 2.5}, + + {"matrix": [2, 11], "x": 15.25, "y": 2.5}, + {"matrix": [3, 14], "x": 16.25, "y": 2.5}, + {"matrix": [3, 13], "x": 17.25, "y": 2.5}, + + {"matrix": [4, 11], "x": 18.5, "y": 2.5}, + {"matrix": [4, 12], "x": 19.5, "y": 2.5}, + {"matrix": [4, 13], "x": 20.5, "y": 2.5}, + {"matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, + + {"matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"matrix": [6, 10], "x": 12.75, "y": 3.5}, + {"matrix": [6, 6], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"matrix": [1, 11], "x": 18.5, "y": 3.5}, + {"matrix": [1, 12], "x": 19.5, "y": 3.5}, + {"matrix": [1, 13], "x": 20.5, "y": 3.5}, + + {"matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [0, 3], "x": 1.25, "y": 4.5}, + {"matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"matrix": [0, 14], "x": 16.25, "y": 4.5}, + + {"matrix": [5, 11], "x": 18.5, "y": 4.5}, + {"matrix": [5, 12], "x": 19.5, "y": 4.5}, + {"matrix": [5, 13], "x": 20.5, "y": 4.5}, + {"matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"matrix": [7, 14], "x": 15.25, "y": 5.5}, + {"matrix": [7, 11], "x": 16.25, "y": 5.5}, + {"matrix": [7, 12], "x": 17.25, "y": 5.5}, + + {"matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, + {"matrix": [0, 13], "x": 20.5, "y": 5.5} + ] + } + } +} diff --git a/keyboards/ibm/model_m/modelh/keymaps/default/keymap.c b/keyboards/ibm/model_m/modelh/keymaps/default/keymap.c new file mode 100644 index 00000000000..9098b869b30 --- /dev/null +++ b/keyboards/ibm/model_m/modelh/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2020 John Hawthorn + * + * This 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_fullsize_ansi_wkl( /* 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_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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), +}; diff --git a/keyboards/ibm/model_m/modelh/modelh.c b/keyboards/ibm/model_m/modelh/modelh.c new file mode 100644 index 00000000000..5384b373385 --- /dev/null +++ b/keyboards/ibm/model_m/modelh/modelh.c @@ -0,0 +1,25 @@ +/* Copyright 2020 John Hawthorn + * + * This 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" + + +void keyboard_pre_init_kb(void) { + setPinOutput(MODELH_STATUS_LED); + writePin(MODELH_STATUS_LED, 0); + + keyboard_pre_init_user(); +} diff --git a/keyboards/ibm/model_m/modelh/readme.md b/keyboards/ibm/model_m/modelh/readme.md new file mode 100644 index 00000000000..bed79619cea --- /dev/null +++ b/keyboards/ibm/model_m/modelh/readme.md @@ -0,0 +1,20 @@ +# Model H - A USB capable PCB for the IBM Model M keyboard + +![modelh](https://i.imgur.com/4ymGdkM.jpg) + +This conversion kit allows you to replace your IBM Model M's original internal controller board with a modern USB board. This aims to match the footprint of the original controller and plugs into the original keyboard matrix, but exposes a USB port through the original SDL connector. + +* Keyboard Maintainer: [John Hawthorn](https://github.com/jhawthorn) +* Hardware Supported: IBM Model M +* Hardware Availability: [www.modelh.club](www.modelh.club) +* How to [build your own controller](https://github.com/jberclaz/modelh) + +Make example for this keyboard (after setting up your build environment): + + make ibm/model_m/modelh:default + +Flashing example for this keyboard: + + make ibm/model_m/modelh: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/ibm/model_m/modelh/rules.mk b/keyboards/ibm/model_m/modelh/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/ibm/model_m/mschwingen/config.h b/keyboards/ibm/model_m/mschwingen/config.h index b1dc81b8c78..b34d29649ad 100644 --- a/keyboards/ibm/model_m/mschwingen/config.h +++ b/keyboards/ibm/model_m/mschwingen/config.h @@ -69,9 +69,6 @@ # error one of MODELM_LEDS_FFC, MODELM_LEDS_WIRED or MODELM_LEDS_WS2812 must be set! #endif -// 3* WS2812 LEDs instead of singlecolor GPIO LEDs -#define RGBLED_NUM 3 - // disabled, needs PCB patch. //#define AUDIO_PIN C6 //#define NO_MUSIC_MODE diff --git a/keyboards/ibm/model_m/mschwingen/info.json b/keyboards/ibm/model_m/mschwingen/info.json index 1ba525de6c8..ce740e4a548 100644 --- a/keyboards/ibm/model_m/mschwingen/info.json +++ b/keyboards/ibm/model_m/mschwingen/info.json @@ -8,6 +8,9 @@ "pid": "0x558E", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 3 + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/ibm/model_m/teensypp/keymaps/iw0rm3r/keymap.c b/keyboards/ibm/model_m/teensypp/keymaps/iw0rm3r/keymap.c index f4a1acb0cef..4ec0a0cbc08 100644 --- a/keyboards/ibm/model_m/teensypp/keymaps/iw0rm3r/keymap.c +++ b/keyboards/ibm/model_m/teensypp/keymaps/iw0rm3r/keymap.c @@ -25,19 +25,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_APP, KC_PDOT ), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/ibm/model_m_122/ibm122m/keymaps/lukaus/keymap.c b/keyboards/ibm/model_m_122/ibm122m/keymaps/lukaus/keymap.c index 8b992676500..4e33b0af29f 100644 --- a/keyboards/ibm/model_m_122/ibm122m/keymaps/lukaus/keymap.c +++ b/keyboards/ibm/model_m_122/ibm122m/keymaps/lukaus/keymap.c @@ -552,7 +552,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk index 225317b3674..9131708828a 100644 --- a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk +++ b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk @@ -14,4 +14,4 @@ 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 +HAPTIC_DRIVER = solenoid diff --git a/keyboards/ibnuda/gurindam/config.h b/keyboards/ibnuda/gurindam/config.h index dc525a111d5..ae358106eb0 100644 --- a/keyboards/ibnuda/gurindam/config.h +++ b/keyboards/ibnuda/gurindam/config.h @@ -17,17 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 10 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ibnuda/gurindam/info.json b/keyboards/ibnuda/gurindam/info.json index 2b18d0417ec..b4a4de5a743 100644 --- a/keyboards/ibnuda/gurindam/info.json +++ b/keyboards/ibnuda/gurindam/info.json @@ -8,6 +8,20 @@ "pid": "0x6974", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/idank/sweeq/config.h b/keyboards/idank/sweeq/config.h new file mode 100644 index 00000000000..e926de7f5f8 --- /dev/null +++ b/keyboards/idank/sweeq/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 Idan Kamara (@idank) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define MASTER_RIGHT diff --git a/keyboards/idank/sweeq/info.json b/keyboards/idank/sweeq/info.json new file mode 100644 index 00000000000..0de9cd3aafa --- /dev/null +++ b/keyboards/idank/sweeq/info.json @@ -0,0 +1,80 @@ +{ + "url": "https://github.com/idank/keyboards/tree/main/sweeq", + "maintainer": "idank", + "keyboard_name": "Sweeq", + "manufacturer": "idank", + "development_board": "promicro", + "usb": { + "vid": "0xC3AB", + "pid": "0x3139", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": [ "F4", "F5", "F6", "F7", "B1" ], + "rows": [ "D4", "C6", "D7", "E6" ] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "community_layouts": ["split_3x5_2"], + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_2" + }, + "layouts": { + "LAYOUT_split_3x5_2": { + "layout": [ + {"x": 0, "y": 0.93, "matrix": [0, 0]}, + {"x": 1, "y": 0.31, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0.28, "matrix": [0, 3]}, + {"x": 4, "y": 0.42, "matrix": [0, 4]}, + + {"x": 7, "y": 0.42, "matrix": [4, 4]}, + {"x": 8, "y": 0.28, "matrix": [4, 3]}, + {"x": 9, "y": 0, "matrix": [4, 2]}, + {"x": 10, "y": 0.31, "matrix": [4, 1]}, + {"x": 11, "y": 0.93, "matrix": [4, 0]}, + + {"x": 0, "y": 1.93, "matrix": [1, 0]}, + {"x": 1, "y": 1.31, "matrix": [1, 1]}, + {"x": 2, "y": 1, "matrix": [1, 2]}, + {"x": 3, "y": 1.28, "matrix": [1, 3]}, + {"x": 4, "y": 1.42, "matrix": [1, 4]}, + + {"x": 7, "y": 1.42, "matrix": [5, 4]}, + {"x": 8, "y": 1.28, "matrix": [5, 3]}, + {"x": 9, "y": 1, "matrix": [5, 2]}, + {"x": 10, "y": 1.31, "matrix": [5, 1]}, + {"x": 11, "y": 1.93, "matrix": [5, 0]}, + + {"x": 0, "y": 2.93, "matrix": [2, 0]}, + {"x": 1, "y": 2.31, "matrix": [2, 1]}, + {"x": 2, "y": 2, "matrix": [2, 2]}, + {"x": 3, "y": 2.28, "matrix": [2, 3]}, + {"x": 4, "y": 2.42, "matrix": [2, 4]}, + + {"x": 7, "y": 2.42, "matrix": [6, 4]}, + {"x": 8, "y": 2.28, "matrix": [6, 3]}, + {"x": 9, "y": 2, "matrix": [6, 2]}, + {"x": 10, "y": 2.31, "matrix": [6, 1]}, + {"x": 11, "y": 2.93, "matrix": [6, 0]}, + + {"x": 3.5, "y": 3.75, "matrix": [3, 3]}, + {"x": 4.5, "y": 4, "matrix": [3, 4]}, + + {"x": 6.5, "y": 4, "matrix": [7, 4]}, + {"x": 7.5, "y": 3.75, "matrix": [7, 3]} + ] + } + } +} diff --git a/keyboards/idank/sweeq/keymaps/default/config.h b/keyboards/idank/sweeq/keymaps/default/config.h new file mode 100644 index 00000000000..e70efa40fa5 --- /dev/null +++ b/keyboards/idank/sweeq/keymaps/default/config.h @@ -0,0 +1,21 @@ +// Copyright 2023 Idan Kamara (@idank) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +// Set the mouse settings to a comfortable speed/accuracy trade-off, +// assuming a screen refresh rate of 60 Htz or higher +// The default is 50. This makes the mouse ~3 times faster and more accurate +#define MOUSEKEY_INTERVAL 16 +// The default is 20. Since we made the mouse about 3 times faster with the previous setting, +// give it more time to accelerate to max speed to retain precise control over short distances. +#define MOUSEKEY_TIME_TO_MAX 40 +// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive +#define MOUSEKEY_DELAY 100 +// It makes sense to use the same delay for the mouseweel +#define MOUSEKEY_WHEEL_DELAY 100 +// The default is 100 +#define MOUSEKEY_WHEEL_INTERVAL 50 +// The default is 40 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 100 + +#define QUICK_TAP_TERM 0 diff --git a/keyboards/idank/sweeq/keymaps/default/keymap.json b/keyboards/idank/sweeq/keymaps/default/keymap.json new file mode 100644 index 00000000000..a7845f6e238 --- /dev/null +++ b/keyboards/idank/sweeq/keymaps/default/keymap.json @@ -0,0 +1,107 @@ +{ + "version": 1, + "notes": "sweeq default keymap", + "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", + "keyboard": "idank/sweeq", + "keymap": "default", + "layout": "LAYOUT_split_3x5_2", + "layers": [ + ["KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T", + "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P", + + "LSFT_T(KC_A)", "LT(5,KC_S)" , "LT(1,KC_D)" , "LT(3,KC_F)" , "KC_G", + "KC_H" , "LT(4,KC_J)" , "LT(2,KC_K)" , "LT(6,KC_L)" , "LSFT_T(KC_SCLN)", + + "KC_Z" , "LCTL_T(KC_X)", "LALT_T(KC_C)" , "KC_V" , "KC_B", + "KC_N" , "KC_M" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)", "KC_SLSH", + + "KC_P0" , "KC_BSPC", + "LT(7,KC_SPC)", "KC_P1" + ], + ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS", + + "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS", + "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" + ], + ["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS", + "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)", + + "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "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" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS", + + "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS", + "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", + + "RGB_RMOD" , "KC_TRNS", + "KC_TRNS" , "RGB_MOD" + ], + ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT", + "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC", + + "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_VOLD" , "KC_TRNS", + "KC_TRNS" , "KC_VOLU" + ], + ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10", + + "KC_TRNS" , "KC_NO" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12", + + "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" + ], + ["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS", + + "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" + ], + ["KC_TRNS" , "KC_TRNS" , "KC_COLN" , "KC_ESC" , "KC_TRNS", + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL", + + "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_TRNS", + "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", + + "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS", + "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "QK_BOOT", + + "KC_TRNS" , "KC_TAB", + "KC_NO" , "KC_TRNS" + ] + ], + "author": "idank" +} diff --git a/keyboards/idank/sweeq/keymaps/default/readme.md b/keyboards/idank/sweeq/keymaps/default/readme.md new file mode 100644 index 00000000000..4d08a5502aa --- /dev/null +++ b/keyboards/idank/sweeq/keymaps/default/readme.md @@ -0,0 +1 @@ +See the readme of the Ferris [default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default). diff --git a/keyboards/idank/sweeq/keymaps/via/config.h b/keyboards/idank/sweeq/keymaps/via/config.h new file mode 100644 index 00000000000..12a4fc233fb --- /dev/null +++ b/keyboards/idank/sweeq/keymaps/via/config.h @@ -0,0 +1,7 @@ +// Copyright 2023 Idan Kamara (@idank) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Good defaults for home row modifiers +#define TAPPING_TERM 230 diff --git a/keyboards/idank/sweeq/keymaps/via/keymap.c b/keyboards/idank/sweeq/keymaps/via/keymap.c new file mode 100644 index 00000000000..18ef09f7bb9 --- /dev/null +++ b/keyboards/idank/sweeq/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Idan Kamara (@idank) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define KC_CTSC RCTL_T(KC_SCLN) +#define KC_CTLA LCTL_T(KC_A) +#define KC_LSHZ LSFT_T(KC_Z) +#define KC_RLSH RSFT_T(KC_SLSH) +#define KC_SPM2 LT(2, KC_SPC) +#define KC_BSM1 LT(1, KC_BSPC) +#define KC_GUTA GUI_T(KC_TAB) +#define KC_CLGV CTL_T(KC_GRV) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_CTLA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_LSHZ, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RLSH, + KC_CLGV, KC_BSM1, KC_SPM2, KC_GUTA + ), + + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + QK_GESC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_ENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/idank/sweeq/keymaps/via/rules.mk b/keyboards/idank/sweeq/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/idank/sweeq/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/idank/sweeq/readme.md b/keyboards/idank/sweeq/readme.md new file mode 100644 index 00000000000..caaf5c705fa --- /dev/null +++ b/keyboards/idank/sweeq/readme.md @@ -0,0 +1,31 @@ +# Sweeq + +![sweeq](https://i.imgur.com/TGSyHHxh.png) + +*Sweeq is a Ferris Sweep clone that uses diodes, instead of the latter's direct pin matrix.* + +The primary goal is to free up the SDA/SCL pins so they can be used by auxiliary devices such as a trackball, trackpoint or an OLED screen. + +Other than the diode changes and the ability to use hotswap sockets, this keyboard is identical to the original Sweep. + +* Keyboard Maintainer: [@idank](https://github.com/idank) +* Hardware Supported: [sweeq](https://github.com/idank/keyboards/tree/main/sweeq) +* Hardware Availability: *[holykeebs](https://holykeebs.com)* + +Make example for this keyboard (after setting up your build environment): + + make idank/sweeq:default + +Flashing example for this keyboard: + + make idank/sweeq: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/idank/sweeq/rules.mk b/keyboards/idank/sweeq/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/idank/sweeq/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/idobao/id42/config.h b/keyboards/idobao/id42/config.h index 501fd1f996d..bac9dbf1bd6 100755 --- a/keyboards/idobao/id42/config.h +++ b/keyboards/idobao/id42/config.h @@ -3,10 +3,6 @@ #pragma once -/* Change the USB polling rate [default = 1000Hz (1ms)] and - * use larger value of keys per scan for elite games */ -#define USB_POLLING_INTERVAL_MS 2 // 500Hz - /* LED Matrix & Animations */ #ifdef RGB_MATRIX_ENABLE @@ -15,10 +11,6 @@ #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGB_MATRIX_KEYPRESSES // enable key press effects #define ENABLE_RGB_MATRIX_SOLID_COLOR // Static single color diff --git a/keyboards/idobao/id42/info.json b/keyboards/idobao/id42/info.json index cc896ff236c..b874f51806e 100644 --- a/keyboards/idobao/id42/info.json +++ b/keyboards/idobao/id42/info.json @@ -18,7 +18,7 @@ "pin": "B3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B4", "D7", "D6", "D4", "B5", "C7", "F0", "F7", "F6", "F1", "F4", "F5"], @@ -30,7 +30,8 @@ "vid": "0x6964", "pid": "0x0042", "device_version": "1.0.0", - "force_nkro": true + "force_nkro": true, + "polling_interval": 2 }, "layouts": { "LAYOUT": { diff --git a/keyboards/idobao/id61/info.json b/keyboards/idobao/id61/info.json index 57f9e520a38..cf7892ec9f0 100644 --- a/keyboards/idobao/id61/info.json +++ b/keyboards/idobao/id61/info.json @@ -18,7 +18,7 @@ "pin": "F0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C7", "F6", "F5", "F4", "F1", "B7", "D5", "D1", "D2", "D3", "D4", "D0", "D6", "D7"], diff --git a/keyboards/idobao/id63/info.json b/keyboards/idobao/id63/info.json index 048e1870184..32651f918fe 100644 --- a/keyboards/idobao/id63/info.json +++ b/keyboards/idobao/id63/info.json @@ -18,7 +18,7 @@ "pin": "B7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C7", "F6", "F5", "F4", "F1", "B3", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7"], diff --git a/keyboards/idobao/id67/info.json b/keyboards/idobao/id67/info.json index 55f19ba9ccd..eff8333a803 100644 --- a/keyboards/idobao/id67/info.json +++ b/keyboards/idobao/id67/info.json @@ -18,7 +18,7 @@ "pin": "F0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C7", "F6", "F5", "F4", "F1", "B7", "D5", "D1", "D2", "D3", "D4", "D0", "D6", "D7", "B4"], diff --git a/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c b/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c deleted file mode 100644 index a79b03b80fc..00000000000 --- a/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c +++ /dev/null @@ -1,140 +0,0 @@ -#include QMK_KEYBOARD_H - -enum custom_keycodes { - LOWER = SAFE_RANGE, - RAISE, -}; - -enum layer_names { - _QWERTY, - _LOWER, - _RAISE, - _ADJUST, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* QWERTY - * .--------------------------------------------------------------------------------------------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | = | | - | 6 | 7 | 8 | 9 | 0 | BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | E | R | T | | | [ | Y | U | I | O | P | ] | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | RAISE | A | S | D | F | G | | UP | PrtScr | H | J | K | L | ; | ' | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| - * | LSHIFT | Z | X | C | V | B | LEFT | DOWN | RIGHT | N | M | , | . | / | RSHIFT | - * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| - * | ` | \ | LALT | LCTRL | LOWER | SPACE | LGUI | DEL | ENTER | SPACE | RAISE | LEFT | DOWN | UP | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT_ortho_5x15( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, XXXXXXX, KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, - RAISE, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_UP, KC_PSCR, 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_LEFT, KC_DOWN, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_GRAVE, KC_BSLS, KC_LALT, KC_LCTL, LOWER, KC_SPC, KC_LGUI, KC_DEL, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), - - -/* LOWER - * .--------------------------------------------------------------------------------------------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | UP | | | | | | | | | | PR SCR | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | RAISE | LEFT | DOWN | RIGHT | | | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | | | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | LOWER | | APP | | | | RAISE | | | | | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT_ortho_5x15( - XXXXXXX, KC_F1, KC_F2, KC_F3, XXXXXXX, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, - XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RAISE, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, KC_APP, XXXXXXX, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -), - - /* RAISE - * .--------------------------------------------------------------------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | pgup | | | | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | RAISE | home | pgdn | end | | | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | | | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | LOWER | | | | | | RAISE | | | | | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ -[_RAISE] = LAYOUT_ortho_5x15( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RAISE, KC_HOME, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -), - - - /* ADJUST - * .--------------------------------------------------------------------------------------------------------------------------------------. - * | QK_BOOT | | | | | | | | |rgbplain|rgbtest | rgbmode| | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | |rgb tog | bl_tog | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | RAISE | | rgb hi | rgb sai|rgb vai | bl inc | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | EEP Rst| | rgb hd | rgb sad|rgb vad | bl dec | | | | | | | | | | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | LOWER | | | | | | RAISE | | | | | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ -[_ADJUST] = LAYOUT_ortho_5x15( - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, RGB_M_T, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, BL_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RAISE, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, BL_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - EE_CLR, XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, BL_DOWN,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -), - - -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - } - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/idobao/id75/v1/config.h b/keyboards/idobao/id75/v1/config.h index 2174e39bd22..d876570c808 100644 --- a/keyboards/idobao/id75/v1/config.h +++ b/keyboards/idobao/id75/v1/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_TWINKLE - - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/idobao/id75/v1/info.json b/keyboards/idobao/id75/v1/info.json index 1407d02c802..545709475d3 100644 --- a/keyboards/idobao/id75/v1/info.json +++ b/keyboards/idobao/id75/v1/info.json @@ -12,6 +12,23 @@ "cols": ["F6", "F5", "F4", "F1", "E6", "D5", "D3", "D2", "D1", "D0", "D4", "D6", "D7", "B4", "B5"], "rows": ["B0", "B3", "C7", "B6", "C6"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/idobao/id75/keymaps/greenshadowmaker/keyboard-layout-editor-gsm-idobo.json b/keyboards/idobao/id75/v1/keymaps/greenshadowmaker/keyboard-layout-editor-gsm-idobo.json similarity index 100% rename from keyboards/idobao/id75/keymaps/greenshadowmaker/keyboard-layout-editor-gsm-idobo.json rename to keyboards/idobao/id75/v1/keymaps/greenshadowmaker/keyboard-layout-editor-gsm-idobo.json diff --git a/keyboards/idobao/id75/v1/keymaps/greenshadowmaker/keymap.c b/keyboards/idobao/id75/v1/keymaps/greenshadowmaker/keymap.c new file mode 100644 index 00000000000..84830e47c65 --- /dev/null +++ b/keyboards/idobao/id75/v1/keymaps/greenshadowmaker/keymap.c @@ -0,0 +1,128 @@ +#include QMK_KEYBOARD_H + +enum custom_keycodes { + LOWER = SAFE_RANGE, + RAISE, +}; + +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | = | | - | 6 | 7 | 8 | 9 | 0 | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | | | [ | Y | U | I | O | P | ] | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | RAISE | A | S | D | F | G | | UP | PrtScr | H | J | K | L | ; | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LSHIFT | Z | X | C | V | B | LEFT | DOWN | RIGHT | N | M | , | . | / | RSHIFT | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | ` | \ | LALT | LCTRL | LOWER | SPACE | LGUI | DEL | ENTER | SPACE | RAISE | LEFT | DOWN | UP | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_5x15( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, XXXXXXX, KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, + RAISE, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_UP, KC_PSCR, 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_LEFT, KC_DOWN, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_GRAVE, KC_BSLS, KC_LALT, KC_LCTL, LOWER, KC_SPC, KC_LGUI, KC_DEL, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + + +/* LOWER + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | UP | | | | | | | | | | PR SCR | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RAISE | LEFT | DOWN | RIGHT | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | LOWER | | APP | | | | RAISE | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_5x15( + XXXXXXX, KC_F1, KC_F2, KC_F3, XXXXXXX, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, + XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RAISE, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, KC_APP, XXXXXXX, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + + /* RAISE + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | pgup | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RAISE | home | pgdn | end | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | LOWER | | | | | | RAISE | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_5x15( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RAISE, KC_HOME, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + + + /* ADJUST + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | QK_BOOT | | | | | | | | |rgbplain|rgbtest | rgbmode| | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | |rgb tog | bl_tog | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RAISE | | rgb hi | rgb sai|rgb vai | bl inc | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | EEP Rst| | rgb hd | rgb sad|rgb vad | bl dec | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | LOWER | | | | | | RAISE | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_5x15( + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, RGB_M_T, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, BL_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RAISE, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, BL_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + EE_CLR, XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, BL_DOWN,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + } + return true; +} diff --git a/keyboards/idobao/id75/keymaps/greenshadowmaker/readme.md b/keyboards/idobao/id75/v1/keymaps/greenshadowmaker/readme.md similarity index 100% rename from keyboards/idobao/id75/keymaps/greenshadowmaker/readme.md rename to keyboards/idobao/id75/v1/keymaps/greenshadowmaker/readme.md diff --git a/keyboards/idobao/id75/keymaps/greenshadowmaker/rules.mk b/keyboards/idobao/id75/v1/keymaps/greenshadowmaker/rules.mk similarity index 100% rename from keyboards/idobao/id75/keymaps/greenshadowmaker/rules.mk rename to keyboards/idobao/id75/v1/keymaps/greenshadowmaker/rules.mk diff --git a/keyboards/idobao/id75/v2/info.json b/keyboards/idobao/id75/v2/info.json index 5275c54dbbf..4cb46c2564d 100644 --- a/keyboards/idobao/id75/v2/info.json +++ b/keyboards/idobao/id75/v2/info.json @@ -12,7 +12,7 @@ "pin": "F0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F6", "F5", "F4", "F1", "E6", "D5", "D3", "D2", "D1", "D0", "D4", "D6", "D7", "B4", "B5"], diff --git a/keyboards/idobao/id80/v2/config.h b/keyboards/idobao/id80/v2/config.h deleted file mode 100644 index e45c0081aef..00000000000 --- a/keyboards/idobao/id80/v2/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2020 Sergey Vlasov - -This 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 RGBLED_NUM 20 /* 16 underglow LEDs, 4 top LEDs */ - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/idobao/id80/v2/info.json b/keyboards/idobao/id80/v2/info.json index 26a5a7db819..4d6e0773d80 100644 --- a/keyboards/idobao/id80/v2/info.json +++ b/keyboards/idobao/id80/v2/info.json @@ -19,7 +19,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "indicators": { "caps_lock": "C7", diff --git a/keyboards/idobao/id80/v3/ansi/info.json b/keyboards/idobao/id80/v3/ansi/info.json index 816e55208fe..cf21d3abb15 100644 --- a/keyboards/idobao/id80/v3/ansi/info.json +++ b/keyboards/idobao/id80/v3/ansi/info.json @@ -15,7 +15,7 @@ "rgblight": false }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B7", "B3", "B2", "B1", "B0", "E6", "F1", "F4", "F5", "F6", "F7"], diff --git a/keyboards/idobao/id87/v1/config.h b/keyboards/idobao/id87/v1/config.h deleted file mode 100644 index 9b7459de6cb..00000000000 --- a/keyboards/idobao/id87/v1/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2020 Tybera -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_TWINKLE - - #define RGBLED_NUM 22 /* 16 Bottom 6 top*/ - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/idobao/id87/v1/info.json b/keyboards/idobao/id87/v1/info.json index 1deaf6b270d..9b84530637f 100644 --- a/keyboards/idobao/id87/v1/info.json +++ b/keyboards/idobao/id87/v1/info.json @@ -19,6 +19,23 @@ "indicators": { "caps_lock": "C7" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/idobao/id87/v2/info.json b/keyboards/idobao/id87/v2/info.json index aace4915a10..783cd04a03f 100644 --- a/keyboards/idobao/id87/v2/info.json +++ b/keyboards/idobao/id87/v2/info.json @@ -18,7 +18,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], diff --git a/keyboards/idobao/id96/config.h b/keyboards/idobao/id96/config.h index a857f49125a..23990f6ef9e 100644 --- a/keyboards/idobao/id96/config.h +++ b/keyboards/idobao/id96/config.h @@ -23,18 +23,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 18 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/idobao/id96/info.json b/keyboards/idobao/id96/info.json index f49337fc149..d594af5fc35 100644 --- a/keyboards/idobao/id96/info.json +++ b/keyboards/idobao/id96/info.json @@ -18,6 +18,23 @@ "levels": 7, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/idobao/montex/v1/config.h b/keyboards/idobao/montex/v1/config.h index 87ed689f667..6cbdda8572d 100644 --- a/keyboards/idobao/montex/v1/config.h +++ b/keyboards/idobao/montex/v1/config.h @@ -21,19 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_TWINKLE - - #define RGBLED_NUM 4 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/idobao/montex/v1/info.json b/keyboards/idobao/montex/v1/info.json index 666ffbdf89d..2abbef46ba6 100644 --- a/keyboards/idobao/montex/v1/info.json +++ b/keyboards/idobao/montex/v1/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "B6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/idobao/montex/v1rgb/info.json b/keyboards/idobao/montex/v1rgb/info.json index 5980cab1171..31c06d08090 100755 --- a/keyboards/idobao/montex/v1rgb/info.json +++ b/keyboards/idobao/montex/v1rgb/info.json @@ -7,7 +7,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D5", "D3", "D2", "D1", "D0"], diff --git a/keyboards/idobao/montex/v2/info.json b/keyboards/idobao/montex/v2/info.json index f034db3c03b..74a69d60fe1 100755 --- a/keyboards/idobao/montex/v2/info.json +++ b/keyboards/idobao/montex/v2/info.json @@ -18,7 +18,7 @@ "pin": "B1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D5", "D3", "D2", "D1", "D0"], diff --git a/keyboards/idobao/montex/v2/keymaps/vial/config.h b/keyboards/idobao/montex/v2/keymaps/vial/config.h new file mode 100644 index 00000000000..1c065166e08 --- /dev/null +++ b/keyboards/idobao/montex/v2/keymaps/vial/config.h @@ -0,0 +1,18 @@ +// Copyright 2023 Oleg Titov +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define VIAL_KEYBOARD_UID {0x1A, 0xC2, 0xE7, 0x4C, 0xE4, 0x37, 0xF3, 0x6A} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 4 } + +// Enable all available RGB Matrix effects +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +// Firmware size optimization +// disable Lock Key support +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE diff --git a/keyboards/idobao/montex/v2/keymaps/vial/keymap.c b/keyboards/idobao/montex/v2/keymaps/vial/keymap.c new file mode 100644 index 00000000000..db37bc72c7e --- /dev/null +++ b/keyboards/idobao/montex/v2/keymaps/vial/keymap.c @@ -0,0 +1,54 @@ +// Copyright 2022 IBNobody (@IBNobody) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┌───┬───┬───┬───┐ + * │Esc│Tab│ F1│Cal│Bsp│ + * ├───┼───┼───┼───┼───┤ + * │Ctr│Num│ / │ * │ - │ + * ├───┼───┼───┼───┼───┤ + * │Gui│ 7 │ 8 │ 9 │ │ + * ├───┼───┼───┼───┤ + │ + * │Alt│ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┼───┤ + * │Shi│ 1 │ 2 │ 3 │ │ + * ├───┼───┴───┼───┤Ent│ + * │MO1│ 0 │ . │ │ + * └───┴───────┴───┴───┘ + */ + [0] = LAYOUT_numpad_6x5( + QK_GESC, KC_TAB, KC_F1, KC_CALC, KC_BSPC, + KC_LCTL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_LGUI, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_LALT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_P1, KC_P2, KC_P3, KC_PENT, + MO(1), KC_P0, KC_PDOT + ), + + /* + * ┌───┌───┐───┬───┬───┐ + * │Rst│TOG│MOD│PSc│SLk│ + * ├───┼───┼───┼───┼───┤ + * │Hu+│ │Sp-│Sp+│Br-│ + * ├───┼───┼───┼───┼───┤ + * │Hu-│Hom│ ↑ │PgU│ │ + * ├───┼───┼───┼───┤Br+│ + * │St+│ ← │ │ → │ │ + * ├───┼───┼───┼───┤───┤ + * │St-│End│ ↓ │PgD│ │ + * ├───┼───┴───┼───┤Ent│ + * │mo1│Insert │Del│ │ + * └───┴───────┴───┘───┘ + */ + [1] = LAYOUT_numpad_6x5( + QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SCRL, + RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD, + RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI, + RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT, + RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, + _______, KC_INS, KC_DEL + ) +}; diff --git a/keyboards/idobao/montex/v2/keymaps/vial/rules.mk b/keyboards/idobao/montex/v2/keymaps/vial/rules.mk new file mode 100644 index 00000000000..9bf0db06bbd --- /dev/null +++ b/keyboards/idobao/montex/v2/keymaps/vial/rules.mk @@ -0,0 +1,21 @@ +VIA_ENABLE = yes # Enable VIA +VIAL_ENABLE = yes # Enable VIAL +VIALRGB_ENABLE = yes + +# Options to reduce firmware size: +LTO_ENABLE = yes # make the compiler work harder + +# Vial optimization +QMK_SETTINGS = no # enables the tab to change QMK settings from the GUI1 +TAP_DANCE_ENABLE = yes +COMBO_ENABLE = no + +# QMK optimization +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +MOUSEKEY_ENABLE = no +#EXTRAKEY_ENABLE = no + +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no diff --git a/keyboards/idobao/montex/v2/keymaps/vial/vial.json b/keyboards/idobao/montex/v2/keymaps/vial/vial.json new file mode 100644 index 00000000000..2948aa0c506 --- /dev/null +++ b/keyboards/idobao/montex/v2/keymaps/vial/vial.json @@ -0,0 +1,17 @@ +{ + "name": "IDOBAO Montex V2", + "vendorId": "0x6964", + "productId": "0x0227", + "lighting": "vialrgb", + "matrix": {"rows": 6, "cols": 5}, + "layouts": { + "keymap": [ + [{"c": "#777777"}, "0,0", {"c": "#aaaaaa"}, "0,1", "0,2", "0,3", "0,4"], + [{"y": 0.5, "c": "#cccccc"}, "1,0", "1,1", "1,2", "1,3", "1,4"], + ["2,0", "2,1", "2,2", "2,3", {"h": 2}, "2,4"], + ["3,0", "3,1", "3,2", "3,3"], + ["4,0", "4,1", "4,2", "4,3", {"c": "#777777", "h": 2}, "5,3"], + [{"c": "#cccccc"}, "5,0", {"w": 2}, "5,1", "5,2"] + ] + } +} diff --git a/keyboards/idyllic/tinny50_rgb/info.json b/keyboards/idyllic/tinny50_rgb/info.json index fad9c3c7308..f02e88f4598 100644 --- a/keyboards/idyllic/tinny50_rgb/info.json +++ b/keyboards/idyllic/tinny50_rgb/info.json @@ -27,7 +27,7 @@ "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP20", "GP19", "GP1", "GP6", "GP5"] }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "GP10", diff --git a/keyboards/igloo/info.json b/keyboards/igloo/info.json index 1f50a72c5f8..6e0cba498bb 100644 --- a/keyboards/igloo/info.json +++ b/keyboards/igloo/info.json @@ -41,12 +41,13 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "w": 2, "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - {"matrix": [0, 15], "x": 16.25, "y": 0}, - {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1}, + {"matrix": [0, 14], "x": 15.5, "y": 0}, + {"matrix": [0, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "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}, @@ -59,12 +60,13 @@ {"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], "w": 1.5, "x": 13.5, "y": 1}, - {"matrix": [1, 14], "x": 15.25, "y": 1}, - {"matrix": [1, 15], "x": 16.25, "y": 1}, - {"matrix": [1, 16], "x": 17.25, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.5, "y": 1}, + {"matrix": [1, 15], "x": 16.5, "y": 1}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, - {"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2}, + {"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}, @@ -76,12 +78,13 @@ {"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, 13], "w": 2.25, "x": 12.75, "y": 2}, - {"matrix": [2, 14], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 13], "x": 20.5, "y": 1, "w": 1.25, "h":2}, + {"matrix": [2, 14], "x": 19.5, "y": 2}, {"matrix": [2, 15], "x": 13, "y": 0}, - {"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3}, + {"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}, @@ -93,22 +96,24 @@ {"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}, - {"matrix": [3, 14], "x": 13.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 16.25, "y": 3}, - {"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4}, - {"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4}, - {"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4}, - {"matrix": [4, 3], "x": 6.25, "y": 4}, - {"matrix": [4, 4], "w": 2.25, "x": 4, "y": 4}, - {"matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4}, - {"matrix": [4, 6], "w": 2.25, "x": 7.25, "y": 4}, - {"matrix": [4, 9], "w": 1.25, "x": 10, "y": 4}, - {"matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4}, - {"matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4}, - {"matrix": [4, 12], "w": 1.25, "x": 13.75, "y": 4}, - {"matrix": [4, 13], "w": 1.25, "x": 15, "y": 4}, + {"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, 3], "x": 6.25, "y": 5}, + {"matrix": [4, 4], "x": 4, "y": 5, "w": 2.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5, "w": 2.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, {"matrix": [4, 15], "x": 16.25, "y": 4}, {"matrix": [4, 16], "x": 17.25, "y": 4} diff --git a/keyboards/igloo/matrix_diagram.md b/keyboards/igloo/matrix_diagram.md new file mode 100644 index 00000000000..2308f15c06d --- /dev/null +++ b/keyboards/igloo/matrix_diagram.md @@ -0,0 +1,36 @@ +# Matrix Diagram for Dong Jae Shin Igloo + + + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │2F │0D ││0E │0F │0G │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D ││1E │1F │1G │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │2E │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │ │3F │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│40 │41 │42 │47 │49 │4A │4B │4D ││4E │4F │4G │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────┬───┬───────────┬─────┬───┬─────┐ +│40 │41 │42 │45 │44 │46 │4A │4B │4D │ Tsangan/WKL Split Space +└─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │44 │4A │4B │4D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/ilumkb/simpler61/info.json b/keyboards/ilumkb/simpler61/info.json index 4b3a067522a..80a738f4cfa 100644 --- a/keyboards/ilumkb/simpler61/info.json +++ b/keyboards/ilumkb/simpler61/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "B7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], diff --git a/keyboards/ilumkb/simpler64/info.json b/keyboards/ilumkb/simpler64/info.json index 0db9d79c220..a7939071480 100644 --- a/keyboards/ilumkb/simpler64/info.json +++ b/keyboards/ilumkb/simpler64/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "B7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index 1eff584a832..f698867ffb8 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -29,23 +29,6 @@ /* disable print */ //#define NO_PRINT - -//rgb light setting -#define RGBLED_NUM 18 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - //rgb matrix setting #define DRIVER_1_LED_TOTAL 33 #define DRIVER_2_LED_TOTAL 31 @@ -92,18 +75,18 @@ #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define 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/inett_studio/sqx/hotswap/info.json b/keyboards/inett_studio/sqx/hotswap/info.json index 8d4621a6084..90fe00d167f 100644 --- a/keyboards/inett_studio/sqx/hotswap/info.json +++ b/keyboards/inett_studio/sqx/hotswap/info.json @@ -12,10 +12,25 @@ "pin": "D7" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "rgblight": { - "max_brightness": 128 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["C7", "C6", "B6", "B5", "B4", "F7", "F6", "F5", "E6", "B0", "D2", "D4", "D5", "D3"], diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index 92c9bedfc96..30903b58033 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -29,23 +29,6 @@ /* disable print */ //#define NO_PRINT - -//rgb light setting -#define RGBLED_NUM 18 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - //rgb matrix setting #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 @@ -92,18 +75,18 @@ #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define 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/inett_studio/sqx/universal/info.json b/keyboards/inett_studio/sqx/universal/info.json index 9839aa10deb..15744fbbbcd 100644 --- a/keyboards/inett_studio/sqx/universal/info.json +++ b/keyboards/inett_studio/sqx/universal/info.json @@ -12,10 +12,25 @@ "pin": "D7" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "rgblight": { - "max_brightness": 128 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["C7", "C6", "B6", "B5", "B4", "F7", "F6", "F5", "E6", "B0", "D2", "D4", "D5", "D3"], diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h new file mode 100644 index 00000000000..d1e7d11acc6 --- /dev/null +++ b/keyboards/inland/kb83/config.h @@ -0,0 +1,82 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 RGB_TRIGGER_ON_KEYDOWN + +/* DIP switch */ +#define DIP_SWITCH_PINS \ + { A9 } + +/* 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_SDA_PIN B7 +#define I2C1_SCL_PIN B6 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define DRIVER_1_LED_TOTAL 61 +#define DRIVER_2_LED_TOTAL 21 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + 10) + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES + +// 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_BREATHING +#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_RAINDROPS +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// 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_MULTISPLASH + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 /* The maximum brightness level */ diff --git a/keyboards/inland/kb83/halconf.h b/keyboards/inland/kb83/halconf.h new file mode 100644 index 00000000000..2f64e65393a --- /dev/null +++ b/keyboards/inland/kb83/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json new file mode 100644 index 00000000000..ce577fb029f --- /dev/null +++ b/keyboards/inland/kb83/info.json @@ -0,0 +1,133 @@ +{ + "keyboard_name": "KB83", + "manufacturer": "www.hfd.cn", + "maintainer": "hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x0007", + "device_version": "1.0.0", + "force_nkro": true + }, + "rgb_matrix": { + "driver": "is31fl3733" + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + {"pin_a": "B14", "pin_b": "B13", "resolution": 4} + ] + }, + "qmk": { + "tap_keycode_delay": 15 + }, + "layouts": { + "LAYOUT": { + "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.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "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}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + + {"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, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.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}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [3, 15], "x": 15.25, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.25}, + {"matrix": [4, 2], "x": 3.25, "y": 4.25}, + {"matrix": [4, 3], "x": 4.25, "y": 4.25}, + {"matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"matrix": [4, 6], "x": 7.25, "y": 4.25}, + {"matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"matrix": [4, 9], "x": 10.25, "y": 4.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, + + {"matrix": [4, 14], "x": 14.125, "y": 4.375}, + + {"matrix": [4, 15], "x": 15.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25}, + {"matrix": [5, 10], "x": 11, "y": 5.25}, + {"matrix": [5, 11], "x": 12, "y": 5.25}, + + {"matrix": [5, 13], "x": 13.125, "y": 5.375}, + {"matrix": [5, 14], "x": 14.125, "y": 5.375}, + {"matrix": [5, 15], "x": 15.125, "y": 5.375} + ] + } + } +} diff --git a/keyboards/hfdkb/keyboard_sw/k83/k83.c b/keyboards/inland/kb83/kb83.c similarity index 100% rename from keyboards/hfdkb/keyboard_sw/k83/k83.c rename to keyboards/inland/kb83/kb83.c diff --git a/keyboards/hfdkb/keyboard_sw/k83/keymaps/default/keymap.c b/keyboards/inland/kb83/keymaps/default/keymap.c similarity index 100% rename from keyboards/hfdkb/keyboard_sw/k83/keymaps/default/keymap.c rename to keyboards/inland/kb83/keymaps/default/keymap.c diff --git a/keyboards/hfdkb/keyboard_sw/k83/keymaps/via/keymap.c b/keyboards/inland/kb83/keymaps/via/keymap.c similarity index 100% rename from keyboards/hfdkb/keyboard_sw/k83/keymaps/via/keymap.c rename to keyboards/inland/kb83/keymaps/via/keymap.c diff --git a/keyboards/inland/kb83/keymaps/via/rules.mk b/keyboards/inland/kb83/keymaps/via/rules.mk new file mode 100644 index 00000000000..4253f570f0b --- /dev/null +++ b/keyboards/inland/kb83/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/inland/kb83/mcuconf.h b/keyboards/inland/kb83/mcuconf.h new file mode 100644 index 00000000000..0d16f4f04e4 --- /dev/null +++ b/keyboards/inland/kb83/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/inland/kb83/readme.md b/keyboards/inland/kb83/readme.md new file mode 100644 index 00000000000..e6f1d45990b --- /dev/null +++ b/keyboards/inland/kb83/readme.md @@ -0,0 +1,19 @@ +# kb83 + +A customizable 75% encoder keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: kb83 +* Hardware Availability:[inland](https://www.microcenter.com) + +Make example for this keyboard (after setting up your build environment): + + make inland/kb83:default + +Flashing example for this keyboard: + + make inland/kb83:default:flash + +**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/hfdkb/keyboard_sw/k83/rgb_matrix_kb.inc b/keyboards/inland/kb83/rgb_matrix_kb.inc similarity index 100% rename from keyboards/hfdkb/keyboard_sw/k83/rgb_matrix_kb.inc rename to keyboards/inland/kb83/rgb_matrix_kb.inc diff --git a/keyboards/hfdkb/keyboard_sw/k83/rules.mk b/keyboards/inland/kb83/rules.mk similarity index 100% rename from keyboards/hfdkb/keyboard_sw/k83/rules.mk rename to keyboards/inland/kb83/rules.mk diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h new file mode 100644 index 00000000000..678686555ab --- /dev/null +++ b/keyboards/inland/mk47/config.h @@ -0,0 +1,40 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110100 +/* WB32 MCU has no default definition */ +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 + +#define RGB_MATRIX_LED_COUNT 47 +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + diff --git a/keyboards/inland/mk47/halconf.h b/keyboards/inland/mk47/halconf.h new file mode 100644 index 00000000000..55bfe5c9779 --- /dev/null +++ b/keyboards/inland/mk47/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/inland/mk47/info.json b/keyboards/inland/mk47/info.json new file mode 100644 index 00000000000..184527e0de4 --- /dev/null +++ b/keyboards/inland/mk47/info.json @@ -0,0 +1,159 @@ +{ + "keyboard_name": "MK47", + "manufacturer": "Inland", + "maintainer": "jonylee@hfd", + "url":"", + "usb": { + "vid": "0xFFFE", + "pid": "0x0002", + "device_version": "0.0.1", + "force_nkro": true, + "suspend_wakeup_delay": 1000 + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4"], + "rows": ["C6", "C7", "C8", "C9"] + }, + "rgb_matrix": { + "driver": "is31fl3733", + "max_brightness": 200, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 41, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 102, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 143, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 163, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 204, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x": 224, "y": 0 }, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 21}, + { "flags": 4, "matrix": [1, 1], "x": 20, "y": 21}, + { "flags": 4, "matrix": [1, 2], "x": 41, "y": 21}, + { "flags": 4, "matrix": [1, 3], "x": 61, "y": 21}, + { "flags": 4, "matrix": [1, 4], "x": 81, "y": 21}, + { "flags": 4, "matrix": [1, 5], "x": 102, "y": 21}, + { "flags": 4, "matrix": [1, 6], "x": 122, "y": 21}, + { "flags": 4, "matrix": [1, 7], "x": 143, "y": 21}, + { "flags": 4, "matrix": [1, 8], "x": 163, "y": 21}, + { "flags": 4, "matrix": [1, 9], "x": 183, "y": 21}, + { "flags": 4, "matrix": [1, 10], "x": 204, "y": 21}, + { "flags": 4, "matrix": [1, 11], "x": 224, "y": 21}, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 42}, + { "flags": 4, "matrix": [2, 1], "x": 20, "y": 42}, + { "flags": 4, "matrix": [2, 2], "x": 41, "y": 42}, + { "flags": 4, "matrix": [2, 3], "x": 61, "y": 42}, + { "flags": 4, "matrix": [2, 4], "x": 81, "y": 42}, + { "flags": 4, "matrix": [2, 5], "x": 102, "y": 42}, + { "flags": 4, "matrix": [2, 6], "x": 122, "y": 42}, + { "flags": 4, "matrix": [2, 7], "x": 143, "y": 42}, + { "flags": 4, "matrix": [2, 8], "x": 163, "y": 42}, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 42}, + { "flags": 4, "matrix": [2, 10], "x": 204, "y": 42}, + { "flags": 4, "matrix": [2, 11], "x": 224, "y": 42}, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 64}, + { "flags": 1, "matrix": [3, 1], "x": 20, "y": 64}, + { "flags": 4, "matrix": [3, 2], "x": 41, "y": 64}, + { "flags": 4, "matrix": [3, 3], "x": 61, "y": 64}, + { "flags": 4, "matrix": [3, 4], "x": 81, "y": 64}, + { "flags": 4, "matrix": [3, 5], "x": 102, "y": 64}, + { "flags": 4, "matrix": [3, 7], "x": 143, "y": 64}, + { "flags": 4, "matrix": [3, 8], "x": 163, "y": 64}, + { "flags": 4, "matrix": [3, 9], "x": 183, "y": 64}, + { "flags": 4, "matrix": [3, 10], "x": 204, "y": 64}, + { "flags": 4, "matrix": [3, 11], "x": 224, "y": 64} + ] + }, + "diode_direction": "ROW2COL", + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "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": "Tab", "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": "Enter", "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": "Up", "matrix": [2, 10], "x": 10, "y": 2 }, + { "label": "?", "matrix": [2, 11], "x": 11, "y": 2 }, + + { "label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3 }, + { "label": "Win", "matrix": [3, 1],"x": 1, "y": 3 }, + { "label": "Alt", "matrix": [3, 2],"x": 2, "y": 3 }, + { "label": "Hyper", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "Lower", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "Space", "matrix": [3, 5], "w": 2, "x": 5, "y": 3 }, + { "label": "Ralse", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "Fn", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "Left", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "Down", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "Right", "matrix": [3, 11], "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/inland/mk47/keymaps/default/keymap.c b/keyboards/inland/mk47/keymaps/default/keymap.c new file mode 100644 index 00000000000..f288d4e1feb --- /dev/null +++ b/keyboards/inland/mk47/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS), + + [2] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT) +}; +// clang-format on + diff --git a/keyboards/inland/mk47/keymaps/inland/keymap.c b/keyboards/inland/mk47/keymaps/inland/keymap.c new file mode 100644 index 00000000000..ff5de15c47f --- /dev/null +++ b/keyboards/inland/mk47/keymaps/inland/keymap.c @@ -0,0 +1,40 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, + RGB_HUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSEL, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + + [2] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT) +}; +// clang-format on diff --git a/keyboards/inland/mk47/keymaps/inland/rules.mk b/keyboards/inland/mk47/keymaps/inland/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/inland/mk47/keymaps/inland/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/inland/mk47/keymaps/via/keymap.c b/keyboards/inland/mk47/keymaps/via/keymap.c new file mode 100644 index 00000000000..53cabcc4770 --- /dev/null +++ b/keyboards/inland/mk47/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, + RGB_HUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSEL, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + + [2] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT) +}; +// clang-format on + diff --git a/keyboards/inland/mk47/keymaps/via/rules.mk b/keyboards/inland/mk47/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/inland/mk47/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/inland/mk47/mcuconf.h b/keyboards/inland/mk47/mcuconf.h new file mode 100644 index 00000000000..b80eb833d3e --- /dev/null +++ b/keyboards/inland/mk47/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + diff --git a/keyboards/inland/mk47/mk47.c b/keyboards/inland/mk47/mk47.c new file mode 100644 index 00000000000..f2478559442 --- /dev/null +++ b/keyboards/inland/mk47/mk47.c @@ -0,0 +1,92 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {0, D_15, E_15, F_15}, + {0, G_13, H_13, I_13}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, +}; + +#endif + +#ifdef RGB_MATRIX_ENABLE +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (rgb_matrix_indicators_advanced_user(led_min, led_max) != true) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(12, 255, 0, 0); + } + + return true; +} +#endif diff --git a/keyboards/inland/mk47/readme.md b/keyboards/inland/mk47/readme.md new file mode 100644 index 00000000000..55b805678b6 --- /dev/null +++ b/keyboards/inland/mk47/readme.md @@ -0,0 +1,24 @@ +# mk47 + +A customizable 40% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: mk47 +* Hardware Availability: [Inland](https://www.microcenter.com/product/661264/inland-47-keys-hot-swappable-rgb-wired-mechanical-keyboard,) + +Make example for this keyboard (after setting up your build environment): + + make inland/mk47:default + +Flashing example for this keyboard: + + make inland/mk47: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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/inland/mk47/rules.mk b/keyboards/inland/mk47/rules.mk new file mode 100644 index 00000000000..24d5f6f52ec --- /dev/null +++ b/keyboards/inland/mk47/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h index 6d642e5d458..7db6119a1cf 100644 --- a/keyboards/input_club/ergodox_infinity/config.h +++ b/keyboards/input_club/ergodox_infinity/config.h @@ -23,10 +23,6 @@ along with this program. If not, see . #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -#define TAPPING_TOGGLE 1 - -#define TAPPING_TERM 200 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/input_club/ergodox_infinity/info.json b/keyboards/input_club/ergodox_infinity/info.json index ca6aa92b5d8..d69aeb5d0cd 100644 --- a/keyboards/input_club/ergodox_infinity/info.json +++ b/keyboards/input_club/ergodox_infinity/info.json @@ -7,7 +7,7 @@ "device_version": "0.0.1" }, "led_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["D1", "D4", "D5", "D6", "D7"], @@ -17,6 +17,9 @@ "processor": "MK20DX256", "bootloader": "kiibohd", "board": "IC_TEENSY_3_1", + "tapping": { + "toggle": 1 + }, "community_layouts": ["ergodox"], "layouts": { "LAYOUT_ergodox": { diff --git a/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c index a345e075d9b..a49fe882ea7 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c @@ -21,11 +21,6 @@ A layout based on neo2 #endif #define LEADER_TIMEOUT 300 -#define TAP_ONCE(code) \ - register_code (code); \ - unregister_code (code) - - // Automatic number generation of important keywords enum my_keycodes{ // Layer numbers follow the neo2 terminology, i.e. base layer = layer 1 @@ -257,22 +252,11 @@ L06 -> : UNSPECIFIED void leader_end_user(void) { if (leader_sequence_one_key(KC_1)) { - // ¯\_(ツ)_/¯ - unicode_input_start(); register_hex(0xaf); unicode_input_finish(); - register_code (KC_RALT); TAP_ONCE (KC_MINS); unregister_code (KC_RALT); - register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT); - unicode_input_start (); register_hex(0x30c4); unicode_input_finish(); - register_code (KC_RSFT); TAP_ONCE (KC_9); TAP_ONCE(KC_7); unregister_code (KC_RSFT); - unicode_input_start (); register_hex(0xaf); unicode_input_finish(); + send_unicode_string("¯\\_(ツ)_/¯"); } if (leader_sequence_one_key(KC_2)) { - // 凸(ツ)凸 - unicode_input_start(); register_hex(0x51F8); unicode_input_finish(); - register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT); - unicode_input_start (); register_hex(0x30c4); unicode_input_finish(); - register_code (KC_RSFT); TAP_ONCE (KC_9); unregister_code (KC_RSFT); - unicode_input_start (); register_hex(0x51F8); unicode_input_finish(); + send_unicode_string("凸(ツ)凸"); } } diff --git a/keyboards/input_club/infinity60/led.c b/keyboards/input_club/infinity60/led.c index 8effcea81ae..33871bcc49c 100644 --- a/keyboards/input_club/infinity60/led.c +++ b/keyboards/input_club/infinity60/led.c @@ -26,29 +26,33 @@ along with this program. If not, see . * both regular threads and ISRs, unlocked (during resume-from-sleep). * In particular, I2C functions (interrupt-driven) should NOT be called from here. */ -void led_set(uint8_t usb_led) { - msg_t msg; - - if (usb_led & (1<= 0 && index < RGB_MATRIX_LED_COUNT) { is31_led led = g_is31_leds[index]; @@ -170,13 +170,13 @@ void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } } -void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - IS31FL3733_set_color(i, red, green, blue); + is31fl3733_set_color(i, red, green, blue); } } -void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { +void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { is31_led led = g_is31_leds[index]; uint8_t control_register_r = led.r / 8; @@ -205,28 +205,28 @@ void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bo g_led_control_registers_update_required[led.driver] = true; } -void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index) { +void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - IS31FL3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. - if (!IS31FL3733_write_pwm_buffer(index, addr, g_pwm_buffer[index])) { + if (!is31fl3733_write_pwm_buffer(index, addr, g_pwm_buffer[index])) { g_led_control_registers_update_required[index] = true; } } g_pwm_buffer_update_required[index] = false; } -void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index) { +void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - IS31FL3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - IS31FL3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { - IS31FL3733_write_register(index, addr, i, g_led_control_registers[index][i]); + is31fl3733_write_register(index, addr, i, g_led_control_registers[index][i]); } } g_led_control_registers_update_required[index] = false; diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index 16586714b8f..1becefbf936 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -31,21 +31,21 @@ typedef struct is31_led { extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; -void IS31FL3733_init(uint8_t bus, uint8_t addr, uint8_t sync); -bool IS31FL3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data); -bool IS31FL3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffer); +void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync); +bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data); +bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffer); -void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue); +void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue); // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). // If the buffer is dirty, it will update the driver with the buffer. -void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index); // index is the driver index -void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); // index is the driver index +void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); #define A_1 0x00 #define A_2 0x01 diff --git a/keyboards/input_club/k_type/k_type-rgbdriver.c b/keyboards/input_club/k_type/k_type-rgbdriver.c index e663c224c4a..dc5d4abd676 100644 --- a/keyboards/input_club/k_type/k_type-rgbdriver.c +++ b/keyboards/input_club/k_type/k_type-rgbdriver.c @@ -19,39 +19,38 @@ #include "rgb_matrix.h" #include "i2c_master.h" #include "is31fl3733-dual.h" - - +#include "gpio.h" static void init(void) { i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN); - IS31FL3733_init(0, DRIVER_ADDR_1, 0); + is31fl3733_init(0, DRIVER_ADDR_1, 0); # ifdef USE_I2C2 i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN); - IS31FL3733_init(1, DRIVER_ADDR_2, 0); + is31fl3733_init(1, DRIVER_ADDR_2, 0); # endif for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { bool enabled = true; // This only caches it for later - IS31FL3733_set_led_control_register(index, enabled, enabled, enabled); + is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); # ifdef USE_I2C2 - IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1); # endif } static void flush(void) { - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); # ifdef USE_I2C2 - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_2, 1); # endif } const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = IS31FL3733_set_color, - .set_color_all = IS31FL3733_set_color_all, + .set_color = is31fl3733_set_color, + .set_color_all = is31fl3733_set_color_all, }; #endif diff --git a/keyboards/input_club/k_type/keymaps/default/keymap.c b/keyboards/input_club/k_type/keymaps/default/keymap.c index 790bd932906..452791b13a4 100644 --- a/keyboards/input_club/k_type/keymaps/default/keymap.c +++ b/keyboards/input_club/k_type/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/input_club/k_type/rules.mk b/keyboards/input_club/k_type/rules.mk index 450eb9a023d..d7776bb755b 100644 --- a/keyboards/input_club/k_type/rules.mk +++ b/keyboards/input_club/k_type/rules.mk @@ -18,5 +18,3 @@ RGB_MATRIX_ENABLE = no SRC += k_type-rgbdriver.c QUANTUM_LIB_SRC += i2c_master.c is31fl3733-dual.c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/input_club/whitefox/info.json b/keyboards/input_club/whitefox/info.json index 02dd9757528..cb578e99b45 100644 --- a/keyboards/input_club/whitefox/info.json +++ b/keyboards/input_club/whitefox/info.json @@ -8,7 +8,7 @@ "device_version": "0.0.1" }, "led_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B2", "B3", "B18", "B19", "C0", "C8", "C9", "C10", "C11"], diff --git a/keyboards/input_club/whitefox/rules.mk b/keyboards/input_club/whitefox/rules.mk index 9b9b2ed739f..821041ea832 100644 --- a/keyboards/input_club/whitefox/rules.mk +++ b/keyboards/input_club/whitefox/rules.mk @@ -12,5 +12,3 @@ AUDIO_ENABLE = no # Audio output LED_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/irene/config.h b/keyboards/irene/config.h index 3ee3ed63160..656deab55a6 100644 --- a/keyboards/irene/config.h +++ b/keyboards/irene/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 23 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/irene/info.json b/keyboards/irene/info.json index 000a3436470..67f3457c5d1 100644 --- a/keyboards/irene/info.json +++ b/keyboards/irene/info.json @@ -8,6 +8,21 @@ "pid": "0x3000", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 23, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F1" }, diff --git a/keyboards/iron180/rules.mk b/keyboards/iron180/rules.mk index 488d0df4b9f..6f5c5c3b7e5 100644 --- a/keyboards/iron180/rules.mk +++ b/keyboards/iron180/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/itstleo/itstleo40/info.json b/keyboards/itstleo/itstleo40/info.json new file mode 100644 index 00000000000..8748072f4f4 --- /dev/null +++ b/keyboards/itstleo/itstleo40/info.json @@ -0,0 +1,81 @@ +{ + "manufacturer": "ItsTLeo", + "keyboard_name": "itstleo40", + "maintainer": "ItsTLeo", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "combo": false, + "console": false, + "leader": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11"], + "rows": ["GP14", "GP15", "GP16", "GP17"] + }, + "usb": { + "device_version": "1.0.0", + "vid": "0x4954", + "pid": "0x0003" + }, + "community_layouts": ["planck_mit"], + "layouts": { + "LAYOUT_planck_mit": { + "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": [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}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [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}, + {"matrix": [2, 11], "x": 11, "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}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3, "w": 2}, + {"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}, + {"matrix": [3, 11], "x": 11, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/itstleo/itstleo40/keymaps/default/keymap.c b/keyboards/itstleo/itstleo40/keymaps/default/keymap.c new file mode 100644 index 00000000000..8e24170a34a --- /dev/null +++ b/keyboards/itstleo/itstleo40/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Tab│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Bsp│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Esc│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Ent│ + * ├───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┼───┤ + * │App│Ctl│Alt│GUI│ < │ │ > │ ← │ ↓ │ ↑ │ → │ + * └───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┘ + */ + [0] = 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_BSPC, + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_APP, KC_LCTL, KC_LALT, KC_LGUI, KC_LT, KC_SPC, KC_GT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ) +}; diff --git a/keyboards/itstleo/itstleo40/keymaps/via/keymap.c b/keyboards/itstleo/itstleo40/keymaps/via/keymap.c new file mode 100644 index 00000000000..97600801706 --- /dev/null +++ b/keyboards/itstleo/itstleo40/keymaps/via/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Tab│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Bsp│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Esc│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Ent│ + * ├───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┼───┤ + * │App│Ctl│Alt│GUI│ < │ │ > │ ← │ ↓ │ ↑ │ → │ + * └───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┘ + */ + [0] = 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_BSPC, + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_APP, KC_LCTL, KC_LALT, KC_LGUI, KC_LT, KC_SPC, KC_GT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ) +}; \ No newline at end of file diff --git a/keyboards/itstleo/itstleo40/keymaps/via/rules.mk b/keyboards/itstleo/itstleo40/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/itstleo/itstleo40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/itstleo/itstleo40/readme.md b/keyboards/itstleo/itstleo40/readme.md new file mode 100644 index 00000000000..b76a9665090 --- /dev/null +++ b/keyboards/itstleo/itstleo40/readme.md @@ -0,0 +1,26 @@ +# itstleo/itstleo40 + +![itstleo/itstleo40](https://i.imgur.com/snNWZPmh.jpeg) + +* ItsTLeo first pcb using planck mit community layout, powered by QMK with VIA supported + +* Keyboard Maintainer: [ItsTLeo](https://github.com/ItsTLeo) +* Hardware Supported: Powered with RP2040 + +Make example for this keyboard (after setting up your build environment): + + make itstleo/itstleo40:default + +Flashing example for this keyboard: + + make itstleo/itstleo40:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/itstleo/itstleo40/rules.mk b/keyboards/itstleo/itstleo40/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/itstleo/itstleo40/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/jacky_studio/bear_65/config.h b/keyboards/jacky_studio/bear_65/config.h index c432e839d03..17cd8ea9ab0 100644 --- a/keyboards/jacky_studio/bear_65/config.h +++ b/keyboards/jacky_studio/bear_65/config.h @@ -10,19 +10,3 @@ #define LOCKING_RESYNC_ENABLE #define RGBLIGHT_DEFAULT_VAL 50 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -/* If defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_SLEEP diff --git a/keyboards/jacky_studio/bear_65/rev1/info.json b/keyboards/jacky_studio/bear_65/rev1/info.json index 77c0e44c0d4..325bc3c6d77 100644 --- a/keyboards/jacky_studio/bear_65/rev1/info.json +++ b/keyboards/jacky_studio/bear_65/rev1/info.json @@ -11,7 +11,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "F7", "F6", "F5", "F4", "F1", "F0"], @@ -25,7 +25,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "indicators": { "caps_lock": "C7", diff --git a/keyboards/jacky_studio/bear_65/rev2/info.json b/keyboards/jacky_studio/bear_65/rev2/info.json index 8e1779ceea6..d853b3a3208 100644 --- a/keyboards/jacky_studio/bear_65/rev2/info.json +++ b/keyboards/jacky_studio/bear_65/rev2/info.json @@ -11,7 +11,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "F7", "F6", "F5", "F4", "F1", "F0"], @@ -25,7 +25,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "indicators": { "caps_lock": "C7", diff --git a/keyboards/jacky_studio/piggy60/keymaps/via/keymap.json b/keyboards/jacky_studio/piggy60/keymaps/via/keymap.json index b166c6771ff..2bd5581ac76 100644 --- a/keyboards/jacky_studio/piggy60/keymaps/via/keymap.json +++ b/keyboards/jacky_studio/piggy60/keymaps/via/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "jacky_studio/piggy60", + "keyboard": "jacky_studio/piggy60/rev1/solder", "keymap": "via", "layout": "LAYOUT_all", "layers": [ diff --git a/keyboards/jacky_studio/piggy60/rev2/info.json b/keyboards/jacky_studio/piggy60/rev2/info.json index f824945aa0c..50f2849e738 100644 --- a/keyboards/jacky_studio/piggy60/rev2/info.json +++ b/keyboards/jacky_studio/piggy60/rev2/info.json @@ -24,7 +24,7 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "animations": { "alphas_mods": true, "gradient_up_down": true, diff --git a/keyboards/jacky_studio/piggy60/rev2/rules.mk b/keyboards/jacky_studio/piggy60/rev2/rules.mk index 47220e8853a..edbd3dd7181 100644 --- a/keyboards/jacky_studio/piggy60/rev2/rules.mk +++ b/keyboards/jacky_studio/piggy60/rev2/rules.mk @@ -4,5 +4,3 @@ MCU_LDSCRIPT = STM32F103xB # 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/jacky_studio/s7_elephant/rev1/config.h b/keyboards/jacky_studio/s7_elephant/rev1/config.h index e2d6aed274b..b9eeb3bf152 100644 --- a/keyboards/jacky_studio/s7_elephant/rev1/config.h +++ b/keyboards/jacky_studio/s7_elephant/rev1/config.h @@ -16,22 +16,6 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 2 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/jacky_studio/s7_elephant/rev1/info.json b/keyboards/jacky_studio/s7_elephant/rev1/info.json index 3af975eb5cb..bf8455ee4b5 100644 --- a/keyboards/jacky_studio/s7_elephant/rev1/info.json +++ b/keyboards/jacky_studio/s7_elephant/rev1/info.json @@ -8,6 +8,24 @@ "pid": "0x0007", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/jacky_studio/s7_elephant/rev2/config.h b/keyboards/jacky_studio/s7_elephant/rev2/config.h index 316658ad6da..b9eeb3bf152 100644 --- a/keyboards/jacky_studio/s7_elephant/rev2/config.h +++ b/keyboards/jacky_studio/s7_elephant/rev2/config.h @@ -16,22 +16,6 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 2 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/jacky_studio/s7_elephant/rev2/info.json b/keyboards/jacky_studio/s7_elephant/rev2/info.json index cc0c91dadce..e98923fb45b 100644 --- a/keyboards/jacky_studio/s7_elephant/rev2/info.json +++ b/keyboards/jacky_studio/s7_elephant/rev2/info.json @@ -12,6 +12,24 @@ "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "F7", "F6", "F5", "F4", "F1", "F0", "E6"], "rows": ["B0", "B1", "B2", "B3", "B7"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/jadookb/jkb65/config.h b/keyboards/jadookb/jkb65/config.h index a54e1e1fd3c..8e0534fa2cb 100644 --- a/keyboards/jadookb/jkb65/config.h +++ b/keyboards/jadookb/jkb65/config.h @@ -21,7 +21,6 @@ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_TIMEOUT 90000 #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL diff --git a/keyboards/jadookb/jkb65/info.json b/keyboards/jadookb/jkb65/info.json index e235e7bc416..e097b47ce55 100644 --- a/keyboards/jadookb/jkb65/info.json +++ b/keyboards/jadookb/jkb65/info.json @@ -10,7 +10,8 @@ "pin": "F0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "timeout": 90000 }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/jagdpietr/drakon/rules.mk b/keyboards/jagdpietr/drakon/rules.mk index 94fd5ee9d13..d670d935a0d 100644 --- a/keyboards/jagdpietr/drakon/rules.mk +++ b/keyboards/jagdpietr/drakon/rules.mk @@ -14,5 +14,4 @@ AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes WPM_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes diff --git a/keyboards/jaykeeb/kamigakushi/info.json b/keyboards/jaykeeb/kamigakushi/info.json index 21f0be63fa5..7ab02d2c66c 100644 --- a/keyboards/jaykeeb/kamigakushi/info.json +++ b/keyboards/jaykeeb/kamigakushi/info.json @@ -15,7 +15,7 @@ }, "indicators": { "caps_lock": "GP17", - "on_state": 1 + "on_state": 0 }, "rgblight": { "led_count": 2, @@ -51,6 +51,9 @@ "pid": "0x0765", "vid": "0x414C" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker_tsangan" + }, "layouts": { "LAYOUT_65_ansi_blocker_tsangan": { "layout": [ diff --git a/keyboards/jaykeeb/kamigakushi/rules.mk b/keyboards/jaykeeb/kamigakushi/rules.mk index 24f0fb91d3b..161ec22b16e 100644 --- a/keyboards/jaykeeb/kamigakushi/rules.mk +++ b/keyboards/jaykeeb/kamigakushi/rules.mk @@ -1,2 +1 @@ SERIAL_DRIVER = vendor -OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/jaykeeb/orba/info.json b/keyboards/jaykeeb/orba/info.json new file mode 100644 index 00000000000..b437667b14d --- /dev/null +++ b/keyboards/jaykeeb/orba/info.json @@ -0,0 +1,192 @@ +{ + "manufacturer": "Alabahuy", + "keyboard_name": "orba", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP17", "GP16", "GP14", "GP13", "GP12", "GP15", "GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20"], + "rows": ["GP11", "GP10", "GP18", "GP19", "GP0" ] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0769", + "vid": "0x414C" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_625u_space" + }, + "layouts": { + "LAYOUT_625u_space": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "`", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "-", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "=", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "6", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "7", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "8", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "9", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "0", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Home", "matrix": [0, 15], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "P7", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "P8", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "P9", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "Y", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": "U", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "I", "matrix": [1, 11], "x": 11, "y": 1}, + {"label": "O", "matrix": [1, 12], "x": 12, "y": 1}, + {"label": "P", "matrix": [1, 13], "x": 13, "y": 1}, + {"label": "Backspace", "matrix": [1, 14], "x": 14, "y": 1}, + {"label": "Page Up", "matrix": [1, 15], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "A", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "P4", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "P5", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": "P6", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": "H", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": "J", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "K", "matrix": [2, 11], "x": 11, "y": 2}, + {"label": "L", "matrix": [2, 12], "x": 12, "y": 2}, + {"label": ":", "matrix": [2, 13], "x": 13, "y": 2}, + {"label": "", "matrix": [2, 14], "x": 14, "y": 2}, + {"label": "Page Down", "matrix": [2, 15], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 5, "y": 3}, + {"label": "P1", "matrix": [3, 6], "x": 6, "y": 3}, + {"label": "P2", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "P3", "matrix": [3, 8], "x": 8, "y": 3}, + {"label": "N", "matrix": [3, 9], "x": 9, "y": 3}, + {"label": "M", "matrix": [3, 10], "x": 10, "y": 3}, + {"label": ",", "matrix": [3, 11], "x": 11, "y": 3}, + {"label": ".", "matrix": [3, 12], "x": 12, "y": 3}, + {"label": "/", "matrix": [3, 13], "x": 13, "y": 3}, + {"label": "\u2191", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "Enter", "matrix": [3, 15], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Fn", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 13], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 14], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_7u_space": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "`", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "-", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "=", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "6", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "7", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "8", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "9", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "0", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Home", "matrix": [0, 15], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "P7", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "P8", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "P9", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "Y", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": "U", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "I", "matrix": [1, 11], "x": 11, "y": 1}, + {"label": "O", "matrix": [1, 12], "x": 12, "y": 1}, + {"label": "P", "matrix": [1, 13], "x": 13, "y": 1}, + {"label": "Backspace", "matrix": [1, 14], "x": 14, "y": 1}, + {"label": "Page Up", "matrix": [1, 15], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "A", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "P4", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "P5", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": "P6", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": "H", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": "J", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "K", "matrix": [2, 11], "x": 11, "y": 2}, + {"label": "L", "matrix": [2, 12], "x": 12, "y": 2}, + {"label": ":", "matrix": [2, 13], "x": 13, "y": 2}, + {"label": "", "matrix": [2, 14], "x": 14, "y": 2}, + {"label": "Page Down", "matrix": [2, 15], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 5, "y": 3}, + {"label": "P1", "matrix": [3, 6], "x": 6, "y": 3}, + {"label": "P2", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "P3", "matrix": [3, 8], "x": 8, "y": 3}, + {"label": "N", "matrix": [3, 9], "x": 9, "y": 3}, + {"label": "M", "matrix": [3, 10], "x": 10, "y": 3}, + {"label": ",", "matrix": [3, 11], "x": 11, "y": 3}, + {"label": ".", "matrix": [3, 12], "x": 12, "y": 3}, + {"label": "/", "matrix": [3, 13], "x": 13, "y": 3}, + {"label": "\u2191", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "Enter", "matrix": [3, 15], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 13], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 14], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/jaykeeb/orba/keymaps/default/keymap.c b/keyboards/jaykeeb/orba/keymaps/default/keymap.c new file mode 100644 index 00000000000..5b00f5a34cf --- /dev/null +++ b/keyboards/jaykeeb/orba/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ ~ │ - │ = │ 6 │ 7 │ 8 │ 9 │ 0 │Del│Hom│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab│ Q │ W │ E │ R │ T │ 7 │ 8 │ 9 │ Y │ U │ I │ O │ P │Bsc│PgU│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Cap│ A │ S │ D │ F │ G │ 4 │ 5 │ 6 │ H │ J │ k │ L │ : │ " │PgD│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Shf│ Z │ X │ C │ V │ B │ 1 │ 2 │ 3 │ N │ M │ < │ > │ ? │ │Ent│ + * ├───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┼───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ FN │Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_625u_space( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + + [1] = LAYOUT_625u_space( + _______, 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_RBT, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/jaykeeb/orba/keymaps/via/keymap.c b/keyboards/jaykeeb/orba/keymaps/via/keymap.c new file mode 100644 index 00000000000..e6b4fb0b207 --- /dev/null +++ b/keyboards/jaykeeb/orba/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ ~ │ - │ + │ 6 │ 7 │ 8 │ 9 │ 0 │Del│Hom│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab│ Q │ W │ E │ R │ T │ 7 │ 8 │ 9 │ Y │ U │ I │ O │ P │Bsc│PgU│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Cap│ A │ S │ D │ F │ G │ 4 │ 5 │ 6 │ H │ J │ k │ L │ : │ " │PgD│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Shf│ Z │ X │ C │ V │ B │ 1 │ 2 │ 3 │ N │ M │ < │ > │ ? │ │Ent│ + * ├───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┼───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ FN │Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_625u_space( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + + [1] = LAYOUT_625u_space( + _______, 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_RBT, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + + +}; diff --git a/keyboards/jaykeeb/orba/keymaps/via/rules.mk b/keyboards/jaykeeb/orba/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/jaykeeb/orba/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/jaykeeb/orba/readme.md b/keyboards/jaykeeb/orba/readme.md new file mode 100644 index 00000000000..23efe28b519 --- /dev/null +++ b/keyboards/jaykeeb/orba/readme.md @@ -0,0 +1,27 @@ +# orba + +![orba](https://i.imgur.com/c9iQPWRh.jpeg) + +PCB like 65% with ortho 16x4 and bottom ansi or tsangan + +* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy) +* Hardware Supported: orba PCB, RP2040 +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make jaykeeb/orba:default + +Flashing example for this keyboard: + + make jaykeeb/orba: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/jaykeeb/orba/rules.mk b/keyboards/jaykeeb/orba/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/jaykeeb/orba/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/jaykeeb/sebelas/info.json b/keyboards/jaykeeb/sebelas/info.json new file mode 100644 index 00000000000..ac4202d820a --- /dev/null +++ b/keyboards/jaykeeb/sebelas/info.json @@ -0,0 +1,424 @@ +{ + "manufacturer": "Alabahuy", + "keyboard_name": "Sebelas", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP0", "GP15", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP2"], + "rows": ["GP11", "GP12", "GP13", "GP1", "GP16"] + }, + "indicators": { + "caps_lock": "GP14", + "on_state": 0 + }, + "ws2812": { + "pin": "GP3", + "driver": "vendor" + }, + "rgblight": { + "led_count": 1, + "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 + } + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0767", + "vid": "0x414C" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Up", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Up", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Up", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Up", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Up", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/jaykeeb/sebelas/keymaps/default/keymap.c b/keyboards/jaykeeb/sebelas/keymaps/default/keymap.c new file mode 100644 index 00000000000..4a525e7bd39 --- /dev/null +++ b/keyboards/jaykeeb/sebelas/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Alabahuy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/jaykeeb/sebelas/keymaps/via/keymap.c b/keyboards/jaykeeb/sebelas/keymaps/via/keymap.c new file mode 100644 index 00000000000..4a525e7bd39 --- /dev/null +++ b/keyboards/jaykeeb/sebelas/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Alabahuy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/jaykeeb/sebelas/keymaps/via/rules.mk b/keyboards/jaykeeb/sebelas/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/jaykeeb/sebelas/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/jaykeeb/sebelas/matrix_diagram.md b/keyboards/jaykeeb/sebelas/matrix_diagram.md new file mode 100644 index 00000000000..24cf49725b2 --- /dev/null +++ b/keyboards/jaykeeb/sebelas/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Jaykeeb Sebelas + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2D │1E │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│40 │41 │42 │47 │4A │4B │ │4C │4D │4E │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │47 │4B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` diff --git a/keyboards/jaykeeb/sebelas/readme.md b/keyboards/jaykeeb/sebelas/readme.md new file mode 100644 index 00000000000..e44042b8640 --- /dev/null +++ b/keyboards/jaykeeb/sebelas/readme.md @@ -0,0 +1,27 @@ +# SEBELAS + +![sebelas]( https://i.imgur.com/07zQeZhh.png ) + +PCB Replacement for TGR910 + +* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy) +* Hardware Supported: Sebelas PCB, RP2040 +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make jaykeeb/sebelas:default + +Flashing example for this keyboard: + + make jaykeeb/sebelas: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/jaykeeb/sebelas/rules.mk b/keyboards/jaykeeb/sebelas/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/jaykeeb/sebelas/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/jaykeeb/skyline/info.json b/keyboards/jaykeeb/skyline/info.json new file mode 100644 index 00000000000..068c11a8740 --- /dev/null +++ b/keyboards/jaykeeb/skyline/info.json @@ -0,0 +1,563 @@ +{ + "manufacturer": "Jaykeeb", + "keyboard_name": "Skyline", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP24", + "scroll_lock": "GP12", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0", "GP29", "GP28", "GP16", "GP15", "GP14"], + "rows": ["GP13", "GP27", "GP26", "GP25", "GP22", "GP23"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0799", + "vid": "0x414C" + }, + "community_layouts": [ + "tkl_ansi_tsangan", + "tkl_ansi_tsangan_split_bs_rshift", + "tkl_iso_tsangan", + "tkl_iso_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [2, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [3, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\u2298", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn1", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [3, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [2, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [3, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn1", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 4], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 9], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 10], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 11], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 12], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 7], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 13], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 14], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 15], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [2, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn1", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/jaykeeb/skyline/keymaps/default/keymap.c b/keyboards/jaykeeb/skyline/keymaps/default/keymap.c new file mode 100644 index 00000000000..78cf4b4c44d --- /dev/null +++ b/keyboards/jaykeeb/skyline/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 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_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_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_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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/keymaps/via/keymap.c b/keyboards/jaykeeb/skyline/keymaps/via/keymap.c new file mode 100644 index 00000000000..78cf4b4c44d --- /dev/null +++ b/keyboards/jaykeeb/skyline/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 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_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_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_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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/keymaps/via/rules.mk b/keyboards/jaykeeb/skyline/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/jaykeeb/skyline/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/matrix_diagram.md b/keyboards/jaykeeb/skyline/matrix_diagram.md new file mode 100644 index 00000000000..419567fab54 --- /dev/null +++ b/keyboards/jaykeeb/skyline/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Skyline + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│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 │2D │ │1E │1F │1G │ │1D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │3D │ │2E │2F │2G │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐3D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │ │3C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│50 │51 │52 │57 │5B │5C │5D │ │5E │5F │5G │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +┌────────┐ ┌──────────┐ +│40 │ 2.25u LShift 2.75u RShift │4C │ +└────────┘ └──────────┘ +``` diff --git a/keyboards/jaykeeb/skyline/readme.md b/keyboards/jaykeeb/skyline/readme.md new file mode 100644 index 00000000000..92291310e04 --- /dev/null +++ b/keyboards/jaykeeb/skyline/readme.md @@ -0,0 +1,27 @@ +#Skyline + +![skyline](https://i.imgur.com/nIeOhKth.png) + +PCB for "Skyline" TKL Mechanical Keyboard + +* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy) +* Hardware Supported: Skyline PCB, RP2040 +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make jaykeeb/skyline:default + +Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) + + make jaykeeb/skyline:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/rules.mk b/keyboards/jaykeeb/skyline/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/jaykeeb/skyline/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/jc65/v32a/config.h b/keyboards/jc65/v32a/config.h index 6abe1d446de..1aef8d595ac 100644 --- a/keyboards/jc65/v32a/config.h +++ b/keyboards/jc65/v32a/config.h @@ -17,18 +17,4 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 16 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 8 diff --git a/keyboards/jc65/v32a/info.json b/keyboards/jc65/v32a/info.json index 0c6413d5876..8083cb0bc1d 100644 --- a/keyboards/jc65/v32a/info.json +++ b/keyboards/jc65/v32a/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/jc65/v32u4/config.h b/keyboards/jc65/v32u4/config.h deleted file mode 100644 index 35107f15183..00000000000 --- a/keyboards/jc65/v32u4/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/jc65/v32u4/info.json b/keyboards/jc65/v32u4/info.json index 1c56cc00ee8..f173cc97835 100644 --- a/keyboards/jc65/v32u4/info.json +++ b/keyboards/jc65/v32u4/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "B6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c b/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c index b7349de55ae..e0046073c64 100644 --- a/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c @@ -219,10 +219,6 @@ void matrix_init_user(void) { #endif } -void matrix_scan_user(void) { - -} - layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case _BL: @@ -260,7 +256,3 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/jd40/config.h b/keyboards/jd40/config.h index cec546538a8..4e596948184 100644 --- a/keyboards/jd40/config.h +++ b/keyboards/jd40/config.h @@ -21,18 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 12 // Number of LEDs -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/jd40/info.json b/keyboards/jd40/info.json index 1e11f466a07..ff352a2216a 100644 --- a/keyboards/jd40/info.json +++ b/keyboards/jd40/info.json @@ -8,6 +8,23 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/jels/jels60/config.h b/keyboards/jels/jels60/config.h deleted file mode 100644 index d78952f2611..00000000000 --- a/keyboards/jels/jels60/config.h +++ /dev/null @@ -1,23 +0,0 @@ - /* Copyright 2022 Joah Nelson (Jels) - * - * This 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 - diff --git a/keyboards/jels/jels60/info.json b/keyboards/jels/jels60/info.json index 7f3edd48436..7194542d48a 100644 --- a/keyboards/jels/jels60/info.json +++ b/keyboards/jels/jels60/info.json @@ -8,16 +8,7 @@ "pid": "0x0060", "device_version": "0.0.1" }, - "matrix_pins": { - "cols": ["E6", "C7", "B4", "D7", "D6", "D4", "D5", "D3", "F5", "F6", "F7", "C6", "B6", "B5"], - "rows": ["B3", "D2", "F0", "F4", "F1"] - }, "diode_direction": "COL2ROW", - "indicators": { - "caps_lock": "B7" - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/jels/jels60/keymaps/default/keymap.c b/keyboards/jels/jels60/keymaps/default/keymap.c index 084f3d82755..b79cc89456b 100644 --- a/keyboards/jels/jels60/keymaps/default/keymap.c +++ b/keyboards/jels/jels60/keymaps/default/keymap.c @@ -1,18 +1,18 @@ - /* Copyright 2022 Joah Nelson (Jels) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +/* Copyright 2022 Joah Nelson (Jels) +* +* This 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 diff --git a/keyboards/jels/jels60/keymaps/via/keymap.c b/keyboards/jels/jels60/keymaps/via/keymap.c index 084f3d82755..b79cc89456b 100644 --- a/keyboards/jels/jels60/keymaps/via/keymap.c +++ b/keyboards/jels/jels60/keymaps/via/keymap.c @@ -1,18 +1,18 @@ - /* Copyright 2022 Joah Nelson (Jels) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +/* Copyright 2022 Joah Nelson (Jels) +* +* This 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 diff --git a/keyboards/jels/jels60/rules.mk b/keyboards/jels/jels60/rules.mk deleted file mode 100644 index 3b6a1809db1..00000000000 --- a/keyboards/jels/jels60/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# 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/jels/jels60/v1/config.h b/keyboards/jels/jels60/v1/config.h new file mode 100644 index 00000000000..92b3d368015 --- /dev/null +++ b/keyboards/jels/jels60/v1/config.h @@ -0,0 +1,23 @@ +/* Copyright 2022 Joah Nelson (Jels) +* +* This 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 + diff --git a/keyboards/jels/jels60/v1/info.json b/keyboards/jels/jels60/v1/info.json new file mode 100644 index 00000000000..6dc88d7895f --- /dev/null +++ b/keyboards/jels/jels60/v1/info.json @@ -0,0 +1,19 @@ +{ + "matrix_pins": { + "cols": ["E6", "C7", "B4", "D7", "D6", "D4", "D5", "D3", "F5", "F6", "F7", "C6", "B6", "B5"], + "rows": ["B3", "D2", "F0", "F4", "F1"] + }, + "indicators": { + "caps_lock": "B7" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": false + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu" +} diff --git a/keyboards/jels/jels60/v1/rules.mk b/keyboards/jels/jels60/v1/rules.mk new file mode 100644 index 00000000000..5566e1323fa --- /dev/null +++ b/keyboards/jels/jels60/v1/rules.mk @@ -0,0 +1 @@ +# left blank intentionally diff --git a/keyboards/jels/jels60/v2/config.h b/keyboards/jels/jels60/v2/config.h new file mode 100644 index 00000000000..02d9619a301 --- /dev/null +++ b/keyboards/jels/jels60/v2/config.h @@ -0,0 +1,25 @@ +/* Copyright 2022 Joah Nelson (Jels) +* +* This 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 RGBLIGHT_DEFAULT_VAL 0 + +/* 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 diff --git a/keyboards/jels/jels60/v2/info.json b/keyboards/jels/jels60/v2/info.json new file mode 100644 index 00000000000..1945b101cfc --- /dev/null +++ b/keyboards/jels/jels60/v2/info.json @@ -0,0 +1,39 @@ +{ + "bootloader": "rp2040", + "processor": "RP2040", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": false + }, + "matrix_pins": { + "cols": ["GP24", "GP25", "GP23", "GP21", "GP22", "GP2", "GP1", "GP0", "GP6", "GP18", "GP19", "GP20", "GP9", "GP8"], + "rows": ["GP26", "GP27", "GP3", "GP4", "GP5"] + }, + "ws2812": { + "pin": "GP29", + "driver": "vendor" + }, + "rgblight": { + "led_count": 22, + "sleep": true, + "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 + } + }, + "indicators": { + "caps_lock": "GP28" + } +} diff --git a/keyboards/jels/jels60/v2/rules.mk b/keyboards/jels/jels60/v2/rules.mk new file mode 100644 index 00000000000..e0b4f1030fb --- /dev/null +++ b/keyboards/jels/jels60/v2/rules.mk @@ -0,0 +1 @@ +# left blank intentionally \ No newline at end of file diff --git a/keyboards/jels/jels88/config.h b/keyboards/jels/jels88/config.h index 6ce24bfbde5..0b1d1154951 100644 --- a/keyboards/jels/jels88/config.h +++ b/keyboards/jels/jels88/config.h @@ -16,21 +16,7 @@ #pragma once -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 20 // Number of LEDs -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE #define RGBLIGHT_DEFAULT_VAL 0 // start off -#endif /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/jels/jels88/info.json b/keyboards/jels/jels88/info.json index 2dc7c2f2acd..cc8e525525c 100644 --- a/keyboards/jels/jels88/info.json +++ b/keyboards/jels/jels88/info.json @@ -20,7 +20,21 @@ "pin": "B6" }, "rgblight": { - "max_brightness": 225 + "led_count": 20, + "max_brightness": 225, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/jian/nsrev2/config.h b/keyboards/jian/nsrev2/config.h index 5bd79d3ce09..5025847259a 100644 --- a/keyboards/jian/nsrev2/config.h +++ b/keyboards/jian/nsrev2/config.h @@ -19,22 +19,7 @@ along with this program. If not, see . #define PHYSICAL_LEDS_ENABLE -/* ws2812 RGB LED */ #define RGBLIGHT_TIMER -#define RGBLED_NUM 7 // Number of LEDs -#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_SLEEP -#define RGBLIGHT_SPLIT #ifndef IOS_DEVICE_ENABLE #if RGBLED_NUM <= 6 @@ -51,8 +36,6 @@ along with this program. If not, see . #endif #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 diff --git a/keyboards/jian/nsrev2/info.json b/keyboards/jian/nsrev2/info.json index 955fc517dec..4ea315f51e0 100644 --- a/keyboards/jian/nsrev2/info.json +++ b/keyboards/jian/nsrev2/info.json @@ -13,6 +13,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "hue_steps": 10, + "led_count": 7, + "sleep": true, + "split": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/jian/rev1/config.h b/keyboards/jian/rev1/config.h index 11b99cc7399..8f1a34c2ff4 100644 --- a/keyboards/jian/rev1/config.h +++ b/keyboards/jian/rev1/config.h @@ -71,41 +71,7 @@ along with this program. If not, see . #define UPDATE_SCROLL_LOCK_LED() writePin(SCROLL_LOCK_LED_PIN, !led_state.scroll_lock) #endif // SCROLL_NMOSFET -/* ws2812 RGB LED */ #define RGBLIGHT_TIMER -#define RGBLED_NUM 7 // Number of LEDs -#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_SLEEP -#define RGBLIGHT_SPLIT - -#ifndef IOS_DEVICE_ENABLE -#if RGBLED_NUM <= 6 -#define RGBLIGHT_LIMIT_VAL 255 -#else -#define RGBLIGHT_LIMIT_VAL 130 -#endif -#define RGBLIGHT_VAL_STEP 8 -#else -#if RGBLED_NUM <= 6 -#define RGBLIGHT_LIMIT_VAL 90 -#else -#define RGBLIGHT_LIMIT_VAL 45 -#endif -#define RGBLIGHT_VAL_STEP 4 -#endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 diff --git a/keyboards/jian/rev1/info.json b/keyboards/jian/rev1/info.json index e7e386088a7..27c5c957a6b 100644 --- a/keyboards/jian/rev1/info.json +++ b/keyboards/jian/rev1/info.json @@ -12,6 +12,24 @@ "pin": "B6", "levels": 5 }, + "rgblight": { + "hue_steps": 10, + "led_count": 7, + "sleep": true, + "split": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/jian/rev1/post_config.h b/keyboards/jian/rev1/post_config.h new file mode 100644 index 00000000000..fade065e192 --- /dev/null +++ b/keyboards/jian/rev1/post_config.h @@ -0,0 +1,17 @@ +#pragma once + +#ifndef IOS_DEVICE_ENABLE +# if RGBLED_NUM <= 6 +# define RGBLIGHT_LIMIT_VAL 255 +# else +# define RGBLIGHT_LIMIT_VAL 130 +# endif +# define RGBLIGHT_VAL_STEP 8 +#else +# if RGBLED_NUM <= 6 +# define RGBLIGHT_LIMIT_VAL 90 +# else +# define RGBLIGHT_LIMIT_VAL 45 +# endif +# define RGBLIGHT_VAL_STEP 4 +#endif diff --git a/keyboards/jian/rev2/config.h b/keyboards/jian/rev2/config.h index 147c2cf147b..091605665e6 100644 --- a/keyboards/jian/rev2/config.h +++ b/keyboards/jian/rev2/config.h @@ -23,40 +23,7 @@ along with this program. If not, see . #define PHYSICAL_LEDS_ENABLE #define IOS_DEVICE_ENABLE -/* ws2812 RGB LED */ #define RGBLIGHT_TIMER -#define RGBLED_NUM 7 // Number of LEDs -#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_SLEEP -#define RGBLIGHT_SPLIT - -#ifndef IOS_DEVICE_ENABLE -#if RGBLED_NUM <= 6 -#define RGBLIGHT_LIMIT_VAL 255 -#else -#define RGBLIGHT_LIMIT_VAL 130 -#endif -#define RGBLIGHT_VAL_STEP 8 -#else -#if RGBLED_NUM <= 6 -#define RGBLIGHT_LIMIT_VAL 90 -#else -#define RGBLIGHT_LIMIT_VAL 45 -#endif -#define RGBLIGHT_VAL_STEP 4 -#endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 diff --git a/keyboards/jian/rev2/info.json b/keyboards/jian/rev2/info.json index 7fecaed1f09..cfcfc8e2fa4 100644 --- a/keyboards/jian/rev2/info.json +++ b/keyboards/jian/rev2/info.json @@ -12,6 +12,24 @@ "pin": "C6", "levels": 5 }, + "rgblight": { + "hue_steps": 10, + "led_count": 7, + "sleep": true, + "split": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/jian/rev2/post_config.h b/keyboards/jian/rev2/post_config.h new file mode 100644 index 00000000000..fade065e192 --- /dev/null +++ b/keyboards/jian/rev2/post_config.h @@ -0,0 +1,17 @@ +#pragma once + +#ifndef IOS_DEVICE_ENABLE +# if RGBLED_NUM <= 6 +# define RGBLIGHT_LIMIT_VAL 255 +# else +# define RGBLIGHT_LIMIT_VAL 130 +# endif +# define RGBLIGHT_VAL_STEP 8 +#else +# if RGBLED_NUM <= 6 +# define RGBLIGHT_LIMIT_VAL 90 +# else +# define RGBLIGHT_LIMIT_VAL 45 +# endif +# define RGBLIGHT_VAL_STEP 4 +#endif diff --git a/keyboards/jiran/rev2/config.h b/keyboards/jiran/rev2/config.h deleted file mode 100644 index ce78530cb76..00000000000 --- a/keyboards/jiran/rev2/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2017 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 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 56 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 28, 28 } -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/jiran/rev2/info.json b/keyboards/jiran/rev2/info.json index 8539b47652e..8f52510ff76 100644 --- a/keyboards/jiran/rev2/info.json +++ b/keyboards/jiran/rev2/info.json @@ -1,4 +1,21 @@ { + "rgblight": { + "hue_steps": 10, + "led_count": 56, + "split_count": [28, 28], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/jkeys_design/gentleman65/config.h b/keyboards/jkeys_design/gentleman65/config.h index 1b66b1bb25d..70ddb0cf5a2 100644 --- a/keyboards/jkeys_design/gentleman65/config.h +++ b/keyboards/jkeys_design/gentleman65/config.h @@ -18,16 +18,4 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 14 -#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 RGB_MATRIX_LED_COUNT 14 diff --git a/keyboards/jkeys_design/gentleman65/info.json b/keyboards/jkeys_design/gentleman65/info.json index 9624933b8db..bd929c6faa3 100644 --- a/keyboards/jkeys_design/gentleman65/info.json +++ b/keyboards/jkeys_design/gentleman65/info.json @@ -8,11 +8,26 @@ "pid": "0x2020", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D4", "D6", "D7", "B4", "B5", "B6", "C6", "D5", "C7", "F0", "B2", "B1", "B3", "B0", "B7", "D0"], diff --git a/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/features/custom_shift_keys.c b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/features/custom_shift_keys.c new file mode 100644 index 00000000000..e217adcf09e --- /dev/null +++ b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/features/custom_shift_keys.c @@ -0,0 +1,72 @@ +// Copyright 2021-2023 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. + +/** + * @file custom_shift_keys.c + * @brief Custom Shift Keys implementation + * + * For full documentation, see + * + */ + +#include "custom_shift_keys.h" + +bool process_custom_shift_keys(uint16_t keycode, keyrecord_t *record) { + static uint16_t registered_keycode = KC_NO; + + // If a custom shift key is registered, then this event is either releasing + // it or manipulating another key at the same time. Either way, we release + // the currently registered key. + if (registered_keycode != KC_NO) { + unregister_code16(registered_keycode); + registered_keycode = KC_NO; + } + + if (record->event.pressed) { // Press event. + const uint8_t mods = get_mods(); +#ifndef NO_ACTION_ONESHOT + if ((mods | get_weak_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) { +#else + if ((mods | get_weak_mods()) & MOD_MASK_SHIFT) { // Shift is held. +#endif // NO_ACTION_ONESHOT + // Continue default handling if this is a tap-hold key being held. + if ((IS_QK_MOD_TAP(keycode) || IS_QK_LAYER_TAP(keycode)) && record->tap.count == 0) { + return true; + } + + // Search for a custom shift key whose keycode is `keycode`. + for (int i = 0; i < NUM_CUSTOM_SHIFT_KEYS; ++i) { + if (keycode == custom_shift_keys[i].keycode) { + registered_keycode = custom_shift_keys[i].shifted_keycode; + if (IS_QK_MODS(registered_keycode) && // Should keycode be shifted? + (QK_MODS_GET_MODS(registered_keycode) & MOD_LSFT) != 0) { + register_code16(registered_keycode); // If so, press it directly. + } else { + // Otherwise cancel shift mods, press the key, and restore mods. + del_weak_mods(MOD_MASK_SHIFT); +#ifndef NO_ACTION_ONESHOT + del_oneshot_mods(MOD_MASK_SHIFT); +#endif // NO_ACTION_ONESHOT + unregister_mods(MOD_MASK_SHIFT); + register_code16(registered_keycode); + set_mods(mods); + } + return false; + } + } + } + } + + return true; // Continue with default handling. +} \ No newline at end of file diff --git a/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/features/custom_shift_keys.h b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/features/custom_shift_keys.h new file mode 100644 index 00000000000..7d1ee13a459 --- /dev/null +++ b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/features/custom_shift_keys.h @@ -0,0 +1,99 @@ +// 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. + +/** + * @file custom_shift_keys.h + * @brief Custom shift keys: customize what keycode is produced when shifted. + * + * Overview + * -------- + * + * This library implements custom shift keys, keys where you can customize + * what keycode is produced when shifted. + * + * Step 1: In your keymap.c, define a table of custom shift keys like + * + * #include "features/custom_shift_keys.h" + * + * const custom_shift_key_t custom_shift_keys[] = { + * {KC_DOT , KC_QUES}, // Shift . is ? + * {KC_COMM, KC_EXLM}, // Shift , is ! + * {KC_MINS, KC_EQL }, // Shift - is = + * {KC_COLN, KC_SCLN}, // Shift : is ; + * }; + * + * Each row defines one key. The first field is the keycode as it appears in + * your layout and determines what is typed normally. The second entry is what + * you want the key to type when shifted. + * + * Step 2: Handle custom shift keys from your `process_record_user` function as + * + * bool process_record_user(uint16_t keycode, keyrecord_t* record) { + * if (!process_custom_shift_keys(keycode, record)) { return false; } + * // Your macros ... + * + * return true; + * } + * + * Step 3: add `features/custom_shift_keys.c` to your rules.mk as + * + * SRC += features/custom_shift_keys.c + * + * + * For full documentation, see + * + */ + +#pragma once + +#include "quantum.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Custom shift key entry. The `keycode` field is the keycode as it appears in + * your layout and determines what is typed normally. The `shifted_keycode` is + * what you want the key to type when shifted. + */ +typedef struct { + uint16_t keycode; + uint16_t shifted_keycode; +} custom_shift_key_t; + +/** Table of custom shift keys. */ +extern const custom_shift_key_t custom_shift_keys[]; +/** Number of entries in the `custom_shift_keys` table. */ +extern uint8_t NUM_CUSTOM_SHIFT_KEYS; + +/** + * Handler function for custom shift keys. + * + * In keymap.c, call this function from your `process_record_user` function as + * + * #include "features/custom_shift_keys.h" + * + * bool process_record_user(uint16_t keycode, keyrecord_t* record) { + * if (!process_custom_shift_keys(keycode, record)) { return false; } + * // Your macros ... + * + * return true; + * } + */ +bool process_custom_shift_keys(uint16_t keycode, keyrecord_t *record); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/keymap.c b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/keymap.c index 619231a6ab2..cb6fff1a0fd 100644 --- a/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/keymap.c +++ b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/keymap.c @@ -14,6 +14,7 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H +#include "features/custom_shift_keys.h" #define FN_ESC LT(_FUNC, KC_ESC) @@ -29,6 +30,10 @@ enum gentleman_keycodes { FUNC, }; +const custom_shift_key_t custom_shift_keys[] = {{KC_ESC, KC_TILD}}; + +uint8_t NUM_CUSTOM_SHIFT_KEYS = sizeof(custom_shift_keys) / sizeof(custom_shift_key_t); + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_65_ansi_rwkl_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_BSPC, KC_BSPC, KC_TRNS, @@ -78,6 +83,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_custom_shift_keys(keycode, record)) { + return false; + } switch (keycode) { case QWERTY: if (record->event.pressed) { @@ -90,7 +98,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; } - + return true; } - diff --git a/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/readme.md b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/readme.md index b7c0fb5c5d4..feebedc544e 100644 --- a/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/readme.md +++ b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/readme.md @@ -10,5 +10,5 @@ ## Building and flashing ``` -make gentleman65:briianpowell:flash +make jkeys_design/gentleman65:briianpowell:flash ``` diff --git a/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/rules.mk b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/rules.mk new file mode 100644 index 00000000000..ac89d139028 --- /dev/null +++ b/keyboards/jkeys_design/gentleman65/keymaps/briianpowell/rules.mk @@ -0,0 +1 @@ +SRC += features/custom_shift_keys.c diff --git a/keyboards/jkeys_design/gentleman65/rules.mk b/keyboards/jkeys_design/gentleman65/rules.mk index f81996d7021..bb89340fbf1 100644 --- a/keyboards/jkeys_design/gentleman65/rules.mk +++ b/keyboards/jkeys_design/gentleman65/rules.mk @@ -11,4 +11,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = no -ENCODER_ENABLE = yes \ No newline at end of file +ENCODER_ENABLE = yes diff --git a/keyboards/jkeys_design/gentleman65_se_s/config.h b/keyboards/jkeys_design/gentleman65_se_s/config.h index 1b66b1bb25d..70ddb0cf5a2 100644 --- a/keyboards/jkeys_design/gentleman65_se_s/config.h +++ b/keyboards/jkeys_design/gentleman65_se_s/config.h @@ -18,16 +18,4 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 14 -#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 RGB_MATRIX_LED_COUNT 14 diff --git a/keyboards/jkeys_design/gentleman65_se_s/info.json b/keyboards/jkeys_design/gentleman65_se_s/info.json index 6886f8f24b1..76d6b445dc2 100644 --- a/keyboards/jkeys_design/gentleman65_se_s/info.json +++ b/keyboards/jkeys_design/gentleman65_se_s/info.json @@ -8,11 +8,26 @@ "pid": "0x2322", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D5", "D3", "D2", "D1", "D0", "B7", "B2", "B3", "D4", "D6", "D7", "C7", "C6", "B6", "B5", "B4"], diff --git a/keyboards/jm60/rules.mk b/keyboards/jm60/rules.mk index 47b3dc0faa6..5dbf13f5e78 100644 --- a/keyboards/jm60/rules.mk +++ b/keyboards/jm60/rules.mk @@ -20,5 +20,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/jolofsor/denial75/config.h b/keyboards/jolofsor/denial75/config.h index a80552a780d..785fdc3e5ee 100644 --- a/keyboards/jolofsor/denial75/config.h +++ b/keyboards/jolofsor/denial75/config.h @@ -24,9 +24,4 @@ /* RGB Definitions */ - -#define RGBLED_NUM 84 #define RGBLIGHT_MAX_LAYERS 32 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/jolofsor/denial75/info.json b/keyboards/jolofsor/denial75/info.json index 6f1388f49e4..545243e410b 100644 --- a/keyboards/jolofsor/denial75/info.json +++ b/keyboards/jolofsor/denial75/info.json @@ -16,6 +16,8 @@ "pin": "D2" }, "rgblight": { + "hue_steps": 10, + "led_count": 84, "max_brightness": 200 }, "diode_direction": "COL2ROW", diff --git a/keyboards/jones/v03/config.h b/keyboards/jones/v03/config.h index 1d6b6e7ad91..4a7a933a7b8 100644 --- a/keyboards/jones/v03/config.h +++ b/keyboards/jones/v03/config.h @@ -37,10 +37,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { D4, D7, C7, F1, F4, F5, D6, D5, E6, B0, B1 } #define MATRIX_COL_PINS { D4, D7, C7, F1, F4, F5, D6, D5, E6, B0, B1 } -/* COL2ROW, ROW2COL*/ -// No need to define DIODE_DIRECTION for Jones' custom Round-Robin matrix. -//#define DIODE_DIRECTION COL2ROW - /* Audio */ #ifdef AUDIO_ENABLE #define AUDIO_PIN C6 @@ -48,24 +44,10 @@ along with this program. If not, see . #define AUDIO_CLICKY #endif - #define RGBLED_NUM 6 // Left(4) + Right(2) - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== Lighting Layers ==*/ #define RGBLIGHT_LAYERS // #define RGBLIGHT_MAX_LAYERS 2 #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF // Overriding RGB Lighting on/off status - // #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 /* * Feature disable options diff --git a/keyboards/jones/v03/info.json b/keyboards/jones/v03/info.json index 6b4dbb0884c..2f8a7803d2f 100644 --- a/keyboards/jones/v03/info.json +++ b/keyboards/jones/v03/info.json @@ -14,6 +14,15 @@ {"pin_a": "B3", "pin_b": "B2"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "rainbow_swirl": true, + "knight": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/jones/v03_1/config.h b/keyboards/jones/v03_1/config.h index b3eb44a1566..59eb4994142 100644 --- a/keyboards/jones/v03_1/config.h +++ b/keyboards/jones/v03_1/config.h @@ -37,10 +37,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { D4, D7, C7, F1, F4, F5, D6, D5, E6, B0, B1 } #define MATRIX_COL_PINS { D4, D7, C7, F1, F4, F5, D6, D5, E6, B0, B1 } -/* COL2ROW, ROW2COL*/ -// No need to define DIODE_DIRECTION for Jones' custom Round-Robin matrix. -//#define DIODE_DIRECTION COL2ROW - /* Audio */ #ifdef AUDIO_ENABLE #define AUDIO_PIN C6 @@ -48,25 +44,10 @@ along with this program. If not, see . #define AUDIO_CLICKY #endif - #define RGBLED_NUM 14 // Left(4) + Right(2) + Under(8) - #define RGBLIGHT_LED_MAP {0,1,2,3,13,12,4,5,6,7,8,9,10,11} // Left --> Right --> Under - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== Lighting Layers ==*/ #define RGBLIGHT_LAYERS // #define RGBLIGHT_MAX_LAYERS 2 #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF // Overriding RGB Lighting on/off status - // #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 /* * Feature disable options diff --git a/keyboards/jones/v03_1/info.json b/keyboards/jones/v03_1/info.json index d0fec4e5716..9e46cdd40a2 100644 --- a/keyboards/jones/v03_1/info.json +++ b/keyboards/jones/v03_1/info.json @@ -14,6 +14,16 @@ {"pin_a": "B3", "pin_b": "B2"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "led_map": [0, 1, 2, 3, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11], + "animations": { + "rainbow_swirl": true, + "knight": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/jones/v1/config.h b/keyboards/jones/v1/config.h index 3017ca2ab0a..e36574e56a8 100644 --- a/keyboards/jones/v1/config.h +++ b/keyboards/jones/v1/config.h @@ -25,10 +25,6 @@ along with this program. If not, see . #endif /* RGBLIGHT */ - #define RGBLED_NUM 4 // Left(2) + Right(2) - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 /*== Lighting Layers ==*/ #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF // Overriding RGB Lighting on/off status diff --git a/keyboards/jones/v1/info.json b/keyboards/jones/v1/info.json index cd0286ef6bf..fdc5cbd3101 100644 --- a/keyboards/jones/v1/info.json +++ b/keyboards/jones/v1/info.json @@ -12,6 +12,11 @@ "cols": ["B3", "B2", "E6", "D6", "D4", "B0", "B1", "B7", "B4", "D7"], "rows": ["B3", "B2", "E6", "D6", "D4", "B0", "B1", "B7", "B4", "D7"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4 + }, "ws2812": { "pin": "F1" }, @@ -30,87 +35,81 @@ "layouts": { "LAYOUT": { "layout": [ - {"label": "k09", "matrix": [0, 9], "x": 0.5, "y": 0}, - {"label": "k59", "matrix": [5, 9], "x": 1.5, "y": 0}, - {"label": "k08", "matrix": [0, 8], "x": 2.5, "y": 0}, - {"label": "k54", "matrix": [5, 4], "x": 3.5, "y": 0}, - {"label": "k04", "matrix": [0, 4], "x": 4.5, "y": 0}, - {"label": "k50", "matrix": [5, 0], "x": 5.5, "y": 0}, - {"label": "k56", "matrix": [5, 6], "x": 6.5, "y": 0}, - {"label": "k06", "matrix": [0, 6], "x": 7.5, "y": 0}, - {"label": "k05", "matrix": [0, 5], "x": 8.5, "y": 0}, - {"label": "k52", "matrix": [5, 2], "x": 9.5, "y": 0}, - {"label": "k02", "matrix": [0, 2], "x": 10.5, "y": 0}, - {"label": "k53", "matrix": [5, 3], "x": 11.5, "y": 0}, - {"label": "k07", "matrix": [0, 7], "x": 12.5, "y": 0}, - {"label": "k51", "matrix": [5, 1], "x": 13.5, "y": 0}, - {"label": "k01", "matrix": [0, 1], "x": 14.5, "y": 0}, - - {"label": "k19", "matrix": [1, 9], "x": 0.5, "y": 1, "w": 1.5}, - {"label": "k69", "matrix": [6, 9], "x": 2, "y": 1}, - {"label": "k18", "matrix": [1, 8], "x": 3, "y": 1}, - {"label": "k64", "matrix": [6, 4], "x": 4, "y": 1}, - {"label": "k14", "matrix": [1, 4], "x": 5, "y": 1}, - {"label": "k60", "matrix": [6, 0], "x": 6, "y": 1}, - {"label": "k10", "matrix": [1, 0], "x": 7, "y": 1}, - {"label": "k16", "matrix": [1, 6], "x": 8, "y": 1}, - {"label": "k15", "matrix": [1, 5], "x": 9, "y": 1}, - {"label": "k62", "matrix": [6, 2], "x": 10, "y": 1}, - {"label": "k12", "matrix": [1, 2], "x": 11, "y": 1}, - {"label": "k63", "matrix": [6, 3], "x": 12, "y": 1}, - {"label": "k17", "matrix": [1, 7], "x": 13, "y": 1}, - {"label": "k61", "matrix": [6, 1], "x": 14, "y": 1, "w": 1.5}, - - {"label": "k29", "matrix": [2, 9], "x": 0.5, "y": 2, "w": 1.5}, - {"label": "k79", "matrix": [7, 9], "x": 2, "y": 2}, - {"label": "k28", "matrix": [2, 8], "x": 3, "y": 2}, - {"label": "k74", "matrix": [7, 4], "x": 4, "y": 2}, - {"label": "k24", "matrix": [2, 4], "x": 5, "y": 2}, - {"label": "k70", "matrix": [7, 0], "x": 6, "y": 2}, - {"label": "k20", "matrix": [2, 0], "x": 7, "y": 2}, - {"label": "k26", "matrix": [2, 6], "x": 8, "y": 2}, - {"label": "k25", "matrix": [2, 5], "x": 9, "y": 2}, - {"label": "k72", "matrix": [7, 2], "x": 10, "y": 2}, - {"label": "k23", "matrix": [2, 3], "x": 11, "y": 2}, - {"label": "k73", "matrix": [7, 3], "x": 12, "y": 2}, - {"label": "k27", "matrix": [2, 7], "x": 13, "y": 2}, - {"label": "k71", "matrix": [7, 1], "x": 14, "y": 2, "w": 1.5}, + {"label": "k09", "matrix": [0, 9], "x": 0, "y": 0}, + {"label": "k59", "matrix": [5, 9], "x": 1, "y": 0}, + {"label": "k08", "matrix": [0, 8], "x": 2, "y": 0}, + {"label": "k54", "matrix": [5, 4], "x": 3, "y": 0}, + {"label": "k04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "k50", "matrix": [5, 0], "x": 5, "y": 0}, + {"label": "k56", "matrix": [5, 6], "x": 6, "y": 0}, + {"label": "k06", "matrix": [0, 6], "x": 7, "y": 0}, + {"label": "k05", "matrix": [0, 5], "x": 8, "y": 0}, + {"label": "k52", "matrix": [5, 2], "x": 9, "y": 0}, + {"label": "k02", "matrix": [0, 2], "x": 10, "y": 0}, + {"label": "k53", "matrix": [5, 3], "x": 11, "y": 0}, + {"label": "k07", "matrix": [0, 7], "x": 12, "y": 0}, + {"label": "k51", "matrix": [5, 1], "x": 13, "y": 0}, + {"label": "k01", "matrix": [0, 1], "x": 14, "y": 0}, - {"label": "k39", "matrix": [3, 9], "x": 0.5, "y": 3}, - {"label": "k89", "matrix": [8, 9], "x": 1.5, "y": 3}, - {"label": "k38", "matrix": [3, 8], "x": 2.5, "y": 3}, - {"label": "k84", "matrix": [8, 4], "x": 3.5, "y": 3}, - {"label": "k34", "matrix": [3, 4], "x": 4.5, "y": 3}, - {"label": "k80", "matrix": [8, 0], "x": 5.5, "y": 3}, - {"label": "k30", "matrix": [3, 0], "x": 6.5, "y": 3}, - {"label": "k36", "matrix": [3, 6], "x": 7.5, "y": 3}, - {"label": "k35", "matrix": [3, 5], "x": 8.5, "y": 3}, - {"label": "k82", "matrix": [8, 2], "x": 9.5, "y": 3}, - {"label": "k32", "matrix": [3, 2], "x": 10.5, "y": 3}, - {"label": "k83", "matrix": [8, 3], "x": 11.5, "y": 3}, - {"label": "k37", "matrix": [3, 7], "x": 12.5, "y": 3}, - {"label": "k81", "matrix": [8, 1], "x": 13.5, "y": 3}, - {"label": "k31", "matrix": [3, 1], "x": 14.5, "y": 3}, + {"label": "k19", "matrix": [1, 9], "x": 0, "y": 1, "w": 1.5}, + {"label": "k69", "matrix": [6, 9], "x": 1.5, "y": 1}, + {"label": "k18", "matrix": [1, 8], "x": 2.5, "y": 1}, + {"label": "k64", "matrix": [6, 4], "x": 3.5, "y": 1}, + {"label": "k14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "k60", "matrix": [6, 0], "x": 5.5, "y": 1}, + {"label": "k10", "matrix": [1, 0], "x": 6.5, "y": 1}, + {"label": "k16", "matrix": [1, 6], "x": 7.5, "y": 1}, + {"label": "k15", "matrix": [1, 5], "x": 8.5, "y": 1}, + {"label": "k62", "matrix": [6, 2], "x": 9.5, "y": 1}, + {"label": "k12", "matrix": [1, 2], "x": 10.5, "y": 1}, + {"label": "k63", "matrix": [6, 3], "x": 11.5, "y": 1}, + {"label": "k17", "matrix": [1, 7], "x": 12.5, "y": 1}, + {"label": "k61", "matrix": [6, 1], "x": 13.5, "y": 1, "w": 1.5}, - {"label": "k49", "matrix": [4, 9], "x": 0.5, "y": 4}, - {"label": "k98", "matrix": [9, 8], "x": 1.5, "y": 4}, - {"label": "k48", "matrix": [4, 8], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "k94", "matrix": [9, 4], "x": 3.75, "y": 4, "w": 1.25}, - {"label": "k90", "matrix": [9, 0], "x": 5, "y": 4, "w": 1.5}, - {"label": "k46", "matrix": [4, 6], "x": 6.5, "y": 4}, - {"label": "k45", "matrix": [4, 5], "x": 7.5, "y": 4}, - {"label": "k92", "matrix": [9, 2], "x": 8.5, "y": 4}, - {"label": "k42", "matrix": [4, 2], "x": 9.5, "y": 4, "w": 1.5}, - {"label": "k93", "matrix": [9, 3], "x": 11, "y": 4, "w": 1.25}, - {"label": "k47", "matrix": [4, 7], "x": 12.25, "y": 4, "w": 1.25}, - {"label": "k91", "matrix": [9, 1], "x": 13.5, "y": 4}, - {"label": "k41", "matrix": [4, 1], "x": 14.5, "y": 4}, + {"label": "k29", "matrix": [2, 9], "x": 0, "y": 2, "w": 1.5}, + {"label": "k79", "matrix": [7, 9], "x": 1.5, "y": 2}, + {"label": "k28", "matrix": [2, 8], "x": 2.5, "y": 2}, + {"label": "k74", "matrix": [7, 4], "x": 3.5, "y": 2}, + {"label": "k24", "matrix": [2, 4], "x": 4.5, "y": 2}, + {"label": "k70", "matrix": [7, 0], "x": 5.5, "y": 2}, + {"label": "k20", "matrix": [2, 0], "x": 6.5, "y": 2}, + {"label": "k26", "matrix": [2, 6], "x": 7.5, "y": 2}, + {"label": "k25", "matrix": [2, 5], "x": 8.5, "y": 2}, + {"label": "k72", "matrix": [7, 2], "x": 9.5, "y": 2}, + {"label": "k23", "matrix": [2, 3], "x": 10.5, "y": 2}, + {"label": "k73", "matrix": [7, 3], "x": 11.5, "y": 2}, + {"label": "k27", "matrix": [2, 7], "x": 12.5, "y": 2}, + {"label": "k71", "matrix": [7, 1], "x": 13.5, "y": 2, "w": 1.5}, - {"label": "k85", "matrix": [8, 5], "x": 0, "y": 5}, - {"label": "k86", "matrix": [8, 6], "x": 1, "y": 5}, + {"label": "k39", "matrix": [3, 9], "x": 0, "y": 3}, + {"label": "k89", "matrix": [8, 9], "x": 1, "y": 3}, + {"label": "k38", "matrix": [3, 8], "x": 2, "y": 3}, + {"label": "k84", "matrix": [8, 4], "x": 3, "y": 3}, + {"label": "k34", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "k80", "matrix": [8, 0], "x": 5, "y": 3}, + {"label": "k30", "matrix": [3, 0], "x": 6, "y": 3}, + {"label": "k36", "matrix": [3, 6], "x": 7, "y": 3}, + {"label": "k35", "matrix": [3, 5], "x": 8, "y": 3}, + {"label": "k82", "matrix": [8, 2], "x": 9, "y": 3}, + {"label": "k32", "matrix": [3, 2], "x": 10, "y": 3}, + {"label": "k83", "matrix": [8, 3], "x": 11, "y": 3}, + {"label": "k37", "matrix": [3, 7], "x": 12, "y": 3}, + {"label": "k81", "matrix": [8, 1], "x": 13, "y": 3}, + {"label": "k31", "matrix": [3, 1], "x": 14, "y": 3}, - {"label": "k95", "matrix": [9, 5], "x": 14, "y": 5}, - {"label": "k96", "matrix": [9, 6], "x": 15, "y": 5} + {"label": "k49", "matrix": [4, 9], "x": 0, "y": 4}, + {"label": "k98", "matrix": [9, 8], "x": 1, "y": 4}, + {"label": "k48", "matrix": [4, 8], "x": 2, "y": 4, "w": 1.25}, + {"label": "k94", "matrix": [9, 4], "x": 3.25, "y": 4, "w": 1.25}, + {"label": "k90", "matrix": [9, 0], "x": 4.5, "y": 4, "w": 1.5}, + {"label": "k46", "matrix": [4, 6], "x": 6, "y": 4}, + {"label": "k45", "matrix": [4, 5], "x": 7, "y": 4}, + {"label": "k92", "matrix": [9, 2], "x": 8, "y": 4}, + {"label": "k42", "matrix": [4, 2], "x": 9, "y": 4, "w": 1.5}, + {"label": "k93", "matrix": [9, 3], "x": 10.5, "y": 4, "w": 1.25}, + {"label": "k47", "matrix": [4, 7], "x": 11.75, "y": 4, "w": 1.25}, + {"label": "k91", "matrix": [9, 1], "x": 13, "y": 4}, + {"label": "k41", "matrix": [4, 1], "x": 14, "y": 4} ] } } diff --git a/keyboards/jones/v1/keymaps/default/keymap.c b/keyboards/jones/v1/keymaps/default/keymap.c index 04da840a777..752c06f8159 100644 --- a/keyboards/jones/v1/keymaps/default/keymap.c +++ b/keyboards/jones/v1/keymaps/default/keymap.c @@ -34,31 +34,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_SCLN, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEFT, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, - KC_MUTE, KC_LNG2, KC_LGUI, KC_LALT, SP_LOW, SP_RAI, KC_BSPC, SP_RAI,KC_RALT, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, - KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU + KC_MUTE, KC_LNG2, KC_LGUI, KC_LALT, SP_LOW, SP_RAI, KC_BSPC, SP_RAI,KC_RALT, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT ), [_LOWER] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_TILD, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, _______, _______, _______, _______, _______, _______, SP_ADJ,_______, _______, _______, _______, _______, - _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, SP_ADJ,_______, _______, _______, _______, _______ ), [_RAISE] = LAYOUT( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_QUOT, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F11, KC_F12, - _______, _______, _______, _______, SP_ADJ, _______, _______, _______,_______, _______, _______, KC_DOWN, KC_UP, - _______, _______, _______, _______ + _______, _______, _______, _______, SP_ADJ, _______, _______, _______,_______, _______, _______, KC_DOWN, KC_UP ), [_ADJUST] = LAYOUT( _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, RGB_RMOD, _______, _______, AU_TOGG, CK_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, RGB_MOD, _______, KC_CAPS, KC_CAPS, CK_RST, CK_DOWN, CK_UP, AU_PREV, AU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, - _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______ ) }; diff --git a/keyboards/jones/v1/keymaps/via/config.h b/keyboards/jones/v1/keymaps/via/config.h deleted file mode 100644 index a66ab809048..00000000000 --- a/keyboards/jones/v1/keymaps/via/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2021 Takeshi Nishio - -This 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 - -//------------------------------------------------------------------------------ -// Rotary Encoder -//------------------------------------------------------------------------------ -// Encoder triggers specific key matrix position, -// when turn knob clockwise or counterclockwise. -// This is handy to assign key codes by VIA. - -// Mappings of encoder rotation to key position in key matrix. -// First encoder, Left side : k85, k86 -// Second encoder, Right side : k95, k96 -#define ENCODERS_CW_KEY { { 6, 8 }, { 6, 9 } } -#define ENCODERS_CCW_KEY { { 5, 8 }, { 5, 9 } } diff --git a/keyboards/jones/v1/keymaps/via/keymap.c b/keyboards/jones/v1/keymaps/via/keymap.c index 3b41c401748..3f9b9faa86d 100644 --- a/keyboards/jones/v1/keymaps/via/keymap.c +++ b/keyboards/jones/v1/keymaps/via/keymap.c @@ -37,48 +37,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_AT, JP_LBRC, JP_Y, JP_U, JP_I, JP_O, JP_P, KC_BSPC, KC_LCTL, JP_A, JP_S, JP_D, JP_F, JP_G, JP_COLN, JP_RBRC, JP_H, JP_J, JP_K, JP_L, JP_SCLN, KC_ENT, KC_LSFT, KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_SLSH, JP_BSLS, JP_N, JP_M, JP_COMM, JP_DOT, KC_DOWN, KC_UP, - KC_MUTE, KC_LGUI, KC_LALT, JP_MHEN, SP_LOW, SP_RAI, KC_BSPC, SP_RAI,SP_RAI, JP_HENK, JP_KANA, KC_LEFT, KC_RGHT, - KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU + KC_MUTE, KC_LGUI, KC_LALT, JP_MHEN, SP_LOW, SP_RAI, KC_BSPC, SP_RAI,SP_RAI, JP_HENK, JP_KANA, KC_LEFT, KC_RGHT ), [_BASE2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______,_______, KC_P0, KC_PDOT, _______, _______, - _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______,_______, KC_P0, KC_PDOT, _______, _______ ), [_BASE3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, - _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______ ), [_LOWER] = 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, _______, JP_EXLM, JP_DQUO, JP_HASH, JP_DLR, JP_PERC, JP_TILD, JP_PIPE, JP_AMPR, JP_QUOT, JP_LPRN, JP_RPRN, JP_EQL, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, SP_ADJ, _______, SP_ADJ,SP_ADJ, _______, _______, _______, _______, - _______, _______, _______, _______ + _______, _______, _______, _______, _______, SP_ADJ, _______, SP_ADJ,SP_ADJ, _______, _______, _______, _______ ), [_RAISE] = 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_ESC, JP_1, JP_2, JP_3, JP_4, JP_5, JP_CIRC, JP_YEN, JP_6, JP_7, JP_8, JP_9, JP_0, KC_DEL, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, - _______, _______, _______, _______, SP_ADJ, _______, _______, _______,_______, _______, _______, KC_DOWN, KC_UP, - _______, _______, _______, _______ + _______, _______, _______, _______, SP_ADJ, _______, _______, _______,_______, _______, _______, KC_DOWN, KC_UP ), [_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, DF(_BASE1),DF(_BASE2),DF(_BASE3),_______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, RGB_RMOD, _______, _______, AU_TOGG, CK_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, RGB_MOD, _______, KC_CAPS, KC_CAPS, CK_RST, CK_DOWN, CK_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, - _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______ ), }; @@ -164,50 +158,16 @@ bool led_update_user(led_t led_state) { } #endif - -//------------------------------------------------------------------------------ -// Rotary Encoder -//------------------------------------------------------------------------------ -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return true; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, + [4] = { ENCODER_CCW_CW(_______, _______) }, + [5] = { ENCODER_CCW_CW(_______, _______) }, }; - +#endif //------------------------------------------------------------------------------ // Keyboard Initialization diff --git a/keyboards/jones/v1/keymaps/via/rules.mk b/keyboards/jones/v1/keymaps/via/rules.mk index e1d2dc05828..8dd8cb0c158 100644 --- a/keyboards/jones/v1/keymaps/via/rules.mk +++ b/keyboards/jones/v1/keymaps/via/rules.mk @@ -1,2 +1,3 @@ -# Use VIA VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes +AUDIO_ENABLE = no diff --git a/keyboards/jorne/rev1/config.h b/keyboards/jorne/rev1/config.h index 73e2d8219ba..623aaf149cc 100644 --- a/keyboards/jorne/rev1/config.h +++ b/keyboards/jorne/rev1/config.h @@ -2,9 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RGBLED_SPLIT { 28, 28 } -#define RGBLED_NUM 56 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/jorne/rev1/info.json b/keyboards/jorne/rev1/info.json index f07f99e4a69..1b1f156fa50 100644 --- a/keyboards/jorne/rev1/info.json +++ b/keyboards/jorne/rev1/info.json @@ -16,6 +16,10 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 56, + "split_count": [28, 28] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/junco/info.json b/keyboards/junco/info.json index 9fd699ca490..4c9b3ae6bae 100644 --- a/keyboards/junco/info.json +++ b/keyboards/junco/info.json @@ -8,12 +8,33 @@ "pid": "0x4A13", "device_version": "1.0.0" }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"], + "rows": ["GP8", "GP9", "GP10", "GP11", "GP12"] + }, + "diode_direction": "COL2ROW", "ws2812": { "pin": "GP15", "driver": "vendor" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" + }, + "encoder": { + "rotary": [ + {"pin_a": "GP16", "pin_b": "GP17"}, + {"pin_a": "GP14", "pin_b": "GP13"} + ] + }, + "split": { + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP14", "pin_b": "GP13"}, + {"pin_a": "GP16", "pin_b": "GP17"} + ] + } + } }, "processor": "RP2040", "bootloader": "rp2040", diff --git a/keyboards/junco/rev1/config.h b/keyboards/junco/rev1/config.h index 95731fde01a..713d651d478 100644 --- a/keyboards/junco/rev1/config.h +++ b/keyboards/junco/rev1/config.h @@ -3,13 +3,6 @@ #pragma once -// Electrical Wiring Stuff -#define MATRIX_ROW_PINS \ - { GP8, GP9, GP10, GP11, GP12 } -#define MATRIX_COL_PINS \ - { GP2, GP3, GP4, GP5, GP6, GP7 } -#define DIODE_DIRECTION COL2ROW - // Split Keyboard Stuff #define EE_HANDS // Sets the keyboard’s handedness using EEPROM #define SERIAL_USART_FULL_DUPLEX // Use full duplex communication (TRRS) @@ -24,19 +17,3 @@ { 37, 37 } // 37 LEDs on each side #endif - -/* Rotary Encoders Definition */ -// Indexing goes from physical leftmost to rightmost -// 0: left-half left | 1: left-half right | 2: right-half left | 3: right-half right -#ifdef ENCODER_ENABLE - -# define ENCODERS_PAD_A \ - { GP16, GP14 } -# define ENCODERS_PAD_B \ - { GP17, GP13 } -# define ENCODERS_PAD_A_RIGHT \ - { GP14, GP16 } -# define ENCODERS_PAD_B_RIGHT \ - { GP13, GP17 } - -#endif diff --git a/keyboards/k34/info.json b/keyboards/k34/info.json index 525a6e8dcdc..715cb9060bd 100644 --- a/keyboards/k34/info.json +++ b/keyboards/k34/info.json @@ -13,10 +13,10 @@ "rows": ["F4", "B2", "E6", "B4"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", + "development_board": "promicro", + "community_layouts": ["split_3x5_2"], "layouts": { - "LAYOUT": { + "LAYOUT_split_3x5_2": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0.3}, {"matrix": [0, 1], "x": 1, "y": 0.1}, diff --git a/keyboards/k34/keymaps/default/config.h b/keyboards/k34/keymaps/default/config.h index f16dbc00423..5d7e44f7593 100644 --- a/keyboards/k34/keymaps/default/config.h +++ b/keyboards/k34/keymaps/default/config.h @@ -1,16 +1,5 @@ - /* Copyright Wong Jing Ping <@wongjingping> - * - * This 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. - * - */ +// Copyright 2021 jp_smasher (@jp_smasher) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/k34/keymaps/default/keymap.c b/keyboards/k34/keymaps/default/keymap.c index ae8b7dc3400..4d09b121dd5 100644 --- a/keyboards/k34/keymaps/default/keymap.c +++ b/keyboards/k34/keymaps/default/keymap.c @@ -37,25 +37,25 @@ combo_t key_combos[] = {COMBO(jk_combo, KC_ESC)}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - G_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, G_SC, - S_Z, A_X, C_C, KC_V, KC_B, KC_N, KC_M, C_COMM, A_DOT, S_SLSH, - L1, KC_SPC, KC_SPC, L2 + [_BASE] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + G_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, G_SC, + S_Z, A_X, C_C, KC_V, KC_B, KC_N, KC_M, C_COMM, A_DOT, S_SLSH, + L1, KC_SPC, KC_SPC, L2 ), - [_L1] = LAYOUT( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, - KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_GRV, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, KC_PIPE, - _______, _______, _______, KC_TAB, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT, - _______, _______, _______, _______ + [_L1] = LAYOUT_split_3x5_2( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, + KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_GRV, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, KC_PIPE, + _______, _______, _______, KC_TAB, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT, + _______, _______, _______, _______ ), - [_L2] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - _______, _______, _______, _______, KC_DOT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_BSPC, - _______, _______, _______, _______, _______, A_SLSH, SG_LBRC, SG_RBRC, G_LBRC, G_RBRC, - KC_LALT, KC_LGUI, _______, _______ + [_L2] = LAYOUT_split_3x5_2( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + _______, _______, _______, _______, KC_DOT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_BSPC, + _______, _______, _______, _______, _______, A_SLSH, SG_LBRC, SG_RBRC, G_LBRC, G_RBRC, + KC_LALT, KC_LGUI, _______, _______ ), }; diff --git a/keyboards/k34/readme.md b/keyboards/k34/readme.md index 8576def9471..282bfeeceb9 100644 --- a/keyboards/k34/readme.md +++ b/keyboards/k34/readme.md @@ -22,4 +22,3 @@ Flashing example for this keyboard: make k34: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/kabedon/kabedon78s/config.h b/keyboards/kabedon/kabedon78s/config.h deleted file mode 100644 index 57f829e692b..00000000000 --- a/keyboards/kabedon/kabedon78s/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/kabedon/kabedon78s/info.json b/keyboards/kabedon/kabedon78s/info.json index 8ec6b527054..4e8ca04aa5c 100644 --- a/keyboards/kabedon/kabedon78s/info.json +++ b/keyboards/kabedon/kabedon78s/info.json @@ -8,6 +8,23 @@ "pid": "0x3738", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/kabedon/kabedon980/config.h b/keyboards/kabedon/kabedon980/config.h index 655a8af4a95..3623c508cca 100644 --- a/keyboards/kabedon/kabedon980/config.h +++ b/keyboards/kabedon/kabedon980/config.h @@ -18,18 +18,3 @@ along with this program. If not, see . #pragma once #define DYNAMIC_KEYMAP_LAYER_COUNT 3 - - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/kabedon/kabedon980/info.json b/keyboards/kabedon/kabedon980/info.json index 95781f0581f..ae15a51ea35 100644 --- a/keyboards/kabedon/kabedon980/info.json +++ b/keyboards/kabedon/kabedon980/info.json @@ -8,6 +8,23 @@ "pid": "0x3938", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/kabedon/kabedon98e/config.h b/keyboards/kabedon/kabedon98e/config.h index c8ae65099ba..64013a3a7fb 100644 --- a/keyboards/kabedon/kabedon98e/config.h +++ b/keyboards/kabedon/kabedon98e/config.h @@ -15,18 +15,6 @@ */ #pragma once -#define RGBLED_NUM 24 -#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 WS2812_PWM_DRIVER PWMD3 #define WS2812_PWM_CHANNEL 1 #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 @@ -37,7 +25,4 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define ENCODERS_CW_KEY { { 0, 0 },{ 2, 0 } } -#define ENCODERS_CCW_KEY { { 6, 0 },{ 8, 0 } } - #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/kabedon/kabedon98e/info.json b/keyboards/kabedon/kabedon98e/info.json index cbe83c98eed..42f0796a533 100644 --- a/keyboards/kabedon/kabedon98e/info.json +++ b/keyboards/kabedon/kabedon98e/info.json @@ -9,6 +9,21 @@ "device_version": "0.0.2", "force_nkro": true }, + "rgblight": { + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4", "driver": "pwm" @@ -32,124 +47,120 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [1, 0], "x": 0, "y": 0.5}, - - {"matrix": [0, 1], "x": 1.667, "y": 0.5}, - {"matrix": [1, 1], "x": 2.667, "y": 0.5}, - {"matrix": [0, 2], "x": 3.667, "y": 0.5}, - {"matrix": [1, 2], "x": 4.667, "y": 0.5}, - - {"matrix": [0, 3], "x": 6.333, "y": 0.5}, - {"matrix": [1, 3], "x": 7.333, "y": 0.5}, - {"matrix": [0, 4], "x": 8.333, "y": 0.5}, - {"matrix": [1, 4], "x": 9.333, "y": 0.5}, - - {"matrix": [0, 5], "x": 11, "y": 0.5}, - {"matrix": [1, 5], "x": 12, "y": 0.5}, - {"matrix": [1, 6], "x": 13, "y": 0.5}, - {"matrix": [1, 7], "x": 14, "y": 0.5}, - - {"matrix": [5, 7], "x": 15.5, "y": 0.5}, - {"matrix": [0, 0], "x": 16.9, "y": 0, "w": 0.6, "h": 0.5}, - {"matrix": [4, 8], "x": 17, "y": 0.5}, - {"matrix": [2, 0], "x": 17.5, "y": 0, "w": 0.6, "h": 0.5}, - {"matrix": [6, 0], "x": 18.4, "y": 0, "w": 0.6, "h": 0.5}, - - {"matrix": [4, 0], "x": 18.5, "y": 0.5}, - {"matrix": [8, 0], "x": 19, "y": 0, "w": 0.6, "h": 0.5}, - - {"matrix": [3, 0], "x": 0, "y": 1.75}, - {"matrix": [2, 1], "x": 1, "y": 1.75}, - {"matrix": [3, 1], "x": 2, "y": 1.75}, - {"matrix": [2, 2], "x": 3, "y": 1.75}, - {"matrix": [3, 2], "x": 4, "y": 1.75}, - {"matrix": [2, 3], "x": 5, "y": 1.75}, - {"matrix": [3, 3], "x": 6, "y": 1.75}, - {"matrix": [2, 4], "x": 7, "y": 1.75}, - {"matrix": [3, 4], "x": 8, "y": 1.75}, - {"matrix": [2, 5], "x": 9, "y": 1.75}, - {"matrix": [3, 5], "x": 10, "y": 1.75}, - {"matrix": [2, 6], "x": 11, "y": 1.75}, - {"matrix": [3, 6], "x": 12, "y": 1.75}, - {"matrix": [3, 7], "x": 13, "y": 1.75, "w": 2}, - - {"matrix": [3, 9], "x": 15.5, "y": 1.75}, - {"matrix": [4, 9], "x": 16.5, "y": 1.75}, - {"matrix": [4, 10], "x": 17.5, "y": 1.75}, - {"matrix": [5, 10], "x": 18.5, "y": 1.75}, - - {"matrix": [5, 0], "x": 0, "y": 2.75, "w": 1.5}, - {"matrix": [4, 1], "x": 1.5, "y": 2.75}, - {"matrix": [5, 1], "x": 2.5, "y": 2.75}, - {"matrix": [4, 2], "x": 3.5, "y": 2.75}, - {"matrix": [5, 2], "x": 4.5, "y": 2.75}, - {"matrix": [4, 3], "x": 5.5, "y": 2.75}, - {"matrix": [5, 3], "x": 6.5, "y": 2.75}, - {"matrix": [4, 4], "x": 7.5, "y": 2.75}, - {"matrix": [5, 4], "x": 8.5, "y": 2.75}, - {"matrix": [4, 5], "x": 9.5, "y": 2.75}, - {"matrix": [5, 5], "x": 10.5, "y": 2.75}, - {"matrix": [4, 6], "x": 11.5, "y": 2.75}, - {"matrix": [5, 6], "x": 12.5, "y": 2.75}, - {"matrix": [4, 7], "x": 13.5, "y": 2.75, "w": 1.5}, - - {"matrix": [5, 9], "x": 15.5, "y": 2.75}, - {"matrix": [6, 9], "x": 16.5, "y": 2.75}, - {"matrix": [6, 10], "x": 17.5, "y": 2.75}, - - {"matrix": [7, 0], "x": 0, "y": 3.75, "w": 1.75}, - {"matrix": [6, 1], "x": 1.75, "y": 3.75}, - {"matrix": [7, 1], "x": 2.75, "y": 3.75}, - {"matrix": [6, 2], "x": 3.75, "y": 3.75}, - {"matrix": [7, 2], "x": 4.75, "y": 3.75}, - {"matrix": [6, 3], "x": 5.75, "y": 3.75}, - {"matrix": [7, 3], "x": 6.75, "y": 3.75}, - {"matrix": [6, 4], "x": 7.75, "y": 3.75}, - {"matrix": [7, 4], "x": 8.75, "y": 3.75}, - {"matrix": [6, 5], "x": 9.75, "y": 3.75}, - {"matrix": [7, 5], "x": 10.75, "y": 3.75}, - {"matrix": [6, 6], "x": 11.75, "y": 3.75}, - {"matrix": [7, 7], "x": 12.75, "y": 3.75, "w": 2.25}, - - {"matrix": [7, 9], "x": 15.5, "y": 3.75}, - {"matrix": [8, 9], "x": 16.5, "y": 3.75}, - {"matrix": [8, 10], "x": 17.5, "y": 3.75}, - {"matrix": [7, 10], "x": 18.5, "y": 2.75, "h": 2}, - - {"matrix": [9, 0], "x": 0, "y": 4.75, "w": 2.25}, - {"matrix": [9, 1], "x": 2.25, "y": 4.75}, - {"matrix": [8, 2], "x": 3.25, "y": 4.75}, - {"matrix": [9, 2], "x": 4.25, "y": 4.75}, - {"matrix": [8, 3], "x": 5.25, "y": 4.75}, - {"matrix": [9, 3], "x": 6.25, "y": 4.75}, - {"matrix": [8, 4], "x": 7.25, "y": 4.75}, - {"matrix": [9, 4], "x": 8.25, "y": 4.75}, - {"matrix": [8, 5], "x": 9.25, "y": 4.75}, - {"matrix": [9, 5], "x": 10.25, "y": 4.75}, - {"matrix": [8, 6], "x": 11.25, "y": 4.75}, - {"matrix": [9, 7], "x": 12.25, "y": 4.75, "w": 1.75}, - - {"matrix": [8, 8], "x": 14.25, "y": 5}, - - {"matrix": [9, 9], "x": 15.5, "y": 4.75}, - {"matrix": [10, 9], "x": 16.5, "y": 4.75}, - {"matrix": [9, 10], "x": 17.5, "y": 4.75}, - - {"matrix": [11, 0], "x": 0, "y": 5.75, "w": 1.25}, - {"matrix": [10, 1], "x": 1.25, "y": 5.75}, - {"matrix": [11, 1], "x": 2.25, "y": 5.75}, - {"matrix": [11, 3], "x": 3.25, "y": 5.75}, - {"matrix": [11, 2], "x": 4.25, "y": 5.75, "w": 6.25}, - {"matrix": [11, 5], "x": 10.5, "y": 5.75, "w": 1.25}, - {"matrix": [10, 7], "x": 11.75, "y": 5.75, "w": 1.25}, - - {"matrix": [11, 7], "x": 13.25, "y": 6}, - {"matrix": [10, 8], "x": 14.25, "y": 6}, - {"matrix": [11, 8], "x": 15.25, "y": 6}, - - {"matrix": [11, 9], "x": 16.5, "y": 5.75}, - {"matrix": [10, 10], "x": 17.5, "y": 5.75}, - {"matrix": [11, 10], "x": 18.5, "y": 4.75, "h": 2} + {"matrix": [1, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.667, "y": 0}, + {"matrix": [1, 1], "x": 2.667, "y": 0}, + {"matrix": [0, 2], "x": 3.667, "y": 0}, + {"matrix": [1, 2], "x": 4.667, "y": 0}, + + {"matrix": [0, 3], "x": 6.333, "y": 0}, + {"matrix": [1, 3], "x": 7.333, "y": 0}, + {"matrix": [0, 4], "x": 8.333, "y": 0}, + {"matrix": [1, 4], "x": 9.333, "y": 0}, + + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 5], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + + {"matrix": [5, 7], "x": 15.5, "y": 0}, + {"matrix": [4, 8], "x": 17, "y": 0}, + + {"matrix": [4, 0], "x": 18.5, "y": 0}, + + {"matrix": [3, 0], "x": 0, "y": 1.25}, + {"matrix": [2, 1], "x": 1, "y": 1.25}, + {"matrix": [3, 1], "x": 2, "y": 1.25}, + {"matrix": [2, 2], "x": 3, "y": 1.25}, + {"matrix": [3, 2], "x": 4, "y": 1.25}, + {"matrix": [2, 3], "x": 5, "y": 1.25}, + {"matrix": [3, 3], "x": 6, "y": 1.25}, + {"matrix": [2, 4], "x": 7, "y": 1.25}, + {"matrix": [3, 4], "x": 8, "y": 1.25}, + {"matrix": [2, 5], "x": 9, "y": 1.25}, + {"matrix": [3, 5], "x": 10, "y": 1.25}, + {"matrix": [2, 6], "x": 11, "y": 1.25}, + {"matrix": [3, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 7], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [3, 9], "x": 15.5, "y": 1.25}, + {"matrix": [4, 9], "x": 16.5, "y": 1.25}, + {"matrix": [4, 10], "x": 17.5, "y": 1.25}, + {"matrix": [5, 10], "x": 18.5, "y": 1.25}, + + {"matrix": [5, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 2.25}, + {"matrix": [5, 1], "x": 2.5, "y": 2.25}, + {"matrix": [4, 2], "x": 3.5, "y": 2.25}, + {"matrix": [5, 2], "x": 4.5, "y": 2.25}, + {"matrix": [4, 3], "x": 5.5, "y": 2.25}, + {"matrix": [5, 3], "x": 6.5, "y": 2.25}, + {"matrix": [4, 4], "x": 7.5, "y": 2.25}, + {"matrix": [5, 4], "x": 8.5, "y": 2.25}, + {"matrix": [4, 5], "x": 9.5, "y": 2.25}, + {"matrix": [5, 5], "x": 10.5, "y": 2.25}, + {"matrix": [4, 6], "x": 11.5, "y": 2.25}, + {"matrix": [5, 6], "x": 12.5, "y": 2.25}, + {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [5, 9], "x": 15.5, "y": 2.25}, + {"matrix": [6, 9], "x": 16.5, "y": 2.25}, + {"matrix": [6, 10], "x": 17.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [6, 1], "x": 1.75, "y": 3.25}, + {"matrix": [7, 1], "x": 2.75, "y": 3.25}, + {"matrix": [6, 2], "x": 3.75, "y": 3.25}, + {"matrix": [7, 2], "x": 4.75, "y": 3.25}, + {"matrix": [6, 3], "x": 5.75, "y": 3.25}, + {"matrix": [7, 3], "x": 6.75, "y": 3.25}, + {"matrix": [6, 4], "x": 7.75, "y": 3.25}, + {"matrix": [7, 4], "x": 8.75, "y": 3.25}, + {"matrix": [6, 5], "x": 9.75, "y": 3.25}, + {"matrix": [7, 5], "x": 10.75, "y": 3.25}, + {"matrix": [6, 6], "x": 11.75, "y": 3.25}, + {"matrix": [7, 7], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [7, 9], "x": 15.5, "y": 3.25}, + {"matrix": [8, 9], "x": 16.5, "y": 3.25}, + {"matrix": [8, 10], "x": 17.5, "y": 3.25}, + {"matrix": [7, 10], "x": 18.5, "y": 2.25, "h": 2}, + + {"matrix": [9, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [9, 1], "x": 2.25, "y": 4.25}, + {"matrix": [8, 2], "x": 3.25, "y": 4.25}, + {"matrix": [9, 2], "x": 4.25, "y": 4.25}, + {"matrix": [8, 3], "x": 5.25, "y": 4.25}, + {"matrix": [9, 3], "x": 6.25, "y": 4.25}, + {"matrix": [8, 4], "x": 7.25, "y": 4.25}, + {"matrix": [9, 4], "x": 8.25, "y": 4.25}, + {"matrix": [8, 5], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [8, 6], "x": 11.25, "y": 4.25}, + {"matrix": [9, 7], "x": 12.25, "y": 4.25, "w": 1.75}, + + {"matrix": [8, 8], "x": 14.25, "y": 4.5}, + + {"matrix": [9, 9], "x": 15.5, "y": 4.25}, + {"matrix": [10, 9], "x": 16.5, "y": 4.25}, + {"matrix": [9, 10], "x": 17.5, "y": 4.25}, + + {"matrix": [11, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 1.25, "y": 5.25}, + {"matrix": [11, 1], "x": 2.25, "y": 5.25}, + {"matrix": [11, 3], "x": 3.25, "y": 5.25}, + {"matrix": [11, 2], "x": 4.25, "y": 5.25, "w": 6.25}, + {"matrix": [11, 5], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 7], "x": 11.75, "y": 5.25, "w": 1.25}, + + {"matrix": [11, 7], "x": 13.25, "y": 5.5}, + {"matrix": [10, 8], "x": 14.25, "y": 5.5}, + {"matrix": [11, 8], "x": 15.25, "y": 5.5}, + + {"matrix": [11, 9], "x": 16.5, "y": 5.25}, + {"matrix": [10, 10], "x": 17.5, "y": 5.25}, + {"matrix": [11, 10], "x": 18.5, "y": 4.25, "h": 2} ] } } diff --git a/keyboards/kabedon/kabedon98e/kabedon98e.c b/keyboards/kabedon/kabedon98e/kabedon98e.c deleted file mode 100644 index 9fd34b58af3..00000000000 --- a/keyboards/kabedon/kabedon98e/kabedon98e.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright 2021 KDon<370490639@qq.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - encoder_action_register(index, clockwise); - return true; -}; diff --git a/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c b/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c index f730ee95b2d..3dcdbf83779 100644 --- a/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c +++ b/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └──┘└──┘└──┘ */ [_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, KC_INS, KC_END, KC_PGUP, KC_MUTE, KC_PGDN, + 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_INS, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_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_P4, KC_P5, KC_P6, KC_PPLS, @@ -53,19 +53,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [_FN] = 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, KC_TRNS, 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_VAI, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS), - -[_FN1] = 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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, }; +#endif diff --git a/keyboards/kabedon/kabedon98e/keymaps/default/rules.mk b/keyboards/kabedon/kabedon98e/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/kabedon/kabedon98e/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c b/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c index f730ee95b2d..6cb85164c00 100644 --- a/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c +++ b/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └──┘└──┘└──┘ */ [_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, KC_INS, KC_END, KC_PGUP, KC_MUTE, KC_PGDN, + 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_INS, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_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_P4, KC_P5, KC_P6, KC_PPLS, @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [_FN] = 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, KC_TRNS, @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS), [_FN1] = 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, KC_TRNS, @@ -69,3 +69,11 @@ 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) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/kabedon/kabedon98e/keymaps/via/rules.mk b/keyboards/kabedon/kabedon98e/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/kabedon/kabedon98e/keymaps/via/rules.mk +++ b/keyboards/kabedon/kabedon98e/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/kagizaraya/chidori/keymaps/oled_sample/rules.mk b/keyboards/kagizaraya/chidori/keymaps/oled_sample/rules.mk index 7a7b1acc03a..80b82b2a5cc 100644 --- a/keyboards/kagizaraya/chidori/keymaps/oled_sample/rules.mk +++ b/keyboards/kagizaraya/chidori/keymaps/oled_sample/rules.mk @@ -1,3 +1,2 @@ # Enable SSD1306 OLED OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/kagizaraya/halberd/config.h b/keyboards/kagizaraya/halberd/config.h index 9b42731f845..aa3ac65cea9 100644 --- a/keyboards/kagizaraya/halberd/config.h +++ b/keyboards/kagizaraya/halberd/config.h @@ -16,21 +16,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 40 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -51,5 +36,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define TAPPING_TERM 100 diff --git a/keyboards/kagizaraya/halberd/info.json b/keyboards/kagizaraya/halberd/info.json index 790db40f6dd..b8e09252414 100644 --- a/keyboards/kagizaraya/halberd/info.json +++ b/keyboards/kagizaraya/halberd/info.json @@ -8,6 +8,26 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "tapping": { + "term": 100 + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/kagizaraya/halberd/keymaps/right_modifiers/keymap.c b/keyboards/kagizaraya/halberd/keymaps/right_modifiers/keymap.c index d75b5b60790..a5c017336a4 100644 --- a/keyboards/kagizaraya/halberd/keymaps/right_modifiers/keymap.c +++ b/keyboards/kagizaraya/halberd/keymaps/right_modifiers/keymap.c @@ -146,15 +146,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/kagizaraya/scythe/config.h b/keyboards/kagizaraya/scythe/config.h index 96e96690469..026950e1c70 100644 --- a/keyboards/kagizaraya/scythe/config.h +++ b/keyboards/kagizaraya/scythe/config.h @@ -16,22 +16,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_SPLIT 1 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 9 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -57,5 +41,3 @@ along with this program. If not, see . //#define EE_HANDS #define I2C_MASTER_LEFT //#define I2C_MASTER_RIGHT - -#define TAPPING_TERM 120 diff --git a/keyboards/kagizaraya/scythe/info.json b/keyboards/kagizaraya/scythe/info.json index 8198cd00176..6603e790c45 100644 --- a/keyboards/kagizaraya/scythe/info.json +++ b/keyboards/kagizaraya/scythe/info.json @@ -19,6 +19,27 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 9, + "split": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/kagizaraya/scythe/keymaps/forties/keymap.c b/keyboards/kagizaraya/scythe/keymaps/forties/keymap.c index 437be945bdd..024bc9d952d 100644 --- a/keyboards/kagizaraya/scythe/keymaps/forties/keymap.c +++ b/keyboards/kagizaraya/scythe/keymaps/forties/keymap.c @@ -191,15 +191,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/kakunpc/angel17/rev1/config.h b/keyboards/kakunpc/angel17/rev1/config.h index 227e0d52949..f79d8124759 100644 --- a/keyboards/kakunpc/angel17/rev1/config.h +++ b/keyboards/kakunpc/angel17/rev1/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 17 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kakunpc/angel17/rev1/info.json b/keyboards/kakunpc/angel17/rev1/info.json index 9454cc5ffd1..8395cf391c0 100644 --- a/keyboards/kakunpc/angel17/rev1/info.json +++ b/keyboards/kakunpc/angel17/rev1/info.json @@ -3,6 +3,12 @@ "cols": ["F4", "F5", "F6", "F7", "B1"], "rows": ["D4", "C6", "D7", "E6"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 17, + "sleep": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kakunpc/angel64/alpha/config.h b/keyboards/kakunpc/angel64/alpha/config.h index 4f068a9a7d1..4d51ac0f1af 100644 --- a/keyboards/kakunpc/angel64/alpha/config.h +++ b/keyboards/kakunpc/angel64/alpha/config.h @@ -29,22 +29,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 } #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } - #define RGBLED_NUM 64 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kakunpc/angel64/alpha/info.json b/keyboards/kakunpc/angel64/alpha/info.json index 93748b736c8..cfa52eb172e 100644 --- a/keyboards/kakunpc/angel64/alpha/info.json +++ b/keyboards/kakunpc/angel64/alpha/info.json @@ -12,7 +12,23 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 25 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 64, + "max_brightness": 25, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/kakunpc/angel64/rev1/config.h b/keyboards/kakunpc/angel64/rev1/config.h index 4f068a9a7d1..4d51ac0f1af 100644 --- a/keyboards/kakunpc/angel64/rev1/config.h +++ b/keyboards/kakunpc/angel64/rev1/config.h @@ -29,22 +29,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 } #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } - #define RGBLED_NUM 64 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kakunpc/angel64/rev1/info.json b/keyboards/kakunpc/angel64/rev1/info.json index 59e7152e0d9..46f619462aa 100644 --- a/keyboards/kakunpc/angel64/rev1/info.json +++ b/keyboards/kakunpc/angel64/rev1/info.json @@ -12,7 +12,23 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 25 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 64, + "max_brightness": 25, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/kakunpc/angel64/rules.mk b/keyboards/kakunpc/angel64/rules.mk index e10619259c7..213576dfbd5 100644 --- a/keyboards/kakunpc/angel64/rules.mk +++ b/keyboards/kakunpc/angel64/rules.mk @@ -11,7 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 CUSTOM_MATRIX = yes SRC += matrix.c diff --git a/keyboards/kakunpc/business_card/alpha/config.h b/keyboards/kakunpc/business_card/alpha/config.h index ebe746b7ce6..f79d8124759 100644 --- a/keyboards/kakunpc/business_card/alpha/config.h +++ b/keyboards/kakunpc/business_card/alpha/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kakunpc/business_card/alpha/info.json b/keyboards/kakunpc/business_card/alpha/info.json index 17fda49030d..3270f8e4bcc 100644 --- a/keyboards/kakunpc/business_card/alpha/info.json +++ b/keyboards/kakunpc/business_card/alpha/info.json @@ -8,6 +8,12 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kakunpc/business_card/alpha/rules.mk b/keyboards/kakunpc/business_card/alpha/rules.mk index fa42618a3b0..6744c64e1ba 100644 --- a/keyboards/kakunpc/business_card/alpha/rules.mk +++ b/keyboards/kakunpc/business_card/alpha/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/kakunpc/business_card/beta/config.h b/keyboards/kakunpc/business_card/beta/config.h index ebe746b7ce6..f79d8124759 100644 --- a/keyboards/kakunpc/business_card/beta/config.h +++ b/keyboards/kakunpc/business_card/beta/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kakunpc/business_card/beta/info.json b/keyboards/kakunpc/business_card/beta/info.json index 9886b2aa6cf..ef09a0ac906 100644 --- a/keyboards/kakunpc/business_card/beta/info.json +++ b/keyboards/kakunpc/business_card/beta/info.json @@ -8,6 +8,12 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kakunpc/business_card/beta/rules.mk b/keyboards/kakunpc/business_card/beta/rules.mk index fa42618a3b0..6744c64e1ba 100644 --- a/keyboards/kakunpc/business_card/beta/rules.mk +++ b/keyboards/kakunpc/business_card/beta/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/kakunpc/rabbit_capture_plan/config.h b/keyboards/kakunpc/rabbit_capture_plan/config.h index 6a6c2678bf3..617b0deeb49 100644 --- a/keyboards/kakunpc/rabbit_capture_plan/config.h +++ b/keyboards/kakunpc/rabbit_capture_plan/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_SPLIT {32, 37} -# define RGBLED_NUM 69 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kakunpc/rabbit_capture_plan/info.json b/keyboards/kakunpc/rabbit_capture_plan/info.json index d988e940341..ac7732e7ca5 100644 --- a/keyboards/kakunpc/rabbit_capture_plan/info.json +++ b/keyboards/kakunpc/rabbit_capture_plan/info.json @@ -12,7 +12,24 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 69, + "max_brightness": 200, + "sleep": true, + "split_count": [32, 37], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"], diff --git a/keyboards/kakunpc/suihankey/alpha/config.h b/keyboards/kakunpc/suihankey/alpha/config.h index 2e4fa2625f0..f79d8124759 100644 --- a/keyboards/kakunpc/suihankey/alpha/config.h +++ b/keyboards/kakunpc/suihankey/alpha/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 18 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -53,5 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// #define RGBLED_SPLIT {18,18} diff --git a/keyboards/kakunpc/suihankey/alpha/info.json b/keyboards/kakunpc/suihankey/alpha/info.json index b48aab84227..fb9249ab837 100644 --- a/keyboards/kakunpc/suihankey/alpha/info.json +++ b/keyboards/kakunpc/suihankey/alpha/info.json @@ -8,6 +8,24 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kakunpc/suihankey/rev1/config.h b/keyboards/kakunpc/suihankey/rev1/config.h index 2e4fa2625f0..f79d8124759 100644 --- a/keyboards/kakunpc/suihankey/rev1/config.h +++ b/keyboards/kakunpc/suihankey/rev1/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 18 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -53,5 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// #define RGBLED_SPLIT {18,18} diff --git a/keyboards/kakunpc/suihankey/rev1/info.json b/keyboards/kakunpc/suihankey/rev1/info.json index 4f5caa6c634..37215632cf4 100644 --- a/keyboards/kakunpc/suihankey/rev1/info.json +++ b/keyboards/kakunpc/suihankey/rev1/info.json @@ -8,6 +8,24 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kakunpc/suihankey/rules.mk b/keyboards/kakunpc/suihankey/rules.mk index 85df4231d50..80475ea69aa 100644 --- a/keyboards/kakunpc/suihankey/rules.mk +++ b/keyboards/kakunpc/suihankey/rules.mk @@ -11,7 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 SPLIT_KEYBOARD = no DEFAULT_FOLDER = kakunpc/suihankey/rev1 diff --git a/keyboards/kakunpc/suihankey/split/alpha/config.h b/keyboards/kakunpc/suihankey/split/alpha/config.h index 1fda3473f37..a2f22644578 100644 --- a/keyboards/kakunpc/suihankey/split/alpha/config.h +++ b/keyboards/kakunpc/suihankey/split/alpha/config.h @@ -21,12 +21,6 @@ along with this program. If not, see . #define SPLIT_HAND_PIN D2 - #define RGBLED_NUM 18 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -47,5 +41,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// #define RGBLED_SPLIT {18,18} diff --git a/keyboards/kakunpc/suihankey/split/alpha/info.json b/keyboards/kakunpc/suihankey/split/alpha/info.json index 72aaf72967e..fb7a619d0e1 100644 --- a/keyboards/kakunpc/suihankey/split/alpha/info.json +++ b/keyboards/kakunpc/suihankey/split/alpha/info.json @@ -1,4 +1,10 @@ { + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kakunpc/suihankey/split/rev1/config.h b/keyboards/kakunpc/suihankey/split/rev1/config.h index 86e33438b5e..a2f22644578 100644 --- a/keyboards/kakunpc/suihankey/split/rev1/config.h +++ b/keyboards/kakunpc/suihankey/split/rev1/config.h @@ -21,22 +21,6 @@ along with this program. If not, see . #define SPLIT_HAND_PIN D2 - #define RGBLED_NUM 18 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -57,5 +41,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// #define RGBLED_SPLIT {18,18} diff --git a/keyboards/kakunpc/suihankey/split/rev1/info.json b/keyboards/kakunpc/suihankey/split/rev1/info.json index 2c414b31167..4410ad5bb10 100644 --- a/keyboards/kakunpc/suihankey/split/rev1/info.json +++ b/keyboards/kakunpc/suihankey/split/rev1/info.json @@ -1,4 +1,22 @@ { + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kakunpc/thedogkeyboard/config.h b/keyboards/kakunpc/thedogkeyboard/config.h index 80e1c060148..30b7b606c08 100644 --- a/keyboards/kakunpc/thedogkeyboard/config.h +++ b/keyboards/kakunpc/thedogkeyboard/config.h @@ -35,12 +35,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B4, B5 } #define MATRIX_COL_PINS { D1, D0, D4, C6, D7, E6 } - #define RGBLED_NUM 111 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kakunpc/thedogkeyboard/info.json b/keyboards/kakunpc/thedogkeyboard/info.json index a958fd52a6a..79ed132f68c 100644 --- a/keyboards/kakunpc/thedogkeyboard/info.json +++ b/keyboards/kakunpc/thedogkeyboard/info.json @@ -12,7 +12,11 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 50 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 111, + "max_brightness": 50, + "sleep": true }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/kalakos/bahrnob/info.json b/keyboards/kalakos/bahrnob/info.json index 3e556f9bb85..6905ceb38da 100644 --- a/keyboards/kalakos/bahrnob/info.json +++ b/keyboards/kalakos/bahrnob/info.json @@ -46,8 +46,10 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0}, {"matrix": [1, 14], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.75, "y": 0}, - {"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1}, + + {"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}, @@ -60,9 +62,11 @@ {"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], "w": 1.5, "x": 13.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 14], "x": 15.5, "y": 1.5}, - {"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2}, + + {"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}, @@ -74,11 +78,13 @@ {"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, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 14], "x": 15.5, "y": 2.5}, - {"matrix": [3, 0], "w": 1.25, "x": 0, "y": 3}, - {"matrix": [4, 4], "x": 2.25, "y": 3}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [4, 4], "x": 1.25, "y": 3}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, {"matrix": [3, 2], "x": 3.25, "y": 3}, {"matrix": [3, 3], "x": 4.25, "y": 3}, {"matrix": [3, 4], "x": 5.25, "y": 3}, @@ -88,17 +94,20 @@ {"matrix": [3, 8], "x": 9.25, "y": 3}, {"matrix": [3, 9], "x": 10.25, "y": 3}, {"matrix": [3, 10], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [2, 13], "x": 14.25, "y": 3.25}, - {"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4}, - {"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4}, - {"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4}, - {"matrix": [4, 3], "w": 3, "x": 3.75, "y": 4}, - {"matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4}, - {"matrix": [4, 6], "w": 3.25, "x": 6.75, "y": 4}, + + {"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, 3], "x": 3.75, "y": 4, "w": 3, "h": 0.625}, + {"matrix": [4, 5], "x": 3.75, "y": 4.625, "w": 6.25, "h": 0.625}, + {"matrix": [4, 6], "x": 6.75, "y": 4, "w": 3.25, "h": 0.625}, {"matrix": [4, 10], "x": 10, "y": 4}, {"matrix": [4, 11], "x": 11, "y": 4}, {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [3, 13], "x": 13.25, "y": 4.25}, {"matrix": [4, 13], "x": 14.25, "y": 4.25}, {"matrix": [4, 14], "x": 15.25, "y": 4.25} diff --git a/keyboards/kalakos/bahrnob/matrix_diagram.md b/keyboards/kalakos/bahrnob/matrix_diagram.md new file mode 100644 index 00000000000..30e120b75b3 --- /dev/null +++ b/keyboards/kalakos/bahrnob/matrix_diagram.md @@ -0,0 +1,38 @@ +# Matrix Diagram for Kalakos Bahrnob65 + + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1E │ │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └───┘ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ ┌───┐ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ │2E │ ┌──┴┐1D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ ├───┤ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ │3E │ └───┴────┘ +│30 │44 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3C │┌───┐└───┘ +├────┼───┴┬──┴─┬─┴───┴───┴─┬─┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│2D │ +│40 │41 │42 │43 │46 │4A │4B │4C │┌───┼───┼───┐ +└────┴────┴────┴───────────┴────────────┴───┴───┴───┘│3D │4D │4E │ + └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌────┬────┬────┬────────────────────────┬───┬───┬───┐ +│40 │41 │42 │45 │4A │4B │4C │ Standard +└────┴────┴────┴────────────────────────┴───┴───┴───┘ +┌─────┬─────┬───────────────────────────┬───┬───┬───┐ +│40 │41 │45 │4A │4B │4C │ LWKL +└─────┴─────┴───────────────────────────┴───┴───┴───┘ +┌────┬────┬────┬────────────────────────┬─────┬─────┐ +│40 │41 │42 │45 │4A │4C │ RWKL +└────┴────┴────┴────────────────────────┴─────┴─────┘ +┌────┬────┬────┬───────────┬────────────┬─────┬─────┐ +│40 │41 │42 │43 │46 │4A │4C │ RWKL with Split (3/3.25u) Spacebars +└────┴────┴────┴───────────┴────────────┴─────┴─────┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│40 │41 │45 │4A │4C │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/kapcave/arya/config.h b/keyboards/kapcave/arya/config.h index 282b98a9781..94220763159 100644 --- a/keyboards/kapcave/arya/config.h +++ b/keyboards/kapcave/arya/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAP_CODE_DELAY 25 - #define DYNAMIC_KEYMAP_LAYER_COUNT 3 /* diff --git a/keyboards/kapcave/arya/info.json b/keyboards/kapcave/arya/info.json index 0125b834fb5..34246609e53 100644 --- a/keyboards/kapcave/arya/info.json +++ b/keyboards/kapcave/arya/info.json @@ -20,6 +20,9 @@ {"pin_a": "C15", "pin_b": "C14", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 25 + }, "processor": "STM32F072", "bootloader": "stm32-dfu", "community_layouts": ["alice_split_bs"], diff --git a/keyboards/kapcave/arya/rules.mk b/keyboards/kapcave/arya/rules.mk index bfdeb0e3ec9..73bb6b769ba 100644 --- a/keyboards/kapcave/arya/rules.mk +++ b/keyboards/kapcave/arya/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kapcave/gskt00/keymaps/nachie/keymap.c b/keyboards/kapcave/gskt00/keymaps/nachie/keymap.c index 105fd75a926..9b17187d05c 100755 --- a/keyboards/kapcave/gskt00/keymaps/nachie/keymap.c +++ b/keyboards/kapcave/gskt00/keymaps/nachie/keymap.c @@ -35,48 +35,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, RGB_TOG) }; - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} - diff --git a/keyboards/kapcave/paladinpad/rev1/config.h b/keyboards/kapcave/paladinpad/rev1/config.h deleted file mode 100644 index 386e4b0a0c3..00000000000 --- a/keyboards/kapcave/paladinpad/rev1/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2021 KapCave - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 12 diff --git a/keyboards/kapcave/paladinpad/rev1/info.json b/keyboards/kapcave/paladinpad/rev1/info.json index 0fec9260a90..994d66417ba 100644 --- a/keyboards/kapcave/paladinpad/rev1/info.json +++ b/keyboards/kapcave/paladinpad/rev1/info.json @@ -2,6 +2,23 @@ "usb": { "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "brightness_steps": 12, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/kapcave/paladinpad/rev2/config.h b/keyboards/kapcave/paladinpad/rev2/config.h index 239a873384e..c985581ecf1 100644 --- a/keyboards/kapcave/paladinpad/rev2/config.h +++ b/keyboards/kapcave/paladinpad/rev2/config.h @@ -17,18 +17,3 @@ along with this program. If not, see . #pragma once #define AUDIO_PIN C6 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 7 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 12 diff --git a/keyboards/kapcave/paladinpad/rev2/info.json b/keyboards/kapcave/paladinpad/rev2/info.json index 699cdde82d0..554845840a9 100644 --- a/keyboards/kapcave/paladinpad/rev2/info.json +++ b/keyboards/kapcave/paladinpad/rev2/info.json @@ -2,6 +2,23 @@ "usb": { "device_version": "0.0.2" }, + "rgblight": { + "hue_steps": 10, + "brightness_steps": 12, + "led_count": 7, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/kapl/rev1/config.h b/keyboards/kapl/rev1/config.h index 8dc6718d1a0..c5c9ada22ba 100644 --- a/keyboards/kapl/rev1/config.h +++ b/keyboards/kapl/rev1/config.h @@ -5,32 +5,12 @@ /* Select hand configuration */ #define MASTER_LEFT -#define RGBLED_NUM 88 -#define RGBLED_SPLIT { 44, 44 } -#define RGBLIGHT_SPLIT - #define RGB_MATRIX_LED_COUNT 88 #define RGB_MATRIX_SPLIT { 44, 44 } #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. #define SPLIT_TRANSPORT_MIRROR -#ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 16 -#define RGBLIGHT_VAL_STEP 16 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE -#endif - #ifdef RGB_MATRIX_ENABLE -#define RGB_MATRIX_HUE_STEP 8 -#define RGB_MATRIX_SAT_STEP 16 -#define RGB_MATRIX_VAL_STEP 16 -#define RGB_MATRIX_SPD_STEP 10 // EFFECTS #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/kapl/rev1/info.json b/keyboards/kapl/rev1/info.json index ad310fa87ce..5ef44ccaaa3 100644 --- a/keyboards/kapl/rev1/info.json +++ b/keyboards/kapl/rev1/info.json @@ -12,10 +12,23 @@ "pin": "D4" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "speed_steps": 10 }, "rgblight": { - "max_brightness": 120 + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 88, + "max_brightness": 120, + "split_count": [44, 44], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"], diff --git a/keyboards/kb_elmo/isolation/config.h b/keyboards/kb_elmo/isolation/config.h deleted file mode 100644 index 37a293fb199..00000000000 --- a/keyboards/kb_elmo/isolation/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2021 kb-elmo - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB backlight */ -# define RGBLED_NUM 3 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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_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/kb_elmo/isolation/info.json b/keyboards/kb_elmo/isolation/info.json index 817a8db4128..c381c62f702 100644 --- a/keyboards/kb_elmo/isolation/info.json +++ b/keyboards/kb_elmo/isolation/info.json @@ -8,6 +8,23 @@ "pid": "0x4EE6", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 3, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/kb_elmo/noah_avr/config.h b/keyboards/kb_elmo/noah_avr/config.h index 08501c982b8..5c6669f675b 100644 --- a/keyboards/kb_elmo/noah_avr/config.h +++ b/keyboards/kb_elmo/noah_avr/config.h @@ -17,17 +17,4 @@ along with this program. If not, see . #pragma once -/* RGB */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 7 -#define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_BGR // RGB on the Noah is different order diff --git a/keyboards/kb_elmo/noah_avr/info.json b/keyboards/kb_elmo/noah_avr/info.json index 8db5edb6b6d..edc75f2b1f1 100644 --- a/keyboards/kb_elmo/noah_avr/info.json +++ b/keyboards/kb_elmo/noah_avr/info.json @@ -8,6 +8,22 @@ "pid": "0x1DB0", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 7, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/kb_elmo/sesame/readme.md b/keyboards/kb_elmo/sesame/readme.md index 8541ea5938b..c0211cfde4c 100644 --- a/keyboards/kb_elmo/sesame/readme.md +++ b/keyboards/kb_elmo/sesame/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader * **Bootmagic reset**: Hold down the top left key and plug in the keyboard -* **Physical reset button**: Hold down the button labeled "BOOT" and briefly press the button labeled "RESET" on the back of the PCB +* **Physical reset button**: Hold down the button labeled "BOOT" and briefly press the button labeled "RESET" on the back of the PCB \ No newline at end of file diff --git a/keyboards/kbdcraft/adam64/info.json b/keyboards/kbdcraft/adam64/info.json index cc33c26cc16..be24ef4c191 100644 --- a/keyboards/kbdcraft/adam64/info.json +++ b/keyboards/kbdcraft/adam64/info.json @@ -25,7 +25,7 @@ "rgb_matrix": true }, "rgb_matrix": { - "driver": "IS31FL3741", + "driver": "is31fl3741", "max_brightness": 150, "animations": { "alphas_mods": true, diff --git a/keyboards/kbdcraft/adam64/rules.mk b/keyboards/kbdcraft/adam64/rules.mk index 094c6b058e8..8b137891791 100644 --- a/keyboards/kbdcraft/adam64/rules.mk +++ b/keyboards/kbdcraft/adam64/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/kbdfans/baguette66/rgb/config.h b/keyboards/kbdfans/baguette66/rgb/config.h index ee3574ac9cd..c989f1b1214 100644 --- a/keyboards/kbdfans/baguette66/rgb/config.h +++ b/keyboards/kbdfans/baguette66/rgb/config.h @@ -19,18 +19,7 @@ #define USB_SUSPEND_WAKEUP_DELAY 5000 #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 -#define RGBLED_NUM 66 -#define RGB_MATRIX_LED_COUNT 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 RGB_MATRIX_LED_COUNT 66 #define RGB_MATRIX_KEYPRESSES #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT @@ -62,7 +51,3 @@ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #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_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define RGB_MATRIX_HUE_STEP 8 -#define RGB_MATRIX_SAT_STEP 8 -#define RGB_MATRIX_VAL_STEP 8 -#define RGB_MATRIX_SPD_STEP 10 diff --git a/keyboards/kbdfans/baguette66/rgb/info.json b/keyboards/kbdfans/baguette66/rgb/info.json index 5f8faf89ae0..c5ed4717a52 100644 --- a/keyboards/kbdfans/baguette66/rgb/info.json +++ b/keyboards/kbdfans/baguette66/rgb/info.json @@ -7,11 +7,29 @@ "pid": "0x0106", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 66, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "matrix_pins": { "cols": ["C6", "C7", "F7", "F6", "B0", "B1", "B2", "B3", "D0", "D1", "D2", "D3", "D5", "D4", "D6"], diff --git a/keyboards/kbdfans/bella/rgb/info.json b/keyboards/kbdfans/bella/rgb/info.json index ba396286888..b3b4e385f19 100644 --- a/keyboards/kbdfans/bella/rgb/info.json +++ b/keyboards/kbdfans/bella/rgb/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5"], diff --git a/keyboards/kbdfans/bella/rgb_iso/info.json b/keyboards/kbdfans/bella/rgb_iso/info.json index ffdf11155a5..d407cb0f7b9 100644 --- a/keyboards/kbdfans/bella/rgb_iso/info.json +++ b/keyboards/kbdfans/bella/rgb_iso/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5"], diff --git a/keyboards/kbdfans/boop65/rgb/info.json b/keyboards/kbdfans/boop65/rgb/info.json index 8f9028305ed..cc780177dc1 100644 --- a/keyboards/kbdfans/boop65/rgb/info.json +++ b/keyboards/kbdfans/boop65/rgb/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["F7", "F6", "F5", "C7", "B0", "B1", "B2", "B3", "B4", "D7", "D6", "D4", "D5", "D3", "D2"], diff --git a/keyboards/kbdfans/bounce/75/hotswap/config.h b/keyboards/kbdfans/bounce/75/hotswap/config.h index 29f510620b6..79f79fdf505 100644 --- a/keyboards/kbdfans/bounce/75/hotswap/config.h +++ b/keyboards/kbdfans/bounce/75/hotswap/config.h @@ -16,22 +16,7 @@ #pragma once -#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_EFFECT_RAINBOW_MOOD +8 ) #define RGBLIGHT_DEFAULT_SPD 15 -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 -#define RGBLIGHT_SLEEP #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/75/hotswap/info.json b/keyboards/kbdfans/bounce/75/hotswap/info.json index 444a5addaea..ee6f380e4e0 100644 --- a/keyboards/kbdfans/bounce/75/hotswap/info.json +++ b/keyboards/kbdfans/bounce/75/hotswap/info.json @@ -16,6 +16,25 @@ "caps_lock": "C6", "on_state": 0 }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/kbdfans/bounce/75/soldered/config.h b/keyboards/kbdfans/bounce/75/soldered/config.h index 29f510620b6..79f79fdf505 100644 --- a/keyboards/kbdfans/bounce/75/soldered/config.h +++ b/keyboards/kbdfans/bounce/75/soldered/config.h @@ -16,22 +16,7 @@ #pragma once -#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_EFFECT_RAINBOW_MOOD +8 ) #define RGBLIGHT_DEFAULT_SPD 15 -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 -#define RGBLIGHT_SLEEP #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/75/soldered/info.json b/keyboards/kbdfans/bounce/75/soldered/info.json index 9dbb3712ceb..8dd809d5c83 100644 --- a/keyboards/kbdfans/bounce/75/soldered/info.json +++ b/keyboards/kbdfans/bounce/75/soldered/info.json @@ -17,6 +17,25 @@ "caps_lock": "C6", "on_state": 0 }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/kbdfans/kbd19x/config.h b/keyboards/kbdfans/kbd19x/config.h index b18438ab4e6..99c25201ad6 100644 --- a/keyboards/kbdfans/kbd19x/config.h +++ b/keyboards/kbdfans/kbd19x/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kbdfans/kbd19x/info.json b/keyboards/kbdfans/kbd19x/info.json index 3fb10600eee..c37e3587e25 100644 --- a/keyboards/kbdfans/kbd19x/info.json +++ b/keyboards/kbdfans/kbd19x/info.json @@ -22,6 +22,24 @@ "scroll_lock": "B1", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/kbdfans/kbd4x/config.h b/keyboards/kbdfans/kbd4x/config.h index d08ecf7f983..e347de77599 100644 --- a/keyboards/kbdfans/kbd4x/config.h +++ b/keyboards/kbdfans/kbd4x/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kbdfans/kbd4x/info.json b/keyboards/kbdfans/kbd4x/info.json index 21d1428f0d7..44c9daceb74 100644 --- a/keyboards/kbdfans/kbd4x/info.json +++ b/keyboards/kbdfans/kbd4x/info.json @@ -17,6 +17,24 @@ "pin": "B6", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/kbdfans/kbd67/hotswap/config.h b/keyboards/kbdfans/kbd67/hotswap/config.h index dfbc40e0a03..b5b661bef2a 100644 --- a/keyboards/kbdfans/kbd67/hotswap/config.h +++ b/keyboards/kbdfans/kbd67/hotswap/config.h @@ -17,24 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== all animations 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_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kbdfans/kbd67/hotswap/info.json b/keyboards/kbdfans/kbd67/hotswap/info.json index edbbf6638ea..32ac10767d0 100644 --- a/keyboards/kbdfans/kbd67/hotswap/info.json +++ b/keyboards/kbdfans/kbd67/hotswap/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/keymap.c b/keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/keymap.c index cd4a32ff41c..33245acc51d 100644 --- a/keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/keymap.c +++ b/keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/keymap.c @@ -163,14 +163,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void eeconfig_init_user(void) { set_unicode_input_mode(UNICODE_MODE_MACOS); } - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/kbdfans/kbd67/mkiirgb/info.json b/keyboards/kbdfans/kbd67/mkiirgb/info.json index 023c6ff5dba..683503b4ee9 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/info.json @@ -5,5 +5,8 @@ "usb": { "vid": "0x4B42" }, - "community_layouts": ["65_ansi_blocker"] + "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + } } diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/info.json b/keyboards/kbdfans/kbd67/mkiirgb/v1/info.json index 733d68cc595..7b6795f07f6 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/info.json @@ -5,7 +5,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["A6", "A7", "B0", "B13", "B15", "A8", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15"], diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/info.json b/keyboards/kbdfans/kbd67/mkiirgb/v2/info.json index 441c5439139..e0fe90b6f3f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/info.json @@ -5,7 +5,7 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["F7", "F6", "F5", "C7", "B0", "B1", "B2", "B3", "B4", "D7", "D6", "D4", "D5", "D3", "D2"], diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/keymaps/vial/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/v2/keymaps/vial/rules.mk index 537a828bbe5..3867f06574a 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/keymaps/vial/rules.mk +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/keymaps/vial/rules.mk @@ -4,3 +4,4 @@ VIAL_ENABLE = yes QMK_SETTINGS = no COMBO_ENABLE = no KEY_OVERRIDE_ENABLE = no +TAP_DANCE_ENABLE = no diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json index 378ffa78455..165db962936 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json @@ -5,7 +5,7 @@ "device_version": "0.0.3" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["F7", "F6", "F5", "C7", "B0", "B1", "B2", "B3", "B4", "D7", "D6", "D4", "D5", "D3", "D2"], diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h index 8b79d929d66..10f0bc0ec2d 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h @@ -18,18 +18,7 @@ #define USB_SUSPEND_WAKEUP_DELAY 5000 -#define RGBLED_NUM 68 -#define RGB_MATRIX_LED_COUNT 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 RGB_MATRIX_LED_COUNT 68 #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES // reacts to keypresses @@ -37,10 +26,6 @@ # define RGB_MATRIX_FRAMEBUFFER_EFFECTS # 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_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/info.json b/keyboards/kbdfans/kbd67/mkiirgb/v4/info.json index f7d5ab552f0..a1ec2a18334 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/info.json @@ -4,11 +4,29 @@ "pid": "0x1227", "device_version": "0.0.4" }, + "rgblight": { + "led_count": 68, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "B0", "B7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h b/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h index ede122f3f21..10f0bc0ec2d 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h @@ -26,10 +26,6 @@ # define RGB_MATRIX_FRAMEBUFFER_EFFECTS # 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_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json b/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json index 4c7d09aa8e4..cb8912f9a46 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json @@ -12,7 +12,10 @@ "pin": "C7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "B0", "B7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], diff --git a/keyboards/kbdfans/kbd67/rev1/config.h b/keyboards/kbdfans/kbd67/rev1/config.h index 20e3b8f0dfb..d876570c808 100644 --- a/keyboards/kbdfans/kbd67/rev1/config.h +++ b/keyboards/kbdfans/kbd67/rev1/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kbdfans/kbd67/rev1/info.json b/keyboards/kbdfans/kbd67/rev1/info.json index e34cbb87e2e..91194775845 100644 --- a/keyboards/kbdfans/kbd67/rev1/info.json +++ b/keyboards/kbdfans/kbd67/rev1/info.json @@ -25,7 +25,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/kbdfans/kbd67/rev1/keymaps/martinffx/keymap.c b/keyboards/kbdfans/kbd67/rev1/keymaps/martinffx/keymap.c index 5c307a31b12..228f6483197 100644 --- a/keyboards/kbdfans/kbd67/rev1/keymaps/martinffx/keymap.c +++ b/keyboards/kbdfans/kbd67/rev1/keymaps/martinffx/keymap.c @@ -85,15 +85,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/kbdfans/kbd67/rev2/config.h b/keyboards/kbdfans/kbd67/rev2/config.h deleted file mode 100644 index 1aa30c01cd8..00000000000 --- a/keyboards/kbdfans/kbd67/rev2/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2019 Vorror - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/kbdfans/kbd67/rev2/info.json b/keyboards/kbdfans/kbd67/rev2/info.json index bf83ad4af3b..7bd48689be7 100644 --- a/keyboards/kbdfans/kbd67/rev2/info.json +++ b/keyboards/kbdfans/kbd67/rev2/info.json @@ -24,7 +24,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/keymap.c index 682f15c4455..88fe681f142 100644 --- a/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/keymap.c +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/keymap.c @@ -69,22 +69,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______), }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { rgblight_enable_noeeprom(); } else { rgblight_disable_noeeprom(); } + return false; } diff --git a/keyboards/kbdfans/kbd6x/config.h b/keyboards/kbdfans/kbd6x/config.h index d29b1e494aa..d876570c808 100644 --- a/keyboards/kbdfans/kbd6x/config.h +++ b/keyboards/kbdfans/kbd6x/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_VAL_STEP 12 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kbdfans/kbd6x/info.json b/keyboards/kbdfans/kbd6x/info.json index 782da6bc64c..654c01c0eca 100644 --- a/keyboards/kbdfans/kbd6x/info.json +++ b/keyboards/kbdfans/kbd6x/info.json @@ -17,6 +17,25 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c index 8f2305ed4c7..a8a369a6110 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c +++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c @@ -43,8 +43,8 @@ static void check_light_layer(layer_state_t state) { last_checked_layer = true; } -static void check_light_led(uint8_t leds) { - if (IS_LED_ON(leds, USB_LED_CAPS_LOCK)) { +static void check_light_led(led_t led_state) { + if (led_state.caps_lock) { caps_light(); } else if (IS_LAYER_ON(L_FN)) { fn_light(); @@ -57,7 +57,7 @@ static void check_light_led(uint8_t leds) { static void inline check_light(void) { last_checked_layer ? check_light_layer(layer_state) - : check_light_led(host_keyboard_leds()); + : check_light_led(host_keyboard_led_state()); } void eeconfig_init_keymap(void) { diff --git a/keyboards/kbdfans/kbd75/config.h b/keyboards/kbdfans/kbd75/config.h index 38d9bacad96..805f9ad0542 100644 --- a/keyboards/kbdfans/kbd75/config.h +++ b/keyboards/kbdfans/kbd75/config.h @@ -8,20 +8,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -/* If defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_SLEEP diff --git a/keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c b/keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c index 88272e3c721..c7f05a4e943 100644 --- a/keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c @@ -79,11 +79,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(B2); writePinLow(B2); } else { setPinInput(B2); } + return false; } diff --git a/keyboards/kbdfans/kbd75/rev1/info.json b/keyboards/kbdfans/kbd75/rev1/info.json index ab56fc90d1a..d9d149f1e1a 100644 --- a/keyboards/kbdfans/kbd75/rev1/info.json +++ b/keyboards/kbdfans/kbd75/rev1/info.json @@ -21,6 +21,24 @@ "caps_lock": "B2", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/kbdfans/kbd75/rev2/info.json b/keyboards/kbdfans/kbd75/rev2/info.json index 11eb19b7299..7cf43b93a76 100644 --- a/keyboards/kbdfans/kbd75/rev2/info.json +++ b/keyboards/kbdfans/kbd75/rev2/info.json @@ -21,6 +21,24 @@ "caps_lock": "B2", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/kbdfans/kbd75hs/config.h b/keyboards/kbdfans/kbd75hs/config.h index 4bc0c6dcff9..6a5b35b5b65 100644 --- a/keyboards/kbdfans/kbd75hs/config.h +++ b/keyboards/kbdfans/kbd75hs/config.h @@ -16,22 +16,7 @@ #pragma once -#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_EFFECT_RAINBOW_MOOD + 6) #define RGBLIGHT_DEFAULT_SPD 15 -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 -#define RGBLIGHT_SLEEP #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/kbdfans/kbd75hs/info.json b/keyboards/kbdfans/kbd75hs/info.json index fef9c5a8c29..fc2310993ce 100644 --- a/keyboards/kbdfans/kbd75hs/info.json +++ b/keyboards/kbdfans/kbd75hs/info.json @@ -16,6 +16,25 @@ "indicators": { "caps_lock": "C6" }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/kbdfans/kbd75rgb/config.h b/keyboards/kbdfans/kbd75rgb/config.h index 6d1273875d7..a8b20051ecf 100644 --- a/keyboards/kbdfans/kbd75rgb/config.h +++ b/keyboards/kbdfans/kbd75rgb/config.h @@ -19,18 +19,7 @@ #define USB_SUSPEND_WAKEUP_DELAY 5000 #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 -#define RGBLED_NUM 84 -#define RGB_MATRIX_LED_COUNT 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 RGB_MATRIX_LED_COUNT 84 #define RGB_MATRIX_KEYPRESSES #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT @@ -62,7 +51,3 @@ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #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_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define RGB_MATRIX_HUE_STEP 8 -#define RGB_MATRIX_SAT_STEP 8 -#define RGB_MATRIX_VAL_STEP 8 -#define RGB_MATRIX_SPD_STEP 10 diff --git a/keyboards/kbdfans/kbd75rgb/info.json b/keyboards/kbdfans/kbd75rgb/info.json index 231f13f4122..f5019653483 100644 --- a/keyboards/kbdfans/kbd75rgb/info.json +++ b/keyboards/kbdfans/kbd75rgb/info.json @@ -8,11 +8,29 @@ "pid": "0x6063", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 84, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "E6", "B3", "B7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7"], diff --git a/keyboards/kbdfans/kbd8x/config.h b/keyboards/kbdfans/kbd8x/config.h index 655b83f0e30..32ab8df8375 100644 --- a/keyboards/kbdfans/kbd8x/config.h +++ b/keyboards/kbdfans/kbd8x/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kbdfans/kbd8x/info.json b/keyboards/kbdfans/kbd8x/info.json index eeda61ac356..4dc48901ddd 100644 --- a/keyboards/kbdfans/kbd8x/info.json +++ b/keyboards/kbdfans/kbd8x/info.json @@ -22,6 +22,24 @@ "num_lock": "B1", "scroll_lock": "B2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/kbdfans/kbd8x_mk2/config.h b/keyboards/kbdfans/kbd8x_mk2/config.h index 74fad03a87b..50001e978cc 100644 --- a/keyboards/kbdfans/kbd8x_mk2/config.h +++ b/keyboards/kbdfans/kbd8x_mk2/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kbdfans/kbd8x_mk2/info.json b/keyboards/kbdfans/kbd8x_mk2/info.json index 5c15e9e2d52..e6e2e5c168f 100644 --- a/keyboards/kbdfans/kbd8x_mk2/info.json +++ b/keyboards/kbdfans/kbd8x_mk2/info.json @@ -21,7 +21,23 @@ "pin": "B3" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "indicators": { "caps_lock": "E6", diff --git a/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/keymap.c b/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/keymap.c index 8049c4ef5c6..2e91933f442 100644 --- a/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/keymap.c +++ b/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/keymap.c @@ -35,19 +35,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/kbdfans/kbdmini/info.json b/keyboards/kbdfans/kbdmini/info.json index 533f52f0122..99aa4a4113c 100644 --- a/keyboards/kbdfans/kbdmini/info.json +++ b/keyboards/kbdfans/kbdmini/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["B3", "B2", "B1", "B0", "F1", "F0", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], diff --git a/keyboards/kbdfans/kbdpad/mk1/config.h b/keyboards/kbdfans/kbdpad/mk1/config.h deleted file mode 100644 index a3a9a993df2..00000000000 --- a/keyboards/kbdfans/kbdpad/mk1/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 diff --git a/keyboards/kbdfans/kbdpad/mk1/info.json b/keyboards/kbdfans/kbdpad/mk1/info.json index 3527370e4c0..fbb5649a8f7 100644 --- a/keyboards/kbdfans/kbdpad/mk1/info.json +++ b/keyboards/kbdfans/kbdpad/mk1/info.json @@ -17,6 +17,21 @@ "pin": "D4", "breathing": true }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/kbdfans/kbdpad/mk2/config.h b/keyboards/kbdfans/kbdpad/mk2/config.h index 9457b207667..50001e978cc 100644 --- a/keyboards/kbdfans/kbdpad/mk2/config.h +++ b/keyboards/kbdfans/kbdpad/mk2/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kbdfans/kbdpad/mk2/info.json b/keyboards/kbdfans/kbdpad/mk2/info.json index dc47064feed..8c773f43e1c 100644 --- a/keyboards/kbdfans/kbdpad/mk2/info.json +++ b/keyboards/kbdfans/kbdpad/mk2/info.json @@ -18,6 +18,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/kbdfans/kbdpad/mk3/info.json b/keyboards/kbdfans/kbdpad/mk3/info.json index 01837a1d821..8ba02f8fa18 100644 --- a/keyboards/kbdfans/kbdpad/mk3/info.json +++ b/keyboards/kbdfans/kbdpad/mk3/info.json @@ -23,7 +23,7 @@ }, "processor": "atmega32u4", "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 4, "matrix": [0, 1], "x": 75, "y": 0}, diff --git a/keyboards/kbdfans/maja/info.json b/keyboards/kbdfans/maja/info.json index 68dc1d16e6a..8ee6118452f 100644 --- a/keyboards/kbdfans/maja/info.json +++ b/keyboards/kbdfans/maja/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["C6", "C7", "F7", "F6", "F5", "F4", "F1", "B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5"], diff --git a/keyboards/kbdfans/niu_mini/config.h b/keyboards/kbdfans/niu_mini/config.h index fb154031a05..69c6b57a35b 100644 --- a/keyboards/kbdfans/niu_mini/config.h +++ b/keyboards/kbdfans/niu_mini/config.h @@ -23,21 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/kbdfans/niu_mini/info.json b/keyboards/kbdfans/niu_mini/info.json index 4ba2f385163..32ecfd33c64 100644 --- a/keyboards/kbdfans/niu_mini/info.json +++ b/keyboards/kbdfans/niu_mini/info.json @@ -17,6 +17,23 @@ "pin": "B6", "levels": 4 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/kbdfans/niu_mini/keymaps/codecoffeecode/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/codecoffeecode/keymap.c index 523b6cf1a08..7f6f89589bd 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/codecoffeecode/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/codecoffeecode/keymap.c @@ -56,48 +56,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; - - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - - } else { - - } - - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (IS_LED_ON(usb_led, USB_LED_COMPOSE)) { - - } else { - - } - - if (IS_LED_ON(usb_led, USB_LED_KANA)) { - - } else { - - } - -} diff --git a/keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c index 0631ceb185d..8c7d3b8e0e0 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c @@ -377,37 +377,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { */ -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - bnumlock = true; - - } else { - bnumlock = false; - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - +bool led_update_user(led_t led_state) { + bnumlock = led_state.num_lock; + return false; } diff --git a/keyboards/kbdfans/niu_mini/keymaps/tucznak/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/tucznak/keymap.c index b4f75a9d1e2..e4f2eb44cfd 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/tucznak/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/tucznak/keymap.c @@ -112,22 +112,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!process_record_dynamic_macro(keycode, record)) { return false; } return true; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/kbdfans/odin/rgb/config.h b/keyboards/kbdfans/odin/rgb/config.h index 54794e66be1..9cc883891ad 100644 --- a/keyboards/kbdfans/odin/rgb/config.h +++ b/keyboards/kbdfans/odin/rgb/config.h @@ -16,7 +16,6 @@ #pragma once -#define RGBLED_NUM 104 #define RGB_MATRIX_LED_COUNT 104 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/kbdfans/odin/rgb/info.json b/keyboards/kbdfans/odin/rgb/info.json index 46d9756ae93..308e9870cc4 100644 --- a/keyboards/kbdfans/odin/rgb/info.json +++ b/keyboards/kbdfans/odin/rgb/info.json @@ -12,7 +12,7 @@ "pin": "B15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B12", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "C13", "C14", "C15", "A0"], diff --git a/keyboards/kbdfans/odin/rgb/rules.mk b/keyboards/kbdfans/odin/rgb/rules.mk index b7807ae4185..c49a369dd02 100644 --- a/keyboards/kbdfans/odin/rgb/rules.mk +++ b/keyboards/kbdfans/odin/rgb/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kbdfans/odin/soldered/config.h b/keyboards/kbdfans/odin/soldered/config.h index b55a5586284..3586d1d96a4 100644 --- a/keyboards/kbdfans/odin/soldered/config.h +++ b/keyboards/kbdfans/odin/soldered/config.h @@ -16,21 +16,6 @@ #pragma once -#define RGBLED_NUM 4 -#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_EFFECT_RAINBOW_MOOD + 8) -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/kbdfans/odin/soldered/info.json b/keyboards/kbdfans/odin/soldered/info.json index acbdc574bfd..9eaa340a4b3 100644 --- a/keyboards/kbdfans/odin/soldered/info.json +++ b/keyboards/kbdfans/odin/soldered/info.json @@ -22,7 +22,23 @@ "pin": "B15" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/kbdfans/odin/soldered/rules.mk b/keyboards/kbdfans/odin/soldered/rules.mk index 9e42693cb69..c3b8e77d77a 100644 --- a/keyboards/kbdfans/odin/soldered/rules.mk +++ b/keyboards/kbdfans/odin/soldered/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kbdfans/odin/v2/config.h b/keyboards/kbdfans/odin/v2/config.h index a753f00c6ad..e47ec47523b 100644 --- a/keyboards/kbdfans/odin/v2/config.h +++ b/keyboards/kbdfans/odin/v2/config.h @@ -16,17 +16,4 @@ #pragma once - #define RGBLED_NUM 4 - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL - - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP diff --git a/keyboards/kbdfans/odin/v2/info.json b/keyboards/kbdfans/odin/v2/info.json index 59d2dde7ac3..7714d2407f2 100644 --- a/keyboards/kbdfans/odin/v2/info.json +++ b/keyboards/kbdfans/odin/v2/info.json @@ -22,7 +22,19 @@ "pin": "B15" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "christmas": true, + "static_gradient": true + } }, "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/kbdfans/odin/v2/rules.mk b/keyboards/kbdfans/odin/v2/rules.mk index 0f15f10b208..0098dc473ac 100644 --- a/keyboards/kbdfans/odin/v2/rules.mk +++ b/keyboards/kbdfans/odin/v2/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kbdfans/odinmini/keymaps/vial/config.h b/keyboards/kbdfans/odinmini/keymaps/vial/config.h new file mode 100644 index 00000000000..032e5708384 --- /dev/null +++ b/keyboards/kbdfans/odinmini/keymaps/vial/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xD4, 0x6B, 0x77, 0x5B, 0xBF, 0xD4, 0x4C, 0xAE} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } diff --git a/keyboards/kbdfans/odinmini/keymaps/vial/keymap.c b/keyboards/kbdfans/odinmini/keymaps/vial/keymap.c new file mode 100644 index 00000000000..f9bd7bbc6e7 --- /dev/null +++ b/keyboards/kbdfans/odinmini/keymaps/vial/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2022 DZTECH + * + * This 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [1] =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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [2] =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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [3] =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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), +}; diff --git a/keyboards/kbdfans/odinmini/keymaps/vial/rules.mk b/keyboards/kbdfans/odinmini/keymaps/vial/rules.mk new file mode 100644 index 00000000000..4f7618e9b21 --- /dev/null +++ b/keyboards/kbdfans/odinmini/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/kbdfans/odinmini/keymaps/vial/vial.json b/keyboards/kbdfans/odinmini/keymaps/vial/vial.json new file mode 100644 index 00000000000..bd6b75b0209 --- /dev/null +++ b/keyboards/kbdfans/odinmini/keymaps/vial/vial.json @@ -0,0 +1,210 @@ +{ + "name": "odinmini", + "vendorId": "0x4B42", + "productId": "0x6073", + "lighting": "qmk_rgblight", + "matrix": { + "rows": 5, + "cols": 18 + }, + "layouts": { + "keymap": [ + [ + { + "c": "#777777" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + { + "c": "#aaaaaa", + "w": 2 + }, + "2,13", + { + "x": 0.25, + "c": "#cccccc" + }, + "0,13", + { + "x": 0.25 + }, + "0,14", + "0,15", + "0,16", + "0,17" + ], + [ + { + "w": 1.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "3,13", + { + "x": 0.25 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16", + { + "c": "#aaaaaa", + "h": 2 + }, + "1,17" + ], + [ + { + "c": "#cccccc", + "w": 1.75 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "c": "#aaaaaa", + "w": 2.25 + }, + "2,12", + { + "x": 1.5, + "c": "#cccccc" + }, + "2,14", + "2,15", + "2,16\n→" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "3,11", + { + "x": 1.5, + "c": "#cccccc" + }, + "3,14", + "3,15", + "3,16", + { + "c": "#aaaaaa", + "h": 2 + }, + "3,17" + ], + [ + { + "y": -0.75, + "x": 15.25, + "c": "#777777" + }, + "3,12" + ], + [ + { + "y": -0.25, + "c": "#aaaaaa", + "w": 1.25 + }, + "4,0", + { + "w": 1.25 + }, + "4,1", + { + "w": 1.25 + }, + "4,2", + { + "c": "#cccccc", + "w": 7 + }, + "4,5", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,8", + { + "w": 1.5 + }, + "4,9", + { + "x": 3.75, + "c": "#cccccc" + }, + "4,14", + "4,15" + ], + [ + { + "y": -0.75, + "x": 14.25, + "c": "#777777" + }, + "4,10", + "4,11", + "4,12" + ] + ] + } +} diff --git a/keyboards/kbdfans/phaseone/config.h b/keyboards/kbdfans/phaseone/config.h index a8e7f41e17e..2dba9f5d357 100644 --- a/keyboards/kbdfans/phaseone/config.h +++ b/keyboards/kbdfans/phaseone/config.h @@ -20,22 +20,8 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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_DEFAULT_MODE (RGBLIGHT_EFFECT_RAINBOW_MOOD + 6) #define RGBLIGHT_DEFAULT_SPD 15 -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 -#define RGBLIGHT_SLEEP #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 \ No newline at end of file diff --git a/keyboards/kbdfans/phaseone/info.json b/keyboards/kbdfans/phaseone/info.json index 0b4bf2e19f6..14150a1cdd1 100644 --- a/keyboards/kbdfans/phaseone/info.json +++ b/keyboards/kbdfans/phaseone/info.json @@ -18,6 +18,25 @@ "num_lock": "D7", "on_state": 0 }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/kbnordic/nordic60/rev_a/config.h b/keyboards/kbnordic/nordic60/rev_a/config.h deleted file mode 100644 index 5298868bcf1..00000000000 --- a/keyboards/kbnordic/nordic60/rev_a/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2021 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 - -#define RGBLED_NUM 16 - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/kbnordic/nordic60/rev_a/info.json b/keyboards/kbnordic/nordic60/rev_a/info.json index 126de687b8b..1d6b6eae861 100644 --- a/keyboards/kbnordic/nordic60/rev_a/info.json +++ b/keyboards/kbnordic/nordic60/rev_a/info.json @@ -8,6 +8,23 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kc60/config.h b/keyboards/kc60/config.h index 5f542b7ade4..b9449c4714b 100644 --- a/keyboards/kc60/config.h +++ b/keyboards/kc60/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kc60/info.json b/keyboards/kc60/info.json index ca8580ad1a9..ea0e7998b81 100644 --- a/keyboards/kc60/info.json +++ b/keyboards/kc60/info.json @@ -18,6 +18,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F5" }, diff --git a/keyboards/kc60se/info.json b/keyboards/kc60se/info.json index afca6764460..ff9fa351651 100644 --- a/keyboards/kc60se/info.json +++ b/keyboards/kc60se/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F5", "levels": 6 }, diff --git a/keyboards/keebformom/config.h b/keyboards/keebformom/config.h deleted file mode 100644 index 315e8e0bc6f..00000000000 --- a/keyboards/keebformom/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2022 Sandipratama - -This 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 RGBLED_NUM 40 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/keebformom/info.json b/keyboards/keebformom/info.json index afb2058f438..8262b4bf4ee 100644 --- a/keyboards/keebformom/info.json +++ b/keyboards/keebformom/info.json @@ -12,7 +12,16 @@ "pin": "F4" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 40, + "max_brightness": 150, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } }, "matrix_pins": { "cols": ["B3", "B2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/keebio/bamfk1/config.h b/keyboards/keebio/bamfk1/config.h index c8587e1efb7..6fd93072f52 100644 --- a/keyboards/keebio/bamfk1/config.h +++ b/keyboards/keebio/bamfk1/config.h @@ -8,23 +8,6 @@ # define STARTUP_SONG SONG(STARTUP_SOUND) #endif -#define ENCODERS_CW_KEY { { 1, 1 }, { 3, 1 } } -#define ENCODERS_CCW_KEY { { 0, 1 }, { 2, 1 } } - -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/keebio/bamfk1/info.json b/keyboards/keebio/bamfk1/info.json index 77dcc1f7dd3..4fa563f0e88 100644 --- a/keyboards/keebio/bamfk1/info.json +++ b/keyboards/keebio/bamfk1/info.json @@ -8,6 +8,23 @@ "pid": "0x1111", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D3" }, @@ -21,21 +38,15 @@ "bootloader": "atmel-dfu", "matrix_pins": { "direct": [ - ["E6", "B6", "D6", null], - [null, null, null, null] + ["E6", "B6", "D6"] ] }, "layouts": { "LAYOUT": { "layout": [ - {"x": 1.5, "y": 0, "h": 2, "w": 2, "matrix": [0, 0]}, - {"x": 0.5, "y": 2.25, "matrix": [0, 1]}, - {"x": 3.5, "y": 2.25, "matrix": [0, 2]}, - - {"x": 0, "y": 3.5, "matrix": [1, 0]}, - {"x": 1, "y": 3.5, "matrix": [1, 1]}, - {"x": 3, "y": 3.5, "matrix": [1, 2]}, - {"x": 4, "y": 3.5, "matrix": [1, 3]} + {"x": 1, "y": 0, "h": 2, "w": 2, "matrix": [0, 0]}, + {"x": 0, "y": 2.25, "matrix": [0, 1]}, + {"x": 3, "y": 2.25, "matrix": [0, 2]} ] } } diff --git a/keyboards/keebio/bamfk1/keymaps/default/keymap.c b/keyboards/keebio/bamfk1/keymaps/default/keymap.c index aa0780eafc1..8ff3f794a58 100644 --- a/keyboards/keebio/bamfk1/keymaps/default/keymap.c +++ b/keyboards/keebio/bamfk1/keymaps/default/keymap.c @@ -13,27 +13,28 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT( - KC_A, // Big Switch - MO(1), KC_MUTE, // Encoder presses - KC_DOWN, KC_UP, // Left encoder turns - KC_VOLD, KC_VOLU // Right encoder turns + RGB_MOD, // Big Switch + TL_LOWR, KC_MUTE // Encoder presses ), [_FN1] = LAYOUT( KC_B, // Big Switch - _______, KC_C, // Encoder presses - KC_PGDN, KC_PGUP, // Left encoder turns - KC_VOLU, KC_VOLD // Right encoder turns + _______, KC_C // Encoder presses ), [_FN2] = LAYOUT( _______, // Big Switch - _______, _______, // Encoder presses - _______, _______, // Left encoder turns - _______, _______ // Right encoder turns + _______, _______ // Encoder presses ), [_FN3] = LAYOUT( _______, // Big Switch - _______, _______, // Encoder presses - _______, _______, // Left encoder turns - _______, _______ // Right encoder turns + _______, _______ // Encoder presses ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/keebio/bamfk1/keymaps/default/rules.mk b/keyboards/keebio/bamfk1/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/keebio/bamfk1/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebio/bamfk1/keymaps/via/keymap.c b/keyboards/keebio/bamfk1/keymaps/via/keymap.c index 80ada5d8aa3..8ff3f794a58 100644 --- a/keyboards/keebio/bamfk1/keymaps/via/keymap.c +++ b/keyboards/keebio/bamfk1/keymaps/via/keymap.c @@ -14,26 +14,27 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT( RGB_MOD, // Big Switch - TL_LOWR, KC_MUTE, // Encoder presses - KC_DOWN, KC_UP, // Left encoder turns - KC_VOLD, KC_VOLU // Right encoder turns + TL_LOWR, KC_MUTE // Encoder presses ), [_FN1] = LAYOUT( KC_B, // Big Switch - _______, KC_C, // Encoder presses - KC_PGDN, KC_PGUP, // Left encoder turns - KC_VOLU, KC_VOLD // Right encoder turns + _______, KC_C // Encoder presses ), [_FN2] = LAYOUT( _______, // Big Switch - _______, _______, // Encoder presses - _______, _______, // Left encoder turns - _______, _______ // Right encoder turns + _______, _______ // Encoder presses ), [_FN3] = LAYOUT( _______, // Big Switch - _______, _______, // Encoder presses - _______, _______, // Left encoder turns - _______, _______ // Right encoder turns + _______, _______ // Encoder presses ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/keebio/bamfk1/keymaps/via/rules.mk b/keyboards/keebio/bamfk1/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/keebio/bamfk1/keymaps/via/rules.mk +++ b/keyboards/keebio/bamfk1/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebio/bamfk1/rules.mk b/keyboards/keebio/bamfk1/rules.mk index 514d88831ac..21df40039e9 100644 --- a/keyboards/keebio/bamfk1/rules.mk +++ b/keyboards/keebio/bamfk1/rules.mk @@ -2,9 +2,9 @@ # 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 = yes # Console for debug +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 @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes LTO_ENABLE = yes - -SRC += encoder_actions.c diff --git a/keyboards/keebio/bamfk4/config.h b/keyboards/keebio/bamfk4/config.h index a28636c8b66..aac4d9d9d6d 100644 --- a/keyboards/keebio/bamfk4/config.h +++ b/keyboards/keebio/bamfk4/config.h @@ -3,22 +3,6 @@ #pragma once -# define RGBLED_NUM 32 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== enabled 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 # define RGBLIGHT_DEFAULT_VAL 120 # define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) // RGB Matrix @@ -62,7 +46,7 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 32 # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES //# endif diff --git a/keyboards/keebio/bamfk4/info.json b/keyboards/keebio/bamfk4/info.json index 40128e08204..8bb320c6c9e 100644 --- a/keyboards/keebio/bamfk4/info.json +++ b/keyboards/keebio/bamfk4/info.json @@ -12,10 +12,26 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { - "max_brightness": 120 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 32, + "max_brightness": 120, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["E6", "D5", "B6", "B7"], diff --git a/keyboards/keebio/bdn9/rev1/config.h b/keyboards/keebio/bdn9/rev1/config.h index 64879bca490..3ed1c2ed30f 100644 --- a/keyboards/keebio/bdn9/rev1/config.h +++ b/keyboards/keebio/bdn9/rev1/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 4 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keebio/bdn9/rev1/info.json b/keyboards/keebio/bdn9/rev1/info.json index 4a346fd5647..0167052f6d7 100644 --- a/keyboards/keebio/bdn9/rev1/info.json +++ b/keyboards/keebio/bdn9/rev1/info.json @@ -15,6 +15,24 @@ "pin": "B5", "levels": 7 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/bdn9/rev2/config.h b/keyboards/keebio/bdn9/rev2/config.h index 70f785d37b3..1974d81f75f 100644 --- a/keyboards/keebio/bdn9/rev2/config.h +++ b/keyboards/keebio/bdn9/rev2/config.h @@ -17,26 +17,9 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 - -# define RGBLED_NUM 11 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE // RGB Matrix # ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 11 # define RGB_MATRIX_FRAMEBUFFER_EFFECTS # define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/keebio/bdn9/rev2/info.json b/keyboards/keebio/bdn9/rev2/info.json index 5a33976f835..324a4000413 100644 --- a/keyboards/keebio/bdn9/rev2/info.json +++ b/keyboards/keebio/bdn9/rev2/info.json @@ -4,11 +4,29 @@ "pid": "0x2133", "device_version": "2.0.0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 11, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "encoder": { "rotary": [ @@ -17,6 +35,9 @@ {"pin_a": "A10", "pin_b": "A9"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "STM32F072", "bootloader": "stm32-dfu", "matrix_pins": { diff --git a/keyboards/keebio/bdn9/rev2/rules.mk b/keyboards/keebio/bdn9/rev2/rules.mk index de8fd9fc26b..e4077691471 100644 --- a/keyboards/keebio/bdn9/rev2/rules.mk +++ b/keyboards/keebio/bdn9/rev2/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keebio/bfo9000/config.h b/keyboards/keebio/bfo9000/config.h index 48fd0aaf0cb..0b8941e7760 100644 --- a/keyboards/keebio/bfo9000/config.h +++ b/keyboards/keebio/bfo9000/config.h @@ -23,10 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLED_NUM 20 // Number of LEDs -#define RGBLED_SPLIT { 10, 10 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/keebio/bfo9000/info.json b/keyboards/keebio/bfo9000/info.json index 9900dbe951d..5738ac69530 100644 --- a/keyboards/keebio/bfo9000/info.json +++ b/keyboards/keebio/bfo9000/info.json @@ -16,6 +16,10 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 20, + "split_count": [10, 10] + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c index 4af086df3a2..637a7e04400 100644 --- a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c +++ b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c @@ -56,12 +56,13 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -void led_set_user(uint8_t usb_led) { - if (usb_led & (1<. #pragma once -#define TAP_CODE_DELAY 10 - #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 #define BACKLIGHT_PAL_MODE 1 - #define RGBLED_NUM 4 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keebio/dsp40/rev1/info.json b/keyboards/keebio/dsp40/rev1/info.json index efb1bc9551a..cc8fa692cdf 100644 --- a/keyboards/keebio/dsp40/rev1/info.json +++ b/keyboards/keebio/dsp40/rev1/info.json @@ -18,10 +18,31 @@ {"pin_a": "A1", "pin_b": "A2"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "backlight": { "pin": "A6", "levels": 7 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/encoder_actions.c b/keyboards/keebio/encoder_actions.c deleted file mode 100644 index b02881de5f3..00000000000 --- a/keyboards/keebio/encoder_actions.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * Copyright 2021 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 3 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 "encoder_actions.h" - -#if defined(ENCODER_ENABLE) -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -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/keebio/encoder_actions.h b/keyboards/keebio/encoder_actions.h deleted file mode 100644 index 1a7fb72014d..00000000000 --- a/keyboards/keebio/encoder_actions.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); diff --git a/keyboards/keebio/ergodicity/config.h b/keyboards/keebio/ergodicity/config.h index c423ca19aa1..64b776e9f4a 100644 --- a/keyboards/keebio/ergodicity/config.h +++ b/keyboards/keebio/ergodicity/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 12 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keebio/ergodicity/info.json b/keyboards/keebio/ergodicity/info.json index c6a9f2d6a3c..94c94193edc 100644 --- a/keyboards/keebio/ergodicity/info.json +++ b/keyboards/keebio/ergodicity/info.json @@ -18,6 +18,24 @@ "levels": 7, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/keebio/foldkb/rev1/config.h b/keyboards/keebio/foldkb/rev1/config.h index 30154273b73..73521bc5352 100644 --- a/keyboards/keebio/foldkb/rev1/config.h +++ b/keyboards/keebio/foldkb/rev1/config.h @@ -23,18 +23,4 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLED_SPLIT { 8, 8 } -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 10, 11 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/foldkb/rev1/info.json b/keyboards/keebio/foldkb/rev1/info.json index e17389cc2c5..e826f34e329 100644 --- a/keyboards/keebio/foldkb/rev1/info.json +++ b/keyboards/keebio/foldkb/rev1/info.json @@ -24,6 +24,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 16, + "led_map": [0, 1, 2, 3, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 10, 11], + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/keebio/fourier/config.h b/keyboards/keebio/fourier/config.h index 904658ff8ad..d1797c83d57 100644 --- a/keyboards/keebio/fourier/config.h +++ b/keyboards/keebio/fourier/config.h @@ -26,20 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 // Number of LEDs -#define RGBLED_SPLIT { 7, 7 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/keebio/fourier/info.json b/keyboards/keebio/fourier/info.json index a9b37bda008..8631fd58411 100644 --- a/keyboards/keebio/fourier/info.json +++ b/keyboards/keebio/fourier/info.json @@ -22,6 +22,22 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 14, + "split_count": [7, 7], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/iris/keymaps/johnstegeman/rules.mk b/keyboards/keebio/iris/keymaps/johnstegeman/rules.mk index 73761f8e6fb..56c422e572c 100644 --- a/keyboards/keebio/iris/keymaps/johnstegeman/rules.mk +++ b/keyboards/keebio/iris/keymaps/johnstegeman/rules.mk @@ -18,7 +18,7 @@ CONSOLE_ENABLE = no # Console for debug RGBLIGHT_ENABLE = yes RGB_MATRIX_ENABLE = no #RGB_MATRIX_ENABLE = yes -#RGB_MATRIX_DRIVER = WS2812 +#RGB_MATRIX_DRIVER = ws2812 LTO_ENABLE = yes VIA_ENABLE = yes KEY_OVERRIDE_ENABLE = yes diff --git a/keyboards/keebio/iris/keymaps/mattly/config.h b/keyboards/keebio/iris/keymaps/mattly/config.h index 1680f3d8f8a..a3ee1ec898e 100644 --- a/keyboards/keebio/iris/keymaps/mattly/config.h +++ b/keyboards/keebio/iris/keymaps/mattly/config.h @@ -22,15 +22,16 @@ along with this program. If not, see . #undef 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 +#undef RGBLIGHT_EFFECT_RAINBOW_MOOD +#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL +#undef RGBLIGHT_EFFECT_KNIGHT +#undef RGBLIGHT_EFFECT_CHRISTMAS +#undef RGBLIGHT_EFFECT_STATIC_GRADIENT +#undef RGBLIGHT_EFFECT_RGB_TEST +#undef RGBLIGHT_EFFECT_ALTERNATING +#undef RGBLIGHT_EFFECT_TWINKLE +#undef RGBLIGHT_DEFAULT_MODE +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_BREATHING + 2) #define RGBLED_NUM 12 #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/keebio/iris/keymaps/mattly/keymap.c b/keyboards/keebio/iris/keymaps/mattly/keymap.c index f592b4f25ad..0f7121b7be2 100644 --- a/keyboards/keebio/iris/keymaps/mattly/keymap.c +++ b/keyboards/keebio/iris/keymaps/mattly/keymap.c @@ -11,7 +11,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, A_CTL, S_ALT, D_GUI, F_SFT, KC_G, KC_H, J_SFT, K_GUI, L_ALT, MINSCTL, KC_QUOT, NAVLOCK, KC_Z, KC_X, KC_C, KC_V, KC_B, ENT_SYM, TAB_NUM, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, ESC_HYP, TAB_NUM, SPC_SFT, SPC_SFT, BSP_SYM, DEL_WRP - ), +), [_OVER_WIN] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -30,31 +30,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_NAVNUM] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, M_NXWIN, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS, XXXXXXX, - XXXXXXX, M_NAVFW, M_BWORD, KC_UP, M_FWORD, KC_PGUP, KC_DLR, KC_P7, KC_P8, KC_P9, KC_DOT, XXXXXXX, + M_PVWIN, M_NXWIN, XXXXXXX, M_BPARA, XXXXXXX, KC_HOME, XXXXXXX, KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS, XXXXXXX, + M_PVTAB, M_NAVFW, M_BWORD, KC_UP, M_FWORD, KC_PGUP, KC_DLR, KC_P7, KC_P8, KC_P9, KC_DOT, XXXXXXX, XXXXXXX, M_NAVBK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_PERC, KC_P4, KC_P5, KC_P6, KC_EQL, XXXXXXX, - _______, M_PVTAB, KC_HOME, M_PVWIN, KC_END, M_NXTAB, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, KC_COMM, _______, + _______, M_NAVFW, M_BLINE, M_NPARA, M_ELINE, KC_END, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, KC_COMM, _______, _______, _______, _______, _______, _______, KC_P0 ), [_NAVNUM_WIN] = LAYOUT( - _______, _______, _______, W_NXWIN, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, W_NAVFW, W_BWORD, _______, W_FWORD, _______, _______, _______, _______, _______, _______, _______, _______, W_NAVBK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, W_PVTAB, _______, W_PVWIN, _______, W_NXTAB, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + [_GAME] = LAYOUT( + KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_SCLN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_MINS, KC_QUOT, + KC_ESC, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_NAVNUM), MO(_SYMBOL), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_LGUI, KC_LSFT + ), + [_FUNCT] = LAYOUT( KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - QK_BOOT, XXXXXXX, XXXXXXX, M_NXWIN, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_K, QK_BOOT, - DB_TOGG, XXXXXXX, M_PVTAB, M_PVWIN, M_NXTAB, XXXXXXX, XXXXXXX, TOG_WIN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD, KC_MPLY, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, M_NAVFW, XXXXXXX, M_NXWIN, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_M_P, RGB_M_B, XXXXXXX, QK_BOOT, + DB_TOGG, M_NAVBK, M_PVTAB, M_PVWIN, M_NXTAB, XXXXXXX, XXXXXXX, TOG_WIN, TOG_GAM, XXXXXXX, XXXXXXX, XXXXXXX, + KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD, KC_MPLY, _______, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______ ), [_FUNCT_WIN] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, W_NXWIN, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, W_PVTAB, W_PVWIN, W_NXTAB, _______, _______, _______, _______, _______, _______, _______, + _______, W_NAVFW, _______, W_NXWIN, _______, _______, _______, _______, _______, _______, _______, _______, + _______, W_NAVBK, W_PVTAB, W_PVWIN, W_NXTAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/keebio/iris/keymaps/nstickney/keymap.c b/keyboards/keebio/iris/keymaps/nstickney/keymap.c index cc4c5bf3753..cf53ffd9348 100644 --- a/keyboards/keebio/iris/keymaps/nstickney/keymap.c +++ b/keyboards/keebio/iris/keymaps/nstickney/keymap.c @@ -27,11 +27,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [SYMB] = LAYOUT( - _______, XP(IEX, SS1), X(SS2), X(SS3), XP(CUR, GBP), X(EUR), X(V14), X(V12), X(V34), XP(LSQ, LDQ), XP(RSQ, RDQ), _______, - _______, XP(A_D, AXD), XP(A_R, ACR), XP(E_A, ECA), XP(REG, CPL), X(THR), XP(U_D, UCD), XP(U_A, UCA), XP(I_A, ICA), XP(O_A, OCA), XP(O_D, OCD), _______, - _______, XP(A_A, ACA), XP(S_S, SEC), XP(ETH, ETC), X(EMD), _______, _______, _______, _______, XP(O_S, OCS), XP(PLC, DEG), XP(ACT, DIS), - _______, XP(AEL, AEC), _______, XP(CPR, CNT), _______, _______, _______, _______, XP(N_T, NCT), X(MCR), XP(C_C, CCC), _______, _______, _______, - X(IQM), XP(NOT, BKB), _______, _______, X(YEN), XP(MLT, DIV) + _______, UP(IEX, SS1), UM(SS2), UM(SS3), UP(CUR, GBP), UM(EUR), UM(V14), UM(V12), UM(V34), UP(LSQ, LDQ), UP(RSQ, RDQ), _______, + _______, UP(A_D, AXD), UP(A_R, ACR), UP(E_A, ECA), UP(REG, CPL), UM(THR), UP(U_D, UCD), UP(U_A, UCA), UP(I_A, ICA), UP(O_A, OCA), UP(O_D, OCD), _______, + _______, UP(A_A, ACA), UP(S_S, SEC), UP(ETH, ETC), UM(EMD), _______, _______, _______, _______, UP(O_S, OCS), UP(PLC, DEG), UP(ACT, DIS), + _______, UP(AEL, AEC), _______, UP(CPR, CNT), _______, _______, _______, _______, UP(N_T, NCT), UM(MCR), UP(C_C, CCC), _______, _______, _______, + UM(IQM), UP(NOT, BKB), _______, _______, UM(YEN), UP(MLT, DIV) ), [NUMP] = LAYOUT( diff --git a/keyboards/keebio/iris/keymaps/via/keymap.c b/keyboards/keebio/iris/keymaps/via/keymap.c index 7f793333cc5..c2753da2a45 100644 --- a/keyboards/keebio/iris/keymaps/via/keymap.c +++ b/keyboards/keebio/iris/keymaps/via/keymap.c @@ -71,8 +71,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { -# if defined(KEYBOARD_keebio_iris_rev7) - [_MAIN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, +# if defined(KEYBOARD_keebio_iris_rev7) || defined(KEYBOARD_keebio_iris_rev8) + [_MAIN] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, [_FN1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_HOME, KC_END), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_HOME, KC_END) }, [_FN2] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, [_FN3] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_UP, KC_DOWN) }, diff --git a/keyboards/keebio/iris/keymaps/vial/rules.mk b/keyboards/keebio/iris/keymaps/vial/rules.mk index 742a04e2849..266cac57896 100644 --- a/keyboards/keebio/iris/keymaps/vial/rules.mk +++ b/keyboards/keebio/iris/keymaps/vial/rules.mk @@ -9,3 +9,4 @@ DYNAMIC_MACRO_ENABLE = yes CONSOLE_ENABLE = no COMMAND_ENABLE = no +RGB_MATRIX_ENABLE = no diff --git a/keyboards/keebio/iris/rev1/config.h b/keyboards/keebio/iris/rev1/config.h index 7fd5c0ff951..824ba0bfe4c 100644 --- a/keyboards/keebio/iris/rev1/config.h +++ b/keyboards/keebio/iris/rev1/config.h @@ -21,16 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keebio/iris/rev1/info.json b/keyboards/keebio/iris/rev1/info.json index af3c7acd426..f5efce863a8 100644 --- a/keyboards/keebio/iris/rev1/info.json +++ b/keyboards/keebio/iris/rev1/info.json @@ -10,12 +10,28 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D2", "levels": 5 }, "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/iris/rev1_led/config.h b/keyboards/keebio/iris/rev1_led/config.h index 7fd5c0ff951..824ba0bfe4c 100644 --- a/keyboards/keebio/iris/rev1_led/config.h +++ b/keyboards/keebio/iris/rev1_led/config.h @@ -21,16 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keebio/iris/rev1_led/info.json b/keyboards/keebio/iris/rev1_led/info.json index bc19a0cc8be..fb5db92913a 100644 --- a/keyboards/keebio/iris/rev1_led/info.json +++ b/keyboards/keebio/iris/rev1_led/info.json @@ -16,6 +16,21 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/iris/rev2/config.h b/keyboards/keebio/iris/rev2/config.h index 59867e6ef90..824ba0bfe4c 100644 --- a/keyboards/keebio/iris/rev2/config.h +++ b/keyboards/keebio/iris/rev2/config.h @@ -21,17 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLED_SPLIT { 6, 6 } -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keebio/iris/rev2/info.json b/keyboards/keebio/iris/rev2/info.json index 80e65aa8e2e..aa41d0ebffa 100644 --- a/keyboards/keebio/iris/rev2/info.json +++ b/keyboards/keebio/iris/rev2/info.json @@ -16,6 +16,22 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/iris/rev3/config.h b/keyboards/keebio/iris/rev3/config.h index c7a7222fdcf..e6ddc94df93 100644 --- a/keyboards/keebio/iris/rev3/config.h +++ b/keyboards/keebio/iris/rev3/config.h @@ -23,17 +23,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLED_SPLIT { 6, 6 } -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keebio/iris/rev3/info.json b/keyboards/keebio/iris/rev3/info.json index adc4b713548..39bf9dcfb5c 100644 --- a/keyboards/keebio/iris/rev3/info.json +++ b/keyboards/keebio/iris/rev3/info.json @@ -18,6 +18,22 @@ "pin": "B6", "levels": 5 }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/keebio/iris/rev4/config.h b/keyboards/keebio/iris/rev4/config.h index eaeca3a4b98..5586f5890dd 100644 --- a/keyboards/keebio/iris/rev4/config.h +++ b/keyboards/keebio/iris/rev4/config.h @@ -23,17 +23,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLED_SPLIT { 6, 6 } -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keebio/iris/rev4/info.json b/keyboards/keebio/iris/rev4/info.json index 6ddb257d21b..cc01dab3ec6 100644 --- a/keyboards/keebio/iris/rev4/info.json +++ b/keyboards/keebio/iris/rev4/info.json @@ -18,6 +18,22 @@ "pin": "B5", "levels": 5 }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/keebio/iris/rev5/config.h b/keyboards/keebio/iris/rev5/config.h index 12ff3a2a4d1..63610ecac50 100644 --- a/keyboards/keebio/iris/rev5/config.h +++ b/keyboards/keebio/iris/rev5/config.h @@ -21,18 +21,5 @@ along with this program. If not, see . #define BACKLIGHT_DEFAULT_LEVEL 3 -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLED_SPLIT { 6, 6 } -#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_VAL 128 #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/iris/rev5/info.json b/keyboards/keebio/iris/rev5/info.json index 98c0d3bf2de..72b8da80d09 100644 --- a/keyboards/keebio/iris/rev5/info.json +++ b/keyboards/keebio/iris/rev5/info.json @@ -18,6 +18,22 @@ "pin": "B5", "levels": 5 }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/keebio/iris/rev6/config.h b/keyboards/keebio/iris/rev6/config.h index 79f92b75a93..01cef3c9232 100644 --- a/keyboards/keebio/iris/rev6/config.h +++ b/keyboards/keebio/iris/rev6/config.h @@ -19,24 +19,6 @@ along with this program. If not, see . #define SPLIT_HAND_PIN D5 -/* ws2812 RGB LED */ -# define RGBLED_NUM 68 -# define RGBLED_SPLIT { 34, 34 } -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== enabled 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 # define RGBLIGHT_DEFAULT_VAL 120 # define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) // RGB Matrix @@ -80,7 +62,7 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 68 # define RGB_MATRIX_SPLIT { 34, 34 } # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/iris/rev6/info.json b/keyboards/keebio/iris/rev6/info.json index 632b5f10d89..94c30211a1b 100644 --- a/keyboards/keebio/iris/rev6/info.json +++ b/keyboards/keebio/iris/rev6/info.json @@ -5,7 +5,7 @@ "device_version": "6.2.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F1", "F4", "B5", "C7", "D4", "D6"], @@ -21,7 +21,24 @@ "pin": "E6" }, "rgblight": { - "max_brightness": 120 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 68, + "max_brightness": 120, + "sleep": true, + "split_count": [34, 34], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "split": { "soft_serial_pin": "D0", diff --git a/keyboards/keebio/iris/rev7/config.h b/keyboards/keebio/iris/rev7/config.h index dd4284cb9b2..73398bcaf6b 100644 --- a/keyboards/keebio/iris/rev7/config.h +++ b/keyboards/keebio/iris/rev7/config.h @@ -19,24 +19,6 @@ along with this program. If not, see . #define SPLIT_HAND_PIN D5 -/* ws2812 RGB LED */ -# define RGBLED_NUM 68 -# define RGBLED_SPLIT { 34, 34 } -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== enabled 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 # define RGBLIGHT_DEFAULT_VAL 120 # define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) // RGB Matrix @@ -80,7 +62,7 @@ along with this program. If not, see . //# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 68 # define RGB_MATRIX_SPLIT { 34, 34 } # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/iris/rev7/info.json b/keyboards/keebio/iris/rev7/info.json index 7ed57fb873b..08d6c8cd19e 100644 --- a/keyboards/keebio/iris/rev7/info.json +++ b/keyboards/keebio/iris/rev7/info.json @@ -5,7 +5,7 @@ "device_version": "7.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F1", "F4", "B5", "C7", "D4", "D6"], @@ -22,7 +22,24 @@ "pin": "E6" }, "rgblight": { - "max_brightness": 120 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 68, + "max_brightness": 120, + "sleep": true, + "split_count": [34, 34], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "split": { "soft_serial_pin": "D0", diff --git a/keyboards/keebio/iris/rev8/config.h b/keyboards/keebio/iris/rev8/config.h new file mode 100644 index 00000000000..a49b48d14ba --- /dev/null +++ b/keyboards/keebio/iris/rev8/config.h @@ -0,0 +1,23 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SPLIT_HAND_PIN GP4 +#define USB_VBUS_PIN GP8 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP12 +#define SERIAL_USART_RX_PIN GP13 +#define SERIAL_USART_PIN_SWAP +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U +#define I2C_DRIVER I2CD2 +#define I2C1_SDA_PIN GP10 +#define I2C1_SCL_PIN GP11 + +// RGB Matrix +#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGB_MATRIX_LED_COUNT 68 +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/iris/rev8/info.json b/keyboards/keebio/iris/rev8/info.json new file mode 100644 index 00000000000..7d75640801f --- /dev/null +++ b/keyboards/keebio/iris/rev8/info.json @@ -0,0 +1,242 @@ +{ + "keyboard_name": "Iris Rev. 8", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "GP14", "pin_b": "GP15"}, + {"pin_a": "GP26", "pin_b": "GP25"} + ] + }, + "ws2812": { + "driver": "vendor", + "pin": "GP9" + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP29", "GP27", "GP6", "GP5"], + "rows": ["GP0", "GP1", "GP7", "GP16", "GP28"] + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "cols": ["GP27", "GP28", "GP3", "GP6", "GP29", "GP16"], + "rows": ["GP22", "GP19", "GP18", "GP17", "GP7"] + } + }, + "transport": { + "sync_matrix_state": true + } + }, + "processor": "RP2040", + "usb": { + "device_version": "8.0.0", + "pid": "0x8256" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.375}, + {"matrix": [0, 1], "x": 1, "y": 0.375}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + + {"matrix": [5, 5], "x": 9, "y": 0.25}, + {"matrix": [5, 4], "x": 10, "y": 0.125}, + {"matrix": [5, 3], "x": 11, "y": 0}, + {"matrix": [5, 2], "x": 12, "y": 0.125}, + {"matrix": [5, 1], "x": 13, "y": 0.375}, + {"matrix": [5, 0], "x": 14, "y": 0.375}, + + {"matrix": [1, 0], "x": 0, "y": 1.375}, + {"matrix": [1, 1], "x": 1, "y": 1.375}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + + {"matrix": [6, 5], "x": 9, "y": 1.25}, + {"matrix": [6, 4], "x": 10, "y": 1.125}, + {"matrix": [6, 3], "x": 11, "y": 1}, + {"matrix": [6, 2], "x": 12, "y": 1.125}, + {"matrix": [6, 1], "x": 13, "y": 1.375}, + {"matrix": [6, 0], "x": 14, "y": 1.375}, + + {"matrix": [2, 0], "x": 0, "y": 2.375}, + {"matrix": [2, 1], "x": 1, "y": 2.375}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + + {"matrix": [7, 5], "x": 9, "y": 2.25}, + {"matrix": [7, 4], "x": 10, "y": 2.125}, + {"matrix": [7, 3], "x": 11, "y": 2}, + {"matrix": [7, 2], "x": 12, "y": 2.125}, + {"matrix": [7, 1], "x": 13, "y": 2.375}, + {"matrix": [7, 0], "x": 14, "y": 2.375}, + + {"matrix": [3, 0], "x": 0, "y": 3.375}, + {"matrix": [3, 1], "x": 1, "y": 3.375}, + {"matrix": [3, 2], "x": 2, "y": 3.125}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.125}, + {"matrix": [3, 5], "x": 5, "y": 3.25}, + {"matrix": [4, 5], "x": 6.15, "y": 3.75}, + + {"matrix": [9, 5], "x": 7.85, "y": 3.75}, + {"matrix": [8, 5], "x": 9, "y": 3.25}, + {"matrix": [8, 4], "x": 10, "y": 3.125}, + {"matrix": [8, 3], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3.125}, + {"matrix": [8, 1], "x": 13, "y": 3.375}, + {"matrix": [8, 0], "x": 14, "y": 3.375}, + + {"matrix": [4, 2], "x": 3.5, "y": 4.25}, + {"matrix": [4, 3], "x": 4.5, "y": 4.375}, + {"matrix": [4, 4], "x": 5.6, "y": 4.75}, + + {"matrix": [9, 4], "x": 8.4, "y": 4.75}, + {"matrix": [9, 3], "x": 9.5, "y": 4.375}, + {"matrix": [9, 2], "x": 10.5, "y": 4.25} + ] + } + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "split_count": [34, 34], + "max_brightness": 120, + "layout": [ + {"matrix": [0,0], "flags":4, "x":0, "y":5}, + {"flags":2, "x":8, "y":5}, + {"matrix": [0,1], "flags":4, "x":16, "y":5}, + {"matrix": [0,2], "flags":4, "x":32, "y":2}, + {"flags":2, "x":40, "y":1}, + {"matrix": [0,3], "flags":4, "x":48, "y":0}, + {"matrix": [0,4], "flags":4, "x":64, "y":5}, + {"flags":2, "x":72, "y":3}, + {"matrix": [0,5], "flags":4, "x":80, "y":3}, + + {"matrix": [1,5], "flags":4, "x":80, "y":17}, + {"matrix": [1,4], "flags":4, "x":64, "y":15}, + {"matrix": [1,3], "flags":4, "x":48, "y":13}, + {"matrix": [1,2], "flags":4, "x":32, "y":15}, + {"matrix": [1,1], "flags":4, "x":16, "y":18}, + {"matrix": [1,0], "flags":4, "x":0, "y":18}, + + {"matrix": [2,0], "flags":4, "x":0, "y":32}, + {"matrix": [2,1], "flags":4, "x":16, "y":32}, + {"matrix": [2,2], "flags":4, "x":32, "y":28}, + {"matrix": [2,3], "flags":4, "x":48, "y":27}, + {"matrix": [2,4], "flags":4, "x":64, "y":28}, + {"matrix": [2,5], "flags":4, "x":80, "y":30}, + + {"matrix": [3,5], "flags":4, "x":80, "y":43}, + {"matrix": [3,4], "flags":4, "x":64, "y":42}, + {"matrix": [3,3], "flags":4, "x":48, "y":40}, + {"flags":2, "x":40, "y":50}, + {"matrix": [3,2], "flags":4, "x":32, "y":42}, + {"matrix": [3,1], "flags":4, "x":16, "y":45}, + {"flags":2, "x":8, "y":43}, + {"matrix": [3,0], "flags":4, "x":0, "y":45}, + + {"matrix": [4,5], "flags":4, "x":98, "y":52}, + {"matrix": [4,4], "flags":4, "x":90, "y":64}, + {"flags":2, "x":80, "y":58}, + {"matrix": [4,3], "flags":4, "x":72, "y":58}, + {"matrix": [4,2], "flags":4, "x":56, "y":47}, + + {"matrix": [5,0], "flags":4, "x":224, "y":5}, + {"flags":2, "x":216, "y":5}, + {"matrix": [5,1], "flags":4, "x":208, "y":5}, + {"matrix": [5,2], "flags":4, "x":192, "y":2}, + {"flags":2, "x":184, "y":1}, + {"matrix": [5,3], "flags":4, "x":176, "y":0}, + {"matrix": [5,4], "flags":4, "x":160, "y":5}, + {"flags":2, "x":152, "y":3}, + {"matrix": [5,5], "flags":4, "x":144, "y":3}, + + {"matrix": [6,5], "flags":4, "x":144, "y":17}, + {"matrix": [6,4], "flags":4, "x":160, "y":15}, + {"matrix": [6,3], "flags":4, "x":176, "y":13}, + {"matrix": [6,2], "flags":4, "x":192, "y":15}, + {"matrix": [6,1], "flags":4, "x":208, "y":18}, + {"matrix": [6,0], "flags":4, "x":224, "y":18}, + + {"matrix": [7,0], "flags":4, "x":224, "y":32}, + {"matrix": [7,1], "flags":4, "x":208, "y":32}, + {"matrix": [7,2], "flags":4, "x":192, "y":28}, + {"matrix": [7,3], "flags":4, "x":176, "y":27}, + {"matrix": [7,4], "flags":4, "x":160, "y":28}, + {"matrix": [7,5], "flags":4, "x":144, "y":30}, + + {"matrix": [8,5], "flags":4, "x":144, "y":43}, + {"matrix": [8,4], "flags":4, "x":160, "y":42}, + {"matrix": [8,3], "flags":4, "x":176, "y":40}, + {"flags":2, "x":184, "y":50}, + {"matrix": [8,2], "flags":4, "x":192, "y":42}, + {"matrix": [8,1], "flags":4, "x":208, "y":45}, + {"flags":2, "x":216, "y":43}, + {"matrix": [8,0], "flags":4, "x":224, "y":45}, + + {"matrix": [9,2], "flags":4, "x":168, "y":47}, + {"matrix": [9,3], "flags":4, "x":152, "y":58}, + {"flags":2, "x":144, "y":58}, + {"matrix": [9,4], "flags":4, "x":134, "y":64}, + {"matrix": [9,5], "flags":4, "x":126, "y":52}, + ] + } +} diff --git a/keyboards/keebio/iris/rev8/rev8.c b/keyboards/keebio/iris/rev8/rev8.c new file mode 100644 index 00000000000..a6f0ac00a0f --- /dev/null +++ b/keyboards/keebio/iris/rev8/rev8.c @@ -0,0 +1,36 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#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) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 2) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 3) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} +#endif diff --git a/keyboards/keebio/iris/rev8/rules.mk b/keyboards/keebio/iris/rev8/rules.mk new file mode 100644 index 00000000000..161ec22b16e --- /dev/null +++ b/keyboards/keebio/iris/rev8/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor diff --git a/keyboards/keebio/kbo5000/rev1/config.h b/keyboards/keebio/kbo5000/rev1/config.h index f02c15c4a78..e1d3f968bef 100644 --- a/keyboards/keebio/kbo5000/rev1/config.h +++ b/keyboards/keebio/kbo5000/rev1/config.h @@ -26,18 +26,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 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 } diff --git a/keyboards/keebio/kbo5000/rev1/info.json b/keyboards/keebio/kbo5000/rev1/info.json index d40c12b52d6..da7fbfb40f5 100644 --- a/keyboards/keebio/kbo5000/rev1/info.json +++ b/keyboards/keebio/kbo5000/rev1/info.json @@ -21,6 +21,23 @@ "backlight": { "pin": "B5" }, + "rgblight": { + "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/keebio/laplace/config.h b/keyboards/keebio/laplace/config.h deleted file mode 100644 index 93ef4c9130c..00000000000 --- a/keyboards/keebio/laplace/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2018 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 - -/* WS2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 - -#define TAPPING_TERM 200 diff --git a/keyboards/keebio/laplace/info.json b/keyboards/keebio/laplace/info.json index 1899e882369..6a81a6e8991 100644 --- a/keyboards/keebio/laplace/info.json +++ b/keyboards/keebio/laplace/info.json @@ -8,6 +8,21 @@ "pid": "0x1147", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/keebio/levinson/rev1/config.h b/keyboards/keebio/levinson/rev1/config.h index b1922fb9c3b..2fd8b7d4d04 100644 --- a/keyboards/keebio/levinson/rev1/config.h +++ b/keyboards/keebio/levinson/rev1/config.h @@ -23,7 +23,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLED_SPLIT { 6, 6 } diff --git a/keyboards/keebio/levinson/rev1/info.json b/keyboards/keebio/levinson/rev1/info.json index c23887a49f2..0a98e032d46 100644 --- a/keyboards/keebio/levinson/rev1/info.json +++ b/keyboards/keebio/levinson/rev1/info.json @@ -16,6 +16,10 @@ "pin": "C6", "levels": 7 }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/levinson/rev2/config.h b/keyboards/keebio/levinson/rev2/config.h index b1922fb9c3b..2fd8b7d4d04 100644 --- a/keyboards/keebio/levinson/rev2/config.h +++ b/keyboards/keebio/levinson/rev2/config.h @@ -23,7 +23,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLED_SPLIT { 6, 6 } diff --git a/keyboards/keebio/levinson/rev2/info.json b/keyboards/keebio/levinson/rev2/info.json index aab339166e6..962f555e128 100644 --- a/keyboards/keebio/levinson/rev2/info.json +++ b/keyboards/keebio/levinson/rev2/info.json @@ -16,6 +16,10 @@ "pin": "B5", "levels": 7 }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/levinson/rev3/config.h b/keyboards/keebio/levinson/rev3/config.h index d2e19703c10..e1c73cd56ee 100644 --- a/keyboards/keebio/levinson/rev3/config.h +++ b/keyboards/keebio/levinson/rev3/config.h @@ -25,7 +25,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLED_SPLIT { 6, 6 } diff --git a/keyboards/keebio/levinson/rev3/info.json b/keyboards/keebio/levinson/rev3/info.json index e5e479ba7ae..cac1c3ac351 100644 --- a/keyboards/keebio/levinson/rev3/info.json +++ b/keyboards/keebio/levinson/rev3/info.json @@ -22,6 +22,10 @@ "pin": "B6", "levels": 7 }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6] + }, "ws2812": { "pin": "D7" }, diff --git a/keyboards/keebio/nyquist/keymaps/bramver/keymap.c b/keyboards/keebio/nyquist/keymaps/bramver/keymap.c index 04433c41cde..4518cb326d8 100644 --- a/keyboards/keebio/nyquist/keymaps/bramver/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/bramver/keymap.c @@ -232,9 +232,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_EMOJI] = LAYOUT( TO(0) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , /**/ QK_BOOT , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , - _______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , /**/ X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ , - XXXXXXX , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , /**/ X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , KC_DEL , - _______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , /**/ X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ , + _______ , UM(CLAP) , UM(CUM) , UM(BNIS) , UM(BUTT) , UM(CAR) , /**/ UM(FIRE) , UM(REDB) , UM(MONY) , UM(HNDR) , UM(SOS) , _______ , + XXXXXXX , UM(CELE) , UM(PRAY) , UM(NAIL) , UM(OK) , UM(THNK) , /**/ UM(UNAM) , UM(HEYE) , UM(COOL) , UM(EYES) , UM(SMIR) , KC_DEL , + _______ , UM(TRIU) , UM(SCRM) , UM(VOMI) , UM(DTIV) , UM(EXPL) , /**/ UM(HAIR) , UM(DANC) , UM(STRN) , UM(LEFT) , UM(RGHT) , _______ , _______ , _______ , _______ , _______ , _______ , XXXXXXX , /**/ XXXXXXX , _______ , _______ , _______ , XXXXXXX , _______ ), diff --git a/keyboards/keebio/nyquist/keymaps/default/config.h b/keyboards/keebio/nyquist/keymaps/default/config.h deleted file mode 100644 index 81fc2cf5fe4..00000000000 --- a/keyboards/keebio/nyquist/keymaps/default/config.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2017 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 - -// #define USE_I2C - -/* Select hand configuration */ -// #define MASTER_RIGHT -// #define EE_HANDS - -#undef 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 RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/keebio/nyquist/keymaps/default/keymap.c b/keyboards/keebio/nyquist/keymaps/default/keymap.c index a06cde95553..8bf16240fb1 100644 --- a/keyboards/keebio/nyquist/keymaps/default/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H // 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. @@ -38,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = LAYOUT( +[_QWERTY] = LAYOUT_ortho_5x12( 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, @@ -59,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = LAYOUT( +[_COLEMAK] = LAYOUT_ortho_5x12( 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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, @@ -80,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = LAYOUT( +[_DVORAK] = LAYOUT_ortho_5x12( 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_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, @@ -101,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = LAYOUT( +[_LOWER] = LAYOUT_ortho_5x12( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, @@ -122,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = LAYOUT( +[_RAISE] = LAYOUT_ortho_5x12( 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, @@ -143,9 +145,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = LAYOUT( +[_ADJUST] = LAYOUT_ortho_5x12( 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 , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, + _______, QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -225,3 +227,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_COLEMAK] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_DVORAK] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_LOWER] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, + [_RAISE] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/keebio/nyquist/keymaps/default/rules.mk b/keyboards/keebio/nyquist/keymaps/default/rules.mk index 1e3cebb1451..ee325681483 100644 --- a/keyboards/keebio/nyquist/keymaps/default/rules.mk +++ b/keyboards/keebio/nyquist/keymaps/default/rules.mk @@ -1 +1 @@ -RGBLIGHT_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebio/nyquist/keymaps/default_4x12/keymap.c b/keyboards/keebio/nyquist/keymaps/default_4x12/keymap.c index ac270cdc50b..5d284d97871 100644 --- a/keyboards/keebio/nyquist/keymaps/default_4x12/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/default_4x12/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H enum layer_names { diff --git a/keyboards/keebio/nyquist/keymaps/via/keymap.c b/keyboards/keebio/nyquist/keymaps/via/keymap.c index 5d986e69a0a..6d37f4f9b5c 100644 --- a/keyboards/keebio/nyquist/keymaps/via/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/via/keymap.c @@ -44,3 +44,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [1] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/keebio/nyquist/keymaps/via/rules.mk b/keyboards/keebio/nyquist/keymaps/via/rules.mk index 43061db1dd4..1189f4ad192 100644 --- a/keyboards/keebio/nyquist/keymaps/via/rules.mk +++ b/keyboards/keebio/nyquist/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebio/nyquist/rev1/config.h b/keyboards/keebio/nyquist/rev1/config.h index ab1c967e70d..6fdc15c582d 100644 --- a/keyboards/keebio/nyquist/rev1/config.h +++ b/keyboards/keebio/nyquist/rev1/config.h @@ -22,10 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 -#define RGBLED_SPLIT { 6, 6 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/keebio/nyquist/rev1/info.json b/keyboards/keebio/nyquist/rev1/info.json index 64d613dccf0..cd729aa87b7 100644 --- a/keyboards/keebio/nyquist/rev1/info.json +++ b/keyboards/keebio/nyquist/rev1/info.json @@ -12,6 +12,10 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/nyquist/rev2/config.h b/keyboards/keebio/nyquist/rev2/config.h index ab1c967e70d..6fdc15c582d 100644 --- a/keyboards/keebio/nyquist/rev2/config.h +++ b/keyboards/keebio/nyquist/rev2/config.h @@ -22,10 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 -#define RGBLED_SPLIT { 6, 6 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/keebio/nyquist/rev2/info.json b/keyboards/keebio/nyquist/rev2/info.json index 05b4ea0b7ef..f6b80cb9460 100644 --- a/keyboards/keebio/nyquist/rev2/info.json +++ b/keyboards/keebio/nyquist/rev2/info.json @@ -13,6 +13,10 @@ "pin": "B6", "levels": 7 }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/nyquist/rev3/config.h b/keyboards/keebio/nyquist/rev3/config.h index 7b014e4fc56..f7bc4f8b923 100644 --- a/keyboards/keebio/nyquist/rev3/config.h +++ b/keyboards/keebio/nyquist/rev3/config.h @@ -24,20 +24,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLED_SPLIT { 6, 6 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/keebio/nyquist/rev3/info.json b/keyboards/keebio/nyquist/rev3/info.json index eb17350d639..9b3cc6d15aa 100644 --- a/keyboards/keebio/nyquist/rev3/info.json +++ b/keyboards/keebio/nyquist/rev3/info.json @@ -16,6 +16,22 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/keebio/nyquist/rev4/config.h b/keyboards/keebio/nyquist/rev4/config.h new file mode 100644 index 00000000000..a1dc02997f6 --- /dev/null +++ b/keyboards/keebio/nyquist/rev4/config.h @@ -0,0 +1,23 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SPLIT_HAND_PIN GP23 +#define USB_VBUS_PIN GP18 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP8 +#define SERIAL_USART_RX_PIN GP9 +#define SERIAL_USART_PIN_SWAP +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U +#define I2C_DRIVER I2CD0 +#define I2C0_SDA_PIN GP4 +#define I2C0_SCL_PIN GP5 + +// RGB Matrix +#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGB_MATRIX_LED_COUNT 72 +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/nyquist/rev4/info.json b/keyboards/keebio/nyquist/rev4/info.json new file mode 100644 index 00000000000..d18af71952e --- /dev/null +++ b/keyboards/keebio/nyquist/rev4/info.json @@ -0,0 +1,315 @@ +{ + "keyboard_name": "Nyquist Rev. 4", + "usb": { + "pid": "0x4156", + "device_version": "4.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, + "split": { + "enabled": true, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP1", "pin_b": "GP0" } + ] + } + }, + "matrix_pins": { + "right":{ + "cols": ["GP25", "GP29", "GP20", "GP11", "GP3", "GP2"], + "rows": ["GP24", "GP17", "GP15", "GP14", "GP12"] + } + }, + "transport": { + "sync_matrix_state": true + } + }, + "matrix_pins": { + "cols": ["GP29", "GP22", "GP0", "GP3", "GP11", "GP6"], + "rows": ["GP2", "GP1", "GP17", "GP25", "GP24"] + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "GP26", "pin_b": "GP27" } + ] + }, + "ws2812": { + "driver": "vendor", + "pin": "GP28" + }, + "layouts": { + "LAYOUT_ortho_5x12": { + "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": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [7, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4}, + + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [9, 1], "x": 8, "y": 4}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_ortho_4x12": { + "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": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [7, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "y": 3} + ] + } + }, + "rgb_matrix": { + "driver": "ws2812", + "split_count": [36, 36], + "max_brightness": 120, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 9, "y": 6 }, + { "flags": 4, "matrix": [0, 1], "x": 28, "y": 6 }, + { "flags": 4, "matrix": [0, 2], "x": 46, "y": 6 }, + { "flags": 2, "x": 56, "y": 6 }, + { "flags": 4, "matrix": [0, 3], "x": 65, "y": 6 }, + { "flags": 4, "matrix": [0, 4], "x": 84, "y": 6 }, + { "flags": 4, "matrix": [0, 5], "x": 102, "y": 6 }, + + { "flags": 4, "matrix": [1, 5], "x": 102, "y": 19 }, + { "flags": 2, "x": 93, "y": 12 }, + { "flags": 4, "matrix": [1, 4], "x": 84, "y": 19 }, + { "flags": 4, "matrix": [1, 3], "x": 65, "y": 19 }, + { "flags": 4, "matrix": [1, 2], "x": 46, "y": 19 }, + { "flags": 4, "matrix": [1, 1], "x": 28, "y": 19 }, + { "flags": 2, "x": 18, "y": 12 }, + { "flags": 4, "matrix": [1, 0], "x": 9, "y": 19 }, + + { "flags": 4, "matrix": [2, 0], "x": 9, "y": 32 }, + { "flags": 4, "matrix": [2, 1], "x": 28, "y": 32 }, + { "flags": 4, "matrix": [2, 2], "x": 46, "y": 32 }, + { "flags": 4, "matrix": [2, 3], "x": 65, "y": 32 }, + { "flags": 4, "matrix": [2, 4], "x": 84, "y": 32 }, + { "flags": 4, "matrix": [2, 5], "x": 102, "y": 32 }, + + { "flags": 4, "matrix": [3, 5], "x": 102, "y": 44 }, + { "flags": 2, "x": 93, "y": 44 }, + { "flags": 4, "matrix": [3, 4], "x": 84, "y": 44 }, + { "flags": 4, "matrix": [3, 3], "x": 65, "y": 44 }, + { "flags": 2, "x": 56, "y": 44 }, + { "flags": 4, "matrix": [3, 2], "x": 46, "y": 44 }, + { "flags": 4, "matrix": [3, 1], "x": 28, "y": 44 }, + { "flags": 2, "x": 18, "y": 44 }, + { "flags": 4, "matrix": [3, 0], "x": 9, "y": 44 }, + + { "flags": 4, "matrix": [4, 0], "x": 9, "y": 57 }, + { "flags": 4, "matrix": [4, 1], "x": 28, "y": 57 }, + { "flags": 4, "matrix": [4, 2], "x": 46, "y": 57 }, + { "flags": 4, "matrix": [4, 3], "x": 65, "y": 57 }, + { "flags": 4, "matrix": [4, 4], "x": 81, "y": 57 }, + { "flags": 4, "matrix": [4, 5], "x": 105, "y": 57 }, + + { "flags": 4, "matrix": [5, 0], "x": 121, "y": 6 }, + { "flags": 4, "matrix": [5, 1], "x": 140, "y": 6 }, + { "flags": 4, "matrix": [5, 2], "x": 158, "y": 6 }, + { "flags": 2, "x": 168, "y": 6 }, + { "flags": 4, "matrix": [5, 3], "x": 177, "y": 6 }, + { "flags": 4, "matrix": [5, 4], "x": 196, "y": 6 }, + { "flags": 4, "matrix": [5, 5], "x": 214, "y": 6 }, + + { "flags": 4, "matrix": [6, 5], "x": 214, "y": 19 }, + { "flags": 2, "x": 205, "y": 12 }, + { "flags": 4, "matrix": [6, 4], "x": 196, "y": 19 }, + { "flags": 4, "matrix": [6, 3], "x": 177, "y": 19 }, + { "flags": 4, "matrix": [6, 2], "x": 158, "y": 19 }, + { "flags": 4, "matrix": [6, 1], "x": 140, "y": 19 }, + { "flags": 2, "x": 130, "y": 12 }, + { "flags": 4, "matrix": [6, 0], "x": 121, "y": 19 }, + + { "flags": 4, "matrix": [7, 0], "x": 121, "y": 32 }, + { "flags": 4, "matrix": [7, 1], "x": 140, "y": 32 }, + { "flags": 4, "matrix": [7, 2], "x": 158, "y": 32 }, + { "flags": 4, "matrix": [7, 3], "x": 177, "y": 32 }, + { "flags": 4, "matrix": [7, 4], "x": 196, "y": 32 }, + { "flags": 4, "matrix": [7, 5], "x": 214, "y": 32 }, + + { "flags": 4, "matrix": [8, 5], "x": 214, "y": 44 }, + { "flags": 2, "x": 205, "y": 44 }, + { "flags": 4, "matrix": [8, 4], "x": 196, "y": 44 }, + { "flags": 4, "matrix": [8, 3], "x": 177, "y": 44 }, + { "flags": 2, "x": 168, "y": 44 }, + { "flags": 4, "matrix": [8, 2], "x": 158, "y": 44 }, + { "flags": 4, "matrix": [8, 1], "x": 140, "y": 44 }, + { "flags": 2, "x": 130, "y": 44 }, + { "flags": 4, "matrix": [8, 0], "x": 121, "y": 44 }, + + { "flags": 4, "matrix": [9, 0], "x": 121, "y": 57 }, + { "flags": 4, "matrix": [9, 1], "x": 140, "y": 57 }, + { "flags": 4, "matrix": [9, 2], "x": 158, "y": 57 }, + { "flags": 4, "matrix": [9, 3], "x": 177, "y": 57 }, + { "flags": 4, "matrix": [9, 4], "x": 196, "y": 57 }, + { "flags": 4, "matrix": [9, 5], "x": 214, "y": 57 } + ] + } +} diff --git a/keyboards/keebio/nyquist/rev4/rules.mk b/keyboards/keebio/nyquist/rev4/rules.mk new file mode 100644 index 00000000000..161ec22b16e --- /dev/null +++ b/keyboards/keebio/nyquist/rev4/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor diff --git a/keyboards/keebio/nyquistpad/config.h b/keyboards/keebio/nyquistpad/config.h new file mode 100644 index 00000000000..82a64e39bff --- /dev/null +++ b/keyboards/keebio/nyquistpad/config.h @@ -0,0 +1,13 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// RGB Matrix +#define RGB_MATRIX_LED_COUNT 36 +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/nyquistpad/info.json b/keyboards/keebio/nyquistpad/info.json new file mode 100644 index 00000000000..f8c887bdb88 --- /dev/null +++ b/keyboards/keebio/nyquistpad/info.json @@ -0,0 +1,161 @@ +{ + "manufacturer": "Keebio", + "url": "https://keeb.io", + "maintainer": "nooges", + "keyboard_name": "Nyquistpad", + "usb": { + "vid": "0xCB10", + "pid": "0x1356", + "device_version": "1.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP29", "GP22", "GP0", "GP3", "GP11", "GP6"], + "rows": ["GP2", "GP1", "GP17", "GP25", "GP24"] + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "GP26", "pin_b": "GP27" } + ] + }, + "ws2812": { + "driver": "vendor", + "pin": "GP28" + }, + + "layouts": { + "LAYOUT": { + "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": [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": [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": [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}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4} + ] + } + }, + "rgb_matrix": { + "driver": "ws2812", + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 18, "y": 6 }, + { "flags": 4, "matrix": [0, 1], "x": 56, "y": 6 }, + { "flags": 4, "matrix": [0, 2], "x": 92, "y": 6 }, + { "flags": 2, "x": 112, "y": 6 }, + { "flags": 4, "matrix": [0, 3], "x": 130, "y": 6 }, + { "flags": 4, "matrix": [0, 4], "x": 168, "y": 6 }, + { "flags": 4, "matrix": [0, 5], "x": 204, "y": 6 }, + + { "flags": 4, "matrix": [1, 5], "x": 204, "y": 19 }, + { "flags": 2, "x": 186, "y": 12 }, + { "flags": 4, "matrix": [1, 4], "x": 168, "y": 19 }, + { "flags": 4, "matrix": [1, 3], "x": 130, "y": 19 }, + { "flags": 4, "matrix": [1, 2], "x": 92, "y": 19 }, + { "flags": 4, "matrix": [1, 1], "x": 56, "y": 19 }, + { "flags": 2, "x": 36, "y": 12 }, + { "flags": 4, "matrix": [1, 0], "x": 18, "y": 19 }, + + { "flags": 4, "matrix": [2, 0], "x": 18, "y": 32 }, + { "flags": 4, "matrix": [2, 1], "x": 56, "y": 32 }, + { "flags": 4, "matrix": [2, 2], "x": 92, "y": 32 }, + { "flags": 4, "matrix": [2, 3], "x": 130, "y": 32 }, + { "flags": 4, "matrix": [2, 4], "x": 168, "y": 32 }, + { "flags": 4, "matrix": [2, 5], "x": 204, "y": 32 }, + + { "flags": 4, "matrix": [3, 5], "x": 204, "y": 44 }, + { "flags": 2, "x": 186, "y": 44 }, + { "flags": 4, "matrix": [3, 4], "x": 168, "y": 44 }, + { "flags": 4, "matrix": [3, 3], "x": 130, "y": 44 }, + { "flags": 2, "x": 112, "y": 44 }, + { "flags": 4, "matrix": [3, 2], "x": 92, "y": 44 }, + { "flags": 4, "matrix": [3, 1], "x": 56, "y": 44 }, + { "flags": 2, "x": 36, "y": 44 }, + { "flags": 4, "matrix": [3, 0], "x": 18, "y": 44 }, + + { "flags": 4, "matrix": [4, 0], "x": 18, "y": 57 }, + { "flags": 4, "matrix": [4, 1], "x": 56, "y": 57 }, + { "flags": 4, "matrix": [4, 2], "x": 92, "y": 57 }, + { "flags": 4, "matrix": [4, 3], "x": 130, "y": 57 }, + { "flags": 4, "matrix": [4, 4], "x": 192, "y": 57 }, + { "flags": 4, "matrix": [4, 5], "x": 210, "y": 57 } + ] + } +} diff --git a/keyboards/keebio/nyquistpad/keymaps/default/keymap.c b/keyboards/keebio/nyquistpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..42b049facda --- /dev/null +++ b/keyboards/keebio/nyquistpad/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + MO(2), KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC + ), + [1] = LAYOUT( + RGB_MOD, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, KC_VOLU, KC_PGUP, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_PGDN, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + KC_F6, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/keebio/nyquistpad/keymaps/via/keymap.c b/keyboards/keebio/nyquistpad/keymaps/via/keymap.c new file mode 100644 index 00000000000..42b049facda --- /dev/null +++ b/keyboards/keebio/nyquistpad/keymaps/via/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + MO(2), KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC + ), + [1] = LAYOUT( + RGB_MOD, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, KC_VOLU, KC_PGUP, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_PGDN, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + KC_F6, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/keebio/nyquistpad/keymaps/via/rules.mk b/keyboards/keebio/nyquistpad/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/keebio/nyquistpad/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/keebio/nyquistpad/readme.md b/keyboards/keebio/nyquistpad/readme.md new file mode 100644 index 00000000000..39c9a678c8b --- /dev/null +++ b/keyboards/keebio/nyquistpad/readme.md @@ -0,0 +1,25 @@ +# Nyquistpad + +A 5x6 macropad keyboard based off of a prototype Nyquist PCB. + +* Keyboard Maintainer: Keebio +* Hardware Supported: Nyquistpad PCB +* Hardware Availability: [Keebio](https://keeb.io/) + +Make example for this keyboard (after setting up your build environment): + + make keebio/nyquistpad:default + +Flashing example for this keyboard: + + make keebio/nyquistpad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Press and hold the button on the back of the PCB for at least 2 seconds and let go, or double-press the button +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/keebio/nyquistpad/rules.mk b/keyboards/keebio/nyquistpad/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/keebio/nyquistpad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/keebio/quefrency/keymaps/bramver/README.md b/keyboards/keebio/quefrency/keymaps/bramver/README.md index 547e2686f88..1665e4fd3eb 100644 --- a/keyboards/keebio/quefrency/keymaps/bramver/README.md +++ b/keyboards/keebio/quefrency/keymaps/bramver/README.md @@ -51,9 +51,9 @@ Mostly based off of my other XD75 and Nyquist layouts. /* EMOJ * * _______ , _______ , _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , - * _______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , /**/ X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ , _______ , _______ , - * _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , /**/ X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ , _______ , - * _______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , /**/ X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ , _______ , + * _______ , UM(CLAP) , UM(CUM) , UM(BNIS) , UM(BUTT) , UM(CAR) , /**/ UM(FIRE) , UM(REDB) , UM(MONY) , UM(HNDR) , UM(SOS) , _______ , _______ , _______ , + * _______ , UM(CELE) , UM(PRAY) , UM(NAIL) , UM(OK) , UM(THNK) , /**/ UM(UNAM) , UM(HEYE) , UM(COOL) , UM(EYES) , UM(SMIR) , _______ , _______ , + * _______ , UM(TRIU) , UM(SCRM) , UM(VOMI) , UM(DTIV) , UM(EXPL) , /**/ UM(HAIR) , UM(DANC) , UM(STRN) , UM(LEFT) , UM(RGHT) , _______ , _______ , * _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ * */ diff --git a/keyboards/keebio/quefrency/keymaps/bramver/keymap.c b/keyboards/keebio/quefrency/keymaps/bramver/keymap.c index f855425ec01..9c6729e91e2 100644 --- a/keyboards/keebio/quefrency/keymaps/bramver/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/bramver/keymap.c @@ -118,9 +118,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_EMOJ] = LAYOUT( _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , - _______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ , _______ , _______ , - _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ , _______ , - _______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ , _______ , + _______ , UM(CLAP) , UM(CUM) , UM(BNIS) , UM(BUTT) , UM(CAR) , UM(FIRE) , UM(REDB) , UM(MONY) , UM(HNDR) , UM(SOS) , _______ , _______ , _______ , + _______ , UM(CELE) , UM(PRAY) , UM(NAIL) , UM(OK) , UM(THNK) , UM(UNAM) , UM(HEYE) , UM(COOL) , UM(EYES) , UM(SMIR) , _______ , _______ , + _______ , UM(TRIU) , UM(SCRM) , UM(VOMI) , UM(DTIV) , UM(EXPL) , UM(HAIR) , UM(DANC) , UM(STRN) , UM(LEFT) , UM(RGHT) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ), diff --git a/keyboards/keebio/quefrency/rev1/config.h b/keyboards/keebio/quefrency/rev1/config.h index 83fcd1fe0ac..84cfc900694 100644 --- a/keyboards/keebio/quefrency/rev1/config.h +++ b/keyboards/keebio/quefrency/rev1/config.h @@ -25,19 +25,5 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLED_SPLIT { 8, 8 } - // Set 65% column (option 1) and Macro (option 2) on by default #define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x60 diff --git a/keyboards/keebio/quefrency/rev1/info.json b/keyboards/keebio/quefrency/rev1/info.json index 7fb5ca8153d..0bce37ad78b 100644 --- a/keyboards/keebio/quefrency/rev1/info.json +++ b/keyboards/keebio/quefrency/rev1/info.json @@ -8,6 +8,22 @@ "pid": "0x1257", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 16, + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h index e7774432dfa..60db14d5fbd 100644 --- a/keyboards/keebio/quefrency/rev2/config.h +++ b/keyboards/keebio/quefrency/rev2/config.h @@ -22,21 +22,6 @@ along with this program. If not, see . #define CAPS_LOCK_LED_PIN B6 -/* ws2812 RGB LED */ -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLED_SPLIT { 8, 8 } -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - // Set 65% column (option 3) and Macro (option 4) on by default #define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/quefrency/rev2/info.json b/keyboards/keebio/quefrency/rev2/info.json index d73c1af308f..26df29e3f0d 100644 --- a/keyboards/keebio/quefrency/rev2/info.json +++ b/keyboards/keebio/quefrency/rev2/info.json @@ -21,6 +21,23 @@ "backlight": { "pin": "B5" }, + "rgblight": { + "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h index e7774432dfa..60db14d5fbd 100644 --- a/keyboards/keebio/quefrency/rev3/config.h +++ b/keyboards/keebio/quefrency/rev3/config.h @@ -22,21 +22,6 @@ along with this program. If not, see . #define CAPS_LOCK_LED_PIN B6 -/* ws2812 RGB LED */ -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLED_SPLIT { 8, 8 } -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - // Set 65% column (option 3) and Macro (option 4) on by default #define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/quefrency/rev3/info.json b/keyboards/keebio/quefrency/rev3/info.json index fb204ab9107..dac80973ae9 100644 --- a/keyboards/keebio/quefrency/rev3/info.json +++ b/keyboards/keebio/quefrency/rev3/info.json @@ -21,6 +21,23 @@ "backlight": { "pin": "B5" }, + "rgblight": { + "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/keebio/quefrency/rev4/config.h b/keyboards/keebio/quefrency/rev4/config.h index b27ba56d538..73521bc5352 100644 --- a/keyboards/keebio/quefrency/rev4/config.h +++ b/keyboards/keebio/quefrency/rev4/config.h @@ -23,18 +23,4 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLED_SPLIT { 8, 8 } -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keebio/quefrency/rev4/info.json b/keyboards/keebio/quefrency/rev4/info.json index 55fb4adda49..4eb4275f7af 100644 --- a/keyboards/keebio/quefrency/rev4/info.json +++ b/keyboards/keebio/quefrency/rev4/info.json @@ -18,6 +18,23 @@ {"pin_a": "F5", "pin_b": "F6"} ] }, + "rgblight": { + "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/keebio/quefrency/rev5/config.h b/keyboards/keebio/quefrency/rev5/config.h index b27ba56d538..73521bc5352 100644 --- a/keyboards/keebio/quefrency/rev5/config.h +++ b/keyboards/keebio/quefrency/rev5/config.h @@ -23,18 +23,4 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLED_NUM 16 // Number of LEDs -#define RGBLED_SPLIT { 8, 8 } -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keebio/quefrency/rev5/info.json b/keyboards/keebio/quefrency/rev5/info.json index 78a44dfc801..94d77ec8dd4 100644 --- a/keyboards/keebio/quefrency/rev5/info.json +++ b/keyboards/keebio/quefrency/rev5/info.json @@ -18,6 +18,23 @@ {"pin_a": "F5", "pin_b": "F6"} ] }, + "rgblight": { + "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/keebio/rorschach/rev1/config.h b/keyboards/keebio/rorschach/rev1/config.h index 979899d5472..53c95d722d3 100644 --- a/keyboards/keebio/rorschach/rev1/config.h +++ b/keyboards/keebio/rorschach/rev1/config.h @@ -21,19 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* WS2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/keebio/rorschach/rev1/info.json b/keyboards/keebio/rorschach/rev1/info.json index a0b1188a7c9..55fcae83873 100644 --- a/keyboards/keebio/rorschach/rev1/info.json +++ b/keyboards/keebio/rorschach/rev1/info.json @@ -17,6 +17,23 @@ "pin": "B5", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/sinc/keymaps/default/keymap.c b/keyboards/keebio/sinc/keymaps/default/keymap.c index 20c12a4a6e4..171b7a7d057 100644 --- a/keyboards/keebio/sinc/keymaps/default/keymap.c +++ b/keyboards/keebio/sinc/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/keebio/sinc/keymaps/iso/keymap.c b/keyboards/keebio/sinc/keymaps/iso/keymap.c index f7ad1047bf2..f3eaaa5bca0 100644 --- a/keyboards/keebio/sinc/keymaps/iso/keymap.c +++ b/keyboards/keebio/sinc/keymaps/iso/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/keebio/sinc/keymaps/via/keymap.c b/keyboards/keebio/sinc/keymaps/via/keymap.c index 2a54d1aa5a3..a1299ce112b 100644 --- a/keyboards/keebio/sinc/keymaps/via/keymap.c +++ b/keyboards/keebio/sinc/keymaps/via/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/keebio/sinc/rev1/config.h b/keyboards/keebio/sinc/rev1/config.h index c394777a8f8..8894354d431 100644 --- a/keyboards/keebio/sinc/rev1/config.h +++ b/keyboards/keebio/sinc/rev1/config.h @@ -26,8 +26,6 @@ along with this program. If not, see . /* Synchronize Caps Lock LED across halves */ #define SPLIT_LED_STATE_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) #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev1/info.json b/keyboards/keebio/sinc/rev1/info.json index d9b09568bda..5ddb54ee603 100644 --- a/keyboards/keebio/sinc/rev1/info.json +++ b/keyboards/keebio/sinc/rev1/info.json @@ -49,6 +49,7 @@ }, "rgblight": { "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8], "animations": { "alternating": true, diff --git a/keyboards/keebio/sinc/rev2/config.h b/keyboards/keebio/sinc/rev2/config.h index c394777a8f8..8894354d431 100644 --- a/keyboards/keebio/sinc/rev2/config.h +++ b/keyboards/keebio/sinc/rev2/config.h @@ -26,8 +26,6 @@ along with this program. If not, see . /* Synchronize Caps Lock LED across halves */ #define SPLIT_LED_STATE_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) #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev2/info.json b/keyboards/keebio/sinc/rev2/info.json index d9372d9e947..0c86727abed 100644 --- a/keyboards/keebio/sinc/rev2/info.json +++ b/keyboards/keebio/sinc/rev2/info.json @@ -49,6 +49,7 @@ }, "rgblight": { "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8], "animations": { "alternating": true, diff --git a/keyboards/keebio/sinc/rev3/info.json b/keyboards/keebio/sinc/rev3/info.json index 76dfd88b3ee..8ba35fd1584 100644 --- a/keyboards/keebio/sinc/rev3/info.json +++ b/keyboards/keebio/sinc/rev3/info.json @@ -44,7 +44,7 @@ "driver": "vendor" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "split_count": [56, 57], "layout": [ {"flags": 4, "matrix": [5, 2], "x": 30, "y": 0}, diff --git a/keyboards/keebio/sinc/rev4/config.h b/keyboards/keebio/sinc/rev4/config.h new file mode 100644 index 00000000000..b6c5785f4cf --- /dev/null +++ b/keyboards/keebio/sinc/rev4/config.h @@ -0,0 +1,72 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SPLIT_HAND_PIN GP4 +#define USB_VBUS_PIN GP14 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 +#define SERIAL_USART_PIN_SWAP +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP22 +#define I2C1_SCL_PIN GP23 + +// RGB Matrix +#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_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_PIXEL_FLOW +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 +#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGB_MATRIX_LED_COUNT 117 +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/keebio/sinc/rev4/halconf.h b/keyboards/keebio/sinc/rev4/halconf.h new file mode 100644 index 00000000000..64036dec35f --- /dev/null +++ b/keyboards/keebio/sinc/rev4/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keebio/sinc/rev4/info.json b/keyboards/keebio/sinc/rev4/info.json new file mode 100644 index 00000000000..31d402c42e3 --- /dev/null +++ b/keyboards/keebio/sinc/rev4/info.json @@ -0,0 +1,1146 @@ +{ + "keyboard_name": "Sinc Rev. 4", + "usb": { + "pid": "0x4267", + "device_version": "4.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "console": true, + "rgb_matrix": true + }, + "split": { + "enabled": true, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP5", "pin_b": "GP6"} + ] + } + }, + "matrix_pins": { + "right": { + "cols": ["GP29", "GP28", "GP27", "GP7", "GP2", "GP3", "GP11", "GP12", "GP13"], + "rows": ["GP16", "GP19", "GP17", "GP9", "GP8", "GP26"] + } + } + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP7", "GP2", "GP3", "GP11", "GP12", "GP13"], + "rows": ["GP25", "GP19", "GP24", "GP17", "GP16", "GP26"] + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "GP21", "pin_b": "GP20"} + ] + }, + "ws2812": { + "pin": "GP18", + "driver": "vendor" + }, + "rgb_matrix": { + "driver": "ws2812", + "split_count": [58, 59], + "layout": [ + {"flags": 4, "matrix": [5, 2], "x": 30, "y": 0}, + {"flags": 2, "x": 42, "y": 6}, + {"flags": 4, "matrix": [5, 3], "x": 45, "y": 0}, + {"flags": 4, "matrix": [5, 4], "x": 58, "y": 0}, + {"flags": 2, "x": 67, "y": 6}, + {"flags": 4, "matrix": [5, 5], "x": 70, "y": 0}, + {"flags": 4, "matrix": [5, 6], "x": 82, "y": 0}, + {"flags": 4, "matrix": [5, 7], "x": 97, "y": 0}, + {"flags": 2, "x": 103, "y": 6}, + {"flags": 4, "matrix": [5, 8], "x": 109, "y": 0}, + + {"flags": 4, "matrix": [0, 8], "x": 103, "y": 15}, + {"flags": 4, "matrix": [0, 7], "x": 91, "y": 15}, + {"flags": 4, "matrix": [0, 6], "x": 79, "y": 15}, + {"flags": 4, "matrix": [0, 5], "x": 67, "y": 15}, + {"flags": 4, "matrix": [0, 4], "x": 54, "y": 15}, + {"flags": 4, "matrix": [0, 3], "x": 42, "y": 15}, + {"flags": 4, "matrix": [0, 2], "x": 30, "y": 15}, + + {"flags": 4, "matrix": [1, 2], "x": 33, "y": 27}, + {"flags": 4, "matrix": [1, 3], "x": 48, "y": 27}, + {"flags": 4, "matrix": [1, 4], "x": 61, "y": 27}, + {"flags": 4, "matrix": [1, 5], "x": 73, "y": 27}, + {"flags": 4, "matrix": [1, 6], "x": 85, "y": 27}, + {"flags": 4, "matrix": [1, 7], "x": 97, "y": 27}, + + {"flags": 4, "matrix": [2, 7], "x": 100, "y": 40}, + {"flags": 4, "matrix": [2, 6], "x": 88, "y": 40}, + {"flags": 4, "matrix": [2, 5], "x": 76, "y": 40}, + {"flags": 4, "matrix": [2, 4], "x": 64, "y": 40}, + {"flags": 4, "matrix": [2, 3], "x": 51, "y": 40}, + {"flags": 4, "matrix": [2, 2], "x": 35, "y": 40}, + + {"flags": 4, "matrix": [3, 2], "x": 38, "y": 52}, + {"flags": 4, "matrix": [3, 4], "x": 58, "y": 52}, + {"flags": 4, "matrix": [3, 5], "x": 70, "y": 52}, + {"flags": 4, "matrix": [3, 6], "x": 82, "y": 52}, + {"flags": 4, "matrix": [3, 7], "x": 94, "y": 52}, + {"flags": 2, "x": 100, "y": 55}, + {"flags": 4, "matrix": [3, 8], "x": 106, "y": 52}, + + {"flags": 4, "x": 107, "y": 64}, + {"flags": 4, "matrix": [4, 7], "x": 97, "y": 64}, + {"flags": 4, "matrix": [4, 6], "x": 85, "y": 64}, + {"flags": 4, "matrix": [4, 5], "x": 75, "y": 64}, + {"flags": 2, "x": 70, "y": 64}, + {"flags": 4, "matrix": [4, 4], "x": 62, "y": 64}, + {"flags": 4, "matrix": [4, 3], "x": 47, "y": 64}, + {"flags": 2, "x": 39, "y": 64}, + {"flags": 4, "matrix": [4, 2], "x": 32, "y": 64}, + + {"flags": 4, "matrix": [4, 1], "x": 12, "y": 64}, + {"flags": 2, "x": 6, "y": 64}, + {"flags": 4, "matrix": [4, 0], "x": 0, "y": 64}, + + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 52}, + {"flags": 4, "matrix": [3, 1], "x": 12, "y": 52}, + {"flags": 4, "matrix": [2, 1], "x": 12, "y": 40}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 40}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 27}, + {"flags": 4, "matrix": [1, 1], "x": 12, "y": 27}, + {"flags": 4, "matrix": [0, 1], "x": 12, "y": 15}, + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 15}, + {"flags": 4, "matrix": [5, 0], "x": 0, "y": 0}, + {"flags": 2, "x": 9, "y": 0}, + + {"flags": 2, "x": 224, "y": 6}, + {"flags": 4, "matrix": [11, 8], "x": 224, "y": 0}, + {"flags": 4, "matrix": [11, 7], "x": 212, "y": 0}, + {"flags": 4, "matrix": [11, 6], "x": 197, "y": 0}, + {"flags": 2, "x": 191, "y": 6}, + {"flags": 4, "matrix": [11, 5], "x": 185, "y": 0}, + {"flags": 4, "matrix": [11, 4], "x": 173, "y": 0}, + {"flags": 2, "x": 166, "y": 6}, + {"flags": 4, "matrix": [11, 3], "x": 160, "y": 0}, + {"flags": 4, "matrix": [11, 2], "x": 145, "y": 0}, + {"flags": 2, "x": 139, "y": 6}, + {"flags": 4, "matrix": [11, 1], "x": 133, "y": 0}, + + {"flags": 4, "matrix": [6, 0], "x": 127, "y": 15}, + {"flags": 4, "matrix": [6, 1], "x": 139, "y": 15}, + {"flags": 4, "matrix": [6, 2], "x": 151, "y": 15}, + {"flags": 4, "matrix": [6, 3], "x": 163, "y": 15}, + {"flags": 4, "matrix": [6, 4], "x": 176, "y": 15}, + {"flags": 4, "matrix": [6, 5], "x": 188, "y": 15}, + {"flags": 4, "matrix": [6, 6], "x": 200, "y": 15}, + {"flags": 4, "matrix": [6, 7], "x": 212, "y": 15}, + {"flags": 4, "matrix": [6, 8], "x": 224, "y": 15}, + + {"flags": 4, "matrix": [7, 8], "x": 224, "y": 27}, + {"flags": 4, "matrix": [7, 7], "x": 209, "y": 27}, + {"flags": 4, "matrix": [7, 6], "x": 194, "y": 27}, + {"flags": 4, "matrix": [7, 5], "x": 182, "y": 27}, + {"flags": 4, "matrix": [7, 4], "x": 170, "y": 27}, + {"flags": 4, "matrix": [7, 3], "x": 157, "y": 27}, + {"flags": 4, "matrix": [7, 2], "x": 145, "y": 27}, + {"flags": 4, "matrix": [7, 1], "x": 133, "y": 27}, + {"flags": 4, "matrix": [7, 0], "x": 121, "y": 27}, + + {"flags": 4, "matrix": [8, 0], "x": 124, "y": 40}, + {"flags": 4, "matrix": [8, 1], "x": 136, "y": 40}, + {"flags": 4, "matrix": [8, 2], "x": 148, "y": 40}, + {"flags": 4, "matrix": [8, 3], "x": 160, "y": 40}, + {"flags": 4, "matrix": [8, 4], "x": 173, "y": 40}, + {"flags": 4, "matrix": [8, 5], "x": 185, "y": 40}, + {"flags": 4, "matrix": [8, 7], "x": 204, "y": 40}, + {"flags": 4, "matrix": [8, 8], "x": 224, "y": 40}, + + {"flags": 4, "matrix": [9, 8], "x": 224, "y": 52}, + {"flags": 4, "matrix": [9, 7], "x": 212, "y": 52}, + {"flags": 4, "matrix": [9, 6], "x": 195, "y": 52}, + {"flags": 4, "matrix": [9, 4], "x": 179, "y": 52}, + {"flags": 4, "matrix": [9, 3], "x": 166, "y": 52}, + {"flags": 4, "matrix": [9, 2], "x": 154, "y": 52}, + {"flags": 4, "matrix": [9, 1], "x": 142, "y": 52}, + {"flags": 4, "matrix": [9, 0], "x": 130, "y": 52}, + + {"flags": 2, "x": 136, "y": 55}, + {"flags": 4, "matrix": [10, 0], "x": 132, "y": 64}, + {"flags": 4, "matrix": [10, 1], "x": 139, "y": 64}, + {"flags": 4, "x": 148, "y": 64}, + {"flags": 2, "x": 154, "y": 64}, + {"flags": 4, "matrix": [10, 2], "x": 163, "y": 64}, + {"flags": 4, "matrix": [10, 3], "x": 176, "y": 64}, + {"flags": 4, "matrix": [10, 4], "x": 188, "y": 64}, + {"flags": 2, "x": 194, "y": 64}, + {"flags": 4, "matrix": [10, 6], "x": 200, "y": 64}, + {"flags": 4, "matrix": [10, 7], "x": 212, "y": 64}, + {"flags": 4, "matrix": [10, 8], "x": 224, "y": 64}, + {"flags": 2, "x": 224, "y": 55} + ] + }, + "layouts": { + "LAYOUT_75": { + "layout": [ + {"matrix": [5, 2], "x": 0, "y": 0}, + {"matrix": [5, 3], "x": 1.25, "y": 0}, + {"matrix": [5, 4], "x": 2.25, "y": 0}, + {"matrix": [5, 5], "x": 3.25, "y": 0}, + {"matrix": [5, 6], "x": 4.25, "y": 0}, + {"matrix": [5, 7], "x": 5.5, "y": 0}, + {"matrix": [5, 8], "x": 6.5, "y": 0}, + + {"matrix": [11, 1], "x": 8.5, "y": 0}, + {"matrix": [11, 2], "x": 9.5, "y": 0}, + {"matrix": [11, 3], "x": 10.75, "y": 0}, + {"matrix": [11, 4], "x": 11.75, "y": 0}, + {"matrix": [11, 5], "x": 12.75, "y": 0}, + {"matrix": [11, 6], "x": 13.75, "y": 0}, + {"matrix": [11, 7], "x": 15, "y": 0}, + + {"matrix": [0, 2], "x": 0, "y": 1.25}, + {"matrix": [0, 3], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [0, 7], "x": 5, "y": 1.25}, + {"matrix": [0, 8], "x": 6, "y": 1.25}, + + {"matrix": [6, 0], "x": 8, "y": 1.25}, + {"matrix": [6, 1], "x": 9, "y": 1.25}, + {"matrix": [6, 2], "x": 10, "y": 1.25}, + {"matrix": [6, 3], "x": 11, "y": 1.25}, + {"matrix": [6, 4], "x": 12, "y": 1.25}, + {"matrix": [6, 5], "x": 13, "y": 1.25}, + {"matrix": [6, 6], "x": 14, "y": 1.25}, + {"matrix": [6, 7], "x": 15, "y": 1.25}, + + {"matrix": [1, 2], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [1, 7], "x": 5.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 7.5, "y": 2.25}, + {"matrix": [7, 1], "x": 8.5, "y": 2.25}, + {"matrix": [7, 2], "x": 9.5, "y": 2.25}, + {"matrix": [7, 3], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.25}, + {"matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"matrix": [7, 6], "x": 13.5, "y": 2.25}, + {"matrix": [7, 7], "x": 14.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 2], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 1.75, "y": 3.25}, + {"matrix": [2, 4], "x": 2.75, "y": 3.25}, + {"matrix": [2, 5], "x": 3.75, "y": 3.25}, + {"matrix": [2, 6], "x": 4.75, "y": 3.25}, + {"matrix": [2, 7], "x": 5.75, "y": 3.25}, + + {"matrix": [8, 0], "x": 7.75, "y": 3.25}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.25}, + {"matrix": [8, 3], "x": 10.75, "y": 3.25}, + {"matrix": [8, 4], "x": 11.75, "y": 3.25}, + {"matrix": [8, 5], "x": 12.75, "y": 3.25}, + {"matrix": [8, 7], "x": 13.75, "y": 3.25, "w": 2.25}, + + {"matrix": [3, 2], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [3, 4], "x": 2.25, "y": 4.25}, + {"matrix": [3, 5], "x": 3.25, "y": 4.25}, + {"matrix": [3, 6], "x": 4.25, "y": 4.25}, + {"matrix": [3, 7], "x": 5.25, "y": 4.25}, + {"matrix": [3, 8], "x": 6.25, "y": 4.25}, + + {"matrix": [9, 0], "x": 8.25, "y": 4.25}, + {"matrix": [9, 1], "x": 9.25, "y": 4.25}, + {"matrix": [9, 2], "x": 10.25, "y": 4.25}, + {"matrix": [9, 3], "x": 11.25, "y": 4.25}, + {"matrix": [9, 4], "x": 12.25, "y": 4.25}, + {"matrix": [9, 6], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 15, "y": 4.25}, + + {"matrix": [4, 2], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 5, "y": 5.25}, + {"matrix": [4, 7], "x": 6, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 8.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 11, "y": 5.25}, + {"matrix": [10, 3], "x": 12, "y": 5.25}, + {"matrix": [10, 4], "x": 13, "y": 5.25}, + {"matrix": [10, 6], "x": 14, "y": 5.25}, + {"matrix": [10, 7], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [5, 2], "x": 0, "y": 0}, + {"matrix": [5, 3], "x": 1.25, "y": 0}, + {"matrix": [5, 4], "x": 2.25, "y": 0}, + {"matrix": [5, 5], "x": 3.25, "y": 0}, + {"matrix": [5, 6], "x": 4.25, "y": 0}, + {"matrix": [5, 7], "x": 5.5, "y": 0}, + {"matrix": [5, 8], "x": 6.5, "y": 0}, + + {"matrix": [11, 1], "x": 8.5, "y": 0}, + {"matrix": [11, 2], "x": 9.5, "y": 0}, + {"matrix": [11, 3], "x": 10.75, "y": 0}, + {"matrix": [11, 4], "x": 11.75, "y": 0}, + {"matrix": [11, 5], "x": 12.75, "y": 0}, + {"matrix": [11, 6], "x": 13.75, "y": 0}, + {"matrix": [11, 7], "x": 15, "y": 0}, + + {"matrix": [0, 2], "x": 0, "y": 1.25}, + {"matrix": [0, 3], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [0, 7], "x": 5, "y": 1.25}, + {"matrix": [0, 8], "x": 6, "y": 1.25}, + + {"matrix": [6, 0], "x": 8, "y": 1.25}, + {"matrix": [6, 1], "x": 9, "y": 1.25}, + {"matrix": [6, 2], "x": 10, "y": 1.25}, + {"matrix": [6, 3], "x": 11, "y": 1.25}, + {"matrix": [6, 4], "x": 12, "y": 1.25}, + {"matrix": [6, 5], "x": 13, "y": 1.25}, + {"matrix": [6, 6], "x": 14, "y": 1.25}, + {"matrix": [6, 7], "x": 15, "y": 1.25}, + + {"matrix": [1, 2], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [1, 7], "x": 5.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 7.5, "y": 2.25}, + {"matrix": [7, 1], "x": 8.5, "y": 2.25}, + {"matrix": [7, 2], "x": 9.5, "y": 2.25}, + {"matrix": [7, 3], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.25}, + {"matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"matrix": [7, 6], "x": 13.5, "y": 2.25}, + + {"matrix": [2, 2], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 1.75, "y": 3.25}, + {"matrix": [2, 4], "x": 2.75, "y": 3.25}, + {"matrix": [2, 5], "x": 3.75, "y": 3.25}, + {"matrix": [2, 6], "x": 4.75, "y": 3.25}, + {"matrix": [2, 7], "x": 5.75, "y": 3.25}, + + {"matrix": [8, 0], "x": 7.75, "y": 3.25}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.25}, + {"matrix": [8, 3], "x": 10.75, "y": 3.25}, + {"matrix": [8, 4], "x": 11.75, "y": 3.25}, + {"matrix": [8, 5], "x": 12.75, "y": 3.25}, + {"matrix": [8, 6], "x": 13.75, "y": 3.25}, + {"matrix": [7, 7], "x": 14.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [3, 2], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 1.25, "y": 4.25}, + {"matrix": [3, 4], "x": 2.25, "y": 4.25}, + {"matrix": [3, 5], "x": 3.25, "y": 4.25}, + {"matrix": [3, 6], "x": 4.25, "y": 4.25}, + {"matrix": [3, 7], "x": 5.25, "y": 4.25}, + {"matrix": [3, 8], "x": 6.25, "y": 4.25}, + + {"matrix": [9, 0], "x": 8.25, "y": 4.25}, + {"matrix": [9, 1], "x": 9.25, "y": 4.25}, + {"matrix": [9, 2], "x": 10.25, "y": 4.25}, + {"matrix": [9, 3], "x": 11.25, "y": 4.25}, + {"matrix": [9, 4], "x": 12.25, "y": 4.25}, + {"matrix": [9, 6], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 15, "y": 4.25}, + + {"matrix": [4, 2], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 5, "y": 5.25}, + {"matrix": [4, 7], "x": 6, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 8.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 11, "y": 5.25}, + {"matrix": [10, 3], "x": 12, "y": 5.25}, + {"matrix": [10, 4], "x": 13, "y": 5.25}, + {"matrix": [10, 6], "x": 14, "y": 5.25}, + {"matrix": [10, 7], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_75_iso_with_macro": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 6], "x": 16, "y": 3.25}, + {"matrix": [7, 7], "x": 17, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 4.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_75_with_macro": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"matrix": [7, 7], "x": 16.75, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 7], "x": 16, "y": 3.25, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 2.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_80": { + "layout": [ + {"matrix": [5, 2], "x": 0, "y": 0}, + {"matrix": [5, 3], "x": 1.25, "y": 0}, + {"matrix": [5, 4], "x": 2.25, "y": 0}, + {"matrix": [5, 5], "x": 3.25, "y": 0}, + {"matrix": [5, 6], "x": 4.25, "y": 0}, + {"matrix": [5, 7], "x": 5.5, "y": 0}, + {"matrix": [5, 8], "x": 6.5, "y": 0}, + + {"matrix": [11, 1], "x": 8.5, "y": 0}, + {"matrix": [11, 2], "x": 9.5, "y": 0}, + {"matrix": [11, 3], "x": 10.75, "y": 0}, + {"matrix": [11, 4], "x": 11.75, "y": 0}, + {"matrix": [11, 5], "x": 12.75, "y": 0}, + {"matrix": [11, 6], "x": 13.75, "y": 0}, + {"matrix": [11, 7], "x": 15, "y": 0}, + {"matrix": [11, 8], "x": 16, "y": 0}, + + {"matrix": [0, 2], "x": 0, "y": 1.25}, + {"matrix": [0, 3], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [0, 7], "x": 5, "y": 1.25}, + {"matrix": [0, 8], "x": 6, "y": 1.25}, + + {"matrix": [6, 0], "x": 8, "y": 1.25}, + {"matrix": [6, 1], "x": 9, "y": 1.25}, + {"matrix": [6, 2], "x": 10, "y": 1.25}, + {"matrix": [6, 3], "x": 11, "y": 1.25}, + {"matrix": [6, 4], "x": 12, "y": 1.25}, + {"matrix": [6, 5], "x": 13, "y": 1.25}, + {"matrix": [6, 6], "x": 14, "y": 1.25}, + {"matrix": [6, 7], "x": 15, "y": 1.25}, + {"matrix": [6, 8], "x": 16, "y": 1.25}, + + {"matrix": [1, 2], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [1, 7], "x": 5.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 7.5, "y": 2.25}, + {"matrix": [7, 1], "x": 8.5, "y": 2.25}, + {"matrix": [7, 2], "x": 9.5, "y": 2.25}, + {"matrix": [7, 3], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.25}, + {"matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"matrix": [7, 6], "x": 13.5, "y": 2.25}, + {"matrix": [7, 7], "x": 14.5, "y": 2.25, "w": 1.5}, + {"matrix": [7, 8], "x": 16, "y": 2.25}, + + {"matrix": [2, 2], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 1.75, "y": 3.25}, + {"matrix": [2, 4], "x": 2.75, "y": 3.25}, + {"matrix": [2, 5], "x": 3.75, "y": 3.25}, + {"matrix": [2, 6], "x": 4.75, "y": 3.25}, + {"matrix": [2, 7], "x": 5.75, "y": 3.25}, + + {"matrix": [8, 0], "x": 7.75, "y": 3.25}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.25}, + {"matrix": [8, 3], "x": 10.75, "y": 3.25}, + {"matrix": [8, 4], "x": 11.75, "y": 3.25}, + {"matrix": [8, 5], "x": 12.75, "y": 3.25}, + {"matrix": [8, 7], "x": 13.75, "y": 3.25, "w": 2.25}, + {"matrix": [8, 8], "x": 16, "y": 3.25}, + + {"matrix": [3, 2], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [3, 4], "x": 2.25, "y": 4.25}, + {"matrix": [3, 5], "x": 3.25, "y": 4.25}, + {"matrix": [3, 6], "x": 4.25, "y": 4.25}, + {"matrix": [3, 7], "x": 5.25, "y": 4.25}, + {"matrix": [3, 8], "x": 6.25, "y": 4.25}, + + {"matrix": [9, 0], "x": 8.25, "y": 4.25}, + {"matrix": [9, 1], "x": 9.25, "y": 4.25}, + {"matrix": [9, 2], "x": 10.25, "y": 4.25}, + {"matrix": [9, 3], "x": 11.25, "y": 4.25}, + {"matrix": [9, 4], "x": 12.25, "y": 4.25}, + {"matrix": [9, 6], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 15, "y": 4.25}, + {"matrix": [9, 8], "x": 16, "y": 4.25}, + + {"matrix": [4, 2], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 5, "y": 5.25}, + {"matrix": [4, 7], "x": 6, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 8.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 11, "y": 5.25}, + {"matrix": [10, 3], "x": 12, "y": 5.25}, + {"matrix": [10, 4], "x": 13, "y": 5.25}, + {"matrix": [10, 6], "x": 14, "y": 5.25}, + {"matrix": [10, 7], "x": 15, "y": 5.25}, + {"matrix": [10, 8], "x": 16, "y": 5.25} + ] + }, + "LAYOUT_80_iso": { + "layout": [ + {"matrix": [5, 2], "x": 0, "y": 0}, + {"matrix": [5, 3], "x": 1.25, "y": 0}, + {"matrix": [5, 4], "x": 2.25, "y": 0}, + {"matrix": [5, 5], "x": 3.25, "y": 0}, + {"matrix": [5, 6], "x": 4.25, "y": 0}, + {"matrix": [5, 7], "x": 5.5, "y": 0}, + {"matrix": [5, 8], "x": 6.5, "y": 0}, + + {"matrix": [11, 1], "x": 8.5, "y": 0}, + {"matrix": [11, 2], "x": 9.5, "y": 0}, + {"matrix": [11, 3], "x": 10.75, "y": 0}, + {"matrix": [11, 4], "x": 11.75, "y": 0}, + {"matrix": [11, 5], "x": 12.75, "y": 0}, + {"matrix": [11, 6], "x": 13.75, "y": 0}, + {"matrix": [11, 7], "x": 15, "y": 0}, + {"matrix": [11, 8], "x": 16, "y": 0}, + + {"matrix": [0, 2], "x": 0, "y": 1.25}, + {"matrix": [0, 3], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [0, 7], "x": 5, "y": 1.25}, + {"matrix": [0, 8], "x": 6, "y": 1.25}, + + {"matrix": [6, 0], "x": 8, "y": 1.25}, + {"matrix": [6, 1], "x": 9, "y": 1.25}, + {"matrix": [6, 2], "x": 10, "y": 1.25}, + {"matrix": [6, 3], "x": 11, "y": 1.25}, + {"matrix": [6, 4], "x": 12, "y": 1.25}, + {"matrix": [6, 5], "x": 13, "y": 1.25}, + {"matrix": [6, 6], "x": 14, "y": 1.25}, + {"matrix": [6, 7], "x": 15, "y": 1.25}, + {"matrix": [6, 8], "x": 16, "y": 1.25}, + + {"matrix": [1, 2], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [1, 7], "x": 5.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 7.5, "y": 2.25}, + {"matrix": [7, 1], "x": 8.5, "y": 2.25}, + {"matrix": [7, 2], "x": 9.5, "y": 2.25}, + {"matrix": [7, 3], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.25}, + {"matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"matrix": [7, 6], "x": 13.5, "y": 2.25}, + {"matrix": [7, 8], "x": 16, "y": 2.25}, + + {"matrix": [2, 2], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 1.75, "y": 3.25}, + {"matrix": [2, 4], "x": 2.75, "y": 3.25}, + {"matrix": [2, 5], "x": 3.75, "y": 3.25}, + {"matrix": [2, 6], "x": 4.75, "y": 3.25}, + {"matrix": [2, 7], "x": 5.75, "y": 3.25}, + + {"matrix": [8, 0], "x": 7.75, "y": 3.25}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.25}, + {"matrix": [8, 3], "x": 10.75, "y": 3.25}, + {"matrix": [8, 4], "x": 11.75, "y": 3.25}, + {"matrix": [8, 5], "x": 12.75, "y": 3.25}, + {"matrix": [8, 6], "x": 13.75, "y": 3.25}, + {"matrix": [7, 7], "x": 14.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [8, 8], "x": 16, "y": 3.25}, + + {"matrix": [3, 2], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 1.25, "y": 4.25}, + {"matrix": [3, 4], "x": 2.25, "y": 4.25}, + {"matrix": [3, 5], "x": 3.25, "y": 4.25}, + {"matrix": [3, 6], "x": 4.25, "y": 4.25}, + {"matrix": [3, 7], "x": 5.25, "y": 4.25}, + {"matrix": [3, 8], "x": 6.25, "y": 4.25}, + + {"matrix": [9, 0], "x": 8.25, "y": 4.25}, + {"matrix": [9, 1], "x": 9.25, "y": 4.25}, + {"matrix": [9, 2], "x": 10.25, "y": 4.25}, + {"matrix": [9, 3], "x": 11.25, "y": 4.25}, + {"matrix": [9, 4], "x": 12.25, "y": 4.25}, + {"matrix": [9, 6], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 15, "y": 4.25}, + {"matrix": [9, 8], "x": 16, "y": 4.25}, + + {"matrix": [4, 2], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 5, "y": 5.25}, + {"matrix": [4, 7], "x": 6, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 8.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 11, "y": 5.25}, + {"matrix": [10, 3], "x": 12, "y": 5.25}, + {"matrix": [10, 4], "x": 13, "y": 5.25}, + {"matrix": [10, 6], "x": 14, "y": 5.25}, + {"matrix": [10, 7], "x": 15, "y": 5.25}, + {"matrix": [10, 8], "x": 16, "y": 5.25} + ] + }, + "LAYOUT_80_iso_with_macro": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + {"matrix": [11, 8], "x": 18.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + {"matrix": [6, 8], "x": 18.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"matrix": [7, 8], "x": 18.25, "y": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 6], "x": 16, "y": 3.25}, + {"matrix": [7, 7], "x": 17, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [8, 8], "x": 18.25, "y": 3.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 4.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + {"matrix": [9, 8], "x": 18.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25}, + {"matrix": [10, 8], "x": 18.25, "y": 5.25} + ] + }, + "LAYOUT_80_with_macro": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + {"matrix": [11, 8], "x": 18.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + {"matrix": [6, 8], "x": 18.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"matrix": [7, 7], "x": 16.75, "y": 2.25, "w": 1.5}, + {"matrix": [7, 8], "x": 18.25, "y": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 7], "x": 16, "y": 3.25, "w": 2.25}, + {"matrix": [8, 8], "x": 18.25, "y": 3.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 2.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + {"matrix": [9, 8], "x": 18.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25}, + {"matrix": [10, 8], "x": 18.25, "y": 5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + {"matrix": [11, 8], "x": 18.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + {"matrix": [6, 8], "x": 18.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"matrix": [7, 7], "x": 16.75, "y": 2.25, "w": 1.5}, + {"matrix": [7, 8], "x": 18.25, "y": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 6], "x": 16, "y": 3.25}, + {"matrix": [8, 7], "x": 17, "y": 3.25, "w": 1.25}, + {"matrix": [8, 8], "x": 18.25, "y": 3.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 4.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + {"matrix": [9, 8], "x": 18.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25}, + {"matrix": [10, 8], "x": 18.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/keebio/sinc/rev4/mcuconf.h b/keyboards/keebio/sinc/rev4/mcuconf.h new file mode 100644 index 00000000000..8b26af41319 --- /dev/null +++ b/keyboards/keebio/sinc/rev4/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/keebio/sinc/rev4/rules.mk b/keyboards/keebio/sinc/rev4/rules.mk new file mode 100644 index 00000000000..161ec22b16e --- /dev/null +++ b/keyboards/keebio/sinc/rev4/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor diff --git a/keyboards/keebio/stick/config.h b/keyboards/keebio/stick/config.h index d36d39703b4..b7df7925abd 100644 --- a/keyboards/keebio/stick/config.h +++ b/keyboards/keebio/stick/config.h @@ -17,25 +17,9 @@ along with this program. If not, see . #pragma once -/* WS2812 RGB LED */ -# define RGBLED_NUM 12 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE // RGB Matrix # ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 12 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects @@ -85,5 +69,3 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # endif - -#define TAPPING_TERM 200 diff --git a/keyboards/keebio/stick/info.json b/keyboards/keebio/stick/info.json index d566e3df745..cc151647a02 100644 --- a/keyboards/keebio/stick/info.json +++ b/keyboards/keebio/stick/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "encoder": { "rotary": [ @@ -17,6 +17,24 @@ {"pin_a": "D4", "pin_b": "C6"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/tukey/config.h b/keyboards/keebio/tukey/config.h index 54d3f668a73..436f111fcf8 100644 --- a/keyboards/keebio/tukey/config.h +++ b/keyboards/keebio/tukey/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keebio/tukey/info.json b/keyboards/keebio/tukey/info.json index 3c4951b407e..9df46b0c1e1 100644 --- a/keyboards/keebio/tukey/info.json +++ b/keyboards/keebio/tukey/info.json @@ -8,6 +8,23 @@ "pid": "0x1112", "device_version": "1.0.0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/viterbi/rev1/config.h b/keyboards/keebio/viterbi/rev1/config.h index 1dfed1a82f4..18b5d426e43 100644 --- a/keyboards/keebio/viterbi/rev1/config.h +++ b/keyboards/keebio/viterbi/rev1/config.h @@ -21,7 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 14 -#define RGBLED_SPLIT { 7, 7 } diff --git a/keyboards/keebio/viterbi/rev1/info.json b/keyboards/keebio/viterbi/rev1/info.json index 01ec06bc512..a003331f25d 100644 --- a/keyboards/keebio/viterbi/rev1/info.json +++ b/keyboards/keebio/viterbi/rev1/info.json @@ -7,6 +7,10 @@ "pid": "0x1157", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 14, + "split_count": [7, 7] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/viterbi/rev2/config.h b/keyboards/keebio/viterbi/rev2/config.h index 56151a00281..010fcffc9ba 100644 --- a/keyboards/keebio/viterbi/rev2/config.h +++ b/keyboards/keebio/viterbi/rev2/config.h @@ -23,7 +23,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 14 -#define RGBLED_SPLIT { 7, 7 } diff --git a/keyboards/keebio/viterbi/rev2/info.json b/keyboards/keebio/viterbi/rev2/info.json index 10f36652ab2..88ab2cd1374 100644 --- a/keyboards/keebio/viterbi/rev2/info.json +++ b/keyboards/keebio/viterbi/rev2/info.json @@ -16,6 +16,10 @@ "pin": "B6", "levels": 7 }, + "rgblight": { + "led_count": 14, + "split_count": [7, 7] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/wavelet/config.h b/keyboards/keebio/wavelet/config.h index b6d4d647192..2fd8b7d4d04 100644 --- a/keyboards/keebio/wavelet/config.h +++ b/keyboards/keebio/wavelet/config.h @@ -23,6 +23,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs diff --git a/keyboards/keebio/wavelet/info.json b/keyboards/keebio/wavelet/info.json index c40265fc5b4..3b88fcdd771 100644 --- a/keyboards/keebio/wavelet/info.json +++ b/keyboards/keebio/wavelet/info.json @@ -17,6 +17,9 @@ "pin": "B5", "levels": 7 }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keebio/wtf60/config.h b/keyboards/keebio/wtf60/config.h index 70343a37639..44151100a02 100644 --- a/keyboards/keebio/wtf60/config.h +++ b/keyboards/keebio/wtf60/config.h @@ -18,22 +18,6 @@ along with this program. If not, see . #define AUDIO_PIN C6 - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keebio/wtf60/info.json b/keyboards/keebio/wtf60/info.json index ebac7096f7a..a7eb64633c3 100644 --- a/keyboards/keebio/wtf60/info.json +++ b/keyboards/keebio/wtf60/info.json @@ -8,6 +8,24 @@ "pid": "0x1337", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/keebmonkey/kbmg68/config.h b/keyboards/keebmonkey/kbmg68/config.h deleted file mode 100644 index 2d3b3feef7e..00000000000 --- a/keyboards/keebmonkey/kbmg68/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2022 Your Mom Loves My Keyboard - * - * This 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 RGBLED_NUM 68 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/keebmonkey/kbmg68/info.json b/keyboards/keebmonkey/kbmg68/info.json index 89bb9f7690e..b56a61f4804 100644 --- a/keyboards/keebmonkey/kbmg68/info.json +++ b/keyboards/keebmonkey/kbmg68/info.json @@ -8,6 +8,24 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 68, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/keebsforall/coarse60/config.h b/keyboards/keebsforall/coarse60/config.h index 20493f173c5..a9cd3b03b06 100644 --- a/keyboards/keebsforall/coarse60/config.h +++ b/keyboards/keebsforall/coarse60/config.h @@ -25,23 +25,11 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 14 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 -#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 - // 2 bits for 4 layout options #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebsforall/coarse60/info.json b/keyboards/keebsforall/coarse60/info.json index 11ec69872f8..11ef47d2cc6 100644 --- a/keyboards/keebsforall/coarse60/info.json +++ b/keyboards/keebsforall/coarse60/info.json @@ -23,6 +23,21 @@ "levels": 6, "breathing": true }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/keebsforall/coarse60/rules.mk b/keyboards/keebsforall/coarse60/rules.mk index e353d7863f1..33b9c9f1591 100644 --- a/keyboards/keebsforall/coarse60/rules.mk +++ b/keyboards/keebsforall/coarse60/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keebwerk/mega/ansi/ansi.c b/keyboards/keebwerk/mega/ansi/ansi.c index 532cdec9aa9..4494ffd9ffe 100755 --- a/keyboards/keebwerk/mega/ansi/ansi.c +++ b/keyboards/keebwerk/mega/ansi/ansi.c @@ -36,7 +36,7 @@ uint8_t B = 0; // } else { // G = 0; // } -// IS31FL3733_set_color( 6+64-1, R, G, B ); +// is31fl3733_set_color( 6+64-1, R, G, B ); // } // return res; // } @@ -54,6 +54,6 @@ __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { if (IS_LAYER_ON_STATE(layer_state, 3)) { B = 255; } - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); return state; } diff --git a/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c b/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c index a9b1dec281c..2b5d658f02a 100644 --- a/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c +++ b/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c @@ -77,25 +77,25 @@ bool bootAnimation(void){ G = 255; R = 0; B = 0; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); } if (timer_elapsed(ledTimer) > 300){ G = 255; R = 255; B = 0; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); } if (timer_elapsed(ledTimer) > 400){ G = 255; R = 255; B = 255; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); } if (timer_elapsed(ledTimer) > 500){ G = 0; R = 0; B = 0; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); ledTimer = timer_read(); bootFirst--; } @@ -105,13 +105,13 @@ bool bootAnimation(void){ G = 255; R = 255; B = 255; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); } if (timer_elapsed(ledTimer) > 400){ G = 0; R = 0; B = 0; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); ledTimer = timer_read(); bootSec--; } @@ -129,7 +129,7 @@ void breathing(void) { G+=fadeStep; R+=fadeStep; B+=fadeStep; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); previousTime = time; } } @@ -139,7 +139,7 @@ void breathing(void) { G-=fadeStep; R-=fadeStep; B-=fadeStep; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); previousTime = time; } } @@ -147,7 +147,7 @@ void breathing(void) { R=0; G=0; B=0; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); previousTime = 0; time = 0; ledTimer=timer_read(); @@ -169,7 +169,7 @@ void matrix_scan_user(void){ G = 0; R = 0; B = 0; - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); prevCapsState = capsState; } } diff --git a/keyboards/keebwerk/nano_slider/config.h b/keyboards/keebwerk/nano_slider/config.h index 2d9f98c167b..b5a1f0e3e52 100644 --- a/keyboards/keebwerk/nano_slider/config.h +++ b/keyboards/keebwerk/nano_slider/config.h @@ -19,23 +19,6 @@ along with this program. If not, see . #define SLIDER_PIN D4 -# define RGBLED_NUM 4 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /*== all animations 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keebwerk/nano_slider/info.json b/keyboards/keebwerk/nano_slider/info.json index 7c067c6f999..fffbd7701bc 100644 --- a/keyboards/keebwerk/nano_slider/info.json +++ b/keyboards/keebwerk/nano_slider/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/keebwerk/nano_slider/keymaps/via/via.json b/keyboards/keebwerk/nano_slider/keymaps/via/via.json deleted file mode 100644 index 553ea4aa999..00000000000 --- a/keyboards/keebwerk/nano_slider/keymaps/via/via.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "Keebwerks Nano Slider", - "vendorId": "0x03A8", - "productId": "0x0000", - "lighting": "none", - "matrix": { - "rows": 2, - "cols": 4 - }, - "layouts": { - "keymap": [ - [ - "1,1" - ], - [ - { - "y": 0.25 - }, - "1,2", - "1,0", - "0,0", - { - "h": 2 - }, - "1,3" - ], - [ - "0,1", - "0,2", - "0,3" - ] - ] - } -} \ No newline at end of file diff --git a/keyboards/kegen/gboy/config.h b/keyboards/kegen/gboy/config.h deleted file mode 100644 index 2b008e5ca75..00000000000 --- a/keyboards/kegen/gboy/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2022 Matt Chan - * - * This 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/kegen/gboy/info.json b/keyboards/kegen/gboy/info.json index f66eefd2da9..0e9f0f753d0 100644 --- a/keyboards/kegen/gboy/info.json +++ b/keyboards/kegen/gboy/info.json @@ -17,6 +17,23 @@ "pin": "B7", "levels": 15 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/keybage/radpad/config.h b/keyboards/keybage/radpad/config.h index 5146b6ee13e..83fd7fcb3f7 100644 --- a/keyboards/keybage/radpad/config.h +++ b/keyboards/keybage/radpad/config.h @@ -17,19 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 16 - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - /* OLED Configuration */ #ifdef OLED_ENABLE #define OLED_TIMEOUT 60000 diff --git a/keyboards/keybage/radpad/info.json b/keyboards/keybage/radpad/info.json index 2d8e566a792..4ee89e9b184 100644 --- a/keyboards/keybage/radpad/info.json +++ b/keyboards/keybage/radpad/info.json @@ -22,6 +22,22 @@ "bootmagic": { "matrix": [1, 3] }, + "rgblight": { + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/keybage/radpad/rules.mk b/keyboards/keybage/radpad/rules.mk index 18b77f249ec..f1e31ddbdcc 100644 --- a/keyboards/keybage/radpad/rules.mk +++ b/keyboards/keybage/radpad/rules.mk @@ -12,5 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes diff --git a/keyboards/keybee/keybee65/config.h b/keyboards/keybee/keybee65/config.h index 9e32a8b1699..5c89632272c 100644 --- a/keyboards/keybee/keybee65/config.h +++ b/keyboards/keybee/keybee65/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . // The number of LEDs connected #define RGB_MATRIX_LED_COUNT 68 -#define RGB_VAL_STEP 12 #define RGB_MATRIX_KEYPRESSES #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/keybee/keybee65/info.json b/keyboards/keybee/keybee65/info.json index af92a14a681..7ec1979c088 100644 --- a/keyboards/keybee/keybee65/info.json +++ b/keyboards/keybee/keybee65/info.json @@ -12,7 +12,7 @@ "pin": "B0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { "max_brightness": 96 diff --git a/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/config.h b/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/config.h new file mode 100644 index 00000000000..0fa53c2d678 --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/config.h @@ -0,0 +1,45 @@ +/* Copyright 2023 @PoweredByPorridge + * + * This 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 AUTO_SHIFT_TIMEOUT 210 + +#define NO_AUTO_SHIFT_NUMERIC +// #define NO_AUTO_SHIFT_SPECIAL + +// retro shift is auto shift on home row mods +// I no longer use home row mods, but do find this setting helps +// avoid 'fat fingered' keypresses. + +// If RETRO_SHIFT is defined to a value, hold times greater +// than that value will not produce a tap on release. This enables +// modifiers to be held for combining with mouse clicks without +// generating taps on release. +#define RETRO_SHIFT 425 + +// can also be defined without a value +// #define RETRO_SHIFT + +// Configure the global tapping term (default: 200ms) +// Lower than 210 and I can't tap dance brackets without a run up. +#define TAPPING_TERM 210 + +#define TAPPING_TERM_PER_KEY + +// Apply the modifier on keys that are tapped during a short hold of a modtap +// Prevents slurred typing (of home row mods) +#define PERMISSIVE_HOLD diff --git a/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/keymap.c b/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/keymap.c new file mode 100644 index 00000000000..40c8b0b5aad --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/keymap.c @@ -0,0 +1,224 @@ +/* Copyright 2023 @PoweredByPorridge + * + * This 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 + +// Tap Dance keycodes +enum td_keycodes { + L_BRAX, // Used in the keymap, add additional keycodes for each tapdance. + R_BRAX, + QUOTS, + TACHE +}; + +// Define a type containing as many tapdance states as you need +typedef enum { + SINGLE_TAP, + DOUBLE_TAP, // SINGLE_HOLD, + TRIPLE_TAP // DOUBLE_SINGLE_TAP +} td_state_t; + +// Create a global instance of the tapdance state type +static td_state_t td_state; + +// Declare your tapdance functions: + +// Function to determine the current tapdance state +uint8_t cur_dance(tap_dance_state_t *state); + +// `finished` and `reset` functions for each tapdance keycode +void lbrax_finished(tap_dance_state_t *state, void *user_data); +void lbrax_reset(tap_dance_state_t *state, void *user_data); + +void rbrax_finished(tap_dance_state_t *state, void *user_data); +void rbrax_reset(tap_dance_state_t *state, void *user_data); + +void quots_finished(tap_dance_state_t *state, void *user_data); +void quots_reset(tap_dance_state_t *state, void *user_data); + +void tache_finished(tap_dance_state_t *state, void *user_data); +void tache_reset(tap_dance_state_t *state, void *user_data); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NUBS, KC_SLSH, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, + LCTL_T(KC_ESC), KC_LALT, KC_LGUI, KC_LSFT, MO(1), KC_SPC, KC_SPC, MO(2), TD(QUOTS), KC_RSFT, KC_LALT, LCTL_T(KC_TAB)), + + [1] = LAYOUT(KC_EXLM, KC_DQUO, LSFT(KC_3), KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_DEL, KC_BSPC, + KC_F24, LALT(KC_F3), KC_NO, KC_NO, TD(L_BRAX), TD(R_BRAX), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + LCTL(KC_F12), LALT(KC_X), KC_NO, KC_NO, KC_NO, TD(QUOTS), TD(TACHE), KC_MINS, KC_EQL, KC_COMM, KC_DOT, KC_ENT, + KC_TRNS, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LSFT(KC_TAB)), + + [2] = LAYOUT(KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_NO, LALT(KC_F3), KC_NO, KC_NO, TD(L_BRAX), TD(R_BRAX), KC_HOME, KC_PGDN, KC_PGUP, KC_END, + LCTL(KC_F12), LALT(KC_X), KC_NO, KC_NO, KC_NO, TD(QUOTS), TD(TACHE), KC_MINS, KC_EQL, KC_COMM, KC_DOT, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_TRNS), + + [3] = LAYOUT(KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + AS_TOGG, KC_F24, KC_NO, KC_NO, KC_NO, KC_NO, LSA(KC_LEFT), LSA(KC_DOWN), LSA(KC_UP), LSA(KC_RGHT), + KC_LCTL, LALT(KC_DEL),KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, KC_NO, KC_F12, KC_F13, KC_F14, KC_NO, + KC_TRNS, KC_F23, KC_LCTL, KC_NO, KC_TRNS, KC_NO, KC_VOLD, KC_MPLY, KC_LSFT, KC_NO, KC_NO, KC_TRNS) +}; + +/* +Notes on keys +or, why on earth do I have keymap +lower-shift-z is CTRL-F12 - Darkroom mode in emacs +lower-x is ALT-X - emacs +layer3-a is toggle autoshift +layer3-s is F24 - i3 controls popup reminder +lower-s is ALT-F3 - multi-select in Sublime text +*/ + + +// Determine the tapdance state to return +uint8_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + return SINGLE_TAP; + } else if (state->count == 2) { + return DOUBLE_TAP; + } else if (state->count == 3) { + return TRIPLE_TAP; + } else { + reset_tap_dance (state); + return 3; + } +} + + +// Handle the possible states for each tapdance keycode you define: + +void lbrax_finished(tap_dance_state_t *state, void *user_data) { + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + register_code16(LSFT(KC_9)); + break; + case DOUBLE_TAP: + register_code16(KC_LBRC); + break; + case TRIPLE_TAP: + register_code16(LSFT(KC_LBRC)); + } +} + +void lbrax_reset(tap_dance_state_t *state, void *user_data) { + switch (td_state) { + case SINGLE_TAP: + unregister_code16(LSFT(KC_9)); + break; + case DOUBLE_TAP: + unregister_code16(KC_LBRC); + break; + case TRIPLE_TAP: + unregister_code16(LSFT(KC_LBRC)); + } +} + +// Handle the possible states for each tapdance keycode you define: + +void rbrax_finished(tap_dance_state_t *state, void *user_data) { + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + register_code16(LSFT(KC_0)); + break; + case DOUBLE_TAP: + register_code16(KC_RBRC); + break; + case TRIPLE_TAP: + register_code16(LSFT(KC_RBRC)); + } +} + + +void rbrax_reset(tap_dance_state_t *state, void *user_data) { + switch (td_state) { + case SINGLE_TAP: + unregister_code16(LSFT(KC_0)); + break; + case DOUBLE_TAP: + unregister_code16(KC_RBRC); + break; + case TRIPLE_TAP: + unregister_code16(LSFT(KC_RBRC)); + } +} + +void quots_finished(tap_dance_state_t *state, void *user_data) { + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + register_code16(KC_QUOT); + break; + case DOUBLE_TAP: + register_code16(KC_AT); + break; + case TRIPLE_TAP: + register_code16(KC_DQUO); + } +} + +void quots_reset(tap_dance_state_t *state, void *user_data) { + switch (td_state) { + case SINGLE_TAP: + unregister_code16(KC_QUOT); + break; + case DOUBLE_TAP: + unregister_code16(KC_AT); + break; + case TRIPLE_TAP: + unregister_code16(KC_DQUO); + } +} + +void tache_finished(tap_dance_state_t *state, void *user_data) { + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + register_code16(KC_NUHS); + break; + case DOUBLE_TAP: + + register_code16(LSFT(KC_NUHS)); + break; + case TRIPLE_TAP: + register_code16(KC_GRV); + } +} + +void tache_reset(tap_dance_state_t *state, void *user_data) { + switch (td_state) { + case SINGLE_TAP: + unregister_code16(KC_NUHS); + break; + case DOUBLE_TAP: + unregister_code16(LSFT(KC_NUHS)); + break; + case TRIPLE_TAP: + unregister_code16(KC_GRV); + } +} + +// Define `ACTION_TAP_DANCE_FN_ADVANCED()` for each tapdance keycode, passing in `finished` and `reset` functions + +tap_dance_action_t tap_dance_actions[] = { + [L_BRAX] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lbrax_finished, lbrax_reset), + [R_BRAX] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rbrax_finished, rbrax_reset), + [QUOTS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, quots_finished, quots_reset), + [TACHE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tache_finished, tache_reset) +}; diff --git a/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/readme.md b/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/readme.md new file mode 100644 index 00000000000..619654186de --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/readme.md @@ -0,0 +1,35 @@ +# Keyboardio Atreus with an SLF layout from PoweredByPorridge + +SLF stands for [Stiff Little Fingers](https://en.wikipedia.org/wiki/Stiff_Little_Fingers) who were a great punk band from Belfast, Northern Ireland. Stiff Little Fingers is also a good way of describing my hands, a condition which I ascribe to too many winters cycling without gloves. So, I need a keyboard and layout to cope. + +I use a Keyboardio Atreus, in fact, they're so good, I use two. I tried all sorts of layouts, and finally came up with the one that suits my stiff fingers. + +It has four layers: + +0 - Normal - letters and punctuation. + +![layer 0](https://i.imgur.com/3Z8PZtI.png) + +1 - Symbols (shifted numbers), arrow keys, assorted function keys, Del and Backspace. + +![layer 1](https://i.imgur.com/9rJalxV.png) + +2 - Numbers, page up, page down, home, and end. Similar assorted functions. + +![layer 2](https://i.imgur.com/TYY11b5.png) + +3 - F1 to F14, play/pause, volume up/down, Left-shift-Alt left, right, up, down. + +![layer 3](https://i.imgur.com/MuWNPTz.png) + +Autoshift is important, I use it all the time. + +I use tap dance (one, two, or three key presses) for: + +* Braces, brackets, and curly brackets. TD(L_BRAX) and TD(R_BRAX) +* Hash (pound), tilde, and backtick. TD(TACHE) +* Single quote, double quote, and @. TD(QUOTS) + +There are odd keys that are there for a particular reason: +* F24 - my [I3](https://i3wm.org/) popup to remind me of stuff I always forget. +* Alt-shift-left/right/up/down - multi-select in Sublime text. \ No newline at end of file diff --git a/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/rules.mk b/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/rules.mk new file mode 100644 index 00000000000..3285414f97d --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/poweredbyporridge/rules.mk @@ -0,0 +1,7 @@ +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +UNICODE_ENABLE = no +AUTO_SHIFT_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/keyboardio/atreus/keymaps/slotthe/autocorrect_data.h b/keyboards/keyboardio/atreus/keymaps/slotthe/autocorrect_data.h new file mode 100644 index 00000000000..155b1fbc540 --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/slotthe/autocorrect_data.h @@ -0,0 +1,44 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* + 88888888888 888 d8b .d888 d8b 888 d8b + 888 888 Y8P d88P" Y8P 888 Y8P + 888 888 888 888 + 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b + 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K + 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b. + 888 888 888 888 X88 888 888 888 Y8b. 888 X88 + 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P' + 888 888 + 888 888 + 888 888 + .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888 + d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888 + 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888 + Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888 + "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888 + 888 + Y8b d88P + "Y88P" +*******************************************************************************/ + +#pragma once + +// Autocorrection dictionary (4 entries): +// :alot -> a lot +// accesories -> accessories +// accomodate -> accommodate +// alledge -> allege + +#define AUTOCORRECT_MIN_LENGTH 5 // ":alot" +#define AUTOCORRECT_MAX_LENGTH 10 // "accesories" +#define DICTIONARY_SIZE 73 + +static const uint8_t autocorrect_data[DICTIONARY_SIZE] PROGMEM = { + 0x48, 0x0A, 0x00, 0x16, 0x2C, 0x00, 0x17, 0x3E, 0x00, 0x00, 0x4A, 0x11, 0x00, 0x17, 0x1B, 0x00, + 0x00, 0x07, 0x08, 0x0F, 0x0F, 0x04, 0x00, 0x82, 0x67, 0x65, 0x00, 0x04, 0x07, 0x12, 0x10, 0x12, + 0x06, 0x06, 0x04, 0x00, 0x84, 0x6D, 0x6F, 0x64, 0x61, 0x74, 0x65, 0x00, 0x08, 0x0C, 0x15, 0x12, + 0x16, 0x08, 0x06, 0x06, 0x04, 0x00, 0x84, 0x73, 0x6F, 0x72, 0x69, 0x65, 0x73, 0x00, 0x12, 0x0F, + 0x04, 0x2C, 0x00, 0x82, 0x20, 0x6C, 0x6F, 0x74, 0x00 +}; diff --git a/keyboards/keyboardio/atreus/keymaps/slotthe/config.h b/keyboards/keyboardio/atreus/keymaps/slotthe/config.h new file mode 100644 index 00000000000..26235c9d916 --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/slotthe/config.h @@ -0,0 +1,19 @@ +/* © 2023 Tony Zorman (@slotThe) + * + * This 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 3 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 . + */ + +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD +#define TAPPING_TERM 175 +#define HOLD_ON_OTHER_KEY_PRESS diff --git a/keyboards/keyboardio/atreus/keymaps/slotthe/keymap.c b/keyboards/keyboardio/atreus/keymaps/slotthe/keymap.c new file mode 100644 index 00000000000..6188f14ab97 --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/slotthe/keymap.c @@ -0,0 +1,328 @@ +/* © 2023 Tony Zorman (@slotThe) + * + * This 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 3 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 + +// NOTE: `M-x occur RET /// RET' gives a good overview. + +/// General macros + +#define LSPR_SC LGUI_T(KC_SCLN) +#define LALT_BR LALT_T(KC_LBRC) +#define LSFT_INS LSFT(KC_INS) +#define OSMSFT OSM(MOD_LSFT) +#define Z_SFT LSFT_T(KC_Z) +#define ZE_SFT LSFT_T(KC_0) +#define SL_SFT RSFT_T(KC_SLSH) +#define RETSPR LGUI_T(KC_ENT) + +/// Tap dance declarations + +// So far, tap dances do different things on +// +// - a single press, +// - a double press, +// - when held, +// +// so expect this many keys as comments. +enum tap_dances { + ALT_BR, // [ ] lalt (also works shifted, which gets us { and } for free) + CTL_PR, // ( ) lctl + SFT_CI, // ^ ^ lsft (working around LSFT_T not being able to output shifted keys) + SFT_EX, // ! ! lsft (ditto) +}; + +#define CTLPAR TD(CTL_PR) +#define ALTBRC TD(ALT_BR) +#define SFTCRC TD(SFT_CI) +#define SFTEXL TD(SFT_EX) + +/// Macro declarations + +enum custom_keycodes { + // -> <- =<< >>= <*> <* *> <$> <&> <|> => :: + RARR = SAFE_RANGE, LARR, LBND, RBND, APP, RAPP, LAPP, FMAP, PAMF, AALT, IMPLS, DCOL, +}; + +/// Key overrides + +const key_override_t **key_overrides = (const key_override_t *[]){ + &ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL), // S-BSP ≡ DEL + // Emacs got me used to these, so let's convince other programs that + // we are in fact sending the correct keys. + &ko_make_basic(MOD_MASK_CTRL, KC_I, KC_TAB), // C-i ≡ Tab + &ko_make_basic(MOD_MASK_CTRL, KC_M, KC_ENT), // C-m ≡ Return + NULL // Null terminate the array of overrides +}; + +/// Layers + +enum layer_names { _COLEMAK_DH, _LOWER, _RAISE, _ADJUST }; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) +#define D_RAISE LT(_RAISE, KC_DOT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Colemak base layer + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | Q | W | F | P | B | | J | L | U | Y | ;+S | + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | A | R | S | T | G | | M | N | E | I | O | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | S+Z | X | C | D | V | ARP | REP | K | H | , | . | S+/ | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | ESC | TAB | SPR | L1 | SPC | A[] | BSC | C() | L2 | - | ' | RET | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + */ + [_COLEMAK_DH] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, LSPR_SC, + KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, + Z_SFT, KC_X, KC_C, KC_D, KC_V, QK_AREP, QK_REP, KC_K, KC_H, KC_COMM, D_RAISE, SL_SFT, + KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_SPC, ALTBRC, KC_BSPC, CTLPAR, RAISE, KC_MINS, KC_QUOT, KC_ENT), + + /* Layer 1 (LOWER) + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-------. + | & | *> | >>= | <&> | | | = | + | * | - | RET+M | + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-------. + | :: | => | =<< | <|> | @ | | LFT | UP | DWN | RGT | \ | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-------. + | !+S | <* | <*> | <$> | <- | | MEN | -> | $ | # | % | ^+S | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-------. + | | | | | | | | | L3 | ALT | | S-I | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-------. + */ + [_LOWER] = LAYOUT( + KC_AMPR, RAPP, RBND, PAMF, _______, KC_EQL, KC_PLUS, KC_ASTR, KC_MINS, RETSPR, + DCOL, IMPLS, LBND, AALT, KC_AT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BSLS, + SFTEXL, LAPP, APP, FMAP, LARR, _______, KC_APP, RARR, KC_DLR, KC_HASH, KC_PERC, SFTCRC, + _______, _______, _______, _______, _______, _______, _______, _______, ADJUST, KC_LALT, _______, LSFT_INS), + + /* Layer 2 (RAISE) + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | | 7 | 8 | 9 | | | | + | * | - | | + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | : | 4 | 5 | 6 | = | | & | ` | _ | ' | " | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | 0+S | 1 | 2 | 3 | | | | | ! | # | % | ^+S | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | | | | L3 | | | | | | | | | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + */ + [_RAISE] = LAYOUT( + KC_DOT, KC_7, KC_8, KC_9, _______, _______, KC_PLUS, KC_ASTR, KC_MINS, _______, + KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_AMPR, KC_GRV, KC_UNDS, KC_QUOT, KC_DQT, + ZE_SFT, KC_1, KC_2, KC_3, _______, _______, _______, _______, KC_EXLM, KC_HASH, KC_PERC, SFTCRC, + _______, _______, _______, ADJUST, _______, _______, _______, _______, _______, _______, _______, _______), + + /* Layer 3 (ADJUST) + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | | | | | | | | F7 | F8 | F9 | F10 | + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | | | | | | | | F4 | F5 | F6 | F11 | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | | | | | | | | | F1 | F2 | F3 | F12 | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | | | | | | | | | | | | | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, AC_TOGG, _______, KC_F7, KC_F8, KC_F9, KC_F10, + _______, _______, _______, _______, _______, _______, KC_F4, KC_F5, KC_F6, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +/// Macro definitions + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RARR: + if (record->event.pressed) SEND_STRING("->"); break; + case LARR: + if (record->event.pressed) SEND_STRING("<-"); break; + case LBND: + if (record->event.pressed) SEND_STRING("=<<"); break; + case RBND: + if (record->event.pressed) SEND_STRING(">>="); break; + case APP: + if (record->event.pressed) SEND_STRING("<*>"); break; + case RAPP: + if (record->event.pressed) SEND_STRING("*>"); break; + case LAPP: + if (record->event.pressed) SEND_STRING("<*"); break; + case FMAP: + if (record->event.pressed) SEND_STRING("<$>"); break; + case PAMF: + if (record->event.pressed) SEND_STRING("<&>"); break; + case AALT: + if (record->event.pressed) SEND_STRING("<|>"); break; + case IMPLS: + if (record->event.pressed) SEND_STRING("=>"); break; + case DCOL: + if (record->event.pressed) SEND_STRING("::"); break; + } + return true; +}; + +//// Tap dance definitions + +// Heavily inspired by: +// +// https://docs.qmk.fm/?ref=blog.splitkb.com#/feature_tap_dance?id=example-4 + +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; + +// Return an integer that corresponds to what kind of tap dance should +// be executed. +// +// Interrupted: If the state of a dance is "interrupted", that means +// that another key has been hit under the tapping term. +// +// Pressed: Whether or not the key is still being pressed. If this value +// is true, that means the tapping term has ended, but the key is still +// being pressed down. This generally means the key is being "held". +td_state_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + if (state->pressed) return TD_SINGLE_HOLD; + else return TD_SINGLE_TAP; + } else if (state->count == 2) return TD_DOUBLE_TAP; + else return TD_UNKNOWN; +} + +//// ALT_BR + +static td_tap_t alt_br_state = { + .is_press_action = true, + .state = TD_NONE +}; + +void lalt_br_finished(tap_dance_state_t *state, void *user_data) { + alt_br_state.state = cur_dance(state); + switch (alt_br_state.state) { + case TD_SINGLE_TAP: register_code(KC_LBRC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: register_code(KC_RBRC); break; + default: break; + } +} + +void lalt_br_reset(tap_dance_state_t *state, void *user_data) { + switch (alt_br_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_LBRC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + case TD_DOUBLE_TAP: unregister_code(KC_RBRC); break; + default: break; + } + alt_br_state.state = TD_NONE; +} + +//// LCTL_PR + +static td_tap_t lctl_pr_state = { + .is_press_action = true, + .state = TD_NONE +}; + +void lctl_pr_finished(tap_dance_state_t *state, void *user_data) { + lctl_pr_state.state = cur_dance(state); + switch (lctl_pr_state.state) { + case TD_SINGLE_TAP: register_code16(KC_LPRN); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: register_code16(KC_RPRN); break; + default: break; + } +} + +void lctl_pr_reset(tap_dance_state_t *state, void *user_data) { + switch (lctl_pr_state.state) { + case TD_SINGLE_TAP: unregister_code16(KC_LPRN); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + case TD_DOUBLE_TAP: unregister_code16(KC_RPRN); break; + default: break; + } + lctl_pr_state.state = TD_NONE; +} + +//// SFT_CI + +static td_tap_t lsft_ci_state = { + .is_press_action = true, + .state = TD_NONE +}; + +void lsft_ci_finished(tap_dance_state_t *state, void *user_data) { + lsft_ci_state.state = cur_dance(state); + switch (lsft_ci_state.state) { + case TD_SINGLE_TAP: register_code16(KC_CIRC); break; + case TD_SINGLE_HOLD: register_code(KC_LSFT); break; + default: break; + } +} + +void lsft_ci_reset(tap_dance_state_t *state, void *user_data) { + switch (lsft_ci_state.state) { + case TD_SINGLE_TAP: unregister_code16(KC_CIRC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LSFT); break; + default: break; + } + lsft_ci_state.state = TD_NONE; +} + +//// SFT_EX + +static td_tap_t lsft_ex_state = { + .is_press_action = true, + .state = TD_NONE +}; + +void lsft_ex_finished(tap_dance_state_t *state, void *user_data) { + lsft_ex_state.state = cur_dance(state); + switch (lsft_ex_state.state) { + case TD_SINGLE_TAP: register_code16(KC_EXLM); break; + case TD_SINGLE_HOLD: register_code(KC_LSFT); break; + default: break; + } +} + +void lsft_ex_reset(tap_dance_state_t *state, void *user_data) { + switch (lsft_ex_state.state) { + case TD_SINGLE_TAP: unregister_code16(KC_EXLM); break; + case TD_SINGLE_HOLD: unregister_code(KC_LSFT); break; + default: break; + } + lsft_ex_state.state = TD_NONE; +} + +//// Actually define the tap-dance actions + +tap_dance_action_t tap_dance_actions[] = { + [ALT_BR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lalt_br_finished, lalt_br_reset), + [CTL_PR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lctl_pr_finished, lctl_pr_reset), + [SFT_CI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lsft_ci_finished, lsft_ci_reset), + [SFT_EX] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lsft_ex_finished, lsft_ex_reset), +}; diff --git a/keyboards/keyboardio/atreus/keymaps/slotthe/readme.md b/keyboards/keyboardio/atreus/keymaps/slotthe/readme.md new file mode 100644 index 00000000000..d83bce1d2f2 --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/slotthe/readme.md @@ -0,0 +1,251 @@ +# SlotThe's Keyboardio Atreus Keymap + +Note: the following is (a relevant and shortened) excerpt from [this +rewiev](https://tony-zorman.com/posts/atreus-review.html) of the +keyboard itself. See there for, e.g., some thoughts about modifier +placement. + +## Base layer + + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.------. + | Q | W | F | P | B | | J | L | U | Y | M4+; | + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.------. + | A | R | S | T | G | | M | N | E | I | O | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.------. + | S+Z | X | C | D | V | ARP | REP | K | H | , | . | S+/ | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.------. + | ESC | TAB | M4 | L1 | SPC | A[] | BSC | C() | L2 | - | ' | RET | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.------. + +I use [Colemak Mod-DH][colemak-dh] as my layout, so this takes up most of the base of the keyboard. + +Perhaps strikingly, I opted for not putting Shift on the thumb, +but recreating the "ordinary" one-on-each-side setup from the good old typewriter days. +While I already have a key to access the `LOWER` (L1) layer with my left thumb, +I had to sacrifice Shift so I could fit a key to the `RAISE` (L2) layer on the right thumb. +This also jumps to the `ADJUST` (L3) layer when both `LOWER` and `RAISE` are held at the same time. +I will gladly trade two layers for one Shift key. + +One of the most basic things—besides having layers—that one can do with QMK is [mod-taps][qmk:mod-tap]. +These are keys that act as modifiers when held, and as "ordinary" keys when pressed. +For example, all of the `S+«key»` keys emit Shift when held and `«key»` when pressed. +There is a slight delay between pressing the key and the press registering, +since we have to wait for a possible tap, +which keeps me from using modifiers on the home-row, as some people like to do. +Likewise, the `M4+;` key acts as Super when held and as `;` when pressed. +At this point, it is actually my main way to press the Super key, +even though I don't find the real `M4` key particularly hard to hit with my thumb. +Sometimes these things just happen, +I suppose, +though it may help that I press both outer keys of the top row (that is, `q` and `;`) with my ring finger +instead of my pinky. + +The `A[]` and `C()` keys are utilising [tap dances][qmk:tap-dance], +in order to do even more. +Tap dances are very similar to mod-taps, +only in addition to just differentiating between a "pressed" and a "held" state, +QMK now also keeps track of *how often* a key has been tapped. +So far, [my setup][qmk:slotthe:tapdances] here is quite basic; +I only check whether a key was pressed once, twice, or is being held. +This allows me to not need extra keys for parentheses, +as they can fit on the modifier keys: + + - `A[]`: Alt when held, `[` when pressed once, and `]` when pressed twice. + This one is especially neat, since tap dances play well with other modifiers, + so pressing `S-M1` once will result in `{` and pressing it twice gives `}`. + + - `C()`: Control when held, `(` when pressed once, and `)` when pressed twice. + +I don't mind having the extra indirection for the respective closed delimiter, +as [paredit][emacs:paredit], +[puni][emacs:puni], +`electric-pair-mode`, +or a different package of choice usually takes care of inserting it. + +The `REP` and `AREP` keys make use of the [Repeat Key][qmk:repeat-key] functionality; +basically, `REP` executes the key chord that was last pressed. +On the other hand, +`AREP` is an alternative, configurable, of "repeating" things; +by default, it turns some directional movements +around—e.g., `M-f` becomes `M-b`—but +it can be made to pretty much input anything one wants. + +## Layer 1 + + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-------. + | & | *> | >>= | <&> | | | = | + | * | - | M4+RT | + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-------. + | :: | => | =<< | <|> | @ | | LFT | UP | DWN | RGT | \ | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-------. + | S+! | <* | <*> | <$> | <- | | MEN | -> | $ | # | % | S+^ | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-------. + | | | | | | | | | L3 | ALT | | S-Ins | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-------. + +Guess which programming language I like based on this layer's [macros][qmk:macros] :). + +Crucially, keys that were "Shift when held, +*something* when pressed" on the base layer retain the Shift part of that functionality. +This is used for the commutativity of the modifier +keys—i.e., it does not matter whether I press `S-L1-«key»` or `L1-S-«key»`—which +would otherwise drive me insane. +The same goes for all fall-through keys: +keys that appear blank in the above layout. +These aren't blocked or anything, +just no new functionality is added +so the key falls back to what's on the next lowest layer. +In plain terms, +the key to the left of `L3` will still be Control, +as I can comfortably press that while holding down something with my left hand. +The same can't be said for the Alt key, +which is on the left hand by default, +so a separate binding for it has to be created on the right hand. +Thus, +as the two don't commute, +key chords involving the LOWER layer and Alt are to be avoided if possible. + +The `S-Ins` key is not some sort of tap, +but actually just emits a Shift-Insert, +which can be used to paste stuff from the [X11 primary selection][x11:clipboard]. + +## Layer 2 + + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | | 7 | 8 | 9 | | | | + | * | - | | + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | : | 4 | 5 | 6 | = | | | ` | _ | ' | " | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | S+0 | 1 | 2 | 3 | | | | | | # | % | S+^ | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | | | | L3 | | | | | | | | | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + +A relatively unspectacular layer, +RAISE is mainly used for numbers, +and number adjacent things. +Some symbols related to this, +like `=`, `+`, `*`, and `-`, +are replicated from the LOWER layer. +This is due to the above mentioned issues of inserting arithmetic. +This layer also features \` and `'` quite prominently, +as these are important for [CDLaTeX]. +Plus, putting `'` and `"` on this layer circumvents the difficult to hit key on the base layer. + +## Layer 3 + + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | | | | | | | | F7 | F8 | F9 | F10 | + .-----.-----.-----.-----.-----. .-----.-----.-----.-----.-----. + | | | | | | | | F4 | F5 | F6 | F11 | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | | | | | | | | | F1 | F2 | F3 | F12 | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + | | | | | | | | | | | | | + .-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----.-----. + +So far, only the seldom used F-keys are present here. +As should be obvious, this is the least developed layer, +and also the one that'll probably change the most in the future. +Currently, I'm thinking of putting some XMonad specific bindings on here, +which could even to free up the Super key to be used inside of Emacs +for certain things—that would certainly be a worthwhile experiment. +Other thoughts include things like volume and brightness controls, +although this is less critical since my laptop keyboard is never far away. + +## Other features + +There are some features that aren't necessarily reflected in the keys themselves, +yet are quite essential for day-to-day use. +The TL;DR can be found in [rules.mk][./rules.mk]. + +### [Key overrides][qmk:key-overrides] + +Quoting from the documentation + +> Key overrides allow you to override modifier-key combinations to send a different modifier-key combination +> or perform completely custom actions. + +Some keys on the keyboard are quite hard to hit. +On the default layout, +one of these turns out to be the Tab key, +which is nonetheless important in a lot of situations. +Conveniently, Emacs interprets `C-i` as Tab, so there is less need to actually hit the "real" key. +However, not all programs are quite so understanding—or old, I guess. +With key overrides, one can send a real `TAB` whenever `C-i` is pressed; +no special convention on how to interpret certain key chords required! +I also rebound `C-m` to `RET` (with the same justification), and `S-BSP` to `DEL`. + +This is one of those features that I didn't know I needed, +yet now couldn't live without anymore. +I'm definitely looking forward to discovering new and interesting ways of using this! + +### [Autocorrect][qmk:autocorrect] + +This is a quaint little feature: auto-correct inside of your keyboard's firmware! +I promise that it's not as bad as it sounds. +It does not work automatically, thankfully, but is based off a given list of replacements. +For example, + + widht -> width + +would fire anytime one writes `widht`, which then gets replaced by `width`. +This is based on (a trie of) the most recently pressed keys, +so whenever one actually wants to write `widht` +all that's needed is pressing, for example, any modifier during the insertion. + +As I've really just been trying this out for a laugh, my current word list is quite short: + + :alot -> a lot + accesories -> accessories + accomodate -> accommodate + alledge -> allege + +In general, +I think the solution to stop misspelling a word is not to remap key sequences on the firmware level, +but to—you know—learn how to spell that word. +Still, +I can imagine at least one or two use-cases where something like this could be useful, +so I figured it might be nice to make people aware of this features' existence. + +In addition—as I've found out on three separate occasions so far—using the words "auto-correct, but in firmware" +makes people stare in utter disbelief and/or disgust at your keyboard. +That alone makes this feature worth it. + +### [Caps Word][qmk:caps-word] + +Caps Word is a clever alternative to Caps Lock, +which I enable by pressing both Shift keys together. +After that, +all of the letter keys are shifted, +and `-` becomes `_` +until a different key (excluding common sense ones like backspace) is pressed. +This is very useful for, e.g., +writing long constants, +as these tend to have capital names separated with underscores: +writing `BOTH_SHIFTS_TURNS_ON_CAPS_WORD` has never been easier! + +One thing to note is that, +while layer switching works just fine in "Caps Word mode", +the [Tri Layer][qmk:tri-layer] feature does not seem to play nicely with it; +i.e., the mode gets disabled when switching to these layers. +This is also the reason why I have an explicit LOWER, RAISE, and ADJUST setup, +instead of just using Tri Layer. +One could fiddle with the `caps_word_press_user` callback, +but it seemed much easier to just create one additional layer toggle instead. +I haven't looked at how hard it would be to hack this into Caps Word, +so maybe this is a future pull request. + +[CDLaTeX]: https://github.com/cdominik/cdlatex +[colemak-dh]: https://colemakmods.github.io/mod-dh/ +[emacs:paredit]: https://paredit.org/ +[emacs:puni]: https://github.com/AmaiKinono/puni +[qmk:autocorrect]: https://docs.qmk.fm/#/feature_autocorrect +[qmk:caps-word]: https://docs.qmk.fm/#/feature_caps_word +[qmk:key-overrides]: https://docs.qmk.fm/#/feature_key_overrides +[qmk:macros]: https://docs.qmk.fm/#/feature_macros +[qmk:mod-tap]: https://docs.qmk.fm/#/mod_tap +[qmk:repeat-key]: https://docs.qmk.fm/#/feature_repeat_key +[qmk:slotthe:tapdances]: https://github.com/slotThe/qmk_firmware/blob/keyboardio/atreus/slotThe/keyboards/keyboardio/atreus/keymaps/slotThe/keymap.c#L187 +[qmk:tap-dance]: https://docs.qmk.fm/#/feature_tap_dance +[qmk:tri-layer]: https://docs.qmk.fm/#/feature_tri_layer +[x11:clipboard]: https://www.uninformativ.de/blog/postings/2017-04-02/0/POSTING-en.html diff --git a/keyboards/keyboardio/atreus/keymaps/slotthe/rules.mk b/keyboards/keyboardio/atreus/keymaps/slotthe/rules.mk new file mode 100644 index 00000000000..b603193f858 --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/slotthe/rules.mk @@ -0,0 +1,9 @@ +TAP_DANCE_ENABLE = yes +KEY_OVERRIDE_ENABLE = yes +AUTOCORRECT_ENABLE = yes +CAPS_WORD_ENABLE = yes +REPEAT_KEY_ENABLE = yes + +LTO_ENABLE = yes +COMMAND_ENABLE = no +MOUSEKEY_ENABLE = no diff --git a/keyboards/keyboardio/model01/config.h b/keyboards/keyboardio/model01/config.h index b53235f324c..2e4101537fe 100644 --- a/keyboards/keyboardio/model01/config.h +++ b/keyboards/keyboardio/model01/config.h @@ -58,18 +58,18 @@ along with this program. If not, see . #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define 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/keycapsss/kimiko/keymaps/default/rules.mk b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk index 75655f2bd5e..ef4f0c0b43a 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk +++ b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # ENables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow @@ -8,4 +7,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow # This does not affect QMK Macros and Layers LTO_ENABLE = yes ENCODER_MAP_ENABLE = yes - diff --git a/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk b/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk index 0229490d442..46cb8d8a947 100644 --- a/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk +++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # ENables the use of one or more encoders RGBLIGHT_ENABLE = no # Disable keyboard RGB underglow @@ -10,7 +9,7 @@ LTO_ENABLE = yes #ENABLE RGB MATRIX WITH DRIVER WS2812 RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 #DEFINE SPLIT KEYBOARD AND SPLIT TRANSPORT MIRROR SPLIT_KEYBOARD = yes @@ -18,4 +17,3 @@ SPLIT_KEYBOARD = yes #DEACTIVATED FOR MEMORY SAVING MOUSEKEY_ENABLE = no CONSOLE_ENABLE = no - diff --git a/keyboards/keycapsss/kimiko/rev1/config.h b/keyboards/keycapsss/kimiko/rev1/config.h index 27049500bc1..8e44b27ace9 100644 --- a/keyboards/keycapsss/kimiko/rev1/config.h +++ b/keyboards/keycapsss/kimiko/rev1/config.h @@ -16,12 +16,6 @@ #pragma once -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 60 // Total number of LEDs -# define RGBLED_SPLIT { 30, 30 } // LEDs per side -# define RGBLIGHT_SPLIT -#endif - // Limit the power draw #ifdef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 40 diff --git a/keyboards/keycapsss/kimiko/rev1/info.json b/keyboards/keycapsss/kimiko/rev1/info.json index 56028f3f81a..e0106f44230 100644 --- a/keyboards/keycapsss/kimiko/rev1/info.json +++ b/keyboards/keycapsss/kimiko/rev1/info.json @@ -21,6 +21,10 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 60, + "split_count": [30, 30] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keycapsss/o4l_5x12/config.h b/keyboards/keycapsss/o4l_5x12/config.h index 804dabbf6d0..7bc78f68d69 100644 --- a/keyboards/keycapsss/o4l_5x12/config.h +++ b/keyboards/keycapsss/o4l_5x12/config.h @@ -1,21 +1,5 @@ #pragma once -# define RGBLED_NUM 12 -# define RGBLIGHT_HUE_STEP 4 -# define RGBLIGHT_SAT_STEP 4 -# define RGBLIGHT_VAL_STEP 4 -//# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keycapsss/o4l_5x12/info.json b/keyboards/keycapsss/o4l_5x12/info.json index 0766e0a2e48..91dc0564683 100644 --- a/keyboards/keycapsss/o4l_5x12/info.json +++ b/keyboards/keycapsss/o4l_5x12/info.json @@ -8,6 +8,24 @@ "pid": "0x0512", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 4, + "saturation_steps": 4, + "brightness_steps": 4, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keycapsss/plaid_pad/config.h b/keyboards/keycapsss/plaid_pad/config.h deleted file mode 100644 index 984323f63c9..00000000000 --- a/keyboards/keycapsss/plaid_pad/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2020 Ben Roesner (keycapsss.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 - -// Fix for volume controll with encoder (steadily in/decrease) -#define TAP_CODE_DELAY 60 diff --git a/keyboards/keycapsss/plaid_pad/info.json b/keyboards/keycapsss/plaid_pad/info.json index 9fe02448d02..c66bd05f1bc 100644 --- a/keyboards/keycapsss/plaid_pad/info.json +++ b/keyboards/keycapsss/plaid_pad/info.json @@ -7,6 +7,9 @@ "pid": "0x5050", "max_power": 100 }, + "qmk": { + "tap_keycode_delay": 60 + }, "matrix_pins": { "cols": ["B0", "D7", "D6", "D5"], "rows": ["C0", "C1", "C2", "C3"] diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk b/keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk index 9ce6e078db2..dc3e29cf8b2 100644 --- a/keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk +++ b/keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk @@ -1,3 +1,2 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays COMBO_ENABLE = yes diff --git a/keyboards/keycapsss/plaid_pad/rev3/rules.mk b/keyboards/keycapsss/plaid_pad/rev3/rules.mk index e72f11863f7..5ec06e96091 100644 --- a/keyboards/keycapsss/plaid_pad/rev3/rules.mk +++ b/keyboards/keycapsss/plaid_pad/rev3/rules.mk @@ -1,3 +1,2 @@ ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h new file mode 100644 index 00000000000..a103d190d0e --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h @@ -0,0 +1,48 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* If PH3 used with a stronger pull resistor then the following definition needs be included */ +// #define MATRIX_UNSELECT_DRIVE_HIGH + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110111 +#define DRIVER_ADDR_2 0b1110100 + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 49 +#define DRIVER_2_LED_TOTAL 39 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ +#define PHASE_CHANNEL MSKPHASE_9CHANNEL +/* Set led driver current */ +#define CKLED2001_CURRENT_TUNE \ + { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } + +/* turn off effects when suspended */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* Enable caps_lock, win os and mac os indicator */ +#define CAPS_MAC_WIN_LED_INDEX 63 + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keychron/c1_pro/ansi/rgb/info.json b/keyboards/keychron/c1_pro/ansi/rgb/info.json new file mode 100644 index 00000000000..c6011a28370 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/info.json @@ -0,0 +1,229 @@ +{ + "usb": { + "pid": "0x0510", + "device_version": "1.0.0" + }, + "features": { + "rgb_matrix": true + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":2, "y":0}, + {"matrix":[0, 2], "x":3, "y":0}, + {"matrix":[0, 3], "x":4, "y":0}, + {"matrix":[0, 4], "x":5, "y":0}, + {"matrix":[0, 5], "x":6.5, "y":0}, + {"matrix":[0, 6], "x":7.5, "y":0}, + {"matrix":[0, 7], "x":8.5, "y":0}, + {"matrix":[0, 8], "x":9.5, "y":0}, + {"matrix":[0, 9], "x":11, "y":0}, + {"matrix":[0,10], "x":12, "y":0}, + {"matrix":[0,11], "x":13, "y":0}, + {"matrix":[0,12], "x":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[3,14], "x":17.25, "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}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[3,15], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[3,12], "x":17.25, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.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}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[4,14], "x":17.25, "y":5.25} + ] + } + }, + "rgb_matrix": { + "driver": "ckled2001", + "animations": { + "breathing": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + }, + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":26, "y":0}, + {"matrix":[0, 2], "flags":1, "x":39, "y":0}, + {"matrix":[0, 3], "flags":1, "x":52, "y":0}, + {"matrix":[0, 4], "flags":1, "x":65, "y":0}, + {"matrix":[0, 5], "flags":1, "x":85, "y":0}, + {"matrix":[0, 6], "flags":1, "x":98, "y":0}, + {"matrix":[0, 7], "flags":1, "x":111, "y":0}, + {"matrix":[0, 8], "flags":1, "x":124, "y":0}, + {"matrix":[0, 9], "flags":1, "x":143, "y":0}, + {"matrix":[0, 10], "flags":1, "x":156, "y":0}, + {"matrix":[0, 11], "flags":1, "x":169, "y":0}, + {"matrix":[0, 12], "flags":1, "x":182, "y":0}, + {"matrix":[0, 14], "flags":1, "x":198, "y":0}, + {"matrix":[0, 15], "flags":1, "x":211, "y":0}, + {"matrix":[3, 14], "flags":1, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":1, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":15, "y":15}, + {"matrix":[1, 2], "flags":4, "x":26, "y":15}, + {"matrix":[1, 3], "flags":4, "x":39, "y":15}, + {"matrix":[1, 4], "flags":4, "x":52, "y":15}, + {"matrix":[1, 5], "flags":4, "x":65, "y":15}, + {"matrix":[1, 6], "flags":4, "x":78, "y":15}, + {"matrix":[1, 7], "flags":4, "x":91, "y":15}, + {"matrix":[1, 8], "flags":4, "x":104, "y":15}, + {"matrix":[1, 9], "flags":4, "x":117, "y":15}, + {"matrix":[1, 10], "flags":4, "x":130, "y":15}, + {"matrix":[1, 11], "flags":4, "x":143, "y":15}, + {"matrix":[1, 12], "flags":4, "x":156, "y":15}, + {"matrix":[1, 13], "flags":1, "x":176, "y":15}, + {"matrix":[1, 14], "flags":1, "x":198, "y":15}, + {"matrix":[1, 15], "flags":1, "x":211, "y":15}, + {"matrix":[3, 15], "flags":1, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":3, "y":27}, + {"matrix":[2, 1], "flags":4, "x":20, "y":27}, + {"matrix":[2, 2], "flags":4, "x":33, "y":27}, + {"matrix":[2, 3], "flags":4, "x":46, "y":27}, + {"matrix":[2, 4], "flags":4, "x":59, "y":27}, + {"matrix":[2, 5], "flags":4, "x":72, "y":27}, + {"matrix":[2, 6], "flags":4, "x":85, "y":27}, + {"matrix":[2, 7], "flags":4, "x":98, "y":27}, + {"matrix":[2, 8], "flags":4, "x":111, "y":27}, + {"matrix":[2, 9], "flags":4, "x":124, "y":27}, + {"matrix":[2, 10], "flags":4, "x":137, "y":27}, + {"matrix":[2, 11], "flags":4, "x":150, "y":27}, + {"matrix":[2, 12], "flags":4, "x":163, "y":27}, + {"matrix":[2, 13], "flags":4, "x":179, "y":27}, + {"matrix":[2, 14], "flags":1, "x":198, "y":27}, + {"matrix":[2, 15], "flags":1, "x":211, "y":27}, + {"matrix":[3, 12], "flags":1, "x":224, "y":27}, + + {"matrix":[3, 0], "flags":8, "x":5, "y":39}, + {"matrix":[3, 1], "flags":4, "x":23, "y":39}, + {"matrix":[3, 2], "flags":4, "x":36, "y":39}, + {"matrix":[3, 3], "flags":4, "x":49, "y":39}, + {"matrix":[3, 4], "flags":4, "x":62, "y":39}, + {"matrix":[3, 5], "flags":4, "x":75, "y":39}, + {"matrix":[3, 6], "flags":4, "x":88, "y":39}, + {"matrix":[3, 7], "flags":4, "x":101, "y":39}, + {"matrix":[3, 8], "flags":4, "x":114, "y":39}, + {"matrix":[3, 9], "flags":4, "x":127, "y":39}, + {"matrix":[3, 10], "flags":4, "x":140, "y":39}, + {"matrix":[3, 11], "flags":4, "x":153, "y":39}, + {"matrix":[3, 13], "flags":1, "x":174, "y":39}, + + {"matrix":[4, 12], "flags":8, "x":211, "y":39}, + + {"matrix":[4, 0], "flags":1, "x":8, "y":52}, + {"matrix":[4, 2], "flags":4, "x":29, "y":52}, + {"matrix":[4, 3], "flags":4, "x":42, "y":52}, + {"matrix":[4, 4], "flags":4, "x":55, "y":52}, + {"matrix":[4, 5], "flags":4, "x":68, "y":52}, + {"matrix":[4, 6], "flags":4, "x":82, "y":52}, + {"matrix":[4, 7], "flags":4, "x":95, "y":52}, + {"matrix":[4, 8], "flags":4, "x":108, "y":52}, + {"matrix":[4, 9], "flags":4, "x":121, "y":52}, + {"matrix":[4, 10], "flags":4, "x":134, "y":52}, + {"matrix":[4, 11], "flags":4, "x":147, "y":52}, + {"matrix":[4, 13], "flags":1, "x":171, "y":52}, + {"matrix":[4, 15], "flags":1, "x":211, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":2, "y":64}, + {"matrix":[5, 1], "flags":1, "x":18, "y":64}, + {"matrix":[5, 2], "flags":1, "x":34, "y":64}, + {"matrix":[5, 6], "flags":4, "x":83, "y":64}, + {"matrix":[5, 10], "flags":1, "x":132, "y":64}, + {"matrix":[5, 11], "flags":1, "x":148, "y":64}, + {"matrix":[5, 12], "flags":4, "x":165, "y":64}, + {"matrix":[5, 13], "flags":1, "x":181, "y":64}, + {"matrix":[5, 14], "flags":1, "x":198, "y":64}, + {"matrix":[5, 15], "flags":1, "x":211, "y":64}, + {"matrix":[4, 14], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/c1_pro/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..636e83b5275 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, + 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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_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_NO, RGB_MOD, + 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_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/c1_pro/ansi/rgb/keymaps/keychron/keymap.c b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/keychron/keymap.c new file mode 100644 index 00000000000..2b5a1957cd6 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/keychron/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD, + 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_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_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_CRTA, RGB_MOD, + 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_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/c1_pro/ansi/rgb/keymaps/keychron/rules.mk b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/keychron/rules.mk new file mode 100644 index 00000000000..495e8907b48 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/c1_pro/ansi/rgb/keymaps/via/keymap.c b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/via/keymap.c new file mode 100644 index 00000000000..636e83b5275 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, + 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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_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_NO, RGB_MOD, + 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_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/c1_pro/ansi/rgb/keymaps/via/rules.mk b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c new file mode 100644 index 00000000000..04565f3b014 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c @@ -0,0 +1,168 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_15, G_15, H_15}, + {0, I_16, G_16, H_16}, + {1, I_15, G_15, H_15}, + + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_15, A_15, B_15}, + {0, C_16, A_16, B_16}, + {1, I_16, G_16, H_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_14, D_14, E_14}, + {0, F_15, D_15, E_15}, + {0, F_16, D_16, E_16}, + {1, I_13, G_13, H_13}, + + {1, I_1, G_1, H_1}, + {1, I_2, G_2, H_2}, + {1, I_3, G_3, H_3}, + {1, I_4, G_4, H_4}, + {1, I_5, G_5, H_5}, + {1, I_6, G_6, H_6}, + {1, I_7, G_7, H_7}, + {1, I_8, G_8, H_8}, + {1, I_9, G_9, H_9}, + {1, I_10, G_10, H_10}, + {1, I_11, G_11, H_11}, + {1, I_12, G_12, H_12}, + {1, I_14, G_14, H_14}, + + {0, I_14, G_14, H_14}, // CAPS_MAC_WIN_LED_INDEX + + {1, C_1, A_1, B_1}, + {1, C_3, A_3, B_3}, + {1, C_4, A_4, B_4}, + {1, C_5, A_5, B_5}, + {1, C_6, A_6, B_6}, + {1, C_7, A_7, B_7}, + {1, C_8, A_8, B_8}, + {1, C_9, A_9, B_9}, + {1, C_10, A_10, B_10}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_14, A_14, B_14}, + {1, C_16, A_16, B_16}, + + {1, F_1, D_1, E_1}, + {1, F_2, D_2, E_2}, + {1, F_3, D_3, E_3}, + {1, F_7, D_7, E_7}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_13, D_13, E_13}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + {1, F_16, D_16, E_16}, + {1, C_15, A_15, B_15}, +}; + +// clang-format on + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + } + return true; +} + +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) && (default_layer_state == (1 << 0))) { + rgb_matrix_set_color(CAPS_MAC_WIN_LED_INDEX, 0, 255, 255); + } else if ((!host_keyboard_led_state().caps_lock) && (default_layer_state == (1 << 0))) { + rgb_matrix_set_color(CAPS_MAC_WIN_LED_INDEX, 0, 0, 255); + } else if ((host_keyboard_led_state().caps_lock) && (default_layer_state == (1 << 2))) { + rgb_matrix_set_color(CAPS_MAC_WIN_LED_INDEX, 255, 255, 0); + } else if ((!host_keyboard_led_state().caps_lock) && (default_layer_state == (1 << 2))) { + rgb_matrix_set_color(CAPS_MAC_WIN_LED_INDEX, 255, 0, 0); + } + return true; +} + +#endif diff --git a/keyboards/keychron/c1_pro/ansi/rgb/rules.mk b/keyboards/keychron/c1_pro/ansi/rgb/rules.mk new file mode 100644 index 00000000000..7307f9f9e79 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/rgb/rules.mk @@ -0,0 +1 @@ +# Build Options diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h new file mode 100644 index 00000000000..dd3e1da477b --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/config.h @@ -0,0 +1,48 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* If PH3 used with a stronger pull resistor then the following definition needs be included */ +// #define MATRIX_UNSELECT_DRIVE_HIGH + +/* LED Matrix Driver Configuration */ +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110100 + +/* LED Matrix Configuration */ +#define LED_MATRIX_LED_COUNT 90 + +/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ +#define PHASE_CHANNEL MSKPHASE_9CHANNEL +/* Set led driver current */ +#define CKLED2001_CURRENT_TUNE \ + { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } + +/* turn off effects when suspended */ +#define LED_DISABLE_WHEN_USB_SUSPENDED + +/* Enbale caps_lcok, win os and mac os indicator */ +#define CAPS_LOCK_LED_INDEX 63 +#define MAC_LOCK_LED_INDEX 64 +#define WIN_LOCK_LED_INDEX 65 + +// LED Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_led_matrix?id=led-matrix-effects +// #if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES) +#define LED_MATRIX_KEYPRESSES +#define LED_MATRIX_KEYRELEASES diff --git a/keyboards/keychron/c1_pro/ansi/white/info.json b/keyboards/keychron/c1_pro/ansi/white/info.json new file mode 100644 index 00000000000..070ed6c4270 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/info.json @@ -0,0 +1,226 @@ +{ + "usb": { + "pid": "0x0513", + "device_version": "1.0.0" + }, + "features": { + "led_matrix": true + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":2, "y":0}, + {"matrix":[0, 2], "x":3, "y":0}, + {"matrix":[0, 3], "x":4, "y":0}, + {"matrix":[0, 4], "x":5, "y":0}, + {"matrix":[0, 5], "x":6.5, "y":0}, + {"matrix":[0, 6], "x":7.5, "y":0}, + {"matrix":[0, 7], "x":8.5, "y":0}, + {"matrix":[0, 8], "x":9.5, "y":0}, + {"matrix":[0, 9], "x":11, "y":0}, + {"matrix":[0,10], "x":12, "y":0}, + {"matrix":[0,11], "x":13, "y":0}, + {"matrix":[0,12], "x":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[0,13], "x":17.25, "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}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[3,12], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[3,14], "x":17.25, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.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}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[3,15], "x":17.25, "y":5.25} + ] + } + }, + "led_matrix": { + "driver": "ckled2001", + "animations": { + "none": true, + "solid": true, + "breathing": true, + "band_pinwheel": true, + "band_spiral": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "dual_beacon": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "solid_splash": true, + "wave_left_right": true, + "wave_up_down": true, + "effect_max": true + }, + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":26, "y":0}, + {"matrix":[0, 2], "flags":1, "x":39, "y":0}, + {"matrix":[0, 3], "flags":1, "x":52, "y":0}, + {"matrix":[0, 4], "flags":1, "x":65, "y":0}, + {"matrix":[0, 5], "flags":1, "x":85, "y":0}, + {"matrix":[0, 6], "flags":1, "x":98, "y":0}, + {"matrix":[0, 7], "flags":1, "x":111, "y":0}, + {"matrix":[0, 8], "flags":1, "x":124, "y":0}, + {"matrix":[0, 9], "flags":1, "x":143, "y":0}, + {"matrix":[0, 10], "flags":1, "x":156, "y":0}, + {"matrix":[0, 11], "flags":1, "x":169, "y":0}, + {"matrix":[0, 12], "flags":1, "x":182, "y":0}, + {"matrix":[0, 14], "flags":1, "x":198, "y":0}, + {"matrix":[0, 15], "flags":1, "x":211, "y":0}, + {"matrix":[0, 13], "flags":1, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":1, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":15, "y":15}, + {"matrix":[1, 2], "flags":4, "x":26, "y":15}, + {"matrix":[1, 3], "flags":4, "x":39, "y":15}, + {"matrix":[1, 4], "flags":4, "x":52, "y":15}, + {"matrix":[1, 5], "flags":4, "x":65, "y":15}, + {"matrix":[1, 6], "flags":4, "x":78, "y":15}, + {"matrix":[1, 7], "flags":4, "x":91, "y":15}, + {"matrix":[1, 8], "flags":4, "x":104, "y":15}, + {"matrix":[1, 9], "flags":4, "x":117, "y":15}, + {"matrix":[1, 10], "flags":4, "x":130, "y":15}, + {"matrix":[1, 11], "flags":4, "x":143, "y":15}, + {"matrix":[1, 12], "flags":4, "x":156, "y":15}, + {"matrix":[1, 13], "flags":1, "x":176, "y":15}, + {"matrix":[1, 14], "flags":1, "x":198, "y":15}, + {"matrix":[1, 15], "flags":1, "x":211, "y":15}, + {"matrix":[3, 12], "flags":1, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":3, "y":27}, + {"matrix":[2, 1], "flags":4, "x":20, "y":27}, + {"matrix":[2, 2], "flags":4, "x":33, "y":27}, + {"matrix":[2, 3], "flags":4, "x":46, "y":27}, + {"matrix":[2, 4], "flags":4, "x":59, "y":27}, + {"matrix":[2, 5], "flags":4, "x":72, "y":27}, + {"matrix":[2, 6], "flags":4, "x":85, "y":27}, + {"matrix":[2, 7], "flags":4, "x":98, "y":27}, + {"matrix":[2, 8], "flags":4, "x":111, "y":27}, + {"matrix":[2, 9], "flags":4, "x":124, "y":27}, + {"matrix":[2, 10], "flags":4, "x":137, "y":27}, + {"matrix":[2, 11], "flags":4, "x":150, "y":27}, + {"matrix":[2, 12], "flags":4, "x":163, "y":27}, + {"matrix":[2, 13], "flags":4, "x":179, "y":27}, + {"matrix":[2, 14], "flags":1, "x":198, "y":27}, + {"matrix":[2, 15], "flags":1, "x":211, "y":27}, + {"matrix":[3, 14], "flags":1, "x":224, "y":27}, + + {"matrix":[3, 0], "flags":8, "x":5, "y":39}, + {"matrix":[3, 1], "flags":4, "x":23, "y":39}, + {"matrix":[3, 2], "flags":4, "x":36, "y":39}, + {"matrix":[3, 3], "flags":4, "x":49, "y":39}, + {"matrix":[3, 4], "flags":4, "x":62, "y":39}, + {"matrix":[3, 5], "flags":4, "x":75, "y":39}, + {"matrix":[3, 6], "flags":4, "x":88, "y":39}, + {"matrix":[3, 7], "flags":4, "x":101, "y":39}, + {"matrix":[3, 8], "flags":4, "x":114, "y":39}, + {"matrix":[3, 9], "flags":4, "x":127, "y":39}, + {"matrix":[3, 10], "flags":4, "x":140, "y":39}, + {"matrix":[3, 11], "flags":4, "x":153, "y":39}, + {"matrix":[3, 13], "flags":1, "x":174, "y":39}, + + {"matrix":[4, 12], "flags":8, "x":198, "y":39}, + {"matrix":[4, 12], "flags":8, "x":211, "y":39}, + {"matrix":[4, 12], "flags":8, "x":224, "y":39}, + + {"matrix":[4, 0], "flags":1, "x":8, "y":52}, + {"matrix":[4, 2], "flags":4, "x":29, "y":52}, + {"matrix":[4, 3], "flags":4, "x":42, "y":52}, + {"matrix":[4, 4], "flags":4, "x":55, "y":52}, + {"matrix":[4, 5], "flags":4, "x":68, "y":52}, + {"matrix":[4, 6], "flags":4, "x":82, "y":52}, + {"matrix":[4, 7], "flags":4, "x":95, "y":52}, + {"matrix":[4, 8], "flags":4, "x":108, "y":52}, + {"matrix":[4, 9], "flags":4, "x":121, "y":52}, + {"matrix":[4, 10], "flags":4, "x":134, "y":52}, + {"matrix":[4, 11], "flags":4, "x":147, "y":52}, + {"matrix":[4, 13], "flags":1, "x":171, "y":52}, + {"matrix":[4, 15], "flags":1, "x":211, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":2, "y":64}, + {"matrix":[5, 1], "flags":1, "x":18, "y":64}, + {"matrix":[5, 2], "flags":1, "x":34, "y":64}, + {"matrix":[5, 6], "flags":4, "x":83, "y":64}, + {"matrix":[5, 10], "flags":1, "x":132, "y":64}, + {"matrix":[5, 11], "flags":1, "x":148, "y":64}, + {"matrix":[5, 12], "flags":4, "x":165, "y":64}, + {"matrix":[5, 13], "flags":1, "x":181, "y":64}, + {"matrix":[5, 14], "flags":1, "x":198, "y":64}, + {"matrix":[5, 15], "flags":1, "x":211, "y":64}, + {"matrix":[3, 15], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/c1_pro/ansi/white/keymaps/default/keymap.c b/keyboards/keychron/c1_pro/ansi/white/keymaps/default/keymap.c new file mode 100644 index 00000000000..a829c118922 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, BL_STEP, + 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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_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, _______, BL_STEP, + 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_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/c1_pro/ansi/white/keymaps/keychron/keymap.c b/keyboards/keychron/c1_pro/ansi/white/keymaps/keychron/keymap.c new file mode 100644 index 00000000000..e17d67eb718 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/keymaps/keychron/keymap.c @@ -0,0 +1,70 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, BL_STEP, + 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_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_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_CRTA, BL_STEP, + 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_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/c1_pro/ansi/white/keymaps/keychron/rules.mk b/keyboards/keychron/c1_pro/ansi/white/keymaps/keychron/rules.mk new file mode 100644 index 00000000000..495e8907b48 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/c1_pro/ansi/white/keymaps/via/keymap.c b/keyboards/keychron/c1_pro/ansi/white/keymaps/via/keymap.c new file mode 100644 index 00000000000..a829c118922 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, BL_STEP, + 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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_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, _______, BL_STEP, + 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_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/c1_pro/ansi/white/keymaps/via/rules.mk b/keyboards/keychron/c1_pro/ansi/white/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/c1_pro/ansi/white/rules.mk b/keyboards/keychron/c1_pro/ansi/white/rules.mk new file mode 100644 index 00000000000..7307f9f9e79 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/rules.mk @@ -0,0 +1 @@ +# Build Options diff --git a/keyboards/keychron/c1_pro/ansi/white/white.c b/keyboards/keychron/c1_pro/ansi/white/white.c new file mode 100644 index 00000000000..72e9ad4db13 --- /dev/null +++ b/keyboards/keychron/c1_pro/ansi/white/white.c @@ -0,0 +1,176 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off +#ifdef LED_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | LED address + * | | */ + {0, A_16}, // esc + {0, A_15}, // f1 + {0, A_14}, // f2 + {0, A_13}, // f3 + {0, A_12}, // f4 + {0, A_11}, // f5 + {0, A_10}, // f6 + {0, A_9}, // f7 + {0, A_8}, // f8 + {0, A_7}, // f9 + {0, A_6}, // f10 + {0, A_5}, // f11 + {0, A_4}, // f12 + {0, A_2}, // print + {0, A_1}, // siri + {0, G_1}, // light + + {0, B_16}, // ~ + {0, B_15}, // 1! + {0, B_14}, // 2@ + {0, B_13}, // 3# + {0, B_12}, // 4$ + {0, B_11}, // 5% + {0, B_10}, // 6^ + {0, B_9}, // 7& + {0, B_8}, // 8* + {0, B_7}, // 9( + {0, B_6}, // 0) + {0, B_5}, // -_ + {0, B_4}, // =+ + {0, B_3}, // back space + {0, B_2}, // INS + {0, B_1}, // HOME + {0, H_1}, // PGUP + + {0, C_16}, // tab + {0, C_15}, // q + {0, C_14}, // w + {0, C_13}, // e + {0, C_12}, // r + {0, C_11}, // t + {0, C_10}, // y + {0, C_9}, // u + {0, C_8}, // i + {0, C_7}, // o + {0, C_6}, // p + {0, C_5}, // [{ + {0, C_4}, // ]} + {0, C_3}, // \| + {0, C_2}, // DEL + {0, C_1}, // END + {0, G_6}, // PGDN + + {0, D_16}, // caps lock + {0, D_15}, // a + {0, D_14}, // s + {0, D_13}, // d + {0, D_12}, // f + {0, D_11}, // g + {0, D_10}, // h + {0, D_9}, // j + {0, D_8}, // k + {0, D_7}, // l + {0, D_6}, // ;: + {0, D_5}, // '" + {0, D_3}, // enter + + {0, H_7}, // CPAS + {0, H_8}, // MAC + {0, H_9}, // WIN + + {0, E_16}, // left shift + {0, E_14}, // z + {0, E_13}, // x + {0, E_12}, // c + {0, E_11}, // v + {0, E_10}, // b + {0, E_9}, // b + {0, E_8}, // n + {0, E_7}, // m + {0, E_6}, // ,< + {0, E_5}, // .> + {0, E_3}, // right shift + {0, E_1}, // up + + {0, F_16}, // left ctrl + {0, F_15}, // left command + {0, F_14}, // left option + {0, F_10}, // space + {0, F_6}, // right command + {0, F_5}, // right option + {0, F_4}, // right ctrl + {0, F_3}, // Fn + {0, F_2}, // left + {0, F_1}, // down + {0, G_13}, // right +}; + +// clang-format on + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case BL_TOGG: + if (record->event.pressed) { + switch (led_matrix_get_flags()) { + case LED_FLAG_ALL: { + led_matrix_set_flags(LED_FLAG_NONE); + led_matrix_set_value_all(0); + } break; + default: { + led_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!led_matrix_is_enabled()) { + led_matrix_set_flags(LED_FLAG_ALL); + led_matrix_enable(); + } + return false; + } + return true; +} + +bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!led_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + if ((host_keyboard_led_state().caps_lock) && (default_layer_state == (1 << 0))) { + led_matrix_set_value(CAPS_LOCK_LED_INDEX, 255); + led_matrix_set_value(MAC_LOCK_LED_INDEX, 255); + led_matrix_set_value(WIN_LOCK_LED_INDEX, 0); + } else if ((!host_keyboard_led_state().caps_lock) && (default_layer_state == (1 << 0))) { + led_matrix_set_value(CAPS_LOCK_LED_INDEX, 0); + led_matrix_set_value(MAC_LOCK_LED_INDEX, 255); + led_matrix_set_value(WIN_LOCK_LED_INDEX, 0); + } else if ((host_keyboard_led_state().caps_lock) && (default_layer_state == (1 << 2))) { + led_matrix_set_value(CAPS_LOCK_LED_INDEX, 255); + led_matrix_set_value(MAC_LOCK_LED_INDEX, 0); + led_matrix_set_value(WIN_LOCK_LED_INDEX, 255); + } else if ((!host_keyboard_led_state().caps_lock) && (default_layer_state == (1 << 2))) { + led_matrix_set_value(CAPS_LOCK_LED_INDEX, 0); + led_matrix_set_value(MAC_LOCK_LED_INDEX, 0); + led_matrix_set_value(WIN_LOCK_LED_INDEX, 255); + } + return true; +} + +#endif diff --git a/keyboards/keychron/c1_pro/c1_pro.c b/keyboards/keychron/c1_pro/c1_pro.c new file mode 100644 index 00000000000..607cd958ade --- /dev/null +++ b/keyboards/keychron/c1_pro/c1_pro.c @@ -0,0 +1,44 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off + +const matrix_row_t matrix_mask[] = { + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111101111, +}; + +// clang-format on + +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { + default_layer_set(1UL << (active ? 2 : 0)); + } + return true; +} + +#endif // DIP_SWITCH_ENABLE diff --git a/keyboards/keychron/c1_pro/config.h b/keyboards/keychron/c1_pro/config.h new file mode 100644 index 00000000000..2d814904712 --- /dev/null +++ b/keyboards/keychron/c1_pro/config.h @@ -0,0 +1,37 @@ +/* Copyright 2023 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* DIP switch */ +#define DIP_SWITCH_MATRIX_GRID { { 5, 4 } } + +/* Disable DIP switch in matrix data */ +#define MATRIX_MASKED + +/* EEPROM Driver Configuration */ +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) + +/* Increase I2C speed to 1000 KHz */ +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 3U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 15U +#define I2C1_TIMINGR_SCLL 51U + +/* Old default behavior of mod-taps */ +#define HOLD_ON_OTHER_KEY_PRESS diff --git a/keyboards/keychron/c1_pro/halconf.h b/keyboards/keychron/c1_pro/halconf.h new file mode 100644 index 00000000000..41bddcb2799 --- /dev/null +++ b/keyboards/keychron/c1_pro/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keychron/c1_pro/info.json b/keyboards/keychron/c1_pro/info.json new file mode 100644 index 00000000000..9c9b4bf16f8 --- /dev/null +++ b/keyboards/keychron/c1_pro/info.json @@ -0,0 +1,26 @@ +{ + "keyboard_name": "Keychron C1 Pro", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0x3434" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "dip_switch": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "H3"], + "rows": ["B5", "B4", "B3", "A15", "A14", "A13"] + }, + "diode_direction": "ROW2COL", + "community_layouts": ["tkl_ansi"] +} diff --git a/keyboards/keychron/c1_pro/mcuconf.h b/keyboards/keychron/c1_pro/mcuconf.h new file mode 100644 index 00000000000..0ca8c64850f --- /dev/null +++ b/keyboards/keychron/c1_pro/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/c1_pro/readme.md b/keyboards/keychron/c1_pro/readme.md new file mode 100644 index 00000000000..7e9d0e90587 --- /dev/null +++ b/keyboards/keychron/c1_pro/readme.md @@ -0,0 +1,23 @@ +# Keychron C1 Pro + +![Keychron C1 Pro](https://i.imgur.com/Svdm4lph.jpg) + +A customizable 80% TKL keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron C1 Pro +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/c1/ansi/rgb:default + make keychron/c1/ansi/white:default + +Flashing example for this keyboard: + + make keychron/c1/ansi/rgb:default:flash + make keychron/c1/ansi/white:default:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h new file mode 100644 index 00000000000..d62b756f5a8 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h @@ -0,0 +1,46 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110111 +#define DRIVER_ADDR_2 0b1110100 + +/* Set LED driver current */ +#define CKLED2001_CURRENT_TUNE \ + { 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56 } + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 60 +#define DRIVER_2_LED_TOTAL 48 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Enable indicator LED*/ +#define NUM_LED_INDEX 16 +#define CAPS_LED_INDEX 17 +#define MAC_LED_INDEX 18 +#define WIN_LED_INDEX 19 + +/* turn off effects when suspended */ +#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 RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keychron/c2_pro/ansi/rgb/info.json b/keyboards/keychron/c2_pro/ansi/rgb/info.json new file mode 100644 index 00000000000..e527af3371c --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/info.json @@ -0,0 +1,266 @@ +{ + "usb": { + "pid": "0x0520", + "device_version": "1.0.0" + }, + "features": { + "rgb_matrix": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":2, "y":0}, + {"matrix":[0, 2], "x":3, "y":0}, + {"matrix":[0, 3], "x":4, "y":0}, + {"matrix":[0, 4], "x":5, "y":0}, + {"matrix":[0, 5], "x":6.5, "y":0}, + {"matrix":[0, 6], "x":7.5, "y":0}, + {"matrix":[0, 7], "x":8.5, "y":0}, + {"matrix":[0, 8], "x":9.5, "y":0}, + {"matrix":[0, 9], "x":11, "y":0}, + {"matrix":[0,10], "x":12, "y":0}, + {"matrix":[0,11], "x":13, "y":0}, + {"matrix":[0,12], "x":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[0,16], "x":17.25, "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}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[1,16], "x":17.25, "y":1.25}, + {"matrix":[1,17], "x":18.5, "y":1.25}, + {"matrix":[1,18], "x":19.5, "y":1.25}, + {"matrix":[0,17], "x":20.5, "y":1.25}, + {"matrix":[0,18], "x":21.5, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[2,16], "x":17.25, "y":2.25}, + {"matrix":[2,17], "x":18.5, "y":2.25}, + {"matrix":[2,18], "x":19.5, "y":2.25}, + {"matrix":[3,14], "x":20.5, "y":2.25}, + {"matrix":[3,15], "x":21.5, "y":2.25, "h":2}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.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}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,17], "x":18.5, "y":3.25}, + {"matrix":[3,18], "x":19.5, "y":3.25}, + {"matrix":[3,16], "x":20.5, "y":3.25}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + {"matrix":[4,17], "x":18.5, "y":4.25}, + {"matrix":[4,18], "x":19.5, "y":4.25}, + {"matrix":[4,14], "x":20.5, "y":4.25}, + {"matrix":[4,16], "x":21.5, "y":4.25, "h":2}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[5,16], "x":17.25, "y":5.25}, + {"matrix":[5,17], "x":18.5, "y":5.25, "w":2}, + {"matrix":[5,18], "x":20.5, "y":5.25} + ] + } + }, + "rgb_matrix": { + "driver": "ckled2001", + "animations": { + "breathing": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + }, + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":21, "y":0}, + {"matrix":[0, 2], "flags":1, "x":31, "y":0}, + {"matrix":[0, 3], "flags":1, "x":42, "y":0}, + {"matrix":[0, 4], "flags":1, "x":52, "y":0}, + {"matrix":[0, 5], "flags":1, "x":68, "y":0}, + {"matrix":[0, 6], "flags":1, "x":78, "y":0}, + {"matrix":[0, 7], "flags":1, "x":89, "y":0}, + {"matrix":[0, 8], "flags":1, "x":99, "y":0}, + {"matrix":[0, 9], "flags":1, "x":115, "y":0}, + {"matrix":[0, 10], "flags":1, "x":125, "y":0}, + {"matrix":[0, 11], "flags":1, "x":136, "y":0}, + {"matrix":[0, 12], "flags":1, "x":146, "y":0}, + {"matrix":[0, 14], "flags":1, "x":159, "y":0}, + {"matrix":[0, 15], "flags":1, "x":169, "y":0}, + {"matrix":[0, 16], "flags":1, "x":180, "y":0}, + + {"matrix":[0, 13], "flags":8, "x":193, "y":0}, + {"matrix":[0, 13], "flags":8, "x":203, "y":0}, + {"matrix":[0, 13], "flags":8, "x":214, "y":0}, + {"matrix":[0, 13], "flags":8, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":4, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":10, "y":15}, + {"matrix":[1, 2], "flags":4, "x":21, "y":15}, + {"matrix":[1, 3], "flags":4, "x":31, "y":15}, + {"matrix":[1, 4], "flags":4, "x":42, "y":15}, + {"matrix":[1, 5], "flags":4, "x":52, "y":15}, + {"matrix":[1, 6], "flags":4, "x":63, "y":15}, + {"matrix":[1, 7], "flags":4, "x":73, "y":15}, + {"matrix":[1, 8], "flags":4, "x":83, "y":15}, + {"matrix":[1, 9], "flags":4, "x":94, "y":15}, + {"matrix":[1, 10], "flags":4, "x":104, "y":15}, + {"matrix":[1, 11], "flags":4, "x":115, "y":15}, + {"matrix":[1, 12], "flags":4, "x":125, "y":15}, + {"matrix":[1, 13], "flags":1, "x":141, "y":15}, + {"matrix":[1, 14], "flags":1, "x":159, "y":15}, + {"matrix":[1, 15], "flags":1, "x":169, "y":15}, + {"matrix":[1, 16], "flags":1, "x":180, "y":15}, + {"matrix":[1, 17], "flags":8, "x":193, "y":15}, + {"matrix":[1, 18], "flags":4, "x":203, "y":15}, + {"matrix":[0, 17], "flags":4, "x":214, "y":15}, + {"matrix":[0, 18], "flags":4, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":3, "y":27}, + {"matrix":[2, 1], "flags":4, "x":16, "y":27}, + {"matrix":[2, 2], "flags":4, "x":26, "y":27}, + {"matrix":[2, 3], "flags":4, "x":36, "y":27}, + {"matrix":[2, 4], "flags":4, "x":47, "y":27}, + {"matrix":[2, 5], "flags":4, "x":57, "y":27}, + {"matrix":[2, 6], "flags":4, "x":68, "y":27}, + {"matrix":[2, 7], "flags":4, "x":78, "y":27}, + {"matrix":[2, 8], "flags":4, "x":89, "y":27}, + {"matrix":[2, 9], "flags":4, "x":99, "y":27}, + {"matrix":[2, 10], "flags":4, "x":109, "y":27}, + {"matrix":[2, 11], "flags":4, "x":120, "y":27}, + {"matrix":[2, 12], "flags":4, "x":130, "y":27}, + {"matrix":[2, 13], "flags":4, "x":143, "y":27}, + {"matrix":[2, 14], "flags":1, "x":159, "y":27}, + {"matrix":[2, 15], "flags":1, "x":169, "y":27}, + {"matrix":[2, 16], "flags":1, "x":180, "y":27}, + {"matrix":[2, 17], "flags":4, "x":193, "y":27}, + {"matrix":[2, 18], "flags":4, "x":203, "y":27}, + {"matrix":[3, 14], "flags":4, "x":214, "y":27}, + {"matrix":[3, 15], "flags":4, "x":224, "y":27}, + + {"matrix":[3, 0], "flags":8, "x":4, "y":40}, + {"matrix":[3, 1], "flags":4, "x":18, "y":40}, + {"matrix":[3, 2], "flags":4, "x":29, "y":40}, + {"matrix":[3, 3], "flags":4, "x":39, "y":40}, + {"matrix":[3, 4], "flags":4, "x":50, "y":40}, + {"matrix":[3, 5], "flags":4, "x":60, "y":40}, + {"matrix":[3, 6], "flags":4, "x":70, "y":40}, + {"matrix":[3, 7], "flags":4, "x":81, "y":40}, + {"matrix":[3, 8], "flags":4, "x":91, "y":40}, + {"matrix":[3, 9], "flags":4, "x":102, "y":40}, + {"matrix":[3, 10], "flags":4, "x":112, "y":40}, + {"matrix":[3, 11], "flags":4, "x":123, "y":40}, + {"matrix":[3, 13], "flags":4, "x":139, "y":40}, + {"matrix":[3, 17], "flags":4, "x":193, "y":40}, + {"matrix":[3, 18], "flags":4, "x":203, "y":40}, + {"matrix":[3, 16], "flags":4, "x":214, "y":40}, + + {"matrix":[4, 0], "flags":1, "x":7, "y":52}, + {"matrix":[4, 2], "flags":4, "x":23, "y":52}, + {"matrix":[4, 3], "flags":4, "x":34, "y":52}, + {"matrix":[4, 4], "flags":4, "x":44, "y":52}, + {"matrix":[4, 5], "flags":4, "x":55, "y":52}, + {"matrix":[4, 6], "flags":4, "x":65, "y":52}, + {"matrix":[4, 7], "flags":4, "x":76, "y":52}, + {"matrix":[4, 8], "flags":4, "x":86, "y":52}, + {"matrix":[4, 9], "flags":4, "x":96, "y":52}, + {"matrix":[4, 10], "flags":4, "x":107, "y":52}, + {"matrix":[4, 11], "flags":4, "x":117, "y":52}, + {"matrix":[4, 13], "flags":1, "x":137, "y":52}, + {"matrix":[4, 15], "flags":1, "x":169, "y":52}, + {"matrix":[4, 17], "flags":4, "x":193, "y":52}, + {"matrix":[4, 18], "flags":4, "x":203, "y":52}, + {"matrix":[4, 14], "flags":4, "x":214, "y":52}, + {"matrix":[4, 16], "flags":4, "x":224, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":1, "y":64}, + {"matrix":[5, 1], "flags":1, "x":14, "y":64}, + {"matrix":[5, 2], "flags":1, "x":27, "y":64}, + {"matrix":[5, 6], "flags":4, "x":66, "y":64}, + {"matrix":[5, 10], "flags":1, "x":105, "y":64}, + {"matrix":[5, 11], "flags":1, "x":118, "y":64}, + {"matrix":[5, 12], "flags":4, "x":131, "y":64}, + {"matrix":[5, 13], "flags":1, "x":145, "y":64}, + {"matrix":[5, 14], "flags":1, "x":159, "y":64}, + {"matrix":[5, 15], "flags":1, "x":169, "y":64}, + {"matrix":[5, 16], "flags":1, "x":180, "y":64}, + {"matrix":[5, 17], "flags":4, "x":198, "y":64}, + {"matrix":[5, 18], "flags":4, "x":214, "y":64} + ] + } +} diff --git a/keyboards/keychron/c2_pro/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..07f523e30a0 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [MAC_FN] = 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, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = 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_NO, RGB_MOD, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; diff --git a/keyboards/keychron/c2_pro/ansi/rgb/keymaps/keychron/keymap.c b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/keychron/keymap.c new file mode 100644 index 00000000000..9bc6b416bb3 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/keychron/keymap.c @@ -0,0 +1,74 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [MAC_FN] = 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, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = 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_CRTA, RGB_MOD, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/c2_pro/ansi/rgb/keymaps/keychron/rules.mk b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/keychron/rules.mk new file mode 100644 index 00000000000..495e8907b48 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/c2_pro/ansi/rgb/keymaps/via/keymap.c b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/via/keymap.c new file mode 100644 index 00000000000..5120e9bacbf --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/via/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RGB_MOD, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [MAC_FN] = 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, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = 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_NO, RGB_MOD, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; diff --git a/keyboards/keychron/c2_pro/ansi/rgb/keymaps/via/rules.mk b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c new file mode 100644 index 00000000000..998933081f1 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c @@ -0,0 +1,142 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_15, G_15, H_15}, + {0, I_16, G_16, H_16}, + {0, L_5, J_5, K_5}, + + {0, L_6, J_6, K_6}, // CapsLock + {0, L_7, J_7, K_7}, // NumLock + {0, L_8, J_8, K_8}, // Mac + {0, L_4, J_4, K_4}, // Win + + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_15, A_15, B_15}, + {0, C_16, A_16, B_16}, + {0, L_9, J_9, K_9}, + {0, L_10, J_10, K_10}, + {0, L_11, J_11, K_11}, + {0, L_12, J_12, K_12}, + {0, L_13, J_13, K_13}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_14, D_14, E_14}, + {0, F_15, D_15, E_15}, + {0, F_16, D_16, E_16}, + {0, L_14, J_14, K_14}, + {0, L_15, J_15, K_15}, + {0, L_16, J_16, K_16}, + {1, L_1, J_1, K_1}, + {1, L_2, J_2, K_2}, + + {1, C_16, A_16, B_16}, + {1, C_15, A_15, B_15}, + {1, C_14, A_14, B_14}, + {1, C_13, A_13, B_13}, + {1, C_12, A_12, B_12}, + {1, C_11, A_11, B_11}, + {1, C_10, A_10, B_10}, + {1, C_9, A_9, B_9}, + {1, C_8, A_8, B_8}, + {1, C_7, A_7, B_7}, + {1, C_6, A_6, B_6}, + {1, C_5, A_5, B_5}, + {1, C_3, A_3, B_3}, + {1, L_3, J_3, K_3}, + {1, L_4, J_4, K_4}, + {1, L_5, J_5, K_5}, + + {1, I_16, G_16, H_16}, + {1, I_14, G_14, H_14}, + {1, I_13, G_13, H_13}, + {1, I_12, G_12, H_12}, + {1, I_11, G_11, H_11}, + {1, I_10, G_10, H_10}, + {1, I_9, G_9, H_9}, + {1, I_8, G_8, H_8}, + {1, I_7, G_7, H_7}, + {1, I_6, G_6, H_6}, + {1, I_5, G_5, H_5}, + {1, I_3, G_3, H_3}, + {1, I_1, G_1, H_1}, + {1, L_6, J_6, K_6}, + {1, L_7, J_7, K_7}, + {1, L_8, J_8, K_8}, + {1, L_9, J_9, K_9}, + + {1, F_16, D_16, E_16}, + {1, F_15, D_15, E_15}, + {1, F_14, D_14, E_14}, + {1, F_10, D_10, E_10}, + {1, F_6, D_6, E_6}, + {1, F_5, D_5, E_5}, + {1, F_4, D_4, E_4}, + {1, F_3, D_3, E_3}, + {1, F_2, D_2, E_2}, + {1, F_1, D_1, E_1}, + {1, L_10, J_10, K_10}, + {1, L_11, J_11, K_11}, + {1, L_12, J_12, K_12}, +}; +#endif //RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/c2_pro/ansi/rgb/rules.mk b/keyboards/keychron/c2_pro/ansi/rgb/rules.mk new file mode 100644 index 00000000000..dab15510492 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/rgb/rules.mk @@ -0,0 +1,2 @@ +# Build Options +SRC += matrix.c diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h new file mode 100644 index 00000000000..d2a0e27b579 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/config.h @@ -0,0 +1,44 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* LED Matrix Driver Configuration */ +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110100 + +/* Set LED driver current */ +#define CKLED2001_CURRENT_TUNE \ + { 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0 } + +/* LED Matrix Configuration */ +#define LED_MATRIX_LED_COUNT 108 + +/* Enable indicator LED*/ +#define NUM_LED_INDEX 16 +#define CAPS_LED_INDEX 17 +#define MAC_LED_INDEX 18 +#define WIN_LED_INDEX 19 + +/* turn off effects when suspended */ +#define LED_DISABLE_WHEN_USB_SUSPENDED + +// LED Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_led_matrix?id=led-matrix-effects +// #if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES) +#define LED_MATRIX_KEYPRESSES +#define LED_MATRIX_KEYRELEASES diff --git a/keyboards/keychron/c2_pro/ansi/white/info.json b/keyboards/keychron/c2_pro/ansi/white/info.json new file mode 100644 index 00000000000..dc58d1943bb --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/info.json @@ -0,0 +1,261 @@ +{ + "usb": { + "pid": "0x0523", + "device_version": "1.0.0" + }, + "features": { + "led_matrix": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":2, "y":0}, + {"matrix":[0, 2], "x":3, "y":0}, + {"matrix":[0, 3], "x":4, "y":0}, + {"matrix":[0, 4], "x":5, "y":0}, + {"matrix":[0, 5], "x":6.5, "y":0}, + {"matrix":[0, 6], "x":7.5, "y":0}, + {"matrix":[0, 7], "x":8.5, "y":0}, + {"matrix":[0, 8], "x":9.5, "y":0}, + {"matrix":[0, 9], "x":11, "y":0}, + {"matrix":[0,10], "x":12, "y":0}, + {"matrix":[0,11], "x":13, "y":0}, + {"matrix":[0,12], "x":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[0,16], "x":17.25, "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}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[1,16], "x":17.25, "y":1.25}, + {"matrix":[1,17], "x":18.5, "y":1.25}, + {"matrix":[1,18], "x":19.5, "y":1.25}, + {"matrix":[1,19], "x":20.5, "y":1.25}, + {"matrix":[0,17], "x":21.5, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[2,16], "x":17.25, "y":2.25}, + {"matrix":[2,17], "x":18.5, "y":2.25}, + {"matrix":[2,18], "x":19.5, "y":2.25}, + {"matrix":[2,19], "x":20.5, "y":2.25}, + {"matrix":[0,18], "x":21.5, "y":2.25, "h":2}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.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}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,17], "x":18.5, "y":3.25}, + {"matrix":[3,18], "x":19.5, "y":3.25}, + {"matrix":[3,19], "x":20.5, "y":3.25}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + {"matrix":[4,17], "x":18.5, "y":4.25}, + {"matrix":[4,18], "x":19.5, "y":4.25}, + {"matrix":[4,19], "x":20.5, "y":4.25}, + {"matrix":[0,19], "x":21.5, "y":4.25, "h":2}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[5,16], "x":17.25, "y":5.25}, + {"matrix":[5,17], "x":18.5, "y":5.25, "w":2}, + {"matrix":[5,19], "x":20.5, "y":5.25} + ] + } + }, + "led_matrix": { + "driver": "ckled2001", + "animations": { + "none": true, + "solid": true, + "breathing": true, + "band_pinwheel": true, + "band_spiral": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "dual_beacon": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "solid_splash": true, + "wave_left_right": true, + "wave_up_down": true, + "effect_max": true + }, + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":21, "y":0}, + {"matrix":[0, 2], "flags":1, "x":31, "y":0}, + {"matrix":[0, 3], "flags":1, "x":42, "y":0}, + {"matrix":[0, 4], "flags":1, "x":52, "y":0}, + {"matrix":[0, 5], "flags":1, "x":68, "y":0}, + {"matrix":[0, 6], "flags":1, "x":78, "y":0}, + {"matrix":[0, 7], "flags":1, "x":89, "y":0}, + {"matrix":[0, 8], "flags":1, "x":99, "y":0}, + {"matrix":[0, 9], "flags":1, "x":115, "y":0}, + {"matrix":[0, 10], "flags":1, "x":125, "y":0}, + {"matrix":[0, 11], "flags":1, "x":136, "y":0}, + {"matrix":[0, 12], "flags":1, "x":146, "y":0}, + {"matrix":[0, 14], "flags":1, "x":159, "y":0}, + {"matrix":[0, 15], "flags":1, "x":169, "y":0}, + {"matrix":[0, 16], "flags":1, "x":180, "y":0}, + + {"matrix":[0, 13], "flags":8, "x":193, "y":0}, + {"matrix":[0, 13], "flags":8, "x":203, "y":0}, + {"matrix":[0, 13], "flags":8, "x":214, "y":0}, + {"matrix":[0, 13], "flags":8, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":4, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":10, "y":15}, + {"matrix":[1, 2], "flags":4, "x":21, "y":15}, + {"matrix":[1, 3], "flags":4, "x":31, "y":15}, + {"matrix":[1, 4], "flags":4, "x":42, "y":15}, + {"matrix":[1, 5], "flags":4, "x":52, "y":15}, + {"matrix":[1, 6], "flags":4, "x":63, "y":15}, + {"matrix":[1, 7], "flags":4, "x":73, "y":15}, + {"matrix":[1, 8], "flags":4, "x":83, "y":15}, + {"matrix":[1, 9], "flags":4, "x":94, "y":15}, + {"matrix":[1, 10], "flags":4, "x":104, "y":15}, + {"matrix":[1, 11], "flags":4, "x":115, "y":15}, + {"matrix":[1, 12], "flags":4, "x":125, "y":15}, + {"matrix":[1, 13], "flags":1, "x":141, "y":15}, + {"matrix":[1, 14], "flags":1, "x":159, "y":15}, + {"matrix":[1, 15], "flags":1, "x":169, "y":15}, + {"matrix":[1, 16], "flags":1, "x":180, "y":15}, + {"matrix":[1, 17], "flags":8, "x":193, "y":15}, + {"matrix":[1, 18], "flags":4, "x":203, "y":15}, + {"matrix":[1, 19], "flags":4, "x":214, "y":15}, + {"matrix":[0, 17], "flags":4, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":3, "y":27}, + {"matrix":[2, 1], "flags":4, "x":16, "y":27}, + {"matrix":[2, 2], "flags":4, "x":26, "y":27}, + {"matrix":[2, 3], "flags":4, "x":36, "y":27}, + {"matrix":[2, 4], "flags":4, "x":47, "y":27}, + {"matrix":[2, 5], "flags":4, "x":57, "y":27}, + {"matrix":[2, 6], "flags":4, "x":68, "y":27}, + {"matrix":[2, 7], "flags":4, "x":78, "y":27}, + {"matrix":[2, 8], "flags":4, "x":89, "y":27}, + {"matrix":[2, 9], "flags":4, "x":99, "y":27}, + {"matrix":[2, 10], "flags":4, "x":109, "y":27}, + {"matrix":[2, 11], "flags":4, "x":120, "y":27}, + {"matrix":[2, 12], "flags":4, "x":130, "y":27}, + {"matrix":[2, 13], "flags":4, "x":143, "y":27}, + {"matrix":[2, 14], "flags":1, "x":159, "y":27}, + {"matrix":[2, 15], "flags":1, "x":169, "y":27}, + {"matrix":[2, 16], "flags":1, "x":180, "y":27}, + {"matrix":[2, 17], "flags":4, "x":193, "y":27}, + {"matrix":[2, 18], "flags":4, "x":203, "y":27}, + {"matrix":[2, 19], "flags":4, "x":214, "y":27}, + {"matrix":[0, 18], "flags":4, "x":224, "y":27}, + + {"matrix":[3, 0], "flags":8, "x":4, "y":40}, + {"matrix":[3, 1], "flags":4, "x":18, "y":40}, + {"matrix":[3, 2], "flags":4, "x":29, "y":40}, + {"matrix":[3, 3], "flags":4, "x":39, "y":40}, + {"matrix":[3, 4], "flags":4, "x":50, "y":40}, + {"matrix":[3, 5], "flags":4, "x":60, "y":40}, + {"matrix":[3, 6], "flags":4, "x":70, "y":40}, + {"matrix":[3, 7], "flags":4, "x":81, "y":40}, + {"matrix":[3, 8], "flags":4, "x":91, "y":40}, + {"matrix":[3, 9], "flags":4, "x":102, "y":40}, + {"matrix":[3, 10], "flags":4, "x":112, "y":40}, + {"matrix":[3, 11], "flags":4, "x":123, "y":40}, + {"matrix":[3, 13], "flags":4, "x":139, "y":40}, + {"matrix":[3, 17], "flags":4, "x":193, "y":40}, + {"matrix":[3, 18], "flags":4, "x":203, "y":40}, + {"matrix":[3, 19], "flags":4, "x":214, "y":40}, + + {"matrix":[4, 0], "flags":1, "x":7, "y":52}, + {"matrix":[4, 2], "flags":4, "x":23, "y":52}, + {"matrix":[4, 3], "flags":4, "x":34, "y":52}, + {"matrix":[4, 4], "flags":4, "x":44, "y":52}, + {"matrix":[4, 5], "flags":4, "x":55, "y":52}, + {"matrix":[4, 6], "flags":4, "x":65, "y":52}, + {"matrix":[4, 7], "flags":4, "x":76, "y":52}, + {"matrix":[4, 8], "flags":4, "x":86, "y":52}, + {"matrix":[4, 9], "flags":4, "x":96, "y":52}, + {"matrix":[4, 10], "flags":4, "x":107, "y":52}, + {"matrix":[4, 11], "flags":4, "x":117, "y":52}, + {"matrix":[4, 13], "flags":1, "x":137, "y":52}, + {"matrix":[4, 15], "flags":1, "x":169, "y":52}, + {"matrix":[4, 17], "flags":4, "x":193, "y":52}, + {"matrix":[4, 18], "flags":4, "x":203, "y":52}, + {"matrix":[4, 19], "flags":4, "x":214, "y":52}, + {"matrix":[0, 19], "flags":4, "x":224, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":1, "y":64}, + {"matrix":[5, 1], "flags":1, "x":14, "y":64}, + {"matrix":[5, 2], "flags":1, "x":27, "y":64}, + {"matrix":[5, 6], "flags":4, "x":66, "y":64}, + {"matrix":[5, 10], "flags":1, "x":105, "y":64}, + {"matrix":[5, 11], "flags":1, "x":118, "y":64}, + {"matrix":[5, 12], "flags":4, "x":131, "y":64}, + {"matrix":[5, 13], "flags":1, "x":145, "y":64}, + {"matrix":[5, 14], "flags":1, "x":159, "y":64}, + {"matrix":[5, 15], "flags":1, "x":169, "y":64}, + {"matrix":[5, 16], "flags":1, "x":180, "y":64}, + {"matrix":[5, 17], "flags":4, "x":198, "y":64}, + {"matrix":[5, 19], "flags":4, "x":214, "y":64} + ] + } +} diff --git a/keyboards/keychron/c2_pro/ansi/white/keymaps/default/keymap.c b/keyboards/keychron/c2_pro/ansi/white/keymaps/default/keymap.c new file mode 100644 index 00000000000..70934e122e3 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, BL_STEP, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [MAC_FN] = 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, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = 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_NO, BL_STEP, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; diff --git a/keyboards/keychron/c2_pro/ansi/white/keymaps/keychron/keymap.c b/keyboards/keychron/c2_pro/ansi/white/keymaps/keychron/keymap.c new file mode 100644 index 00000000000..09002c3d7a4 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/keymaps/keychron/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, BL_STEP, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [MAC_FN] = 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, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = 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_CRTA, BL_STEP, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/c2_pro/ansi/white/keymaps/keychron/rules.mk b/keyboards/keychron/c2_pro/ansi/white/keymaps/keychron/rules.mk new file mode 100644 index 00000000000..495e8907b48 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/c2_pro/ansi/white/keymaps/via/keymap.c b/keyboards/keychron/c2_pro/ansi/white/keymaps/via/keymap.c new file mode 100644 index 00000000000..547521e099b --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/keymaps/via/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, BL_STEP, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [MAC_FN] = 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, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = 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_NO, BL_STEP, + 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, BL_DOWN, BL_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; diff --git a/keyboards/keychron/c2_pro/ansi/white/keymaps/via/rules.mk b/keyboards/keychron/c2_pro/ansi/white/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/c2_pro/ansi/white/rules.mk b/keyboards/keychron/c2_pro/ansi/white/rules.mk new file mode 100644 index 00000000000..dab15510492 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/rules.mk @@ -0,0 +1,2 @@ +# Build Options +SRC += matrix.c diff --git a/keyboards/keychron/c2_pro/ansi/white/white.c b/keyboards/keychron/c2_pro/ansi/white/white.c new file mode 100644 index 00000000000..963ac8755f8 --- /dev/null +++ b/keyboards/keychron/c2_pro/ansi/white/white.c @@ -0,0 +1,141 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off +#ifdef LED_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | LED address + * | | */ + {0, A_16}, + {0, A_15}, + {0, A_14}, + {0, A_13}, + {0, A_12}, + {0, A_11}, + {0, A_10}, + {0, A_9 }, + {0, A_8 }, + {0, A_7 }, + {0, A_6 }, + {0, A_5 }, + {0, A_4 }, + {0, A_2 }, + {0, A_1 }, + {0, G_1 }, + + {0, G_2 }, + {0, G_3 }, // NumLock + {0, G_4 }, // Mac + {0, G_5 }, // Win + + {0, B_16}, + {0, B_15}, + {0, B_14}, + {0, B_13}, + {0, B_12}, + {0, B_11}, + {0, B_10}, + {0, B_9 }, + {0, B_8 }, + {0, B_7 }, + {0, B_6 }, + {0, B_5 }, + {0, B_4 }, + {0, B_3 }, + {0, B_2 }, + {0, B_1 }, + {0, H_1 }, + {0, H_2 }, + {0, H_3 }, + {0, H_4 }, + {0, H_5 }, + + {0, C_16}, + {0, C_15}, + {0, C_14}, + {0, C_13}, + {0, C_12}, + {0, C_11}, + {0, C_10}, + {0, C_9 }, + {0, C_8 }, + {0, C_7 }, + {0, C_6 }, + {0, C_5 }, + {0, C_4 }, + {0, C_3 }, + {0, C_2 }, + {0, C_1 }, + {0, G_6 }, + {0, G_7 }, + {0, G_8 }, + {0, G_9 }, + {0, G_10}, + + {0, D_16}, + {0, D_15}, + {0, D_14}, + {0, D_13}, + {0, D_12}, + {0, D_11}, + {0, D_10}, + {0, D_9 }, + {0, D_8 }, + {0, D_7 }, + {0, D_6 }, + {0, D_5 }, + {0, D_3 }, + {0, H_7 }, + {0, H_8 }, + {0, H_9 }, + + {0, E_16}, + {0, E_14}, + {0, E_13}, + {0, E_12}, + {0, E_11}, + {0, E_10}, + {0, E_9 }, + {0, E_8 }, + {0, E_7 }, + {0, E_6 }, + {0, E_5 }, + {0, E_3 }, + {0, E_1 }, + {0, H_6 }, + {0, H_11}, + {0, H_12}, + {0, H_10}, + + {0, F_16}, + {0, F_15}, + {0, F_14}, + {0, F_10}, + {0, F_6 }, + {0, F_5 }, + {0, F_4 }, + {0, F_3 }, + {0, F_2 }, + {0, F_1 }, + {0, G_13}, + {0, G_11}, + {0, G_12}, +}; +#endif //LED_MATRIX_ENABLE diff --git a/keyboards/keychron/c2_pro/c2_pro.c b/keyboards/keychron/c2_pro/c2_pro.c new file mode 100644 index 00000000000..2cd58ab4d79 --- /dev/null +++ b/keyboards/keychron/c2_pro/c2_pro.c @@ -0,0 +1,129 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off +const matrix_row_t matrix_mask[] = { + 0b11111111111111111111, + 0b11111111111111111111, + 0b11111111111111111111, + 0b11111111111111111111, + 0b11111111111111111111, + 0b11111111111111101111, +}; + +// clang-format on + +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { + default_layer_set(1UL << (active ? 2 : 0)); + } + return true; +} + +#endif // DIP_SWITCH_ENABLE + +# ifdef RGB_MATRIX_ENABLE +# define LED_SET_FLAGS rgb_matrix_set_flags +# define LED_GET_FLAGS rgb_matrix_get_flags +# define LED_SET_ALL_OFF rgb_matrix_set_color_all(COLOR_BLACK) +# define LED_IS_ENABLED rgb_matrix_is_enabled +# define LED_ENABLE rgb_matrix_enable +# define LED_MATRIX_INDICATORS_KB rgb_matrix_indicators_kb +# define LED_MATRIX_INDICATORS_USER rgb_matrix_indicators_user +# define LED_MATRIX_SET_COLOR rgb_matrix_set_color +# define LED_MATRIX_UPDATE_PWN_BUFFERS rgb_matrix_update_pwm_buffers +# define LED_MATRIX_INDICATORS_NONE_KB rgb_matrix_indicators_none_kb +# define LED_MATRIX_IS_ENABLED rgb_matrix_is_enabled +# define COLOR_WHITE 255, 255, 255 +# define COLOR_BLACK 0, 0, 0 +# endif + +# ifdef LED_MATRIX_ENABLE +# define LED_SET_FLAGS led_matrix_set_flags +# define LED_GET_FLAGS led_matrix_get_flags +# define LED_SET_ALL_OFF led_matrix_set_value_all(COLOR_BLACK) +# define LED_IS_ENABLED led_matrix_is_enabled +# define LED_ENABLE led_matrix_enable +# define LED_MATRIX_INDICATORS_KB led_matrix_indicators_kb +# define LED_MATRIX_INDICATORS_USER led_matrix_indicators_user +# define LED_MATRIX_SET_COLOR led_matrix_set_value +# define LED_MATRIX_UPDATE_PWN_BUFFERS led_matrix_update_pwm_buffers +# define LED_MATRIX_INDICATORS_NONE_KB led_matrix_indicators_none_kb +# define LED_MATRIX_IS_ENABLED led_matrix_is_enabled +# define COLOR_WHITE 255 +# define COLOR_BLACK 0 + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (LED_GET_FLAGS()) { + case LED_FLAG_ALL: { + LED_SET_FLAGS(LED_FLAG_NONE); + LED_SET_ALL_OFF; + } break; + default: { + LED_SET_FLAGS(LED_FLAG_ALL); + } break; + } + } + if (!LED_IS_ENABLED()) { + LED_SET_FLAGS(LED_FLAG_ALL); + LED_ENABLE(); + } + return false; + } + return true; +} + +bool LED_MATRIX_INDICATORS_KB(void) { + if (!LED_MATRIX_INDICATORS_USER()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + LED_MATRIX_SET_COLOR(CAPS_LED_INDEX, COLOR_WHITE); + } else { + LED_MATRIX_SET_COLOR(CAPS_LED_INDEX, COLOR_BLACK); + } + if (host_keyboard_led_state().num_lock) { + LED_MATRIX_SET_COLOR(NUM_LED_INDEX, COLOR_WHITE); + } else { + LED_MATRIX_SET_COLOR(NUM_LED_INDEX, COLOR_BLACK); + } + if (default_layer_state == (1 << 0)) { + LED_MATRIX_SET_COLOR(MAC_LED_INDEX, COLOR_WHITE); + } else { + LED_MATRIX_SET_COLOR(MAC_LED_INDEX, COLOR_BLACK); + } + if (default_layer_state == (1 << 2)) { + LED_MATRIX_SET_COLOR(WIN_LED_INDEX, COLOR_WHITE); + } else { + LED_MATRIX_SET_COLOR(WIN_LED_INDEX, COLOR_BLACK); + } + return true; +} + +#endif diff --git a/keyboards/keychron/c2_pro/config.h b/keyboards/keychron/c2_pro/config.h new file mode 100644 index 00000000000..6971ebd1aa8 --- /dev/null +++ b/keyboards/keychron/c2_pro/config.h @@ -0,0 +1,44 @@ +/* Copyright 2023 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* DIP switch */ +#define DIP_SWITCH_MATRIX_GRID { { 5, 4 } } + +/* Disable DIP switch in matrix data */ +#define MATRIX_MASKED + +/* EEPROM Driver Configuration */ +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) + +/* Increase I2C speed to 1000 KHz */ +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 3U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 15U +#define I2C1_TIMINGR_SCLL 51U + +/* Old default behavior of mod-taps */ +#define HOLD_ON_OTHER_KEY_PRESS + +/* HC595 used pins definiton */ +#define HC595_STCP A0 +#define HC595_SHCP A1 +#define HC595_DS C15 +#define SHIFT_COL_START 11 +#define SHIFT_COL_END 18 diff --git a/keyboards/keychron/c2_pro/halconf.h b/keyboards/keychron/c2_pro/halconf.h new file mode 100644 index 00000000000..41bddcb2799 --- /dev/null +++ b/keyboards/keychron/c2_pro/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keychron/c2_pro/info.json b/keyboards/keychron/c2_pro/info.json new file mode 100644 index 00000000000..dd97dd7adf2 --- /dev/null +++ b/keyboards/keychron/c2_pro/info.json @@ -0,0 +1,27 @@ +{ + "keyboard_name": "Keychron C2 Pro", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0x3434" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "dip_switch": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "C14"], + "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], + "custom": true, + "custom_lite": true + }, + "diode_direction": "ROW2COL" +} diff --git a/keyboards/keychron/c2_pro/matrix.c b/keyboards/keychron/c2_pro/matrix.c new file mode 100644 index 00000000000..5065f97aa7d --- /dev/null +++ b/keyboards/keychron/c2_pro/matrix.c @@ -0,0 +1,202 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifndef SHIFT_COL_START +# define SHIFT_COL_START 8 +#endif +#ifndef SHIFT_COL_END +# define SHIFT_COL_END 15 +#endif + +#if defined(SHIFT_COL_START) && defined(SHIFT_COL_END) +# if ((SHIFT_COL_END - SHIFT_COL_START + 1) > 16) +# define SIZE_T uint32_t +# define UNSELECT_ALL_COL 0xFFFFFFFF +# elif ((SHIFT_COL_END - SHIFT_COL_START + 1) > 8) +# define SIZE_T uint16_t +# define UNSELECT_ALL_COL 0xFFFF +# else +# define SIZE_T uint8_t +# define UNSELECT_ALL_COL 0xFF +# endif +#endif + +pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +static inline void setPinOutput_writeLow(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinLow(pin); + } +} + +static inline void setPinOutput_writeHigh(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinHigh(pin); + } +} + +static inline void setPinInput_high(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinInputHigh(pin); + } +} + +static inline uint8_t readMatrixPin(pin_t pin) { + if (pin != NO_PIN) { + return readPin(pin); + } else { + return 1; + } +} + +static inline void HC595_delay(uint8_t n) { + while (n-- > 0) { + asm volatile("nop" ::: "memory"); + } +} + +static void HC595_output(SIZE_T data, uint8_t bit) { + uint8_t n = 1; + + ATOMIC_BLOCK_FORCEON { + for (uint8_t i = 0; i < (SHIFT_COL_END - SHIFT_COL_START + 1); i++) { + if (data & 0x1) { + writePinHigh(HC595_DS); + } else { + writePinLow(HC595_DS); + } + writePinHigh(HC595_SHCP); + HC595_delay(n); + writePinLow(HC595_SHCP); + HC595_delay(n); + if (bit) { + break; + } else { + data = data >> 1; + } + } + writePinHigh(HC595_STCP); + HC595_delay(n); + writePinLow(HC595_STCP); + HC595_delay(n); + } +} + +static bool select_col(uint8_t col) { + pin_t pin = col_pins[col]; + + if (col < SHIFT_COL_START || col > SHIFT_COL_END) { + setPinOutput_writeLow(pin); + return true; + } else { + if (col == SHIFT_COL_START) { + HC595_output(0x00, 1); + } + return true; + } + return false; +} + +static void unselect_col(uint8_t col) { + pin_t pin = col_pins[col]; + + if (col < SHIFT_COL_START || col > SHIFT_COL_END) { +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + setPinOutput_writeHigh(pin); +#else + setPinInput_high(pin); +#endif + } else { + HC595_output(0x01, 1); + } +} + +static void unselect_cols(void) { + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + pin_t pin = col_pins[x]; + if (x < SHIFT_COL_START || x > SHIFT_COL_END) { +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + setPinOutput_writeHigh(pin); +#else + setPinInput_high(pin); +#endif + } else { + if (x == SHIFT_COL_START) HC595_output(UNSELECT_ALL_COL, 0); + } + } +} + +static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col, matrix_row_t row_shifter) { + bool key_pressed = false; + + // Select col + if (!select_col(current_col)) { // select col + return; // skip NO_PIN col + } + + matrix_output_select_delay(); + + // For each row... + for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) { + // Check row pin state + if (readMatrixPin(row_pins[row_index]) == 0) { + // Pin LO, set col bit + current_matrix[row_index] |= row_shifter; + key_pressed = true; + } else { + // Pin HI, clear col bit + current_matrix[row_index] &= ~row_shifter; + } + } + + // Unselect col + unselect_col(current_col); + matrix_output_unselect_delay(current_col, key_pressed); // wait for all Row signals to go HIGH +} + +void matrix_init_custom(void) { + setPinOutput(HC595_DS); + setPinOutput(HC595_STCP); + setPinOutput(HC595_SHCP); + + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + if (row_pins[x] != NO_PIN) { + setPinInput_high(row_pins[x]); + } + } + + unselect_cols(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + matrix_row_t curr_matrix[MATRIX_ROWS] = {0}; + + // Set col, read rows + matrix_row_t row_shifter = MATRIX_ROW_SHIFTER; + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++, row_shifter <<= 1) { + matrix_read_rows_on_col(curr_matrix, current_col, row_shifter); + } + + bool changed = memcmp(current_matrix, curr_matrix, sizeof(curr_matrix)) != 0; + if (changed) memcpy(current_matrix, curr_matrix, sizeof(curr_matrix)); + + return changed; +} diff --git a/keyboards/keychron/c2_pro/mcuconf.h b/keyboards/keychron/c2_pro/mcuconf.h new file mode 100644 index 00000000000..0ca8c64850f --- /dev/null +++ b/keyboards/keychron/c2_pro/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/c2_pro/readme.md b/keyboards/keychron/c2_pro/readme.md new file mode 100644 index 00000000000..c0715929dfe --- /dev/null +++ b/keyboards/keychron/c2_pro/readme.md @@ -0,0 +1,23 @@ +# Keychron C2 Pro + +![Keychron C2 Pro](https://i.imgur.com/BQE1tFOh.jpg) + +A customizable 100% keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron C2 Pro +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/c2/ansi/rgb:default + make keychron/c2/ansi/white:default + +Flashing example for this keyboard: + + make keychron/c2/ansi/rgb:default:flash + make keychron/c2/ansi/white:default:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json index bb901c42202..f6225c884a9 100644 --- a/keyboards/keychron/q0/rev_0130/info.json +++ b/keyboards/keychron/q0/rev_0130/info.json @@ -29,7 +29,7 @@ "processor": "STM32L432", "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "CKLED2001", + "driver": "ckled2001", "animations": { "band_spiral_val": true, "breathing": true, diff --git a/keyboards/keychron/q0/rev_0130/rules.mk b/keyboards/keychron/q0/rev_0130/rules.mk index 4eebc334376..f6868e88e33 100644 --- a/keyboards/keychron/q0/rev_0130/rules.mk +++ b/keyboards/keychron/q0/rev_0130/rules.mk @@ -1,5 +1,3 @@ EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q0/rev_0131/info.json b/keyboards/keychron/q0/rev_0131/info.json index 5f8d6219dea..c569e498f40 100644 --- a/keyboards/keychron/q0/rev_0131/info.json +++ b/keyboards/keychron/q0/rev_0131/info.json @@ -38,7 +38,7 @@ "processor": "STM32L432", "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "CKLED2001", + "driver": "ckled2001", "animations": { "band_spiral_val": true, "breathing": true, diff --git a/keyboards/keychron/q0/rev_0131/rules.mk b/keyboards/keychron/q0/rev_0131/rules.mk index 4eebc334376..f6868e88e33 100644 --- a/keyboards/keychron/q0/rev_0131/rules.mk +++ b/keyboards/keychron/q0/rev_0131/rules.mk @@ -1,5 +1,3 @@ EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q1/ansi/info.json b/keyboards/keychron/q1/ansi/info.json index b48eaee03e4..8ff2075747c 100644 --- a/keyboards/keychron/q1/ansi/info.json +++ b/keyboards/keychron/q1/ansi/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], diff --git a/keyboards/keychron/q1/ansi_encoder/info.json b/keyboards/keychron/q1/ansi_encoder/info.json index f520724989c..ef361257f05 100644 --- a/keyboards/keychron/q1/ansi_encoder/info.json +++ b/keyboards/keychron/q1/ansi_encoder/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], diff --git a/keyboards/keychron/q1/iso/info.json b/keyboards/keychron/q1/iso/info.json index 9caf6d61838..424ed021e10 100644 --- a/keyboards/keychron/q1/iso/info.json +++ b/keyboards/keychron/q1/iso/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c b/keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c index b97e6bfb922..5256c97dca7 100644 --- a/keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c +++ b/keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c @@ -55,8 +55,8 @@ 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), [WIN_BASE] = LAYOUT_iso_83( - 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, X(SAD), - 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, X(GRIN), + 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, UM(SAD), + 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, UM(GRIN), 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, QK_LEAD, 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, diff --git a/keyboards/keychron/q1/iso_encoder/info.json b/keyboards/keychron/q1/iso_encoder/info.json index a3aba1aed32..250cd1ffb43 100644 --- a/keyboards/keychron/q1/iso_encoder/info.json +++ b/keyboards/keychron/q1/iso_encoder/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], diff --git a/keyboards/keychron/q10/ansi_encoder/info.json b/keyboards/keychron/q10/ansi_encoder/info.json index 6b44fdbfdb0..8a8a624154a 100644 --- a/keyboards/keychron/q10/ansi_encoder/info.json +++ b/keyboards/keychron/q10/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q10/ansi_encoder/rules.mk b/keyboards/keychron/q10/ansi_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/q10/ansi_encoder/rules.mk +++ b/keyboards/keychron/q10/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q10/iso_encoder/info.json b/keyboards/keychron/q10/iso_encoder/info.json index 14910d29398..d7e1bf28853 100644 --- a/keyboards/keychron/q10/iso_encoder/info.json +++ b/keyboards/keychron/q10/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q10/iso_encoder/rules.mk b/keyboards/keychron/q10/iso_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/q10/iso_encoder/rules.mk +++ b/keyboards/keychron/q10/iso_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json index 43029ebbc37..cd2864979d1 100644 --- a/keyboards/keychron/q11/info.json +++ b/keyboards/keychron/q11/info.json @@ -59,7 +59,7 @@ ] }, "rgb_matrix": { - "driver": "CKLED2001", + "driver": "ckled2001", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/q11/q11.c b/keyboards/keychron/q11/q11.c index eccb5473e15..bf7bab4b539 100644 --- a/keyboards/keychron/q11/q11.c +++ b/keyboards/keychron/q11/q11.c @@ -23,9 +23,9 @@ const matrix_row_t matrix_mask[] = { 0b011111111, 0b011111111, - 0b011111111, + 0b011011111, 0b001111111, - 0b011111101, + 0b011111111, 0b001011111, 0b111111111, 0b101111111, diff --git a/keyboards/keychron/q12/ansi_encoder/info.json b/keyboards/keychron/q12/ansi_encoder/info.json index 007c2cafeac..97c1334ffdf 100644 --- a/keyboards/keychron/q12/ansi_encoder/info.json +++ b/keyboards/keychron/q12/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q12/ansi_encoder/rules.mk b/keyboards/keychron/q12/ansi_encoder/rules.mk index 9958a466f6d..80a3f300bd2 100644 --- a/keyboards/keychron/q12/ansi_encoder/rules.mk +++ b/keyboards/keychron/q12/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q12/iso_encoder/info.json b/keyboards/keychron/q12/iso_encoder/info.json index 33c719f26be..cd848c86b60 100644 --- a/keyboards/keychron/q12/iso_encoder/info.json +++ b/keyboards/keychron/q12/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q12/iso_encoder/rules.mk b/keyboards/keychron/q12/iso_encoder/rules.mk index df920055a08..98677249575 100644 --- a/keyboards/keychron/q12/iso_encoder/rules.mk +++ b/keyboards/keychron/q12/iso_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q2/ansi/info.json b/keyboards/keychron/q2/ansi/info.json index 8683144f898..8ed601fe8f4 100644 --- a/keyboards/keychron/q2/ansi/info.json +++ b/keyboards/keychron/q2/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q2/ansi/rules.mk b/keyboards/keychron/q2/ansi/rules.mk index bc7a0e0ff31..ede7d6fab23 100644 --- a/keyboards/keychron/q2/ansi/rules.mk +++ b/keyboards/keychron/q2/ansi/rules.mk @@ -16,5 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q2/ansi_encoder/info.json b/keyboards/keychron/q2/ansi_encoder/info.json index b05c2e68d21..c9587d20ea0 100644 --- a/keyboards/keychron/q2/ansi_encoder/info.json +++ b/keyboards/keychron/q2/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q2/ansi_encoder/rules.mk b/keyboards/keychron/q2/ansi_encoder/rules.mk index 3de172c6e3f..b294cf950e0 100644 --- a/keyboards/keychron/q2/ansi_encoder/rules.mk +++ b/keyboards/keychron/q2/ansi_encoder/rules.mk @@ -16,5 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q2/iso/info.json b/keyboards/keychron/q2/iso/info.json index 17905eb8724..e3cad79b14b 100644 --- a/keyboards/keychron/q2/iso/info.json +++ b/keyboards/keychron/q2/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q2/iso/rules.mk b/keyboards/keychron/q2/iso/rules.mk index f4aca09af8a..b3de9622913 100644 --- a/keyboards/keychron/q2/iso/rules.mk +++ b/keyboards/keychron/q2/iso/rules.mk @@ -16,5 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q2/iso_encoder/info.json b/keyboards/keychron/q2/iso_encoder/info.json index f5a2976bd3d..5030e6be426 100644 --- a/keyboards/keychron/q2/iso_encoder/info.json +++ b/keyboards/keychron/q2/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q2/iso_encoder/rules.mk b/keyboards/keychron/q2/iso_encoder/rules.mk index 33a50c67f75..aba76c09442 100644 --- a/keyboards/keychron/q2/iso_encoder/rules.mk +++ b/keyboards/keychron/q2/iso_encoder/rules.mk @@ -16,5 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q2/jis/info.json b/keyboards/keychron/q2/jis/info.json index 09092873eb8..d0af24b29da 100644 --- a/keyboards/keychron/q2/jis/info.json +++ b/keyboards/keychron/q2/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q2/jis/rules.mk b/keyboards/keychron/q2/jis/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/q2/jis/rules.mk +++ b/keyboards/keychron/q2/jis/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q2/jis_encoder/info.json b/keyboards/keychron/q2/jis_encoder/info.json index af22479aa04..e409fb63a67 100644 --- a/keyboards/keychron/q2/jis_encoder/info.json +++ b/keyboards/keychron/q2/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q2/jis_encoder/rules.mk b/keyboards/keychron/q2/jis_encoder/rules.mk index 6a772965ff6..5091fe94148 100644 --- a/keyboards/keychron/q2/jis_encoder/rules.mk +++ b/keyboards/keychron/q2/jis_encoder/rules.mk @@ -16,6 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q3/ansi/info.json b/keyboards/keychron/q3/ansi/info.json index 3f18242e456..124ac1bdcc9 100644 --- a/keyboards/keychron/q3/ansi/info.json +++ b/keyboards/keychron/q3/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q3/ansi/rules.mk b/keyboards/keychron/q3/ansi/rules.mk index 566c476585a..58bbb89a722 100644 --- a/keyboards/keychron/q3/ansi/rules.mk +++ b/keyboards/keychron/q3/ansi/rules.mk @@ -16,5 +16,3 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q3/ansi_encoder/info.json b/keyboards/keychron/q3/ansi_encoder/info.json index b536bb235e8..2dd2f18bf9f 100644 --- a/keyboards/keychron/q3/ansi_encoder/info.json +++ b/keyboards/keychron/q3/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q3/ansi_encoder/rules.mk b/keyboards/keychron/q3/ansi_encoder/rules.mk index 95a153f6891..77b90f24666 100644 --- a/keyboards/keychron/q3/ansi_encoder/rules.mk +++ b/keyboards/keychron/q3/ansi_encoder/rules.mk @@ -17,9 +17,6 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q3/iso/info.json b/keyboards/keychron/q3/iso/info.json index e858ee22458..c9618c5b47f 100644 --- a/keyboards/keychron/q3/iso/info.json +++ b/keyboards/keychron/q3/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q3/iso/rules.mk b/keyboards/keychron/q3/iso/rules.mk index 566c476585a..58bbb89a722 100644 --- a/keyboards/keychron/q3/iso/rules.mk +++ b/keyboards/keychron/q3/iso/rules.mk @@ -16,5 +16,3 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q3/iso_encoder/info.json b/keyboards/keychron/q3/iso_encoder/info.json index 6790d8b06f3..85714450876 100644 --- a/keyboards/keychron/q3/iso_encoder/info.json +++ b/keyboards/keychron/q3/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q3/iso_encoder/rules.mk b/keyboards/keychron/q3/iso_encoder/rules.mk index 95a153f6891..77b90f24666 100644 --- a/keyboards/keychron/q3/iso_encoder/rules.mk +++ b/keyboards/keychron/q3/iso_encoder/rules.mk @@ -17,9 +17,6 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q3/jis/info.json b/keyboards/keychron/q3/jis/info.json index 772b8f4c183..6f17a7cf9d7 100644 --- a/keyboards/keychron/q3/jis/info.json +++ b/keyboards/keychron/q3/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q3/jis/rules.mk b/keyboards/keychron/q3/jis/rules.mk index 566c476585a..58bbb89a722 100644 --- a/keyboards/keychron/q3/jis/rules.mk +++ b/keyboards/keychron/q3/jis/rules.mk @@ -16,5 +16,3 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q3/jis_encoder/info.json b/keyboards/keychron/q3/jis_encoder/info.json index 2bb4242c1bc..fd1f361f572 100644 --- a/keyboards/keychron/q3/jis_encoder/info.json +++ b/keyboards/keychron/q3/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q3/jis_encoder/rules.mk b/keyboards/keychron/q3/jis_encoder/rules.mk index 95a153f6891..77b90f24666 100644 --- a/keyboards/keychron/q3/jis_encoder/rules.mk +++ b/keyboards/keychron/q3/jis_encoder/rules.mk @@ -17,9 +17,6 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q4/ansi_v1/info.json b/keyboards/keychron/q4/ansi_v1/info.json index 4de9da9c8d1..8ee286c4819 100644 --- a/keyboards/keychron/q4/ansi_v1/info.json +++ b/keyboards/keychron/q4/ansi_v1/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/ansi_v1/rules.mk b/keyboards/keychron/q4/ansi_v1/rules.mk index 9111c3b9bd4..cad488b009c 100644 --- a/keyboards/keychron/q4/ansi_v1/rules.mk +++ b/keyboards/keychron/q4/ansi_v1/rules.mk @@ -16,6 +16,3 @@ LTO_ENABLE = no EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q4/ansi_v2/info.json b/keyboards/keychron/q4/ansi_v2/info.json index 4de9da9c8d1..8ee286c4819 100644 --- a/keyboards/keychron/q4/ansi_v2/info.json +++ b/keyboards/keychron/q4/ansi_v2/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/ansi_v2/rules.mk b/keyboards/keychron/q4/ansi_v2/rules.mk index 9111c3b9bd4..cad488b009c 100644 --- a/keyboards/keychron/q4/ansi_v2/rules.mk +++ b/keyboards/keychron/q4/ansi_v2/rules.mk @@ -16,6 +16,3 @@ LTO_ENABLE = no EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q4/iso/info.json b/keyboards/keychron/q4/iso/info.json index 5d675ff3b58..f8945cda619 100644 --- a/keyboards/keychron/q4/iso/info.json +++ b/keyboards/keychron/q4/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/iso/rules.mk b/keyboards/keychron/q4/iso/rules.mk index 9111c3b9bd4..cad488b009c 100644 --- a/keyboards/keychron/q4/iso/rules.mk +++ b/keyboards/keychron/q4/iso/rules.mk @@ -16,6 +16,3 @@ LTO_ENABLE = no EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q5/ansi/info.json b/keyboards/keychron/q5/ansi/info.json index 7be2a383670..55d7ae0165c 100644 --- a/keyboards/keychron/q5/ansi/info.json +++ b/keyboards/keychron/q5/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q5/ansi/rules.mk b/keyboards/keychron/q5/ansi/rules.mk index f2dba218bfc..e859eb9c34c 100644 --- a/keyboards/keychron/q5/ansi/rules.mk +++ b/keyboards/keychron/q5/ansi/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q5/ansi_encoder/info.json b/keyboards/keychron/q5/ansi_encoder/info.json index a1a12f17ed1..468261b1e9a 100644 --- a/keyboards/keychron/q5/ansi_encoder/info.json +++ b/keyboards/keychron/q5/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q5/ansi_encoder/rules.mk b/keyboards/keychron/q5/ansi_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/q5/ansi_encoder/rules.mk +++ b/keyboards/keychron/q5/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q5/iso/info.json b/keyboards/keychron/q5/iso/info.json index 786fa4a67e3..3b0b2ea1a06 100644 --- a/keyboards/keychron/q5/iso/info.json +++ b/keyboards/keychron/q5/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q5/iso/rules.mk b/keyboards/keychron/q5/iso/rules.mk index f2dba218bfc..e859eb9c34c 100644 --- a/keyboards/keychron/q5/iso/rules.mk +++ b/keyboards/keychron/q5/iso/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q5/iso_encoder/info.json b/keyboards/keychron/q5/iso_encoder/info.json index 650af582af1..eefa6dc6930 100644 --- a/keyboards/keychron/q5/iso_encoder/info.json +++ b/keyboards/keychron/q5/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q5/iso_encoder/rules.mk b/keyboards/keychron/q5/iso_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/q5/iso_encoder/rules.mk +++ b/keyboards/keychron/q5/iso_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q6/ansi/info.json b/keyboards/keychron/q6/ansi/info.json index f12809d8d01..fdec220e80c 100644 --- a/keyboards/keychron/q6/ansi/info.json +++ b/keyboards/keychron/q6/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q6/ansi/rules.mk b/keyboards/keychron/q6/ansi/rules.mk index ce3d41a17d2..ec47b77d0f6 100644 --- a/keyboards/keychron/q6/ansi/rules.mk +++ b/keyboards/keychron/q6/ansi/rules.mk @@ -16,9 +16,6 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q6/ansi_encoder/info.json b/keyboards/keychron/q6/ansi_encoder/info.json index ce1ffbb2940..df3902f44ab 100644 --- a/keyboards/keychron/q6/ansi_encoder/info.json +++ b/keyboards/keychron/q6/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q6/ansi_encoder/rules.mk b/keyboards/keychron/q6/ansi_encoder/rules.mk index 95a153f6891..77b90f24666 100644 --- a/keyboards/keychron/q6/ansi_encoder/rules.mk +++ b/keyboards/keychron/q6/ansi_encoder/rules.mk @@ -17,9 +17,6 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q6/iso/info.json b/keyboards/keychron/q6/iso/info.json index 77285ad1b91..dfaa20aa931 100644 --- a/keyboards/keychron/q6/iso/info.json +++ b/keyboards/keychron/q6/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q6/iso/rules.mk b/keyboards/keychron/q6/iso/rules.mk index 3388811adde..6548448302c 100644 --- a/keyboards/keychron/q6/iso/rules.mk +++ b/keyboards/keychron/q6/iso/rules.mk @@ -17,9 +17,6 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q6/iso_encoder/info.json b/keyboards/keychron/q6/iso_encoder/info.json index db795c312a1..45906168312 100644 --- a/keyboards/keychron/q6/iso_encoder/info.json +++ b/keyboards/keychron/q6/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q6/iso_encoder/rules.mk b/keyboards/keychron/q6/iso_encoder/rules.mk index d7fe88d9ca3..548b0d696ba 100644 --- a/keyboards/keychron/q6/iso_encoder/rules.mk +++ b/keyboards/keychron/q6/iso_encoder/rules.mk @@ -18,9 +18,6 @@ LTO_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q60/ansi/info.json b/keyboards/keychron/q60/ansi/info.json index 5c915ea1a9a..95b1c4e4728 100644 --- a/keyboards/keychron/q60/ansi/info.json +++ b/keyboards/keychron/q60/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q60/ansi/rules.mk b/keyboards/keychron/q60/ansi/rules.mk index 6dcd47b1fe3..46f5aef144b 100644 --- a/keyboards/keychron/q60/ansi/rules.mk +++ b/keyboards/keychron/q60/ansi/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q65/ansi_encoder/info.json b/keyboards/keychron/q65/ansi_encoder/info.json index ce150f5a618..0f7679945a2 100644 --- a/keyboards/keychron/q65/ansi_encoder/info.json +++ b/keyboards/keychron/q65/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q65/ansi_encoder/rules.mk b/keyboards/keychron/q65/ansi_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/q65/ansi_encoder/rules.mk +++ b/keyboards/keychron/q65/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q7/ansi/info.json b/keyboards/keychron/q7/ansi/info.json index 6912d48a9e3..2549e329f26 100644 --- a/keyboards/keychron/q7/ansi/info.json +++ b/keyboards/keychron/q7/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/q7/ansi/rules.mk b/keyboards/keychron/q7/ansi/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/q7/ansi/rules.mk +++ b/keyboards/keychron/q7/ansi/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q7/iso/info.json b/keyboards/keychron/q7/iso/info.json index 6b5c9ec6684..27262eb4f36 100644 --- a/keyboards/keychron/q7/iso/info.json +++ b/keyboards/keychron/q7/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/q7/iso/rules.mk b/keyboards/keychron/q7/iso/rules.mk index 7f91e808b11..c37beecb9ec 100644 --- a/keyboards/keychron/q7/iso/rules.mk +++ b/keyboards/keychron/q7/iso/rules.mk @@ -15,5 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q8/ansi/info.json b/keyboards/keychron/q8/ansi/info.json index 6ef7d5fee1f..7ee5b6c21f3 100644 --- a/keyboards/keychron/q8/ansi/info.json +++ b/keyboards/keychron/q8/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/ansi/rules.mk b/keyboards/keychron/q8/ansi/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/q8/ansi/rules.mk +++ b/keyboards/keychron/q8/ansi/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q8/ansi_encoder/info.json b/keyboards/keychron/q8/ansi_encoder/info.json index a8838ae8d13..a4c3ac77e13 100644 --- a/keyboards/keychron/q8/ansi_encoder/info.json +++ b/keyboards/keychron/q8/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/ansi_encoder/rules.mk b/keyboards/keychron/q8/ansi_encoder/rules.mk index e94a89ab85f..5091fe94148 100644 --- a/keyboards/keychron/q8/ansi_encoder/rules.mk +++ b/keyboards/keychron/q8/ansi_encoder/rules.mk @@ -16,5 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q8/iso/info.json b/keyboards/keychron/q8/iso/info.json index bf7405cce22..03a6cd1fddc 100644 --- a/keyboards/keychron/q8/iso/info.json +++ b/keyboards/keychron/q8/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/iso/rules.mk b/keyboards/keychron/q8/iso/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/q8/iso/rules.mk +++ b/keyboards/keychron/q8/iso/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q8/iso_encoder/info.json b/keyboards/keychron/q8/iso_encoder/info.json index f55ccaf202a..eb9dc22503b 100644 --- a/keyboards/keychron/q8/iso_encoder/info.json +++ b/keyboards/keychron/q8/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/iso_encoder/rules.mk b/keyboards/keychron/q8/iso_encoder/rules.mk index 6a772965ff6..5091fe94148 100644 --- a/keyboards/keychron/q8/iso_encoder/rules.mk +++ b/keyboards/keychron/q8/iso_encoder/rules.mk @@ -16,6 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q9/ansi/info.json b/keyboards/keychron/q9/ansi/info.json index 736467f42f9..952d3158c81 100644 --- a/keyboards/keychron/q9/ansi/info.json +++ b/keyboards/keychron/q9/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/ansi/rules.mk b/keyboards/keychron/q9/ansi/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/q9/ansi/rules.mk +++ b/keyboards/keychron/q9/ansi/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q9/ansi_encoder/info.json b/keyboards/keychron/q9/ansi_encoder/info.json index 95e2a1a2fbf..4fd5352638a 100644 --- a/keyboards/keychron/q9/ansi_encoder/info.json +++ b/keyboards/keychron/q9/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/ansi_encoder/rules.mk b/keyboards/keychron/q9/ansi_encoder/rules.mk index 7caead18d7f..911c497043a 100644 --- a/keyboards/keychron/q9/ansi_encoder/rules.mk +++ b/keyboards/keychron/q9/ansi_encoder/rules.mk @@ -17,6 +17,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q9/iso/info.json b/keyboards/keychron/q9/iso/info.json index a28b47dcf02..3e9a7690c18 100644 --- a/keyboards/keychron/q9/iso/info.json +++ b/keyboards/keychron/q9/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/iso/rules.mk b/keyboards/keychron/q9/iso/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/q9/iso/rules.mk +++ b/keyboards/keychron/q9/iso/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/q9/iso_encoder/info.json b/keyboards/keychron/q9/iso_encoder/info.json index f7f1ed8529a..ecf944744d8 100644 --- a/keyboards/keychron/q9/iso_encoder/info.json +++ b/keyboards/keychron/q9/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/iso_encoder/rules.mk b/keyboards/keychron/q9/iso_encoder/rules.mk index 7caead18d7f..911c497043a 100644 --- a/keyboards/keychron/q9/iso_encoder/rules.mk +++ b/keyboards/keychron/q9/iso_encoder/rules.mk @@ -17,6 +17,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/s1/ansi/rgb/info.json b/keyboards/keychron/s1/ansi/rgb/info.json index de3fdef5731..3bef5f343c3 100644 --- a/keyboards/keychron/s1/ansi/rgb/info.json +++ b/keyboards/keychron/s1/ansi/rgb/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/s1/ansi/rgb/rules.mk b/keyboards/keychron/s1/ansi/rgb/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/s1/ansi/rgb/rules.mk +++ b/keyboards/keychron/s1/ansi/rgb/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h index ee09c95266c..65a79726ca7 100644 --- a/keyboards/keychron/s1/ansi/white/config.h +++ b/keyboards/keychron/s1/ansi/white/config.h @@ -31,6 +31,9 @@ /* Disable LED lighting when PC is in suspend */ #define LED_DISABLE_WHEN_USB_SUSPENDED +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 46 + // LED Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_led_matrix?id=led-matrix-effects diff --git a/keyboards/keychron/s1/ansi/white/info.json b/keyboards/keychron/s1/ansi/white/info.json index 6d4d90525c3..ff0a6b69cbb 100644 --- a/keyboards/keychron/s1/ansi/white/info.json +++ b/keyboards/keychron/s1/ansi/white/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "led_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/s1/ansi/white/rules.mk b/keyboards/keychron/s1/ansi/white/rules.mk index 1fa4f83a77c..cb70ced9173 100644 --- a/keyboards/keychron/s1/ansi/white/rules.mk +++ b/keyboards/keychron/s1/ansi/white/rules.mk @@ -15,6 +15,3 @@ LED_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/s1/s1.c b/keyboards/keychron/s1/s1.c index 50f54b65478..d8488dd6ea6 100644 --- a/keyboards/keychron/s1/s1.c +++ b/keyboards/keychron/s1/s1.c @@ -28,7 +28,7 @@ const matrix_row_t matrix_mask[] = { #ifdef DIP_SWITCH_ENABLE bool dip_switch_update_kb(uint8_t index, bool active) { - if (!dip_switch_update_user(index, active)) { return false;} + if (!dip_switch_update_user(index, active)) { return false; } if (index == 0) { default_layer_set(1UL << (active ? 2 : 0)); } @@ -73,10 +73,54 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); } else { if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); } } return true; } -#endif // CAPS_LOCK_LED_INDEX +#endif // RGB_MATRIX_ENABLE && CAPS_LOCK_LED_INDEX + +#if defined(LED_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch (keycode) { +#ifdef LED_MATRIX_ENABLE + case BL_TOGG: + if (record->event.pressed) { + switch (led_matrix_get_flags()) { + case LED_FLAG_ALL: { + led_matrix_set_flags(LED_FLAG_NONE); + led_matrix_set_value_all(0); + } break; + default: { + led_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!led_matrix_is_enabled()) { + led_matrix_set_flags(LED_FLAG_ALL); + led_matrix_enable(); + } + return false; +#endif + } + return true; +} + +bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!led_matrix_indicators_advanced_user(led_min, led_max)) { return false; } + + if (host_keyboard_led_state().caps_lock) { + led_matrix_set_value(CAPS_LOCK_LED_INDEX, 255); + + } else { + if (!led_matrix_get_flags()) { + led_matrix_set_value(CAPS_LOCK_LED_INDEX, 0); + } + } + return true; +} + +#endif // LED_MATRIX_ENABLE && CAPS_LOCK_LED_INDEX diff --git a/keyboards/keychron/v1/ansi/info.json b/keyboards/keychron/v1/ansi/info.json index 696f4346227..f4c526bfdcb 100644 --- a/keyboards/keychron/v1/ansi/info.json +++ b/keyboards/keychron/v1/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/ansi/rules.mk b/keyboards/keychron/v1/ansi/rules.mk index f2dba218bfc..e859eb9c34c 100644 --- a/keyboards/keychron/v1/ansi/rules.mk +++ b/keyboards/keychron/v1/ansi/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/ansi_encoder/info.json b/keyboards/keychron/v1/ansi_encoder/info.json index 6829cd7f768..9beffb9f6a1 100644 --- a/keyboards/keychron/v1/ansi_encoder/info.json +++ b/keyboards/keychron/v1/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/ansi_encoder/rules.mk b/keyboards/keychron/v1/ansi_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v1/ansi_encoder/rules.mk +++ b/keyboards/keychron/v1/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/iso/info.json b/keyboards/keychron/v1/iso/info.json index 871358a86bd..5a4c74234c1 100644 --- a/keyboards/keychron/v1/iso/info.json +++ b/keyboards/keychron/v1/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/iso/rules.mk b/keyboards/keychron/v1/iso/rules.mk index f2dba218bfc..e859eb9c34c 100644 --- a/keyboards/keychron/v1/iso/rules.mk +++ b/keyboards/keychron/v1/iso/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/iso_encoder/info.json b/keyboards/keychron/v1/iso_encoder/info.json index bffa90acadc..106b43b5e79 100644 --- a/keyboards/keychron/v1/iso_encoder/info.json +++ b/keyboards/keychron/v1/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/iso_encoder/rules.mk b/keyboards/keychron/v1/iso_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v1/iso_encoder/rules.mk +++ b/keyboards/keychron/v1/iso_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/jis/info.json b/keyboards/keychron/v1/jis/info.json index 173794430cc..16365ccd9ee 100644 --- a/keyboards/keychron/v1/jis/info.json +++ b/keyboards/keychron/v1/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/jis/rules.mk b/keyboards/keychron/v1/jis/rules.mk index f2dba218bfc..e859eb9c34c 100644 --- a/keyboards/keychron/v1/jis/rules.mk +++ b/keyboards/keychron/v1/jis/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/jis_encoder/info.json b/keyboards/keychron/v1/jis_encoder/info.json index 73313eb64d3..702e5797580 100644 --- a/keyboards/keychron/v1/jis_encoder/info.json +++ b/keyboards/keychron/v1/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/jis_encoder/rules.mk b/keyboards/keychron/v1/jis_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v1/jis_encoder/rules.mk +++ b/keyboards/keychron/v1/jis_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v10/ansi_encoder/info.json b/keyboards/keychron/v10/ansi_encoder/info.json index 813a076bdca..2a7dc307cb0 100644 --- a/keyboards/keychron/v10/ansi_encoder/info.json +++ b/keyboards/keychron/v10/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v10/ansi_encoder/rules.mk b/keyboards/keychron/v10/ansi_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v10/ansi_encoder/rules.mk +++ b/keyboards/keychron/v10/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v10/iso_encoder/info.json b/keyboards/keychron/v10/iso_encoder/info.json index 9cf0add090b..455b375472b 100644 --- a/keyboards/keychron/v10/iso_encoder/info.json +++ b/keyboards/keychron/v10/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v10/iso_encoder/rules.mk b/keyboards/keychron/v10/iso_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v10/iso_encoder/rules.mk +++ b/keyboards/keychron/v10/iso_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v2/ansi/info.json b/keyboards/keychron/v2/ansi/info.json index 7d844d0c1d8..d07fba97b86 100644 --- a/keyboards/keychron/v2/ansi/info.json +++ b/keyboards/keychron/v2/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/ansi/rules.mk b/keyboards/keychron/v2/ansi/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/v2/ansi/rules.mk +++ b/keyboards/keychron/v2/ansi/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v2/ansi_encoder/info.json b/keyboards/keychron/v2/ansi_encoder/info.json index 8de781ab9cd..c733b389e68 100644 --- a/keyboards/keychron/v2/ansi_encoder/info.json +++ b/keyboards/keychron/v2/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/ansi_encoder/rules.mk b/keyboards/keychron/v2/ansi_encoder/rules.mk index 6a772965ff6..5091fe94148 100644 --- a/keyboards/keychron/v2/ansi_encoder/rules.mk +++ b/keyboards/keychron/v2/ansi_encoder/rules.mk @@ -16,6 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v2/iso/info.json b/keyboards/keychron/v2/iso/info.json index 45ba9503e4b..0d8376f7b76 100644 --- a/keyboards/keychron/v2/iso/info.json +++ b/keyboards/keychron/v2/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/iso/rules.mk b/keyboards/keychron/v2/iso/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/v2/iso/rules.mk +++ b/keyboards/keychron/v2/iso/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v2/iso_encoder/info.json b/keyboards/keychron/v2/iso_encoder/info.json index d517e341df5..0241cdb21e3 100644 --- a/keyboards/keychron/v2/iso_encoder/info.json +++ b/keyboards/keychron/v2/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/iso_encoder/rules.mk b/keyboards/keychron/v2/iso_encoder/rules.mk index 6a772965ff6..5091fe94148 100644 --- a/keyboards/keychron/v2/iso_encoder/rules.mk +++ b/keyboards/keychron/v2/iso_encoder/rules.mk @@ -16,6 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v2/jis/info.json b/keyboards/keychron/v2/jis/info.json index 6a705e7f8c1..f65e2b51d2a 100644 --- a/keyboards/keychron/v2/jis/info.json +++ b/keyboards/keychron/v2/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/jis/rules.mk b/keyboards/keychron/v2/jis/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/v2/jis/rules.mk +++ b/keyboards/keychron/v2/jis/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v2/jis_encoder/info.json b/keyboards/keychron/v2/jis_encoder/info.json index 028432f7f70..263e403167c 100644 --- a/keyboards/keychron/v2/jis_encoder/info.json +++ b/keyboards/keychron/v2/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/jis_encoder/rules.mk b/keyboards/keychron/v2/jis_encoder/rules.mk index 6a772965ff6..5091fe94148 100644 --- a/keyboards/keychron/v2/jis_encoder/rules.mk +++ b/keyboards/keychron/v2/jis_encoder/rules.mk @@ -16,6 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v3/ansi/info.json b/keyboards/keychron/v3/ansi/info.json index e0d7fdb63d3..65720663291 100644 --- a/keyboards/keychron/v3/ansi/info.json +++ b/keyboards/keychron/v3/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/ansi/rules.mk b/keyboards/keychron/v3/ansi/rules.mk index 2b4a67b1eee..c37beecb9ec 100644 --- a/keyboards/keychron/v3/ansi/rules.mk +++ b/keyboards/keychron/v3/ansi/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v3/ansi_encoder/info.json b/keyboards/keychron/v3/ansi_encoder/info.json index 3232da0fba1..cffbc851581 100644 --- a/keyboards/keychron/v3/ansi_encoder/info.json +++ b/keyboards/keychron/v3/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/ansi_encoder/rules.mk b/keyboards/keychron/v3/ansi_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v3/ansi_encoder/rules.mk +++ b/keyboards/keychron/v3/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v3/iso/info.json b/keyboards/keychron/v3/iso/info.json index 3ba7acb3229..18c73a8f582 100644 --- a/keyboards/keychron/v3/iso/info.json +++ b/keyboards/keychron/v3/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/iso/rules.mk b/keyboards/keychron/v3/iso/rules.mk index 201148f39d4..2eadfbded90 100644 --- a/keyboards/keychron/v3/iso/rules.mk +++ b/keyboards/keychron/v3/iso/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v3/iso_encoder/info.json b/keyboards/keychron/v3/iso_encoder/info.json index 5cd2631c12e..60c56a6b87b 100644 --- a/keyboards/keychron/v3/iso_encoder/info.json +++ b/keyboards/keychron/v3/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/iso_encoder/rules.mk b/keyboards/keychron/v3/iso_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v3/iso_encoder/rules.mk +++ b/keyboards/keychron/v3/iso_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v3/jis/info.json b/keyboards/keychron/v3/jis/info.json index 4680d5e0b56..9b97707b2f7 100644 --- a/keyboards/keychron/v3/jis/info.json +++ b/keyboards/keychron/v3/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/jis/rules.mk b/keyboards/keychron/v3/jis/rules.mk index 7f91e808b11..c37beecb9ec 100644 --- a/keyboards/keychron/v3/jis/rules.mk +++ b/keyboards/keychron/v3/jis/rules.mk @@ -15,5 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/v3/jis_encoder/info.json b/keyboards/keychron/v3/jis_encoder/info.json index 2cc52070062..585cf4519e0 100644 --- a/keyboards/keychron/v3/jis_encoder/info.json +++ b/keyboards/keychron/v3/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/jis_encoder/rules.mk b/keyboards/keychron/v3/jis_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v3/jis_encoder/rules.mk +++ b/keyboards/keychron/v3/jis_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v4/ansi/info.json b/keyboards/keychron/v4/ansi/info.json index e45a9c18d52..812aec53a71 100644 --- a/keyboards/keychron/v4/ansi/info.json +++ b/keyboards/keychron/v4/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], @@ -18,8 +18,12 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "layout_aliases": { + "LAYOUT_ansi_61": "LAYOUT_60_ansi" + }, + "community_layouts": ["60_ansi"], "layouts": { - "LAYOUT_ansi_61": { + "LAYOUT_60_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/keychron/v4/ansi/keymaps/default/keymap.c b/keyboards/keychron/v4/ansi/keymaps/default/keymap.c index 76c2f1b006c..b23029bee48 100644 --- a/keyboards/keychron/v4/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/v4/ansi/keymaps/default/keymap.c @@ -30,35 +30,35 @@ enum layers { #define KC_FLXP LGUI(KC_E) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_61( + [MAC_BASE] = LAYOUT_60_ansi( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL), - [WIN_BASE] = LAYOUT_ansi_61( + [WIN_BASE] = LAYOUT_60_ansi( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - [_FN1] = LAYOUT_ansi_61( + [_FN1] = LAYOUT_60_ansi( KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, _______, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN2] = LAYOUT_ansi_61( + [_FN2] = LAYOUT_60_ansi( KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN3] = LAYOUT_ansi_61( + [_FN3] = LAYOUT_60_ansi( 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, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/v4/ansi/keymaps/keychron/keymap.c b/keyboards/keychron/v4/ansi/keymaps/keychron/keymap.c index 2f09fd42d8c..50a5fd4267e 100644 --- a/keyboards/keychron/v4/ansi/keymaps/keychron/keymap.c +++ b/keyboards/keychron/v4/ansi/keymaps/keychron/keymap.c @@ -28,35 +28,35 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_61( + [MAC_BASE] = LAYOUT_60_ansi( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(_FN1), MO(_FN3), KC_RCTL), - [WIN_BASE] = LAYOUT_ansi_61( + [WIN_BASE] = LAYOUT_60_ansi( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - [_FN1] = LAYOUT_ansi_61( + [_FN1] = LAYOUT_60_ansi( KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN2] = LAYOUT_ansi_61( + [_FN2] = LAYOUT_60_ansi( KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN3] = LAYOUT_ansi_61( + [_FN3] = LAYOUT_60_ansi( 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, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/v4/ansi/keymaps/via/keymap.c b/keyboards/keychron/v4/ansi/keymaps/via/keymap.c index 76c2f1b006c..b23029bee48 100644 --- a/keyboards/keychron/v4/ansi/keymaps/via/keymap.c +++ b/keyboards/keychron/v4/ansi/keymaps/via/keymap.c @@ -30,35 +30,35 @@ enum layers { #define KC_FLXP LGUI(KC_E) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_61( + [MAC_BASE] = LAYOUT_60_ansi( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL), - [WIN_BASE] = LAYOUT_ansi_61( + [WIN_BASE] = LAYOUT_60_ansi( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - [_FN1] = LAYOUT_ansi_61( + [_FN1] = LAYOUT_60_ansi( KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, _______, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN2] = LAYOUT_ansi_61( + [_FN2] = LAYOUT_60_ansi( KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN3] = LAYOUT_ansi_61( + [_FN3] = LAYOUT_60_ansi( 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, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/v4/ansi/rules.mk b/keyboards/keychron/v4/ansi/rules.mk index 6dcd47b1fe3..46f5aef144b 100644 --- a/keyboards/keychron/v4/ansi/rules.mk +++ b/keyboards/keychron/v4/ansi/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v4/iso/info.json b/keyboards/keychron/v4/iso/info.json index fd9a9a81df5..7d4a8eae1d2 100644 --- a/keyboards/keychron/v4/iso/info.json +++ b/keyboards/keychron/v4/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], @@ -18,8 +18,12 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "layout_aliases": { + "LAYOUT_iso_62": "LAYOUT_60_iso" + }, + "community_layouts": ["60_iso"], "layouts": { - "LAYOUT_iso_62": { + "LAYOUT_60_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -66,7 +70,7 @@ {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3.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}, diff --git a/keyboards/keychron/v4/iso/keymaps/default/keymap.c b/keyboards/keychron/v4/iso/keymaps/default/keymap.c index 41fba1cda32..1569e513cf8 100644 --- a/keyboards/keychron/v4/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/v4/iso/keymaps/default/keymap.c @@ -30,35 +30,35 @@ enum layers { #define KC_FLXP LGUI(KC_E) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_iso_62( + [MAC_BASE] = LAYOUT_60_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_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, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL), - [WIN_BASE] = LAYOUT_iso_62( + [WIN_BASE] = LAYOUT_60_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_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, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - [_FN1] = LAYOUT_iso_62( + [_FN1] = LAYOUT_60_iso( KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, _______, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN2] = LAYOUT_iso_62( + [_FN2] = LAYOUT_60_iso( KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN3] = LAYOUT_iso_62( + [_FN3] = LAYOUT_60_iso( 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, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/v4/iso/keymaps/keychron/keymap.c b/keyboards/keychron/v4/iso/keymaps/keychron/keymap.c index a91a2ae36d0..0bc8e995dc6 100644 --- a/keyboards/keychron/v4/iso/keymaps/keychron/keymap.c +++ b/keyboards/keychron/v4/iso/keymaps/keychron/keymap.c @@ -28,35 +28,35 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_iso_62( + [MAC_BASE] = LAYOUT_60_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_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, KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(_FN1), MO(_FN3), KC_RCTL), - [WIN_BASE] = LAYOUT_iso_62( + [WIN_BASE] = LAYOUT_60_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_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, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - [_FN1] = LAYOUT_iso_62( + [_FN1] = LAYOUT_60_iso( KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_SNAP, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN2] = LAYOUT_iso_62( + [_FN2] = LAYOUT_60_iso( KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN3] = LAYOUT_iso_62( + [_FN3] = LAYOUT_60_iso( 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, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/v4/iso/keymaps/via/keymap.c b/keyboards/keychron/v4/iso/keymaps/via/keymap.c index 41fba1cda32..1569e513cf8 100644 --- a/keyboards/keychron/v4/iso/keymaps/via/keymap.c +++ b/keyboards/keychron/v4/iso/keymaps/via/keymap.c @@ -30,35 +30,35 @@ enum layers { #define KC_FLXP LGUI(KC_E) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_iso_62( + [MAC_BASE] = LAYOUT_60_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_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, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL), - [WIN_BASE] = LAYOUT_iso_62( + [WIN_BASE] = LAYOUT_60_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_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, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - [_FN1] = LAYOUT_iso_62( + [_FN1] = LAYOUT_60_iso( KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, _______, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN2] = LAYOUT_iso_62( + [_FN2] = LAYOUT_60_iso( KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN3] = LAYOUT_iso_62( + [_FN3] = LAYOUT_60_iso( 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, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keychron/v4/iso/rules.mk b/keyboards/keychron/v4/iso/rules.mk index 6dcd47b1fe3..46f5aef144b 100644 --- a/keyboards/keychron/v4/iso/rules.mk +++ b/keyboards/keychron/v4/iso/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v5/ansi/info.json b/keyboards/keychron/v5/ansi/info.json index 7b087b7033e..bc5eec2ca55 100644 --- a/keyboards/keychron/v5/ansi/info.json +++ b/keyboards/keychron/v5/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v5/ansi/rules.mk b/keyboards/keychron/v5/ansi/rules.mk index f2dba218bfc..e859eb9c34c 100644 --- a/keyboards/keychron/v5/ansi/rules.mk +++ b/keyboards/keychron/v5/ansi/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v5/ansi_encoder/info.json b/keyboards/keychron/v5/ansi_encoder/info.json index 32824efe6b0..8a4aec4e366 100644 --- a/keyboards/keychron/v5/ansi_encoder/info.json +++ b/keyboards/keychron/v5/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v5/ansi_encoder/rules.mk b/keyboards/keychron/v5/ansi_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v5/ansi_encoder/rules.mk +++ b/keyboards/keychron/v5/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v5/iso/info.json b/keyboards/keychron/v5/iso/info.json index 0fac99cd380..02db87e9ac2 100644 --- a/keyboards/keychron/v5/iso/info.json +++ b/keyboards/keychron/v5/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v5/iso/rules.mk b/keyboards/keychron/v5/iso/rules.mk index f2dba218bfc..e859eb9c34c 100644 --- a/keyboards/keychron/v5/iso/rules.mk +++ b/keyboards/keychron/v5/iso/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v5/iso_encoder/info.json b/keyboards/keychron/v5/iso_encoder/info.json index 1c650cdf50f..b0be43fc502 100644 --- a/keyboards/keychron/v5/iso_encoder/info.json +++ b/keyboards/keychron/v5/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v5/iso_encoder/rules.mk b/keyboards/keychron/v5/iso_encoder/rules.mk index 5df3cbccaf1..7da353fbd16 100644 --- a/keyboards/keychron/v5/iso_encoder/rules.mk +++ b/keyboards/keychron/v5/iso_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v6/ansi/info.json b/keyboards/keychron/v6/ansi/info.json index 3c1a0eb8171..3f12305f06a 100644 --- a/keyboards/keychron/v6/ansi/info.json +++ b/keyboards/keychron/v6/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v6/ansi/rules.mk b/keyboards/keychron/v6/ansi/rules.mk index de86b770f3a..980311d3f2f 100644 --- a/keyboards/keychron/v6/ansi/rules.mk +++ b/keyboards/keychron/v6/ansi/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v6/ansi_encoder/info.json b/keyboards/keychron/v6/ansi_encoder/info.json index 4f14dea8ca3..ad0ea78318a 100644 --- a/keyboards/keychron/v6/ansi_encoder/info.json +++ b/keyboards/keychron/v6/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v6/ansi_encoder/rules.mk b/keyboards/keychron/v6/ansi_encoder/rules.mk index 9958a466f6d..80a3f300bd2 100644 --- a/keyboards/keychron/v6/ansi_encoder/rules.mk +++ b/keyboards/keychron/v6/ansi_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v6/iso/info.json b/keyboards/keychron/v6/iso/info.json index adbebecda6a..0840ee9cc8e 100644 --- a/keyboards/keychron/v6/iso/info.json +++ b/keyboards/keychron/v6/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v6/iso/rules.mk b/keyboards/keychron/v6/iso/rules.mk index de86b770f3a..980311d3f2f 100644 --- a/keyboards/keychron/v6/iso/rules.mk +++ b/keyboards/keychron/v6/iso/rules.mk @@ -15,9 +15,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v6/iso_encoder/info.json b/keyboards/keychron/v6/iso_encoder/info.json index 177c48b9123..a40d4d66b62 100644 --- a/keyboards/keychron/v6/iso_encoder/info.json +++ b/keyboards/keychron/v6/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v6/iso_encoder/rules.mk b/keyboards/keychron/v6/iso_encoder/rules.mk index df920055a08..98677249575 100644 --- a/keyboards/keychron/v6/iso_encoder/rules.mk +++ b/keyboards/keychron/v6/iso_encoder/rules.mk @@ -16,9 +16,6 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v7/ansi/info.json b/keyboards/keychron/v7/ansi/info.json index 6e831d2607b..26f31786b5b 100644 --- a/keyboards/keychron/v7/ansi/info.json +++ b/keyboards/keychron/v7/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/v7/ansi/rules.mk b/keyboards/keychron/v7/ansi/rules.mk index 6dcd47b1fe3..46f5aef144b 100644 --- a/keyboards/keychron/v7/ansi/rules.mk +++ b/keyboards/keychron/v7/ansi/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v7/iso/info.json b/keyboards/keychron/v7/iso/info.json index d3ae4f75e57..f29d9d9a326 100644 --- a/keyboards/keychron/v7/iso/info.json +++ b/keyboards/keychron/v7/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/v7/iso/rules.mk b/keyboards/keychron/v7/iso/rules.mk index 6dcd47b1fe3..46f5aef144b 100644 --- a/keyboards/keychron/v7/iso/rules.mk +++ b/keyboards/keychron/v7/iso/rules.mk @@ -15,6 +15,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v8/ansi/info.json b/keyboards/keychron/v8/ansi/info.json index 38e8be2c002..02780ffcde4 100644 --- a/keyboards/keychron/v8/ansi/info.json +++ b/keyboards/keychron/v8/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/ansi/rules.mk b/keyboards/keychron/v8/ansi/rules.mk index bdb97dbf1c7..e506e322d59 100644 --- a/keyboards/keychron/v8/ansi/rules.mk +++ b/keyboards/keychron/v8/ansi/rules.mk @@ -17,6 +17,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v8/ansi_encoder/info.json b/keyboards/keychron/v8/ansi_encoder/info.json index c2325070aa3..c3fc389780b 100644 --- a/keyboards/keychron/v8/ansi_encoder/info.json +++ b/keyboards/keychron/v8/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/ansi_encoder/rules.mk b/keyboards/keychron/v8/ansi_encoder/rules.mk index d2bee999c86..e3b0d8f03f1 100644 --- a/keyboards/keychron/v8/ansi_encoder/rules.mk +++ b/keyboards/keychron/v8/ansi_encoder/rules.mk @@ -17,6 +17,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v8/iso/info.json b/keyboards/keychron/v8/iso/info.json index 585dcc979c3..5f30af5b1a8 100644 --- a/keyboards/keychron/v8/iso/info.json +++ b/keyboards/keychron/v8/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/iso/rules.mk b/keyboards/keychron/v8/iso/rules.mk index fec3d8d15ce..8edab2465bd 100644 --- a/keyboards/keychron/v8/iso/rules.mk +++ b/keyboards/keychron/v8/iso/rules.mk @@ -16,6 +16,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keychron/v8/iso_encoder/info.json b/keyboards/keychron/v8/iso_encoder/info.json index a0ddfcbeeaa..e13261a2d65 100644 --- a/keyboards/keychron/v8/iso_encoder/info.json +++ b/keyboards/keychron/v8/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "CKLED2001" + "driver": "ckled2001" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/iso_encoder/rules.mk b/keyboards/keychron/v8/iso_encoder/rules.mk index d2bee999c86..e3b0d8f03f1 100644 --- a/keyboards/keychron/v8/iso_encoder/rules.mk +++ b/keyboards/keychron/v8/iso_encoder/rules.mk @@ -17,6 +17,3 @@ RGB_MATRIX_ENABLE = yes EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - diff --git a/keyboards/keygem/kg60ansi/config.h b/keyboards/keygem/kg60ansi/config.h index d2cf17fe2b3..388a273f7c2 100644 --- a/keyboards/keygem/kg60ansi/config.h +++ b/keyboards/keygem/kg60ansi/config.h @@ -22,22 +22,8 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#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 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 */ diff --git a/keyboards/keygem/kg60ansi/info.json b/keyboards/keygem/kg60ansi/info.json index 2d4fa5365b1..9d8cbd485e0 100644 --- a/keyboards/keygem/kg60ansi/info.json +++ b/keyboards/keygem/kg60ansi/info.json @@ -12,7 +12,20 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 108 + "led_count": 64, + "max_brightness": 108, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "B3", "B2", "B1"], diff --git a/keyboards/keygem/kg65rgbv2/config.h b/keyboards/keygem/kg65rgbv2/config.h index ab1fab73ffb..388a273f7c2 100644 --- a/keyboards/keygem/kg65rgbv2/config.h +++ b/keyboards/keygem/kg65rgbv2/config.h @@ -22,22 +22,8 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#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 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 */ diff --git a/keyboards/keygem/kg65rgbv2/info.json b/keyboards/keygem/kg65rgbv2/info.json index 8dccdc233d0..674b6295775 100644 --- a/keyboards/keygem/kg65rgbv2/info.json +++ b/keyboards/keygem/kg65rgbv2/info.json @@ -12,7 +12,20 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 96 + "led_count": 68, + "max_brightness": 96, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "B3", "B2", "B1", "D1"], diff --git a/keyboards/keyhive/absinthe/config.h b/keyboards/keyhive/absinthe/config.h index c916ffc430a..37867c3cd14 100644 --- a/keyboards/keyhive/absinthe/config.h +++ b/keyboards/keyhive/absinthe/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 32 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keyhive/absinthe/info.json b/keyboards/keyhive/absinthe/info.json index 8001d6db017..1496756d9a2 100644 --- a/keyboards/keyhive/absinthe/info.json +++ b/keyboards/keyhive/absinthe/info.json @@ -8,6 +8,18 @@ "pid": "0xFEED", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 32, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/keyhive/ergosaurus/config.h b/keyboards/keyhive/ergosaurus/config.h index e7de4ca7bdd..39eec86786a 100644 --- a/keyboards/keyhive/ergosaurus/config.h +++ b/keyboards/keyhive/ergosaurus/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 32 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - #endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/keyhive/ergosaurus/info.json b/keyboards/keyhive/ergosaurus/info.json index 28461eaf85a..76d1988da08 100644 --- a/keyboards/keyhive/ergosaurus/info.json +++ b/keyboards/keyhive/ergosaurus/info.json @@ -11,7 +11,17 @@ "pin": "B6" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 32, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } }, "matrix_pins": { "cols": ["D7", "C6", "D0", "D1", "F7", "B1", "B3", "B2"], diff --git a/keyboards/keyhive/smallice/config.h b/keyboards/keyhive/smallice/config.h deleted file mode 100644 index 7113cd26e91..00000000000 --- a/keyboards/keyhive/smallice/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2020 quark - -This 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 RGBLED_NUM 12 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keyhive/smallice/info.json b/keyboards/keyhive/smallice/info.json index afe95e7aa79..fae716f8208 100644 --- a/keyboards/keyhive/smallice/info.json +++ b/keyboards/keyhive/smallice/info.json @@ -8,6 +8,24 @@ "pid": "0x5341", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/keyhive/smallice/keymaps/vial/keymap.c b/keyboards/keyhive/smallice/keymaps/vial/keymap.c index 838dc7c8697..b88537d2a92 100644 --- a/keyboards/keyhive/smallice/keymaps/vial/keymap.c +++ b/keyboards/keyhive/smallice/keymaps/vial/keymap.c @@ -22,23 +22,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_VOLU, 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_VOLD, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, KC_LCTL, KC_LALT, KC_SPC, KC_LWIN, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT - ), - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + ) }; diff --git a/keyboards/keyhive/uno/rev1/config.h b/keyboards/keyhive/uno/rev1/config.h deleted file mode 100644 index 414590f6437..00000000000 --- a/keyboards/keyhive/uno/rev1/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Snipeye - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RGBLIGHT_EFFECT_RAINBOW_MOOD - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 1 -#endif diff --git a/keyboards/keyhive/uno/rev1/info.json b/keyboards/keyhive/uno/rev1/info.json index 69fe9afd776..61121267d7b 100644 --- a/keyboards/keyhive/uno/rev1/info.json +++ b/keyboards/keyhive/uno/rev1/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "0.0.1" }, + "rgblight": { + "led_count": 1, + "animations": { + "rainbow_mood": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/keyhive/uno/rev2/config.h b/keyboards/keyhive/uno/rev2/config.h deleted file mode 100644 index 414590f6437..00000000000 --- a/keyboards/keyhive/uno/rev2/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Snipeye - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RGBLIGHT_EFFECT_RAINBOW_MOOD - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 1 -#endif diff --git a/keyboards/keyhive/uno/rev2/info.json b/keyboards/keyhive/uno/rev2/info.json index 0af41bab773..908c254babb 100644 --- a/keyboards/keyhive/uno/rev2/info.json +++ b/keyboards/keyhive/uno/rev2/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "0.0.2" }, + "rgblight": { + "led_count": 1, + "animations": { + "rainbow_mood": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/keyhive/ut472/config.h b/keyboards/keyhive/ut472/config.h index 5ab93481266..8dd82d2464c 100644 --- a/keyboards/keyhive/ut472/config.h +++ b/keyboards/keyhive/ut472/config.h @@ -20,18 +20,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/keyhive/ut472/info.json b/keyboards/keyhive/ut472/info.json index 9755bd65691..6c3dd26eef6 100644 --- a/keyboards/keyhive/ut472/info.json +++ b/keyboards/keyhive/ut472/info.json @@ -8,6 +8,23 @@ "pid": "0x0472", "device_version": "0.0.2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C6" }, diff --git a/keyboards/keyquest/enclave/config.h b/keyboards/keyquest/enclave/config.h deleted file mode 100644 index 012d53a36b2..00000000000 --- a/keyboards/keyquest/enclave/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2021 keyquest -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB light setup*/ -#define RGBLED_NUM 2 -#define RGBLIGHT_SLEEP -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* RGB light 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/keyquest/enclave/info.json b/keyboards/keyquest/enclave/info.json index 8135d7fec2e..6a5ab097fe6 100644 --- a/keyboards/keyquest/enclave/info.json +++ b/keyboards/keyquest/enclave/info.json @@ -11,7 +11,22 @@ "pin": "B5" }, "rgblight": { - "max_brightness": 200 + "hue_steps": 10, + "led_count": 2, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B4", "B7", "C7"], diff --git a/keyboards/keysofkings/twokey/config.h b/keyboards/keysofkings/twokey/config.h index 6fea0e2cb61..c2f47d2d8e7 100755 --- a/keyboards/keysofkings/twokey/config.h +++ b/keyboards/keysofkings/twokey/config.h @@ -22,24 +22,8 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#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 RGBLED_NUM 5 -#define RGBLIGHT_HUE_STEP 4 -#define RGBLIGHT_SAT_STEP 4 -#define RGBLIGHT_VAL_STEP 4 #define AUDIO_PIN B6 #define AUDIO_CLICKY -#endif #ifdef AUDIO_ENABLE #define STARTUP_SONG SONG(MAJOR_SOUND) diff --git a/keyboards/keysofkings/twokey/info.json b/keyboards/keysofkings/twokey/info.json index 8040b94face..e7564bf2a54 100644 --- a/keyboards/keysofkings/twokey/info.json +++ b/keyboards/keysofkings/twokey/info.json @@ -8,6 +8,24 @@ "pid": "0xAE12", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 4, + "saturation_steps": 4, + "brightness_steps": 4, + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keystonecaps/gameroyadvance/config.h b/keyboards/keystonecaps/gameroyadvance/config.h index adca3366f23..f3286df1230 100644 --- a/keyboards/keystonecaps/gameroyadvance/config.h +++ b/keyboards/keystonecaps/gameroyadvance/config.h @@ -22,18 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 0 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/keystonecaps/gameroyadvance/info.json b/keyboards/keystonecaps/gameroyadvance/info.json index 884bc706e49..b2d2a01f8b0 100644 --- a/keyboards/keystonecaps/gameroyadvance/info.json +++ b/keyboards/keystonecaps/gameroyadvance/info.json @@ -18,6 +18,23 @@ {"pin_a": "B5", "pin_b": "B4"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 0, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/kibou/harbour/info.json b/keyboards/kibou/harbour/info.json new file mode 100644 index 00000000000..a5417e1ae52 --- /dev/null +++ b/keyboards/kibou/harbour/info.json @@ -0,0 +1,183 @@ +{ + "manufacturer": "kibou", + "keyboard_name": "harbour", + "maintainer": "FanXingStudio", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C9", "A8", "A15", "C10", "C11", "B5", "B6", "B7", "A0", "A1", "A2", "C3", "C2", "C1", "A3", "A4"], + "rows": ["C12", "D2", "B3", "B4", "C13"] + }, + "processor": "STM32F401", + "url": "https://kibou.store/", + "usb": { + "device_version": "0.0.1", + "pid": "0xA002", + "vid": "0x586A" + }, + "indicators": { + "caps_lock": "C8" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker_tsangan_split_bs" + }, + "layouts": { + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "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": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "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, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_wkl_split_bs": { + "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": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "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, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/kibou/harbour/keymaps/default/keymap.c b/keyboards/kibou/harbour/keymaps/default/keymap.c new file mode 100644 index 00000000000..a949c5dc4de --- /dev/null +++ b/keyboards/kibou/harbour/keymaps/default/keymap.c @@ -0,0 +1,13 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker_tsangan_split_bs( + KC_ESC, KC_1, 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_PGUP, + 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, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT) +}; diff --git a/keyboards/kibou/harbour/keymaps/via/keymap.c b/keyboards/kibou/harbour/keymaps/via/keymap.c new file mode 100644 index 00000000000..a949c5dc4de --- /dev/null +++ b/keyboards/kibou/harbour/keymaps/via/keymap.c @@ -0,0 +1,13 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker_tsangan_split_bs( + KC_ESC, KC_1, 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_PGUP, + 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, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT) +}; diff --git a/keyboards/kibou/harbour/keymaps/via/rules.mk b/keyboards/kibou/harbour/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/kibou/harbour/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kibou/harbour/matrix_diagram.md b/keyboards/kibou/harbour/matrix_diagram.md new file mode 100644 index 00000000000..1f5097d93d8 --- /dev/null +++ b/keyboards/kibou/harbour/matrix_diagram.md @@ -0,0 +1,36 @@ +# Matrix Diagram for Kibou Harbour + +According to the GB runner, the PCB supports ISO layout, but the +supplied plate does not.[^1][^2] + +Product renders and GB runner comments both show support for split +Backspace,[^3] but no switch matrix data is currently available. + +\- @noroadsleft, 23 June, 2023 + +``` + ┌───────┐ + 2u Backspace │?? │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐?? │ ISO Enter +│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │2F │ │?? │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │?? │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │3F │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│40 │42 │43 │47 │4B │ │4D │4E │4F │ +└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬──┬─────┬───────────────────────────┬─────┐ +│40 │ │43 │47 │4B │ Blocker WKL +└─────┘ └─────┴───────────────────────────┴─────┘ +``` + +[^1]: [Geekhack Interest Check, Original Post](https://geekhack.org/index.php?topic=111146.msg3012509#msg3012509) +[^2]: [Reddit Interest Check](https://www.reddit.com/r/MechanicalKeyboards/comments/lgyv5p/ic_harbour_%E6%B8%AF%E5%8F%A3_a_65_gasket_mounted_board_designed/gmudnjb/) +[^3]: [Geekhack Interest Check, reply #102](https://geekhack.org/index.php?topic=111146.msg3022822#msg3022822) diff --git a/keyboards/kibou/harbour/readme.md b/keyboards/kibou/harbour/readme.md new file mode 100644 index 00000000000..31ac8dbd83e --- /dev/null +++ b/keyboards/kibou/harbour/readme.md @@ -0,0 +1,23 @@ +# harbour + +* Keyboard Maintainer: [FanXingStudio](https://github.com/FanXingStudio) +* Hardware Supported: harbour PCBs, STM32F401 +* Hardware Availability: https://kibou.store/ + +Make example for this keyboard (after setting up your build environment): + + make kibou/harbour:default + +Flashing example for this keyboard: + + make kibou/harbour: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/kibou/harbour/rules.mk b/keyboards/kibou/harbour/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kibou/harbour/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kibou/suisei/info.json b/keyboards/kibou/suisei/info.json new file mode 100644 index 00000000000..a33bb12abd0 --- /dev/null +++ b/keyboards/kibou/suisei/info.json @@ -0,0 +1,101 @@ +{ + "manufacturer": "kibou", + "keyboard_name": "suisei", + "maintainer": "kibou", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B2", "A10", "A9", "A8", "B15", "B14", "B13", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "C13", "B9"], + "rows": ["B11", "B10", "B0", "A1", "A0"] + }, + "processor": "STM32F072", + "url": "https://kibou.store/", + "usb": { + "device_version": "0.0.1", + "pid": "0x0065", + "vid": "0x586A" + }, + "indicators": { + "caps_lock": "B1" + }, + "layouts": { + "LAYOUT": { + "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": [0,15], "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": [1,15], "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,12], "x":12.75, "y":2, "w":2.25}, + {"matrix": [2,15], "x":15, "y":2}, + {"matrix": [3,0], "x":0, "y":3, "w":2.25}, + {"matrix": [3,1], "x":2.25, "y":3}, + {"matrix": [3,2], "x":3.25, "y":3}, + {"matrix": [3,3], "x":4.25, "y":3}, + {"matrix": [3,4], "x":5.25, "y":3}, + {"matrix": [3,5], "x":6.25, "y":3}, + {"matrix": [3,6], "x":7.25, "y":3}, + {"matrix": [3,7], "x":8.25, "y":3}, + {"matrix": [3,8], "x":9.25, "y":3}, + {"matrix": [3,9], "x":10.25, "y":3}, + {"matrix": [3,10], "x":11.25, "y":3}, + {"matrix": [3,11], "x":12.25, "y":3, "w":1.75}, + {"matrix": [3,14], "x":14.0, "y":3}, + {"matrix": [3,15], "x":15.0, "y":3}, + {"matrix": [4,0], "x":0, "y":4, "w":1.5}, + {"matrix": [4,2], "x":2.25, "y":4, "w":1.5}, + {"matrix": [4,5], "x":3.75, "y":4, "w":7}, + {"matrix": [4,10], "x":10.75, "y":4, "w":1.5}, + {"matrix": [4,13], "x":13, "y":4}, + {"matrix": [4,14], "x":14, "y":4}, + {"matrix": [4,15], "x":15, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kibou/suisei/keymaps/default/keymap.c b/keyboards/kibou/suisei/keymaps/default/keymap.c new file mode 100644 index 00000000000..2c9d04c6c1c --- /dev/null +++ b/keyboards/kibou/suisei/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_SPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_NO, 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_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 + ) +}; diff --git a/keyboards/kibou/suisei/keymaps/via/keymap.c b/keyboards/kibou/suisei/keymaps/via/keymap.c new file mode 100644 index 00000000000..2c9d04c6c1c --- /dev/null +++ b/keyboards/kibou/suisei/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_SPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_NO, 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_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 + ) +}; diff --git a/keyboards/kibou/suisei/keymaps/via/rules.mk b/keyboards/kibou/suisei/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/kibou/suisei/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kibou/suisei/readme.md b/keyboards/kibou/suisei/readme.md new file mode 100644 index 00000000000..6c3d135caf0 --- /dev/null +++ b/keyboards/kibou/suisei/readme.md @@ -0,0 +1,23 @@ +# suisei + +* Keyboard Maintainer: [kibou](https://kibou.store/) +* Hardware Supported: suisei PCBs, STM32F072 +* Hardware Availability: https://kibou.store/ + +Make example for this keyboard (after setting up your build environment): + + make kibou/suisei:default + +Flashing example for this keyboard: + + make kibou/suisei: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/kibou/suisei/rules.mk b/keyboards/kibou/suisei/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kibou/suisei/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kibou/wendy/info.json b/keyboards/kibou/wendy/info.json new file mode 100644 index 00000000000..1ab0ca8e7fd --- /dev/null +++ b/keyboards/kibou/wendy/info.json @@ -0,0 +1,335 @@ +{ + "manufacturer": "kibou", + "keyboard_name": "wendy", + "maintainer": "kibou", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A10", "A9", "A8", "A3", "B15", "B14", "B7", "B9", "B6"], + "rows": ["B4", "B3", "A15", "B13", "B8", "B5"] + }, + "processor": "STM32F072", + "url": "https://kibou.store/", + "usb": { + "device_version": "0.0.1", + "pid": "0xA001", + "vid": "0x586A" + }, + "indicators": { + "caps_lock": "B12" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "tkl_ansi_split_bs_rshift", + "tkl_iso_split_bs_rshift" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 12.75, "y": 0}, + {"label": "Print Screen", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 14], "x": 14, "y": 1.25}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 17], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 17], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "ANSI Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"label": "ISO Enter", "matrix": [3, 14], "x": 13.75, "y": 3.25, "w": 1.25}, + + {"label": "Left Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "ISO \\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Right Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "\u2298", "matrix": [4, 14], "x": 14, "y": 4.25}, + {"label": "\u2191", "matrix": [4, 16], "x": 16.25, "y": 4.25}, + + {"label": "Left Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "Left GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "Left Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "Right Alt", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "Right GUI", "matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "Menu", "matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label": "Right Ctrl", "matrix": [5, 14], "x": 13.75, "y": 5.25, "w": 1.25}, + {"label": "\u2190", "matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 12.75, "y": 0}, + {"label": "Print Screen", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 14], "x": 14, "y": 1.25}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 17], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 17], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "\u2298", "matrix": [4, 14], "x": 14, "y": 4.25}, + {"label": "\u2191", "matrix": [4, 16], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "Alt", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "GUI", "matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "Menu", "matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 14], "x": 13.75, "y": 5.25, "w": 1.25}, + {"label": "\u2190", "matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 12.75, "y": 0}, + {"label": "Print Screen", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 14], "x": 14, "y": 1.25}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 17], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 17], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "\u2298", "matrix": [4, 14], "x": 14, "y": 4.25}, + {"label": "\u2191", "matrix": [4, 16], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "Alt", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "GUI", "matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "Menu", "matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 14], "x": 13.75, "y": 5.25, "w": 1.25}, + {"label": "\u2190", "matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/kibou/wendy/keymaps/default/keymap.c b/keyboards/kibou/wendy/keymaps/default/keymap.c new file mode 100644 index 00000000000..a5f630a2cd1 --- /dev/null +++ b/keyboards/kibou/wendy/keymaps/default/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_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_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_ENT, KC_NO, + 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_NO, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/kibou/wendy/keymaps/via/keymap.c b/keyboards/kibou/wendy/keymaps/via/keymap.c new file mode 100644 index 00000000000..a5f630a2cd1 --- /dev/null +++ b/keyboards/kibou/wendy/keymaps/via/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_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_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_ENT, KC_NO, + 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_NO, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/kibou/wendy/keymaps/via/rules.mk b/keyboards/kibou/wendy/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/kibou/wendy/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/kibou/wendy/matrix_diagram.md b/keyboards/kibou/wendy/matrix_diagram.md new file mode 100644 index 00000000000..042d1bff95c --- /dev/null +++ b/keyboards/kibou/wendy/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Kibou Wendy + +``` +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││0A │0B │0C │0D │ │0F │0G │0H │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E ││1F │1G │1H │ │?? │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D ││2F │2G │2H │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐3E │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │3D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4E │ │4G │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│50 │51 │52 │56 │5A │5B │5C │5E ││5F │5G │5H │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│40 │ 2.25u LShift 2.75u RShift │4C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │56 │5B │5C │5E │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/kibou/wendy/readme.md b/keyboards/kibou/wendy/readme.md new file mode 100644 index 00000000000..a190d03047c --- /dev/null +++ b/keyboards/kibou/wendy/readme.md @@ -0,0 +1,23 @@ +# wendy + +* Keyboard Maintainer: [wendy](https://kibou.store/) +* Hardware Supported: wendy PCBs, STM32F072 +* Hardware Availability: https://kibou.store/ + +Make example for this keyboard (after setting up your build environment): + + make kibou/wendy:default + +Flashing example for this keyboard: + + make kibou/wendy: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/kibou/wendy/rules.mk b/keyboards/kibou/wendy/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kibou/wendy/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kibou/winter/info.json b/keyboards/kibou/winter/info.json new file mode 100644 index 00000000000..47a359ec9b3 --- /dev/null +++ b/keyboards/kibou/winter/info.json @@ -0,0 +1,122 @@ +{ + "manufacturer": "kibou", + "keyboard_name": "winter", + "maintainer": "kibou", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "A4" + }, + "matrix_pins": { + "cols": ["A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A3", "A6", "A10", "A15", "B9", "B4"], + "rows": ["B6", "B5", "B3", "A5", "B8", "B7"] + }, + "processor": "STM32F072", + "url": "https://kibou.store/", + "usb": { + "device_version": "0.0.1", + "pid": "0xA003", + "vid": "0x586A" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_ansi_wkl" + }, + "layouts": { + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.5, "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": [0, 15], "x": 15.25, "y": 0 }, + { "matrix": [0, 16], "x": 16.25, "y": 0 }, + { "matrix": [0, 17], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "matrix": [1, 15], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 17], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "matrix": [2, 14], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 15], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 17], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 16], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.25 }, + { "matrix": [5, 14], "w": 1.5, "x": 13.5, "y": 5.25 }, + { "matrix": [5, 15], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 16], "x": 16.25, "y": 5.25 }, + { "matrix": [5, 17], "x": 17.25, "y": 5.25 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kibou/winter/keymaps/default/keymap.c b/keyboards/kibou/winter/keymaps/default/keymap.c new file mode 100644 index 00000000000..0837234be5f --- /dev/null +++ b/keyboards/kibou/winter/keymaps/default/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi_wkl( + 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_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_LSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/kibou/winter/keymaps/via/keymap.c b/keyboards/kibou/winter/keymaps/via/keymap.c new file mode 100644 index 00000000000..0837234be5f --- /dev/null +++ b/keyboards/kibou/winter/keymaps/via/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi_wkl( + 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_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_LSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/kibou/winter/keymaps/via/rules.mk b/keyboards/kibou/winter/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/kibou/winter/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kibou/winter/readme.md b/keyboards/kibou/winter/readme.md new file mode 100644 index 00000000000..29aa667ffd2 --- /dev/null +++ b/keyboards/kibou/winter/readme.md @@ -0,0 +1,23 @@ +# winter + +* Keyboard Maintainer: [kibou](https://kibou.store/) +* Hardware Supported: winter PCBs, STM32F072 +* Hardware Availability: https://kibou.store/ + +Make example for this keyboard (after setting up your build environment): + + make kibou/winter:default + +Flashing example for this keyboard: + + make kibou/winter: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/kibou/winter/rules.mk b/keyboards/kibou/winter/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/kibou/winter/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/kikoslab/ellora65/config.h b/keyboards/kikoslab/ellora65/config.h deleted file mode 100644 index c6fba5ebcf8..00000000000 --- a/keyboards/kikoslab/ellora65/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*RGB TINGS*/ -#define RGBLED_NUM 12 diff --git a/keyboards/kikoslab/ellora65/info.json b/keyboards/kikoslab/ellora65/info.json index 5f3646476bb..0ab7f7015af 100644 --- a/keyboards/kikoslab/ellora65/info.json +++ b/keyboards/kikoslab/ellora65/info.json @@ -18,6 +18,9 @@ {"pin_a": "B0", "pin_b": "B1"} ] }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/kikoslab/kl90/config.h b/keyboards/kikoslab/kl90/config.h index 9987ae161ef..7f9b0b12d49 100644 --- a/keyboards/kikoslab/kl90/config.h +++ b/keyboards/kikoslab/kl90/config.h @@ -17,7 +17,5 @@ along with this program. If not, see . #pragma once -#define EMCODER_DIRECTION_FLIP - /*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/kikoslab/kl90/rules.mk b/keyboards/kikoslab/kl90/rules.mk index 27c445ca2fc..a62bc3d00cd 100644 --- a/keyboards/kikoslab/kl90/rules.mk +++ b/keyboards/kikoslab/kl90/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/kin80/blackpill103/rules.mk b/keyboards/kin80/blackpill103/rules.mk index a92b0993283..8b137891791 100644 --- a/keyboards/kin80/blackpill103/rules.mk +++ b/keyboards/kin80/blackpill103/rules.mk @@ -1,2 +1 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + diff --git a/keyboards/kinesis/alvicstep/alvicstep.c b/keyboards/kinesis/alvicstep/alvicstep.c index 274ac083c50..e803125681f 100644 --- a/keyboards/kinesis/alvicstep/alvicstep.c +++ b/keyboards/kinesis/alvicstep/alvicstep.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include "alvicstep.h" // begin section origin https://github.com/alvicstep/tmk_keyboard diff --git a/keyboards/kinesis/alvicstep/alvicstep.h b/keyboards/kinesis/alvicstep/alvicstep.h index 7bd56c4678d..bd52bbeb987 100644 --- a/keyboards/kinesis/alvicstep/alvicstep.h +++ b/keyboards/kinesis/alvicstep/alvicstep.h @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #pragma once #include "quantum.h" diff --git a/keyboards/kinesis/alvicstep/config.h b/keyboards/kinesis/alvicstep/config.h index bb3357ea57b..82b8deca931 100644 --- a/keyboards/kinesis/alvicstep/config.h +++ b/keyboards/kinesis/alvicstep/config.h @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #pragma once /* key matrix size */ diff --git a/keyboards/kinesis/alvicstep/info.json b/keyboards/kinesis/alvicstep/info.json index ef3509caf33..293b0168a40 100644 --- a/keyboards/kinesis/alvicstep/info.json +++ b/keyboards/kinesis/alvicstep/info.json @@ -6,100 +6,20 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "mousekey": true, + "extrakey": true, + "nkro": true, + "audio": false, + "backlight": false + }, "processor": "at90usb1286", "bootloader": "halfkay", "layouts": { "LAYOUT": { - "layout": [ - {"matrix": [0, 2], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 2], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 2], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 0], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 0], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 0], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [8, 0], "x": 0, "y": 1.25, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 1.25}, - {"matrix": [6, 0], "x": 2.25, "y": 1}, - {"matrix": [5, 0], "x": 3.25, "y": 1}, - {"matrix": [4, 0], "x": 4.25, "y": 1}, - {"matrix": [3, 0], "x": 5.25, "y": 1}, - {"matrix": [8, 1], "x": 0, "y": 2.25, "w": 1.25}, - {"matrix": [7, 1], "x": 1.25, "y": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 2}, - {"matrix": [5, 1], "x": 3.25, "y": 2}, - {"matrix": [4, 1], "x": 4.25, "y": 2}, - {"matrix": [3, 1], "x": 5.25, "y": 2}, - {"matrix": [8, 2], "x": 0, "y": 3.25, "w": 1.25}, - {"matrix": [7, 2], "x": 1.25, "y": 3.25}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [5, 2], "x": 3.25, "y": 3}, - {"matrix": [4, 2], "x": 4.25, "y": 3}, - {"matrix": [3, 2], "x": 5.25, "y": 3}, - {"matrix": [8, 3], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [7, 3], "x": 1.25, "y": 4.25}, - {"matrix": [6, 3], "x": 2.25, "y": 4}, - {"matrix": [5, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [3, 3], "x": 5.25, "y": 4}, - {"matrix": [7, 4], "x": 1.25, "y": 5.25}, - {"matrix": [6, 4], "x": 2.25, "y": 5}, - {"matrix": [5, 4], "x": 3.25, "y": 5}, - {"matrix": [3, 4], "x": 4.25, "y": 5}, - {"matrix": [3, 6], "x": 5.25, "y": 6}, - {"matrix": [3, 5], "x": 6.25, "y": 6}, - {"matrix": [5, 5], "x": 6.25, "y": 7}, - {"matrix": [5, 6], "x": 4.25, "y": 7, "h": 2}, - {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, - {"matrix": [7, 5], "x": 6.25, "y": 8}, - {"matrix": [0, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [8, 5], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [8, 4], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [9, 4], "x": 9.25, "y": 1}, - {"matrix": [10, 4], "x": 10.25, "y": 1}, - {"matrix": [11, 4], "x": 11.25, "y": 1}, - {"matrix": [13, 4], "x": 12.25, "y": 1}, - {"matrix": [14, 4], "x": 13.25, "y": 1.25}, - {"matrix": [15, 4], "x": 14.25, "y": 1.25, "w": 1.25}, - {"matrix": [9, 5], "x": 9.25, "y": 2}, - {"matrix": [10, 5], "x": 10.25, "y": 2}, - {"matrix": [11, 5], "x": 11.25, "y": 2}, - {"matrix": [13, 5], "x": 12.25, "y": 2}, - {"matrix": [14, 5], "x": 13.25, "y": 2.25}, - {"matrix": [15, 5], "x": 14.25, "y": 2.25, "w": 1.25}, - {"matrix": [9, 6], "x": 9.25, "y": 3}, - {"matrix": [10, 6], "x": 10.25, "y": 3}, - {"matrix": [11, 6], "x": 11.25, "y": 3}, - {"matrix": [13, 6], "x": 12.25, "y": 3}, - {"matrix": [14, 6], "x": 13.25, "y": 3.25}, - {"matrix": [15, 6], "x": 14.25, "y": 3.25, "w": 1.25}, - {"matrix": [9, 7], "x": 9.25, "y": 4}, - {"matrix": [10, 7], "x": 10.25, "y": 4}, - {"matrix": [11, 7], "x": 11.25, "y": 4}, - {"matrix": [13, 7], "x": 12.25, "y": 4}, - {"matrix": [14, 7], "x": 13.25, "y": 4.25}, - {"matrix": [15, 7], "x": 14.25, "y": 4.25, "w": 1.25}, - {"matrix": [9, 3], "x": 10.25, "y": 5}, - {"matrix": [11, 3], "x": 11.25, "y": 5}, - {"matrix": [13, 3], "x": 12.25, "y": 5}, - {"matrix": [14, 3], "x": 13.25, "y": 5.25}, - {"matrix": [4, 7], "x": 8.25, "y": 6}, - {"matrix": [6, 6], "x": 9.25, "y": 6}, - {"matrix": [6, 7], "x": 8.25, "y": 7}, - {"matrix": [8, 7], "x": 8.25, "y": 8}, - {"matrix": [7, 6], "x": 9.25, "y": 7, "h": 2}, - {"matrix": [8, 6], "x": 10.25, "y": 7, "h": 2} - ] - }, - "LAYOUT_pretty": { "layout": [ {"matrix": [0, 2], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, {"matrix": [2, 2], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, diff --git a/keyboards/kinesis/keymaps/alvicstep/keymap.c b/keyboards/kinesis/keymaps/alvicstep/keymap.c new file mode 100644 index 00000000000..e9373ea2145 --- /dev/null +++ b/keyboards/kinesis/keymaps/alvicstep/keymap.c @@ -0,0 +1,135 @@ +// Copyright 2023 Alex Stepanov (@alvicstep) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, // default layer + _KEYPAD, // arrow keys, shifted symbols, HOME, END, PGUP, PGDN, FKeys, CTRL(TAB) + _NUMPAD // numpad keys +}; + +/* ,------------------------------------------------------------------------------------------------------------------------. +* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 |PSCR|SLCK|PAUS|KPAD|BOOT| +* |--------+------+------+------+-------+------+--------------------------------+------+------+------+------+------+--------| +* | -_ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | =+ | +* |--------+------+------+------+-------+------| +------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+-------+------| |------+------+------+------+------+--------| +* | Del | A | S | D | F | G | | H | J | K | L | ;: | '" | +* |--------+------+------+------+-------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? |Sht/Ent | +* `--------+------+------+------+-------+------- `------+------+------+------+------+--------' +* | `~ | Gui | Esc |MO(Num)| | [{ | ]} | | | +* `----------------------------' `---------------------------' +* ,---------------. ,---------------. +* |Alt+Tab| Alt | | Alt |TO(Num)| +* ,------|------ |-------| |-------+-------+------. +* | | | Shift | | Shift | | | +* | BkSp | KPAD |-------| |------ | KPAD | Space| +* | | | Ctrl | | Ctrl | | | +* `----------------------' `----------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = 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_SCRL,KC_PAUS,TO(_KEYPAD),QK_BOOT, +KC_MINS,KC_1,KC_2,KC_3,KC_4,KC_5, KC_6,KC_7,KC_8,KC_9,KC_0,KC_EQL, +KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T, KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS, +KC_DEL,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,SC_SENT, +KC_GRV,KC_LGUI,KC_ESC,MO(_NUMPAD), KC_LBRC,KC_RBRC,KC_NO,KC_NO, + LALT(KC_TAB),KC_LALT, KC_RALT,TO(_NUMPAD), + KC_LSFT, KC_RSFT, + KC_BSPC,MO(_KEYPAD),KC_LCTL, KC_RCTL,MO(_KEYPAD),KC_SPC +), +/* ,------------------------------------------------------------------------------------------------------------------------. +* | | | | | | | | | | | | | | | | | TO(BASE) | | +* |--------+------+------+------+------+------+---------------------------------+------+------+------+------+------+--------| +* | _ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | F1 | F2 | F3 | F4 | F5 | | | Home | Up | End | | | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | F6 | F7 | F8 | F9 | F10 | | Pgup | Lft | Dwn | Rgt | : | " | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | CapsLk | | | | F11 | F12 | | Pgdn | | < | > | ? | | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | ~ | INS | | | | { | } | | | +* `---------------------------' `---------------------------' +* ,--------------. ,--------------------. +* |Ctl+Tab| | | | | | +* ,------|------ |------| |------+------+------. +* | | |Shift | |Shift | | | +* | | |------| |------| | | +* | | | Ctrl | | Ctrl | | | +* `-------------- ------' `--------------------' +*/ +[_KEYPAD] = LAYOUT( + 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,TO(_BASE),KC_NO, + KC_UNDS,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_PLUS, + KC_NO,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5, KC_NO,KC_HOME,KC_UP,KC_END,KC_NO,KC_PIPE, + KC_CAPS,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10, KC_PGUP,KC_LEFT,KC_DOWN,KC_RGHT,KC_COLN,KC_DQUO, + KC_NO,KC_NO,KC_NO,KC_NO,KC_F11,KC_F12, KC_PGDN,KC_NO,KC_LT,KC_GT,KC_QUES,KC_NO, + KC_TILD,KC_INS,KC_NO,KC_NO, KC_LCBR,KC_RCBR,KC_NO,KC_NO, + LCTL(KC_TAB),KC_NO, KC_NO,KC_NO, + KC_LSFT, KC_RSFT, + KC_NO,KC_NO,KC_LCTL, KC_RCTL,KC_NO,KC_NO +), +/*,--------+------+------+------+------+------+ +------+------+------+------+------+--------. +* | | | | | | | | | Base | = | / | * | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | | | | | | | | 7 | 8 | 9 | - | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Del | | | | | | | | 4 | 5 | 6 | + | | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | BkSp | | | | | | | | 1 | 2 | 3 |Enter | Enter | +* `--------+------+------+------+------+------' `------+------+------+------+------+--------' +* | | | | | | . |Enter | | | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | | | | | Base | +* ,------|------|------| |------+------+------. +* | | | | | | | | +* | BkSp | |------| |------| | 0 | +* | | | | | | | | +* `--------------------' `--------------------' +*/ + +[_NUMPAD] = LAYOUT( + 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,TO(_BASE),KC_EQL,KC_SLSH,KC_ASTR,KC_NO, + KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_7,KC_8,KC_9,KC_MINS,KC_NO, + KC_DEL,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_4,KC_5,KC_6,KC_PLUS,KC_NO, + KC_BSPC,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_1,KC_2,KC_3,KC_ENT,KC_ENT, + KC_NO,KC_NO,KC_NO,KC_NO, KC_DOT,KC_ENT,KC_NO,KC_NO, + KC_NO,KC_NO, KC_NO,TO(_BASE), + KC_NO, KC_NO, + KC_BSPC,KC_NO,KC_NO, KC_NO,KC_NO,KC_0 +) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + //set LEDs which are triggered by a layer change + #ifdef LED_COMPOSE_PIN + writePin(LED_COMPOSE_PIN, !layer_state_cmp(state, _KEYPAD)); + #endif + + #ifdef LED_NUM_LOCK_PIN + writePin(LED_NUM_LOCK_PIN, !layer_state_cmp(state, _NUMPAD)); + #endif + + return state; +}; + +bool led_update_user(led_t led_state) { + #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 + + //disable default processing of LEDs + return false; +} \ No newline at end of file diff --git a/keyboards/kinesis/keymaps/alvicstep/readme.md b/keyboards/kinesis/keymaps/alvicstep/readme.md new file mode 100644 index 00000000000..c21618a1dc9 --- /dev/null +++ b/keyboards/kinesis/keymaps/alvicstep/readme.md @@ -0,0 +1,105 @@ +## Custom Layout +Kinesis Contoured family of keyboards belong to a relatively small group of keyboards that utilize thumb clusters. The keycap profiles of thumb cluster keys make it easy to press multiple keys simultaneously by a thumb finger. Co-locating CTRL, SHIFT and KEYPAD modifiers in the thumb cluster gives truly unique capabilities to these keyboards. + +### "alvicstep" Layout +The **alvicstep** layout is optimized for software development on a Windows machine. It is a result of many years of daily usage. It is a great starting point for your own design. + +#### Layout Features +- 3 layers: default layer, keypad layer, numpad layer +- keypad layer allows for 2 finger operation using **arrow** keys together with + - **CTRL** and/or **SHIFT** modifiers OR + - **HOME/END** keys OR + - **PAGEUP/PAGEDOWN** keys. +- two finger operations can be achieved by holding up to 3 modifier keys (KEYPAD/SHIFT/CTRL) with a thumb finger and using index/middle/ring finger by pressing keywell keys. For example, you can fully control caret position and text selection of: + - each letter + - each word + - from a current caret position to the beginning of the line + - from a current caret position to the end of the line + - multiple lines + - multiple pages +- with little practice you will be able to string together different key combinations. For example, executing `KEYPAD + O` and then `KEYPAD + SHIFT + U` selects the whole line of text with barely any finger movement. The best part is that it works in any text editor! +- keypad layer allows accessing **F1-F12** and **ESC** keys by moving only a single finger away from the home row, making it very fast and convenient +- **KEYPAD** key can be used to access US ANSI Shifted Symbols instead of pressing a SHIFT key. This gives you two advantages: it makes KEYPAD key a "go to" key which is used in almost all operations unrelated to typing of letters. To understand the second advantage, compare pressing `SHIFT + 0` and `KEYPAD + 0` using the right hand +- **NUMPAD** "momentary" modifier key can be used to quickly switch to a numeric pad while typing alphanumeric strings. In a stock Kinesis firmware you would have to switch to KEYPAD layer and then press NUMLOCK key which makes it unusable for this task +- **NUMPAD** key in the right thumb cluster can be used to switch to a numeric pad for long numeric sequences + +#### Layout Layers + +![](https://i.imgur.com/86LCI3zh.jpg) +![](https://i.imgur.com/Gv4WBw7h.jpg) +![](https://i.imgur.com/gKXMUI2h.jpg) + +#### Notes +- MO(1) - switch to **KEYPAD** layer while key is being pressed +- MO(2) - switch to **NUMPAD** layer while key is being pressed +- TO(0) - switch to **BASE** layer +- TO(2) - switch to **NUMPAD** layer +- Rsft(Enter) - acts as an ENTER key when pressed and released. Acts as a SHIFT modifier in combination with other keys +- Bt - enter bootloader mode +- Alt(Tab) - toggle between last two active applications +- Ctrl(Tab) - toggle between last two active tabs + + +### Differences From Stock +- **{}[]** keys are moved to the left side of the keywell to be easily accessible +- **-** and **+** keys are switched +- **CAPS LOCK** key is moved to **KEYPAD** layer and is mapped to **DELETE** on **BASE** layer + +### Shortcuts + + +|Shortcut | Control Caret | +|---------------------|---------------------------------------| +|`KEYPAD + J` | move caret one character left | +|`KEYPAD + L` | move caret one character right | +|`KEYPAD + I` | move caret one line up | +|`KEYPAD + K` | move caret one line down | +|`KEYPAD + CTRL + J` | move caret one word to the left | +|`KEYPAD + CTRL + L` | move caret one word to the right | +|`KEYPAD + U` | move caret to the start of the line | +|`KEYPAD + O` | move caret to the end of the line | +|`KEYPAD + H` | move caret one page up | +|`KEYPAD + N` | move caret one page down | + + +|Shortcut | Scroll Lock | +|---------------------|---------------------------------------| +|`KEYPAD + CTRL + I` | scroll page up | +|`KEYPAD + CTRL + K` | scroll page down | + + +|Shortcut | Select Text | +|-----------------------------|-------------------------------| +|`KEYPAD + CTRL + SHIFT + J` | select one word to the left | +|`KEYPAD + CTRL + SHIFT + L` | select one word to the right | +|`KEYPAD + CTRL + SHIFT + I` | select one line up | +|`KEYPAD + CTRL + SHIFT + K` | select one line down | +|`KEYPAD + SHIFT + H` | select one page up | +|`KEYPAD + SHIFT + N` | select one page down | +|`KEYPAD + CTRL + SHIFT + U` | select from beginning of the file up to the caret position | +|`KEYPAD + CTRL + SHIFT + O` | select from caret position to the end of the file | + + +|Shortcut | US ANSI Shifted Symbols | +|---------------------|---------------------------------------| +|`KEYPAD + -` | _ | +|`KEYPAD + 1` | ! | +|`KEYPAD + 2` | @ | +|`KEYPAD + 3` | # | +|`KEYPAD + 4` | $ | +|`KEYPAD + 5` | % | +|`KEYPAD + 6` | ^ | +|`KEYPAD + 7` | & | +|`KEYPAD + 8` | * | +|`KEYPAD + 9` | ( | +|`KEYPAD + 0` | ) | +|`KEYPAD + =` | + | +|`KEYPAD + \` | \| | +|`KEYPAD + '` | " | +|`KEYPAD + ;` | : | +|`KEYPAD + /` | ? | +|`KEYPAD + [` | { | +|`KEYPAD + ]` | } | +|`KEYPAD + ,` | < | +|`KEYPAD + .` | > | +|`KEYPAD + BACKTICK` | ~ | \ No newline at end of file diff --git a/keyboards/kinesis/keymaps/default/keymap.c b/keyboards/kinesis/keymaps/default/keymap.c index e0f114902cd..c9449c54082 100644 --- a/keyboards/kinesis/keymaps/default/keymap.c +++ b/keyboards/kinesis/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define QWERTY 0 // Base qwerty @@ -30,24 +33,17 @@ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[QWERTY] = LAYOUT( - KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, - KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , - KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , - KC_CAPS,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , - KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , - KC_GRV ,KC_INS ,KC_LEFT,KC_RGHT, - KC_LCTL,KC_LALT, - KC_HOME, - KC_BSPC,KC_DEL ,KC_END , - KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SCRL ,KC_PAUS, KC_NO, QK_BOOT, - KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, - KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, - KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, - KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, - KC_UP ,KC_DOWN,KC_LBRC,KC_RBRC, - KC_RGUI,KC_RCTL, - KC_PGUP, - KC_PGDN,KC_ENTER ,KC_SPC - ) + + [QWERTY] = 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_SCRL, KC_PAUS, KC_NO, QK_BOOT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + 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_CAPS, 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_RSFT, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENTER, KC_SPC + ) + }; diff --git a/keyboards/kinesis/keymaps/default_pretty/keymap.c b/keyboards/kinesis/keymaps/default_pretty/keymap.c deleted file mode 100644 index c790e089456..00000000000 --- a/keyboards/kinesis/keymaps/default_pretty/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -#include QMK_KEYBOARD_H - -#define QWERTY 0 // Base qwerty - - -/**************************************************************************************************** -* -* Keymap: Default Layer in Qwerty -* -* ,-------------------------------------------------------------------------------------------------------------------. -* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | PSCR | SLCK | PAUS | FN0 | BOOT | -* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| -* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | -* |--------+------+------+------+------+------| +------+------+------+------+------+--------| -* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '" | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | -* `--------+------+------+------+------+------- `------+------+------+------+------+--------' -* | `~ | INS | Left | Right| | Up | Down | [{ | ]} | -* `---------------------------' `---------------------------' -* ,-------------. ,-------------. -* | Ctrl | Alt | | Gui | Ctrl | -* ,------|------|------| |------+------+------. -* | | | Home | | PgUp | | | -* | BkSp | Del |------| |------|Return| Space| -* | | | End | | PgDn | | | -* `--------------------' `--------------------' -*/ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [QWERTY] = LAYOUT_pretty( - 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_SCRL, KC_PAUS, KC_NO, QK_BOOT, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - 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_CAPS, 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_RSFT, - KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, - KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL, - KC_HOME, KC_PGUP, - KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENTER, KC_SPC - ) - -}; diff --git a/keyboards/kinesis/keymaps/default_pretty/readme.md b/keyboards/kinesis/keymaps/default_pretty/readme.md deleted file mode 100644 index a8783b978a9..00000000000 --- a/keyboards/kinesis/keymaps/default_pretty/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# The default keymap for kinesis-advantage - -This keymap is the same as the one in the `default` directory, but is -formatted to use the `LAYOUT_pretty` matrix, which places the two halves of -the keyboard side-by-side, rather than the left-hand side being on top. diff --git a/keyboards/kinesis/keymaps/default_pretty/rules.mk b/keyboards/kinesis/keymaps/default_pretty/rules.mk deleted file mode 100644 index adb07adf7d2..00000000000 --- a/keyboards/kinesis/keymaps/default_pretty/rules.mk +++ /dev/null @@ -1,9 +0,0 @@ -BOOTMAGIC_ENABLE = no # 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 -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. diff --git a/keyboards/kinesis/keymaps/dvorak/keymap.c b/keyboards/kinesis/keymaps/dvorak/keymap.c index 9ebb088cf73..f8a5b4ed4f9 100644 --- a/keyboards/kinesis/keymaps/dvorak/keymap.c +++ b/keyboards/kinesis/keymaps/dvorak/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define _DVORAK 0 // Base Dvorak layer @@ -6,51 +9,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DVORAK] = LAYOUT( // left hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, - KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, - KC_GRV, KC_INS, KC_LEFT, KC_RIGHT, - // left thumb - KC_LCTL, KC_LALT, - KC_HOME, - KC_BSPC, KC_DEL, KC_END, - // right hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, QK_BOOT, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, - KC_D, KC_H, KC_T, KC_N, KC_S, KC_BSLS, - KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, - // right thumb - KC_RGUI, KC_RCTL, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC + 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_SCRL, KC_PAUS, KC_NO, QK_BOOT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_BSLS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_GRV, KC_INS, KC_LEFT, KC_RIGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENT, KC_SPC ), [_MEDIA] = LAYOUT( // left hand - 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_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_NO, - KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, - KC_NO, KC_NO, KC_MS_D, KC_MS_U, - // left thumb - KC_NO, KC_NO, - KC_NO, - KC_NO, KC_NO, KC_TRNS, - // right hand - 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_PWR, - KC_NO, KC_VOLU, KC_MS_U, KC_VOLD, KC_NO, KC_NO, - KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, - KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, - KC_MS_L, KC_MS_R, KC_NO, KC_NO, - // right thumb - KC_NO, KC_NO, - KC_NO, - KC_TRNS, KC_ENT, 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_PWR, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, KC_MS_U, KC_VOLD, KC_NO, KC_NO, + KC_NO, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, + KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_MS_D, KC_MS_U, KC_MS_L, KC_MS_R, KC_NO, KC_NO, + + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_ENT, KC_NO ) }; diff --git a/keyboards/kinesis/keymaps/dvorak_nguyenvietyen/keymap.c b/keyboards/kinesis/keymaps/dvorak_nguyenvietyen/keymap.c index b6a4fa2d10f..7dbb4b9159e 100644 --- a/keyboards/kinesis/keymaps/dvorak_nguyenvietyen/keymap.c +++ b/keyboards/kinesis/keymaps/dvorak_nguyenvietyen/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define DVORAK_MAC_MODE 0 // Base Dvorak in Kinesis's Mac Mode with (Cmd, Option, Ctrl, Cmd) thumbkeys @@ -5,26 +8,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DVORAK_MAC_MODE] = LAYOUT( // left hand - KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, - KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, - KC_GRV, KC_INS, KC_LEFT, KC_RIGHT, - // left thumb - KC_LGUI, KC_LALT, - KC_HOME, - KC_BSPC, KC_DEL, KC_END, - // right hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_NUM, KC_PWR, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, - KC_D, KC_H, KC_T, KC_N, KC_S, KC_BSLS, - KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, - // right thumb - KC_RCTL, KC_RGUI, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_NUM, KC_PWR, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_BSLS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_GRV, KC_INS, KC_LEFT, KC_RIGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + + KC_LGUI, KC_LALT, KC_RCTL, KC_RGUI, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENT, KC_SPC ) }; diff --git a/keyboards/kinesis/keymaps/farmergreg/keymap.c b/keyboards/kinesis/keymaps/farmergreg/keymap.c index 554f6f8f581..cae763d8ec7 100644 --- a/keyboards/kinesis/keymaps/farmergreg/keymap.c +++ b/keyboards/kinesis/keymaps/farmergreg/keymap.c @@ -70,164 +70,88 @@ const key_override_t **key_overrides = (const key_override_t *[]){ */ const uint16_t PROGMEM keymaps[_LAYER_COUNT][MATRIX_ROWS][MATRIX_COLS] = { [_COLEMAK] = LAYOUT( - KC_ESC , KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, - KC_EQL , KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , - KC_TAB , KC_Q ,KC_W ,KC_F ,KC_P ,KC_G , - TD(TD_CAPS), KC_A ,KC_R ,KC_S ,KC_T ,KC_D , - KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , - KC_GRV ,KC_BSLS,KC_LEFT,KC_RGHT, - - KC_LCTL,KC_LALT, - KC_HOME, - KC_BSPC,KC_DEL ,KC_END, - - KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SCRL ,KC_PAUS, TG(_KEYPAD), MO(_PROGM), // I would prefer OSL(_PROGM) but MO emulates what Kinesis does in their firmware. - KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, - KC_J ,KC_L ,KC_U ,KC_Y ,KC_SCLN,KC_BSLS, - KC_H ,KC_N ,KC_E ,KC_I ,KC_O ,KC_QUOT, - KC_K ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, - KC_DOWN,KC_UP ,KC_LBRC,KC_RBRC, - - KC_RGUI,KC_RCTL, - KC_PGUP, - KC_PGDN,KC_ENT ,KC_SPC + 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_SCRL ,KC_PAUS, TG(_KEYPAD), MO(_PROGM), // I would prefer OSL(_PROGM) but MO emulates what Kinesis does in their firmware. + KC_EQL , KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, + KC_TAB , KC_Q ,KC_W ,KC_F ,KC_P ,KC_G , KC_J ,KC_L ,KC_U ,KC_Y ,KC_SCLN,KC_BSLS, + TD(TD_CAPS), KC_A ,KC_R ,KC_S ,KC_T ,KC_D , KC_H ,KC_N ,KC_E ,KC_I ,KC_O ,KC_QUOT, + KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_K ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, + KC_GRV ,KC_BSLS,KC_LEFT,KC_RGHT, KC_DOWN,KC_UP ,KC_LBRC,KC_RBRC, + + KC_LCTL,KC_LALT, KC_RGUI,KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC,KC_DEL ,KC_END, KC_PGDN,KC_ENT ,KC_SPC ) ,[_DVORAK] = LAYOUT( - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,KC_QUOT,KC_COMM,KC_DOT ,KC_P ,KC_Y , - _______,KC_A ,KC_O ,KC_E ,KC_U ,KC_I , - _______,KC_SCLN,KC_Q ,KC_J ,KC_K ,KC_X , - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,_______, - - _______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______,_______,_______,_______, - KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_SLSH, - KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_QUOT, - KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,_______ + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,KC_QUOT,KC_COMM,KC_DOT ,KC_P ,KC_Y , KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_SLSH, + _______,KC_A ,KC_O ,KC_E ,KC_U ,KC_I , KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_QUOT, + _______,KC_SCLN,KC_Q ,KC_J ,KC_K ,KC_X , KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,_______, + _______,_______,_______,_______, _______,_______,_______,_______, + + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ) ,[_QWERTY] = LAYOUT( - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , - _______,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , - _______,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , - _______,_______,_______,_______, - _______,_______, - _______, - _______,_______,_______, - - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,_______, - KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,_______, - KC_N ,KC_M ,_______,_______,_______,_______, - _______,_______,_______,_______, - _______,_______, - _______, - _______,_______,_______ + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,_______, + _______,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,_______, + _______,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_N ,KC_M ,_______,_______,_______,_______, + _______,_______,_______,_______, _______,_______,_______,_______, + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ) ,[_QWERTY_GAME] = LAYOUT( // Shift WASD over to ESDF (QWERTY). Also move T and G - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,KC_T ,KC_Q , KC_W ,KC_E ,KC_R , - _______,KC_G ,KC_A , KC_S ,KC_D ,KC_F , - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - KC_SPC ,_______,_______, // BACKSPACE becomes SPACE - - _______,_______,_______,_______,_______,_______,_______, _______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,KC_BSPC // SPACE becomes BACKSPACE + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, _______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,KC_T ,KC_Q , KC_W ,KC_E ,KC_R , _______,_______,_______,_______,_______,_______, + _______,KC_G ,KC_A , KC_S ,KC_D ,KC_F , _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______, _______,_______,_______,_______, + + _______,_______, _______,_______, + _______, _______, + KC_SPC ,_______,_______, _______,_______,KC_BSPC // SPACE becomes BACKSPACE ) ,[_KEYPAD] = LAYOUT( - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,KC_INS ,_______,_______, - - _______,_______, - _______, - _______,_______,_______, - - _______,_______,_______ ,_______,KC_MUTE,KC_VOLD,KC_VOLU,TG(_KEYPAD), _______, - _______,KC_NUM ,KC_PEQL,KC_PSLS,KC_PAST,_______, - _______,KC_P7 ,KC_P8 ,KC_P9 ,KC_PMNS,_______, - _______,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS,_______, - _______,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT,_______, - _______,_______ ,KC_PDOT,KC_PENT, - - _______,_______, - _______, - _______,_______,KC_P0 + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______ ,_______,KC_MUTE,KC_VOLD,KC_VOLU,TG(_KEYPAD), _______, + _______,_______,_______,_______,_______,_______, _______,KC_NUM ,KC_PEQL,KC_PSLS,KC_PAST,_______, + _______,_______,_______,_______,_______,_______, _______,KC_P7 ,KC_P8 ,KC_P9 ,KC_PMNS,_______, + _______,_______,_______,_______,_______,_______, _______,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS,_______, + _______,_______,_______,_______,_______,_______, _______,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT,_______, + _______,KC_INS ,_______,_______, _______,_______ ,KC_PDOT,KC_PENT, + + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,KC_P0 ) ,[_PROGM] = LAYOUT( - _______,_______,_______,DF(_QWERTY),DF(_DVORAK),_______ ,_______,_______,_______, - _______,_______,_______,_______ ,_______ ,_______ , - _______,_______,_______,_______ ,_______ ,DF(_QWERTY_GAME), // The G in Colemak - _______,_______,_______,_______ ,_______ ,DF(_QWERTY_GAME), // The G in QWERTY - _______,_______,_______,DF(_COLEMAK),_______ ,_______, - _______,_______,_______ ,_______, - - _______,_______, - _______, - _______,_______,_______, - - QK_BOOT,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,_______ + _______,_______,_______,DF(_QWERTY),DF(_DVORAK),_______ ,_______,_______,_______, QK_BOOT,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______ ,_______ ,_______ , _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______ ,_______ ,DF(_QWERTY_GAME), _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______ ,_______ ,DF(_QWERTY_GAME), _______,_______,_______,_______,_______,_______, + _______,_______,_______,DF(_COLEMAK),_______ ,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______ ,_______, _______,_______,_______,_______, + + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ) /* ,[_TEMPLATE] = LAYOUT( - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,_______, - - _______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,_______ + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______, _______,_______,_______,_______, + + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ) */ }; diff --git a/keyboards/kinesis/keymaps/heatxsink/keymap.c b/keyboards/kinesis/keymaps/heatxsink/keymap.c index 53b4b57cf56..e430df225a7 100644 --- a/keyboards/kinesis/keymaps/heatxsink/keymap.c +++ b/keyboards/kinesis/keymaps/heatxsink/keymap.c @@ -36,155 +36,75 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DEFAULT] = LAYOUT( - // LHAND - KC_ESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 , - KC_EQL ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , - KC_TAB ,_______,_______,_______,_______,_______, - HCTLESC,_______,_______,_______,_______,_______, - SC_LSPO,_______,_______,_______,_______,_______, - KC_GRV ,LAYERS ,KC_LEFT,KC_RGHT, - // LTHUMB - KC_LALT,KC_LCTL, - KC_HOME, - KC_BSPC,KC_DEL ,KC_END , - // RHAND - KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR,KC_SCRL,KC_PAUS,KEYPAD ,QK_BOOT, - KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, - _______,_______,_______,_______,_______,KC_BSLS, - _______,_______,_______,_______,_______,KC_QUOT, - _______,_______,_______,_______,_______,SC_RSPC, - KC_UP ,KC_DOWN,KC_LBRC,KC_RBRC, - // RTHUMB - KC_RCTL,KC_LGUI, - KC_PGUP, - KC_PGDN,KC_ENT ,KC_SPC + 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_SCRL,KC_PAUS,KEYPAD ,QK_BOOT, + KC_EQL ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, + KC_TAB ,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,KC_BSLS, + HCTLESC,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,KC_QUOT, + SC_LSPO,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,SC_RSPC, + KC_GRV ,LAYERS ,KC_LEFT,KC_RGHT, KC_UP ,KC_DOWN,KC_LBRC,KC_RBRC, + KC_LALT,KC_LCTL, KC_RCTL,KC_LGUI, + KC_HOME, KC_PGUP, + KC_BSPC,KC_DEL ,KC_END , KC_PGDN,KC_ENT ,KC_SPC ), [_QWERTY] = LAYOUT( - // LHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , - _______,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , - _______,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , - _______,_______,_______,_______, - // LTHUMB - _______,_______, - _______, - _______,_______,_______, - // RHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,_______, - KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,_______, - KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,_______, - _______,_______,_______,_______, - // RTHUMB - _______,_______, - _______, - _______,_______,_______ + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,_______, + _______,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,_______, + _______,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,_______, + _______,_______,_______,_______, _______,_______,_______,_______, + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ), [_COLEMAK_MOD_DH] = LAYOUT( - // LHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,KC_Q ,KC_W ,KC_F ,KC_P ,KC_B, - _______,KC_A ,KC_R ,KC_S ,KC_T ,KC_G, - _______,KC_Z ,KC_X ,KC_C ,KC_D ,KC_V, - _______,_______,_______,_______, - // LTHUMB - _______,_______, - _______, - _______,_______,_______, - // RHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - KC_J ,KC_L ,KC_U ,KC_Y ,KC_SCLN,_______, - KC_M ,KC_N ,KC_E ,KC_I ,KC_O ,_______, - KC_K ,KC_H ,KC_COMM,KC_DOT ,KC_SLSH,_______, - _______,_______,_______,_______, - // RTHUMB - _______,_______, - _______, - _______,_______,_______ + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,KC_Q ,KC_W ,KC_F ,KC_P ,KC_B, KC_J ,KC_L ,KC_U ,KC_Y ,KC_SCLN,_______, + _______,KC_A ,KC_R ,KC_S ,KC_T ,KC_G, KC_M ,KC_N ,KC_E ,KC_I ,KC_O ,_______, + _______,KC_Z ,KC_X ,KC_C ,KC_D ,KC_V, KC_K ,KC_H ,KC_COMM,KC_DOT ,KC_SLSH,_______, + _______,_______,_______,_______, _______,_______,_______,_______, + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ), [_WORKMAN] = LAYOUT( - // LHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,KC_Q ,KC_D ,KC_R ,KC_W ,KC_B, - _______,KC_A ,KC_S ,KC_H ,KC_T ,KC_G, - _______,KC_Z ,KC_X ,KC_M ,KC_C ,KC_V, - _______,_______,_______,_______, - // LTHUMB - _______,_______, - _______, - _______,_______,_______, - // RHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - KC_J ,KC_F ,KC_U ,KC_P ,KC_SCLN,_______, - KC_Y ,KC_N ,KC_E ,KC_O ,KC_I ,_______, - KC_K ,KC_L ,KC_COMM,KC_DOT ,KC_SLSH,_______, - _______,_______,_______,_______, - // RTHUMB - _______,_______, - _______, - _______,_______,_______ + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,KC_Q ,KC_D ,KC_R ,KC_W ,KC_B, KC_J ,KC_F ,KC_U ,KC_P ,KC_SCLN,_______, + _______,KC_A ,KC_S ,KC_H ,KC_T ,KC_G, KC_Y ,KC_N ,KC_E ,KC_O ,KC_I ,_______, + _______,KC_Z ,KC_X ,KC_M ,KC_C ,KC_V, KC_K ,KC_L ,KC_COMM,KC_DOT ,KC_SLSH,_______, + _______,_______,_______,_______, _______,_______,_______,_______, + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ), [_KEYPAD] = LAYOUT ( - // LHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,KC_MUTE,KC_VOLD,KC_VOLU,_______, - _______,KC_MSTP,KC_MPRV,KC_MPLY,KC_MNXT,KC_MSEL, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - // LTHUMB - _______,_______, - _______, - _______,_______,_______, - - // RHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,KC_NUM, KC_PEQL,KC_PSLS,KC_PAST,_______, - _______,KC_P7, KC_P8, KC_P9, KC_PMNS,_______, - _______,KC_P4, KC_P5, KC_P6, KC_PPLS,_______, - _______,KC_P1, KC_P2, KC_P3, KC_PENT,_______, - KC_LPRN,KC_RPRN,KC_PDOT,KC_PENT, - // RTHUMB - _______,_______, - _______, - _______,KC_PENT,KC_P0 + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,KC_NUM, KC_PEQL,KC_PSLS,KC_PAST,_______, + _______,_______,KC_MUTE,KC_VOLD,KC_VOLU,_______, _______,KC_P7, KC_P8, KC_P9, KC_PMNS,_______, + _______,KC_MSTP,KC_MPRV,KC_MPLY,KC_MNXT,KC_MSEL, _______,KC_P4, KC_P5, KC_P6, KC_PPLS,_______, + _______,_______,_______,_______,_______,_______, _______,KC_P1, KC_P2, KC_P3, KC_PENT,_______, + _______,_______,_______,_______, KC_LPRN,KC_RPRN,KC_PDOT,KC_PENT, + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,KC_PENT,KC_P0 ), [_LAYERS] = LAYOUT ( - // LHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,QWERTY ,CMMDH ,WM ,KEYPAD ,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - // LTHUMB - _______,_______, - _______, - _______,_______,_______, - - // RHAND - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - // RTHUMB - _______,_______, - _______, - _______,_______,_______ + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,QWERTY ,CMMDH ,WM ,KEYPAD ,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______, _______,_______,_______,_______, + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ), }; diff --git a/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c b/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c index 04fa8d39bc9..6275ed0a8d0 100644 --- a/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c +++ b/keyboards/kinesis/keymaps/insertsnideremarks/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H extern keymap_config_t keymap_config; @@ -99,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | Fn | Number| Bspc | | Enter |Number2| Fn2 | `-----------------------' `-----------------------' */ -[_COLEMAK] = LAYOUT_pretty( +[_COLEMAK] = 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_SCRL, KC_PAUS, NUMPAD, ADJUST, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, @@ -135,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | Fn | Number| Bspc | | Enter |Number2| Fn2 | `-----------------------' `-----------------------' */ -[_QWERTY] = LAYOUT_pretty( +[_QWERTY] = 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_SCRL, KC_PAUS, NUMPAD, ADJUST, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, @@ -171,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | | | | | | | | `-----------------------' `-----------------------' */ -[_NUMBERS] = LAYOUT_pretty( +[_NUMBERS] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, @@ -183,7 +186,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______ ), -[_NUMBERS2] = LAYOUT_pretty( +[_NUMBERS2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, @@ -218,7 +221,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | | | | | | | | `-----------------------' `-----------------------' */ -[_FUNCTION] = LAYOUT_pretty( +[_FUNCTION] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_UP, _______, _______, _______, _______, KC_UP, LCTL(KC_Y), _______, _______, @@ -230,7 +233,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______ ), -[_FUNCTION2] = LAYOUT_pretty( +[_FUNCTION2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_UP, _______, _______, _______, _______, KC_UP, LCTL(KC_Y), _______, _______, @@ -266,7 +269,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | | | | | | | | `-----------------------' `-----------------------' */ -[_NUMPAD] = LAYOUT_pretty( +[_NUMPAD] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______, _______, KC_TAB, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, @@ -302,7 +305,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | | | Bspc | | Ent/NS|Number2| Fn2 | `-----------------------' `-----------------------' */ -[_COLEMAKGM] = LAYOUT_pretty( +[_COLEMAKGM] = 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_SCRL, KC_PAUS, NUMPAD, ADJUST, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, @@ -338,7 +341,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | | | Bspc | | Ent/NS|Number2| Fn2 | `-----------------------' `-----------------------' */ -[_QWERTYGM] = LAYOUT_pretty( +[_QWERTYGM] = 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_SCRL, KC_PAUS, NUMPAD, ADJUST, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, @@ -374,7 +377,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | | | | | | | | `-----------------------' `-----------------------' */ -[_ADJUST] = LAYOUT_pretty( +[_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM, NUMPAD, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -386,7 +389,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______ ), -[_ADJUST2] = LAYOUT_pretty( +[_ADJUST2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM, NUMPAD, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kinesis/keymaps/jwon/keymap.c b/keyboards/kinesis/keymaps/jwon/keymap.c index fe335e68aca..c23663da922 100644 --- a/keyboards/kinesis/keymaps/jwon/keymap.c +++ b/keyboards/kinesis/keymaps/jwon/keymap.c @@ -40,107 +40,55 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE_DVORAK] = LAYOUT ( - // Left Hand - MACLOCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_PIPE, KC_PLUS, KC_LBRC, KC_LCBR, KC_LPRN, KC_AMPR, - KC_TAB, KC_SCLN, KC_COMM, KC_DOT, KC_P, KC_Y, - SFT_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LCTL, KC_QUOT, KC_Q, KC_J, KC_K, KC_X, - KC_DLR, KC_BSLS, KC_LEFT, KC_RGHT, - // Left Thumb - KC_LGUI, KC_LALT, - MACPAST, - KC_BSPC, KC_SPC, MACCOPY, - - // Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, QWERTY, QK_BOOT, - KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_ASTR, KC_EXLM, - KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, - KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, - KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, - KC_DOWN, KC_UP, KC_SLSH, KC_AT, - // Right Thumb - KEYPAD, LSA_, - MACUNDO, - MACREDO, RAISE, KC_ENT + MACLOCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, QWERTY, QK_BOOT, + KC_PIPE, KC_PLUS, KC_LBRC, KC_LCBR, KC_LPRN, KC_AMPR, KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_ASTR, KC_EXLM, + KC_TAB, KC_SCLN, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, + SFT_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LCTL, KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_DLR, KC_BSLS, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP, KC_SLSH, KC_AT, + + KC_LGUI, KC_LALT, KEYPAD, LSA_, + MACPAST, MACUNDO, + KC_BSPC, KC_SPC, MACCOPY, MACREDO, RAISE, KC_ENT ), [_RAISE_DVORAK] = LAYOUT ( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, - _______, KC_COLN, KC_LABK, KC_RABK, S(KC_P), S(KC_Y), - _______, S(KC_A), S(KC_O), S(KC_E), S(KC_U), S(KC_I), - _______, KC_DQUO, S(KC_Q), S(KC_J), S(KC_K), S(KC_X), - KC_TILD, KC_PIPE, _______, _______, - // Left Thumb - _______, _______, - _______, - _______, _______, _______, - - // Right Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_PERC, - S(KC_F), S(KC_G), S(KC_C), S(KC_R), S(KC_L), KC_HASH, - S(KC_D), S(KC_H), S(KC_T), S(KC_N), S(KC_S), KC_UNDS, - S(KC_B), S(KC_M), S(KC_W), S(KC_V), S(KC_Z), _______, - _______, _______, KC_QUES, KC_CIRC, - // Right Thumb - _______, _______, - _______, - _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PERC, + _______, KC_COLN, KC_LABK, KC_RABK, S(KC_P), S(KC_Y), S(KC_F), S(KC_G), S(KC_C), S(KC_R), S(KC_L), KC_HASH, + _______, S(KC_A), S(KC_O), S(KC_E), S(KC_U), S(KC_I), S(KC_D), S(KC_H), S(KC_T), S(KC_N), S(KC_S), KC_UNDS, + _______, KC_DQUO, S(KC_Q), S(KC_J), S(KC_K), S(KC_X), S(KC_B), S(KC_M), S(KC_W), S(KC_V), S(KC_Z), _______, + KC_TILD, KC_PIPE, _______, _______, _______, _______, KC_QUES, KC_CIRC, + + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ ), [_KEYPAD] = LAYOUT ( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - // Left Thumb - _______, _______, - _______, - _______, _______, _______, - - // Right Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______, - _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, - _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, - _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, - _______, _______, KC_PDOT, KC_PENT, - // Right Thumb - _______, _______, - _______, - _______, _______, KC_P0 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + _______, _______, _______, _______, _______, _______, KC_PDOT, KC_PENT, + + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, KC_P0 ), [_QWERTY] = LAYOUT( - // Left Hand - KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, - KC_GRV, KC_INS, KC_LEFT, KC_RGHT, - // Left Thumb - KC_LGUI, KC_LALT, - KC_HOME, - KC_BSPC, KC_DEL, KC_END , - - // Right Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, - // Right Thumb - KC_RGUI, KC_RCTL, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC + KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + 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_CAPS, 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_RSFT, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + + KC_LGUI, KC_LALT, KC_RGUI, KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END , KC_PGDN, KC_ENT, KC_SPC ) }; diff --git a/keyboards/kinesis/keymaps/peott-fr/keymap.c b/keyboards/kinesis/keymaps/peott-fr/keymap.c index 9bdcb6df314..22453517a94 100644 --- a/keyboards/kinesis/keymaps/peott-fr/keymap.c +++ b/keyboards/kinesis/keymaps/peott-fr/keymap.c @@ -21,8 +21,52 @@ */ 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, LGUI_T(KC_MPLY), LALT_T(KC_MNXT), KC_GRV, KC_BSLS, KC_LBRC, KC_RBRC, KC_HOME, LT(1,KC_SPC), KC_DEL, KC_END, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, TG(3), KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RALT, KC_APP, KC_PGUP, KC_PGDN, KC_ENT, LT(2,KC_BSPC)), - [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_PGUP, KC_LBRC, KC_UP, KC_RBRC, KC_LPRN, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_RPRN, KC_TRNS, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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_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), - [3] = LAYOUT(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_NUM, KC_PEQL, KC_PSLS, KC_PAST, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_NO, KC_NO, KC_P0, KC_PDOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO) + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, TG(3), KC_NO, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, + LGUI_T(KC_MPLY), LALT_T(KC_MNXT), KC_GRV, KC_BSLS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + + KC_LBRC, KC_RBRC, KC_RALT, KC_APP, + KC_HOME, KC_PGUP, + LT(1,KC_SPC), KC_DEL, KC_END, KC_PGDN, KC_ENT, LT(2,KC_BSPC) + ), + [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_EQL, + KC_TRNS, KC_PGUP, KC_LBRC, KC_UP, KC_RBRC, KC_LPRN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_RPRN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + 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, 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_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_TRNS, KC_TRNS, KC_TRNS, + + 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_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, KC_NO, KC_NO, KC_NO, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P0, KC_PDOT, 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 + ) }; diff --git a/keyboards/kinesis/keymaps/stapelberg/keymap.c b/keyboards/kinesis/keymaps/stapelberg/keymap.c index 77578463904..f8e7b572f15 100644 --- a/keyboards/kinesis/keymaps/stapelberg/keymap.c +++ b/keyboards/kinesis/keymaps/stapelberg/keymap.c @@ -48,24 +48,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [QWERTY] = LAYOUT( - KC_DEL, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, - KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , - KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , - KC_CAPS,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , - KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , - KC_GRV ,KC_INS ,KC_LEFT,KC_RGHT, - KC_LCTL,KC_LALT, - KC_LGUI, - KC_BSPC,KC_ESC ,KC_END , - KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SCRL ,KC_PAUS, MO(1), QK_BOOT, - KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, - KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, - KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, - KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, - KC_UP ,KC_DOWN,KC_LBRC,KC_RBRC, - KC_RALT,KC_RCTL, - KC_PGUP, - KC_PGDN,KC_ENTER ,KC_SPC + KC_DEL, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SCRL ,KC_PAUS, MO(1), QK_BOOT, + KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, + 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_CAPS,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_RSFT, + KC_GRV ,KC_INS ,KC_LEFT,KC_RGHT, KC_UP ,KC_DOWN,KC_LBRC,KC_RBRC, + KC_LCTL,KC_LALT, KC_RALT,KC_RCTL, + KC_LGUI, KC_PGUP, + KC_BSPC,KC_ESC ,KC_END , KC_PGDN,KC_ENTER ,KC_SPC ), // LAYER1 is activated by the keypad key. It has WAKE on Escape (left-most key), @@ -73,23 +64,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // as printed on the Kinesis Advantage 2. [LAYER1] = LAYOUT( - KC_WAKE, 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_MUTE ,KC_VOLD ,KC_VOLU, 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_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_WAKE, 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_MUTE ,KC_VOLD ,KC_VOLU, 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_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 ), }; diff --git a/keyboards/kinesis/keymaps/tuesdayjohn/keymap.c b/keyboards/kinesis/keymaps/tuesdayjohn/keymap.c index 6a7a6cc68e0..ffcb1c3a8d1 100644 --- a/keyboards/kinesis/keymaps/tuesdayjohn/keymap.c +++ b/keyboards/kinesis/keymaps/tuesdayjohn/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H extern keymap_config_t keymap_config; @@ -119,7 +122,7 @@ Colemak | Fn | Number | Bspc | | Enter | Number2| Fn2 | `--------------------------' `--------------------------' */ -[_COLEMAK] = LAYOUT_pretty( +[_COLEMAK] = 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_SCRL, KC_PAUS, NUMPAD, ADJUST, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, @@ -156,7 +159,7 @@ QWERTY | Fn | Number | Bspc | | Enter | Number2| Fn2 | `--------------------------' `--------------------------' */ -[_QWERTY] = LAYOUT_pretty( +[_QWERTY] = 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_SCRL, KC_PAUS, NUMPAD, ADJUST, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, @@ -193,7 +196,7 @@ Numbers/Symbols layer | | | | | | | | `--------------------------' `--------------------------' */ -[_NUMBERS] = LAYOUT_pretty( +[_NUMBERS] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, @@ -205,7 +208,7 @@ Numbers/Symbols layer _______, _______, _______, _______, _______, _______ ), -[_NUMBERS2] = LAYOUT_pretty( +[_NUMBERS2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, @@ -241,7 +244,7 @@ Function layer | | | | | | | | `--------------------------' `--------------------------' */ -[_FUNCTION] = LAYOUT_pretty( +[_FUNCTION] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_UP, _______, _______, _______, _______, KC_UP, CTL_Y, _______, _______, @@ -253,7 +256,7 @@ Function layer _______, _______, _______, _______, _______, _______ ), -[_FUNCTION2] = LAYOUT_pretty( +[_FUNCTION2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_UP, _______, _______, _______, _______, KC_UP, CTL_Y, _______, _______, @@ -290,7 +293,7 @@ Numpad layer | | | | | | | | `--------------------------' `--------------------------' */ -[_NUMPAD] = LAYOUT_pretty( +[_NUMPAD] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______, _______, KC_TAB, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, @@ -327,7 +330,7 @@ Gaming | | | Bspc | |Enter/NS| Number2| Fn2 | `--------------------------' `--------------------------' */ -[_GAMING] = LAYOUT_pretty( +[_GAMING] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -364,7 +367,7 @@ Adjust layer | | | | | | | | `--------------------------' `--------------------------' */ -[_ADJUST] = LAYOUT_pretty( +[_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, COLEMAK, QWERTY, _______, GAMING, _______, NUMPAD, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -376,7 +379,7 @@ Adjust layer _______, _______, _______, _______, _______, _______ ), -[_ADJUST2] = LAYOUT_pretty( +[_ADJUST2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, COLEMAK, QWERTY, _______, GAMING, _______, NUMPAD, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kinesis/keymaps/tw1t611/keymap.c b/keyboards/kinesis/keymaps/tw1t611/keymap.c index 0a812aef35b..e5fb5519dc1 100644 --- a/keyboards/kinesis/keymaps/tw1t611/keymap.c +++ b/keyboards/kinesis/keymaps/tw1t611/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #include "keymap_german.h" @@ -6,59 +9,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [QWERTZ] = LAYOUT( - _______,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, - _______,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , - KC_ESC ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , - KC_TAB ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , - DE_PIPE,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , - _______,_______,_______,_______, - KC_RCTL,KC_LALT, - KC_HOME, - KC_SPC ,KC_LSFT,KC_BSPC , - KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR,KC_SCRL,KC_PAUS,KC_NO ,QK_BOOT, - KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,DE_SS , - KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,DE_ADIA, - KC_H ,KC_J ,KC_K ,KC_L ,DE_SLSH,DE_ODIA, - KC_N ,KC_M ,DE_COMM,DE_DOT ,DE_MINS,DE_UDIA, - _______,_______,_______,_______, - KC_LGUI,KC_LCTL, - KC_END , - KC_DEL,MO(MOD),KC_ENTER + _______,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR,KC_SCRL,KC_PAUS,KC_NO ,QK_BOOT, + _______,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,DE_SS , + KC_ESC ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,DE_ADIA, + KC_TAB ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,DE_SLSH,DE_ODIA, + DE_PIPE,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_N ,KC_M ,DE_COMM,DE_DOT ,DE_MINS,DE_UDIA, + _______,_______,_______,_______, _______,_______,_______,_______, + KC_RCTL,KC_LALT, KC_LGUI,KC_LCTL, + KC_HOME, KC_END , + KC_SPC ,KC_LSFT,KC_BSPC , KC_DEL,MO(MOD),KC_ENTER ), [MOD] = LAYOUT( - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - DE_CIRC,DE_QUOT,DE_DQUO,DE_LCBR,DE_RCBR,DE_GRV , - DE_TILD,DE_EXLM,DE_DLR ,DE_LPRN,DE_RPRN,DE_AMPR, - DE_BSLS,DE_HASH,DE_LABK,DE_LBRC,DE_RBRC,DE_RABK, - _______,_______,_______,_______, - _______,_______, - _______, - _______,_______,_______, - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - KC_HOME,KC_PGDN,KC_PGUP,KC_END ,DE_EQL ,DE_PERC, - KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,DE_QUES,DE_ASTR, - DE_AT ,DE_EURO,DE_SCLN,DE_COLN,DE_UNDS,DE_PLUS, - _______,_______,_______,_______, - _______,_______, - _______, - _______,_______ ,_______ + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + DE_CIRC,DE_QUOT,DE_DQUO,DE_LCBR,DE_RCBR,DE_GRV , KC_HOME,KC_PGDN,KC_PGUP,KC_END ,DE_EQL ,DE_PERC, + DE_TILD,DE_EXLM,DE_DLR ,DE_LPRN,DE_RPRN,DE_AMPR, KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,DE_QUES,DE_ASTR, + DE_BSLS,DE_HASH,DE_LABK,DE_LBRC,DE_RBRC,DE_RABK, DE_AT ,DE_EURO,DE_SCLN,DE_COLN,DE_UNDS,DE_PLUS, + _______,_______,_______,_______, _______,_______,_______,_______, + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______ ,_______ ) }; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c index 5e4f7c1e886..1dff9053a8b 100644 --- a/keyboards/kinesis/keymaps/xyverz/keymap.c +++ b/keyboards/kinesis/keymaps/xyverz/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H enum layer_names { @@ -110,107 +113,55 @@ enum custom_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK, KEYPAD }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DVORAK] = LAYOUT ( - // Left Hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, - KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, - KC_GRV, KC_INS, KC_LEFT, KC_RGHT, - // Left Thumb - KC_LCTL, KC_LALT, - KC_HOME, - KC_BSPC, KC_DEL, GUI_END, - - // Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, TG(_KEYPAD), QK_BOOT, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, - KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, - KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, - // Right Thumb - KC_RGUI, KC_RCTL, - KC_PGUP, - KC_PGDN, KPD_ENT, KC_SPC + 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_SCRL, KC_PAUS, TG(_KEYPAD), QK_BOOT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, GUI_END, KC_PGDN, KPD_ENT, KC_SPC ), [_QWERTY] = LAYOUT ( - // Left Hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, - KC_GRV, KC_INS, KC_LEFT, KC_RGHT, - // Left Thumb - KC_LCTL, KC_LALT, - KC_HOME, - KC_BSPC, KC_DEL, KC_END, - - // Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, TG(_KEYPAD), QK_BOOT, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS , - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, - // Right Thumb - KC_RGUI, KC_RCTL, - KC_PGUP, - KC_PGDN, KPD_ENT, KC_SPC + 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_SCRL, KC_PAUS, TG(_KEYPAD), QK_BOOT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + 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_CAPS, 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_RSFT, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KPD_ENT, KC_SPC ), [_COLEMAK] = LAYOUT ( - // Left Hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, - KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, - KC_GRV, KC_INS, KC_LEFT, KC_RGHT, - // Left Thumb - KC_LCTL, KC_LALT, - KC_HOME, - KC_BSPC, KC_DEL, KC_END, - - // Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, TG(_KEYPAD), QK_BOOT, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, - KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, - // Right Thumb - KC_RGUI, KC_RCTL, - KC_PGUP, - KC_PGDN, KPD_ENT, KC_SPC + 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_SCRL, KC_PAUS, TG(_KEYPAD), QK_BOOT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL, + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KPD_ENT, KC_SPC ), [_KEYPAD] = LAYOUT ( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_PWR, _______, _______, _______, _______, _______, - KC_SLEP, _______, _______, _______, _______, _______, - KC_WAKE, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, - _______, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, - _______, QWERTY, COLEMAK, DVORAK, - // Left Thumb - _______, _______, - _______, - _______, _______, MACLOCK, - - // Right Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______, - _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, - _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, - _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, - _______, _______, KC_PDOT, KC_PENT, - // Right Thumb - _______, MACLOCK, - _______, - _______, _______, KC_P0 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_PWR, _______, _______, _______, _______, _______, _______, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______, + KC_SLEP, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + KC_WAKE, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + _______, QWERTY, COLEMAK, DVORAK, _______, _______, KC_PDOT, KC_PENT, + + _______, _______, _______, MACLOCK, + _______, _______, + _______, _______, MACLOCK, _______, _______, KC_P0 ) }; @@ -232,6 +183,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void){}; diff --git a/keyboards/kinesis/kint2pp/info.json b/keyboards/kinesis/kint2pp/info.json index 74d96d59e04..ecf86658a84 100644 --- a/keyboards/kinesis/kint2pp/info.json +++ b/keyboards/kinesis/kint2pp/info.json @@ -7,6 +7,19 @@ "device_version": "0.0.2", "max_power": 100 }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "mousekey": true, + "extrakey": true, + "nkro": true, + "audio": false, + "backlight": false + }, + "build": { + "debounce_type": "sym_eager_pk" + }, "matrix_pins": { "cols": ["E7", "F0", "F7", "B1", "B3", "B0", "D5"], "rows": ["D7", "E0", "E1", "C0", "C6", "F6", "D4", "D2", "D3", "D0", "B7", "D1", "E6", "B4", "B2"] @@ -24,96 +37,6 @@ "debounce": 20, "layouts": { "LAYOUT": { - "layout": [ - {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 0], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 2], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 2], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 2], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, - {"matrix": [1, 0], "x": 1.25, "y": 1.25}, - {"matrix": [2, 0], "x": 2.25, "y": 1}, - {"matrix": [3, 0], "x": 3.25, "y": 1}, - {"matrix": [4, 0], "x": 4.25, "y": 1}, - {"matrix": [5, 0], "x": 5.25, "y": 1}, - {"matrix": [0, 1], "x": 0, "y": 2.25, "w": 1.25}, - {"matrix": [1, 1], "x": 1.25, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [3, 1], "x": 3.25, "y": 2}, - {"matrix": [4, 1], "x": 4.25, "y": 2}, - {"matrix": [5, 1], "x": 5.25, "y": 2}, - {"matrix": [0, 2], "x": 0, "y": 3.25, "w": 1.25}, - {"matrix": [1, 2], "x": 1.25, "y": 3.25}, - {"matrix": [2, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [4, 2], "x": 4.25, "y": 3}, - {"matrix": [5, 2], "x": 5.25, "y": 3}, - {"matrix": [0, 3], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [1, 3], "x": 1.25, "y": 4.25}, - {"matrix": [2, 3], "x": 2.25, "y": 4}, - {"matrix": [3, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [5, 3], "x": 5.25, "y": 4}, - {"matrix": [1, 4], "x": 1.25, "y": 5.25}, - {"matrix": [2, 4], "x": 2.25, "y": 5}, - {"matrix": [3, 4], "x": 3.25, "y": 5}, - {"matrix": [5, 4], "x": 4.25, "y": 5}, - {"matrix": [5, 6], "x": 5.25, "y": 6}, - {"matrix": [5, 5], "x": 6.25, "y": 6}, - {"matrix": [3, 5], "x": 6.25, "y": 7}, - {"matrix": [3, 6], "x": 4.25, "y": 7, "h": 2}, - {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 8}, - {"matrix": [12, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 5], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 5], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [6, 0], "x": 9.25, "y": 1}, - {"matrix": [7, 0], "x": 10.25, "y": 1}, - {"matrix": [8, 0], "x": 11.25, "y": 1}, - {"matrix": [9, 0], "x": 12.25, "y": 1}, - {"matrix": [10, 0], "x": 13.25, "y": 1.25}, - {"matrix": [11, 0], "x": 14.25, "y": 1.25, "w": 1.25}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [7, 1], "x": 10.25, "y": 2}, - {"matrix": [8, 1], "x": 11.25, "y": 2}, - {"matrix": [9, 1], "x": 12.25, "y": 2}, - {"matrix": [10, 1], "x": 13.25, "y": 2.25}, - {"matrix": [11, 1], "x": 14.25, "y": 2.25, "w": 1.25}, - {"matrix": [6, 2], "x": 9.25, "y": 3}, - {"matrix": [7, 2], "x": 10.25, "y": 3}, - {"matrix": [8, 2], "x": 11.25, "y": 3}, - {"matrix": [9, 2], "x": 12.25, "y": 3}, - {"matrix": [10, 2], "x": 13.25, "y": 3.25}, - {"matrix": [11, 2], "x": 14.25, "y": 3.25, "w": 1.25}, - {"matrix": [6, 3], "x": 9.25, "y": 4}, - {"matrix": [7, 3], "x": 10.25, "y": 4}, - {"matrix": [8, 3], "x": 11.25, "y": 4}, - {"matrix": [9, 3], "x": 12.25, "y": 4}, - {"matrix": [10, 3], "x": 13.25, "y": 4.25}, - {"matrix": [11, 3], "x": 14.25, "y": 4.25, "w": 1.25}, - {"matrix": [6, 4], "x": 10.25, "y": 5}, - {"matrix": [8, 4], "x": 11.25, "y": 5}, - {"matrix": [9, 4], "x": 12.25, "y": 5}, - {"matrix": [10, 4], "x": 13.25, "y": 5.25}, - {"matrix": [9, 6], "x": 8.25, "y": 6}, - {"matrix": [8, 5], "x": 9.25, "y": 6}, - {"matrix": [8, 6], "x": 8.25, "y": 7}, - {"matrix": [6, 6], "x": 8.25, "y": 8}, - {"matrix": [7, 5], "x": 9.25, "y": 7, "h": 2}, - {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2} - ] - }, - "LAYOUT_pretty": { "layout": [ {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, diff --git a/keyboards/kinesis/kint2pp/rules.mk b/keyboards/kinesis/kint2pp/rules.mk index 7c48a98bfcb..e69de29bb2d 100644 --- a/keyboards/kinesis/kint2pp/rules.mk +++ b/keyboards/kinesis/kint2pp/rules.mk @@ -1,3 +0,0 @@ -# Debounce eagerly (report change immediately), keep per-key timers. We can use -# this because the kinT does not have to deal with noise. -DEBOUNCE_TYPE = sym_eager_pk diff --git a/keyboards/kinesis/kint36/info.json b/keyboards/kinesis/kint36/info.json index 815b6cb8719..969f819f80e 100644 --- a/keyboards/kinesis/kint36/info.json +++ b/keyboards/kinesis/kint36/info.json @@ -7,6 +7,19 @@ "device_version": "0.0.1", "max_power": 100 }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "mousekey": true, + "extrakey": true, + "nkro": true, + "audio": false, + "backlight": false + }, + "build": { + "debounce_type": "sym_eager_pk" + }, "matrix_pins": { "cols": ["B3", "D1", "C0", "D5", "C1", "B2", "D4"], "rows": ["D3", "C3", "C4", "C6", "D2", "B0", "D7", "A12", "A13", "B17", "B16", "D0", "B1", "C2", "D6"] @@ -24,96 +37,6 @@ "debounce": 20, "layouts": { "LAYOUT": { - "layout": [ - {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 0], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 2], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 2], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 2], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, - {"matrix": [1, 0], "x": 1.25, "y": 1.25}, - {"matrix": [2, 0], "x": 2.25, "y": 1}, - {"matrix": [3, 0], "x": 3.25, "y": 1}, - {"matrix": [4, 0], "x": 4.25, "y": 1}, - {"matrix": [5, 0], "x": 5.25, "y": 1}, - {"matrix": [0, 1], "x": 0, "y": 2.25, "w": 1.25}, - {"matrix": [1, 1], "x": 1.25, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [3, 1], "x": 3.25, "y": 2}, - {"matrix": [4, 1], "x": 4.25, "y": 2}, - {"matrix": [5, 1], "x": 5.25, "y": 2}, - {"matrix": [0, 2], "x": 0, "y": 3.25, "w": 1.25}, - {"matrix": [1, 2], "x": 1.25, "y": 3.25}, - {"matrix": [2, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [4, 2], "x": 4.25, "y": 3}, - {"matrix": [5, 2], "x": 5.25, "y": 3}, - {"matrix": [0, 3], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [1, 3], "x": 1.25, "y": 4.25}, - {"matrix": [2, 3], "x": 2.25, "y": 4}, - {"matrix": [3, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [5, 3], "x": 5.25, "y": 4}, - {"matrix": [1, 4], "x": 1.25, "y": 5.25}, - {"matrix": [2, 4], "x": 2.25, "y": 5}, - {"matrix": [3, 4], "x": 3.25, "y": 5}, - {"matrix": [5, 4], "x": 4.25, "y": 5}, - {"matrix": [5, 6], "x": 5.25, "y": 6}, - {"matrix": [5, 5], "x": 6.25, "y": 6}, - {"matrix": [3, 5], "x": 6.25, "y": 7}, - {"matrix": [3, 6], "x": 4.25, "y": 7, "h": 2}, - {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 8}, - {"matrix": [12, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 5], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 5], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [6, 0], "x": 9.25, "y": 1}, - {"matrix": [7, 0], "x": 10.25, "y": 1}, - {"matrix": [8, 0], "x": 11.25, "y": 1}, - {"matrix": [9, 0], "x": 12.25, "y": 1}, - {"matrix": [10, 0], "x": 13.25, "y": 1.25}, - {"matrix": [11, 0], "x": 14.25, "y": 1.25, "w": 1.25}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [7, 1], "x": 10.25, "y": 2}, - {"matrix": [8, 1], "x": 11.25, "y": 2}, - {"matrix": [9, 1], "x": 12.25, "y": 2}, - {"matrix": [10, 1], "x": 13.25, "y": 2.25}, - {"matrix": [11, 1], "x": 14.25, "y": 2.25, "w": 1.25}, - {"matrix": [6, 2], "x": 9.25, "y": 3}, - {"matrix": [7, 2], "x": 10.25, "y": 3}, - {"matrix": [8, 2], "x": 11.25, "y": 3}, - {"matrix": [9, 2], "x": 12.25, "y": 3}, - {"matrix": [10, 2], "x": 13.25, "y": 3.25}, - {"matrix": [11, 2], "x": 14.25, "y": 3.25, "w": 1.25}, - {"matrix": [6, 3], "x": 9.25, "y": 4}, - {"matrix": [7, 3], "x": 10.25, "y": 4}, - {"matrix": [8, 3], "x": 11.25, "y": 4}, - {"matrix": [9, 3], "x": 12.25, "y": 4}, - {"matrix": [10, 3], "x": 13.25, "y": 4.25}, - {"matrix": [11, 3], "x": 14.25, "y": 4.25, "w": 1.25}, - {"matrix": [6, 4], "x": 10.25, "y": 5}, - {"matrix": [8, 4], "x": 11.25, "y": 5}, - {"matrix": [9, 4], "x": 12.25, "y": 5}, - {"matrix": [10, 4], "x": 13.25, "y": 5.25}, - {"matrix": [9, 6], "x": 8.25, "y": 6}, - {"matrix": [8, 5], "x": 9.25, "y": 6}, - {"matrix": [8, 6], "x": 8.25, "y": 7}, - {"matrix": [6, 6], "x": 8.25, "y": 8}, - {"matrix": [7, 5], "x": 9.25, "y": 7, "h": 2}, - {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2} - ] - }, - "LAYOUT_pretty": { "layout": [ {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, diff --git a/keyboards/kinesis/kint36/rules.mk b/keyboards/kinesis/kint36/rules.mk index 7c48a98bfcb..e69de29bb2d 100644 --- a/keyboards/kinesis/kint36/rules.mk +++ b/keyboards/kinesis/kint36/rules.mk @@ -1,3 +0,0 @@ -# Debounce eagerly (report change immediately), keep per-key timers. We can use -# this because the kinT does not have to deal with noise. -DEBOUNCE_TYPE = sym_eager_pk diff --git a/keyboards/kinesis/kint41/info.json b/keyboards/kinesis/kint41/info.json index 1901ed1d3bb..eec726cf51e 100644 --- a/keyboards/kinesis/kint41/info.json +++ b/keyboards/kinesis/kint41/info.json @@ -7,6 +7,19 @@ "device_version": "0.0.1", "max_power": 100 }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "mousekey": true, + "extrakey": true, + "nkro": true, + "audio": false, + "backlight": false + }, + "build": { + "debounce_type": "sym_eager_pk" + }, "matrix_pins": { "cols": ["LINE_PIN18", "LINE_PIN14", "LINE_PIN15", "LINE_PIN20", "LINE_PIN22", "LINE_PIN19", "LINE_PIN6"], "rows": ["LINE_PIN8", "LINE_PIN9", "LINE_PIN10", "LINE_PIN11", "LINE_PIN7", "LINE_PIN16", "LINE_PIN5", "LINE_PIN3", "LINE_PIN4", "LINE_PIN1", "LINE_PIN0", "LINE_PIN2", "LINE_PIN17", "LINE_PIN23", "LINE_PIN21"] @@ -22,96 +35,6 @@ "debounce": 20, "layouts": { "LAYOUT": { - "layout": [ - {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 0], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 2], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 2], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 2], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, - {"matrix": [1, 0], "x": 1.25, "y": 1.25}, - {"matrix": [2, 0], "x": 2.25, "y": 1}, - {"matrix": [3, 0], "x": 3.25, "y": 1}, - {"matrix": [4, 0], "x": 4.25, "y": 1}, - {"matrix": [5, 0], "x": 5.25, "y": 1}, - {"matrix": [0, 1], "x": 0, "y": 2.25, "w": 1.25}, - {"matrix": [1, 1], "x": 1.25, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [3, 1], "x": 3.25, "y": 2}, - {"matrix": [4, 1], "x": 4.25, "y": 2}, - {"matrix": [5, 1], "x": 5.25, "y": 2}, - {"matrix": [0, 2], "x": 0, "y": 3.25, "w": 1.25}, - {"matrix": [1, 2], "x": 1.25, "y": 3.25}, - {"matrix": [2, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [4, 2], "x": 4.25, "y": 3}, - {"matrix": [5, 2], "x": 5.25, "y": 3}, - {"matrix": [0, 3], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [1, 3], "x": 1.25, "y": 4.25}, - {"matrix": [2, 3], "x": 2.25, "y": 4}, - {"matrix": [3, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [5, 3], "x": 5.25, "y": 4}, - {"matrix": [1, 4], "x": 1.25, "y": 5.25}, - {"matrix": [2, 4], "x": 2.25, "y": 5}, - {"matrix": [3, 4], "x": 3.25, "y": 5}, - {"matrix": [5, 4], "x": 4.25, "y": 5}, - {"matrix": [5, 6], "x": 5.25, "y": 6}, - {"matrix": [5, 5], "x": 6.25, "y": 6}, - {"matrix": [3, 5], "x": 6.25, "y": 7}, - {"matrix": [3, 6], "x": 4.25, "y": 7, "h": 2}, - {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 8}, - {"matrix": [12, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 5], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 5], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [6, 0], "x": 9.25, "y": 1}, - {"matrix": [7, 0], "x": 10.25, "y": 1}, - {"matrix": [8, 0], "x": 11.25, "y": 1}, - {"matrix": [9, 0], "x": 12.25, "y": 1}, - {"matrix": [10, 0], "x": 13.25, "y": 1.25}, - {"matrix": [11, 0], "x": 14.25, "y": 1.25, "w": 1.25}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [7, 1], "x": 10.25, "y": 2}, - {"matrix": [8, 1], "x": 11.25, "y": 2}, - {"matrix": [9, 1], "x": 12.25, "y": 2}, - {"matrix": [10, 1], "x": 13.25, "y": 2.25}, - {"matrix": [11, 1], "x": 14.25, "y": 2.25, "w": 1.25}, - {"matrix": [6, 2], "x": 9.25, "y": 3}, - {"matrix": [7, 2], "x": 10.25, "y": 3}, - {"matrix": [8, 2], "x": 11.25, "y": 3}, - {"matrix": [9, 2], "x": 12.25, "y": 3}, - {"matrix": [10, 2], "x": 13.25, "y": 3.25}, - {"matrix": [11, 2], "x": 14.25, "y": 3.25, "w": 1.25}, - {"matrix": [6, 3], "x": 9.25, "y": 4}, - {"matrix": [7, 3], "x": 10.25, "y": 4}, - {"matrix": [8, 3], "x": 11.25, "y": 4}, - {"matrix": [9, 3], "x": 12.25, "y": 4}, - {"matrix": [10, 3], "x": 13.25, "y": 4.25}, - {"matrix": [11, 3], "x": 14.25, "y": 4.25, "w": 1.25}, - {"matrix": [6, 4], "x": 10.25, "y": 5}, - {"matrix": [8, 4], "x": 11.25, "y": 5}, - {"matrix": [9, 4], "x": 12.25, "y": 5}, - {"matrix": [10, 4], "x": 13.25, "y": 5.25}, - {"matrix": [9, 6], "x": 8.25, "y": 6}, - {"matrix": [8, 5], "x": 9.25, "y": 6}, - {"matrix": [8, 6], "x": 8.25, "y": 7}, - {"matrix": [6, 6], "x": 8.25, "y": 8}, - {"matrix": [7, 5], "x": 9.25, "y": 7, "h": 2}, - {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2} - ] - }, - "LAYOUT_pretty": { "layout": [ {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, diff --git a/keyboards/kinesis/kint41/rules.mk b/keyboards/kinesis/kint41/rules.mk index e273e8f282e..825c63939f8 100644 --- a/keyboards/kinesis/kint41/rules.mk +++ b/keyboards/kinesis/kint41/rules.mk @@ -9,9 +9,4 @@ ARMV = 7 # Bootloader selection BOOTLOADER = halfkay -# Debounce eagerly (report change immediately), keep per-key timers. We can use -# this because the Cherry MX keyswitches on the Kinesis only produce noise while -# pressed. -DEBOUNCE_TYPE = sym_eager_pk - FIRMWARE_FORMAT = hex diff --git a/keyboards/kinesis/kintlc/info.json b/keyboards/kinesis/kintlc/info.json index da8e8f7e45e..13c2f9a55c5 100644 --- a/keyboards/kinesis/kintlc/info.json +++ b/keyboards/kinesis/kintlc/info.json @@ -7,6 +7,19 @@ "device_version": "0.0.1", "max_power": 50 }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "mousekey": true, + "extrakey": true, + "nkro": true, + "audio": false, + "backlight": false + }, + "build": { + "debounce_type": "sym_eager_pk" + }, "matrix_pins": { "cols": ["LINE_PIN18", "LINE_PIN14", "LINE_PIN15", "LINE_PIN20", "LINE_PIN22", "LINE_PIN19", "LINE_PIN6"], "rows": ["LINE_PIN8", "LINE_PIN9", "LINE_PIN10", "LINE_PIN11", "LINE_PIN7", "LINE_PIN16", "LINE_PIN5", "LINE_PIN3", "LINE_PIN4", "LINE_PIN1", "LINE_PIN0", "LINE_PIN2", "LINE_PIN17", "LINE_PIN23", "LINE_PIN21"] @@ -23,96 +36,6 @@ "debounce": 20, "layouts": { "LAYOUT": { - "layout": [ - {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 0], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 2], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 2], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 2], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, - {"matrix": [1, 0], "x": 1.25, "y": 1.25}, - {"matrix": [2, 0], "x": 2.25, "y": 1}, - {"matrix": [3, 0], "x": 3.25, "y": 1}, - {"matrix": [4, 0], "x": 4.25, "y": 1}, - {"matrix": [5, 0], "x": 5.25, "y": 1}, - {"matrix": [0, 1], "x": 0, "y": 2.25, "w": 1.25}, - {"matrix": [1, 1], "x": 1.25, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [3, 1], "x": 3.25, "y": 2}, - {"matrix": [4, 1], "x": 4.25, "y": 2}, - {"matrix": [5, 1], "x": 5.25, "y": 2}, - {"matrix": [0, 2], "x": 0, "y": 3.25, "w": 1.25}, - {"matrix": [1, 2], "x": 1.25, "y": 3.25}, - {"matrix": [2, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [4, 2], "x": 4.25, "y": 3}, - {"matrix": [5, 2], "x": 5.25, "y": 3}, - {"matrix": [0, 3], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [1, 3], "x": 1.25, "y": 4.25}, - {"matrix": [2, 3], "x": 2.25, "y": 4}, - {"matrix": [3, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [5, 3], "x": 5.25, "y": 4}, - {"matrix": [1, 4], "x": 1.25, "y": 5.25}, - {"matrix": [2, 4], "x": 2.25, "y": 5}, - {"matrix": [3, 4], "x": 3.25, "y": 5}, - {"matrix": [5, 4], "x": 4.25, "y": 5}, - {"matrix": [5, 6], "x": 5.25, "y": 6}, - {"matrix": [5, 5], "x": 6.25, "y": 6}, - {"matrix": [3, 5], "x": 6.25, "y": 7}, - {"matrix": [3, 6], "x": 4.25, "y": 7, "h": 2}, - {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 8}, - {"matrix": [12, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 5], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 5], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [6, 0], "x": 9.25, "y": 1}, - {"matrix": [7, 0], "x": 10.25, "y": 1}, - {"matrix": [8, 0], "x": 11.25, "y": 1}, - {"matrix": [9, 0], "x": 12.25, "y": 1}, - {"matrix": [10, 0], "x": 13.25, "y": 1.25}, - {"matrix": [11, 0], "x": 14.25, "y": 1.25, "w": 1.25}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [7, 1], "x": 10.25, "y": 2}, - {"matrix": [8, 1], "x": 11.25, "y": 2}, - {"matrix": [9, 1], "x": 12.25, "y": 2}, - {"matrix": [10, 1], "x": 13.25, "y": 2.25}, - {"matrix": [11, 1], "x": 14.25, "y": 2.25, "w": 1.25}, - {"matrix": [6, 2], "x": 9.25, "y": 3}, - {"matrix": [7, 2], "x": 10.25, "y": 3}, - {"matrix": [8, 2], "x": 11.25, "y": 3}, - {"matrix": [9, 2], "x": 12.25, "y": 3}, - {"matrix": [10, 2], "x": 13.25, "y": 3.25}, - {"matrix": [11, 2], "x": 14.25, "y": 3.25, "w": 1.25}, - {"matrix": [6, 3], "x": 9.25, "y": 4}, - {"matrix": [7, 3], "x": 10.25, "y": 4}, - {"matrix": [8, 3], "x": 11.25, "y": 4}, - {"matrix": [9, 3], "x": 12.25, "y": 4}, - {"matrix": [10, 3], "x": 13.25, "y": 4.25}, - {"matrix": [11, 3], "x": 14.25, "y": 4.25, "w": 1.25}, - {"matrix": [6, 4], "x": 10.25, "y": 5}, - {"matrix": [8, 4], "x": 11.25, "y": 5}, - {"matrix": [9, 4], "x": 12.25, "y": 5}, - {"matrix": [10, 4], "x": 13.25, "y": 5.25}, - {"matrix": [9, 6], "x": 8.25, "y": 6}, - {"matrix": [8, 5], "x": 9.25, "y": 6}, - {"matrix": [8, 6], "x": 8.25, "y": 7}, - {"matrix": [6, 6], "x": 8.25, "y": 8}, - {"matrix": [7, 5], "x": 9.25, "y": 7, "h": 2}, - {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2} - ] - }, - "LAYOUT_pretty": { "layout": [ {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, diff --git a/keyboards/kinesis/kintlc/rules.mk b/keyboards/kinesis/kintlc/rules.mk index a6a1eafbfcc..c2a404fd1e7 100644 --- a/keyboards/kinesis/kintlc/rules.mk +++ b/keyboards/kinesis/kintlc/rules.mk @@ -1,7 +1,2 @@ # This MCU is not in the main CHIBIOS repo but in the CHIBIOS_CONTRIB repo. USE_CHIBIOS_CONTRIB = yes - -# Debounce eagerly (report change immediately), keep per-key timers. We can use -# this because the Cherry MX keyswitches on the Kinesis only produce noise while -# pressed. -DEBOUNCE_TYPE = sym_eager_pk diff --git a/keyboards/kinesis/kintwin/info.json b/keyboards/kinesis/kintwin/info.json new file mode 100644 index 00000000000..ed67c36af39 --- /dev/null +++ b/keyboards/kinesis/kintwin/info.json @@ -0,0 +1,146 @@ +{ + "development_board": "blackpill_f401", + "keyboard_name": "Kinesis", + "url": "https://github.com/alvicstep/kintwin", + "manufacturer": "https://github.com/alvicstep/kintwin", + "maintainer": "Alex Stepanov", + "usb": { + "device_version": "0.0.1", + "vid": "0x4B53", + "pid": "0x0001", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "mousekey": true, + "extrakey": true, + "nkro": true, + "audio": false, + "backlight": false + }, + "matrix_pins": { + "rows": ["A0", "A1", "A2", "A3", "A4", "A5", "A6"], + "cols": ["A7", "B0", "B1", "B10", "B9", "B8", "B7", "B14", "B13", "B12", "C14", "C15", "B15", "B6", "B5"] + }, + "diode_direction": "ROW2COL", + "indicators": { + "caps_lock": "A15", + "scroll_lock": "B3", + "num_lock": "B4", + "compose": "C13", + "on_state": 0 + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 12], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [0, 13], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [0, 14], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [1, 12], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [1, 13], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [1, 14], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [2, 12], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [2, 13], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [2, 14], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, + + {"matrix": [3, 12], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [3, 13], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [3, 14], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [4, 12], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [4, 13], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [4, 14], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [5, 12], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [5, 14], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, + {"matrix": [5, 13], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, + + {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1}, + {"matrix": [0, 3], "x": 3.25, "y": 1}, + {"matrix": [0, 4], "x": 4.25, "y": 1}, + {"matrix": [0, 5], "x": 5.25, "y": 1}, + + {"matrix": [0, 6], "x": 9.25, "y": 1}, + {"matrix": [0, 7], "x": 10.25, "y": 1}, + {"matrix": [0, 8], "x": 11.25, "y": 1}, + {"matrix": [0, 9], "x": 12.25, "y": 1}, + {"matrix": [0, 10], "x": 13.25, "y": 1.25}, + {"matrix": [0, 11], "x": 14.25, "y": 1.25, "w": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2}, + {"matrix": [1, 3], "x": 3.25, "y": 2}, + {"matrix": [1, 4], "x": 4.25, "y": 2}, + {"matrix": [1, 5], "x": 5.25, "y": 2}, + + {"matrix": [1, 6], "x": 11.25, "y": 2.25}, + {"matrix": [1, 7], "x": 12.25, "y": 2.25}, + {"matrix": [1, 8], "x": 13.25, "y": 2.25}, + {"matrix": [1, 9], "x": 14.25, "y": 2.25}, + {"matrix": [1, 10], "x": 15.25, "y": 2.25}, + {"matrix": [1, 11], "x": 16.25, "y": 2.25, "w": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25, "w": 1.25}, + {"matrix": [2, 1], "x": 1.25, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3}, + {"matrix": [2, 3], "x": 3.25, "y": 3}, + {"matrix": [2, 4], "x": 4.25, "y": 3}, + {"matrix": [2, 5], "x": 5.25, "y": 3}, + + {"matrix": [2, 6], "x": 9.25, "y": 3}, + {"matrix": [2, 7], "x": 10.25, "y": 3}, + {"matrix": [2, 8], "x": 11.25, "y": 3}, + {"matrix": [2, 9], "x": 12.25, "y": 3}, + {"matrix": [2, 10], "x": 13.25, "y": 3.25}, + {"matrix": [2, 11], "x": 14.25, "y": 3.25, "w": 1.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4}, + {"matrix": [3, 3], "x": 3.25, "y": 4}, + {"matrix": [3, 4], "x": 4.25, "y": 4}, + {"matrix": [3, 5], "x": 5.25, "y": 4}, + + {"matrix": [3, 6], "x": 9.25, "y": 4}, + {"matrix": [3, 7], "x": 10.25, "y": 4}, + {"matrix": [3, 8], "x": 11.25, "y": 4}, + {"matrix": [3, 9], "x": 12.25, "y": 4}, + {"matrix": [3, 10], "x": 13.25, "y": 4.25}, + {"matrix": [3, 11], "x": 14.25, "y": 4.25, "w": 1.25}, + + {"matrix": [4, 1], "x": 1.25, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5}, + {"matrix": [4, 3], "x": 3.25, "y": 5}, + {"matrix": [4, 5], "x": 4.25, "y": 5}, + + {"matrix": [4, 6], "x": 10.25, "y": 5}, + {"matrix": [4, 8], "x": 11.25, "y": 5}, + {"matrix": [4, 9], "x": 12.25, "y": 5}, + {"matrix": [4, 10], "x": 13.25, "y": 5.25}, + + {"matrix": [6, 5], "x": 5.25, "y": 6}, + {"matrix": [5, 5], "x": 6.25, "y": 6}, + + {"matrix": [6, 9], "x": 8.25, "y": 6}, + {"matrix": [5, 8], "x": 9.25, "y": 6}, + + {"matrix": [5, 3], "x": 6.25, "y": 7}, + + {"matrix": [6, 8], "x": 8.25, "y": 7}, + + {"matrix": [6, 3], "x": 4.25, "y": 7, "h": 2}, + {"matrix": [6, 4], "x": 5.25, "y": 7, "h": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 8}, + + {"matrix": [6, 6], "x": 8.25, "y": 8}, + {"matrix": [5, 7], "x": 9.25, "y": 7, "h": 2}, + {"matrix": [5, 6], "x": 10.25, "y": 7, "h": 2} + ] + } + } +} diff --git a/keyboards/kinesis/kintwin/kintwin.c b/keyboards/kinesis/kintwin/kintwin.c new file mode 100644 index 00000000000..0e2e7a57928 --- /dev/null +++ b/keyboards/kinesis/kintwin/kintwin.c @@ -0,0 +1,29 @@ +// Copyright 2023 Alex Stepanov (@alvicstep) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void matrix_init_kb(void) { + + uint8_t led_delay_ms = 80; + + /* LED pins setup */ + setPinOutput(LED_CAPS_LOCK_PIN); + writePinLow(LED_CAPS_LOCK_PIN); + + wait_ms(led_delay_ms); + setPinOutput(LED_NUM_LOCK_PIN); + writePinLow(LED_NUM_LOCK_PIN); + wait_ms(led_delay_ms); + + setPinOutput(LED_SCROLL_LOCK_PIN); + writePinLow(LED_SCROLL_LOCK_PIN); + wait_ms(led_delay_ms); + + setPinOutput(LED_COMPOSE_PIN); + writePinLow(LED_COMPOSE_PIN); + wait_ms(led_delay_ms); + writePinHigh(LED_COMPOSE_PIN); + + matrix_init_user(); +} \ No newline at end of file diff --git a/keyboards/kinesis/kintwin/readme.md b/keyboards/kinesis/kintwin/readme.md new file mode 100644 index 00000000000..7f944e02bc2 --- /dev/null +++ b/keyboards/kinesis/kintwin/readme.md @@ -0,0 +1,32 @@ +# KinTwin +[KinTwin](https://github.com/alvicstep/kintwin) is a drop-in replacement of a controller and thumb cluster PCB boards for [Kinesis Contoured keyboards](https://deskthority.net/wiki/Kinesis_Contoured). The controller board is a fork of [KinBP](https://github.com/DmNosachev/KinBP). + +### Keyboard +![Kinesis keyboard](https://i.imgur.com/gmuYlUyh.jpg) + +### Controller +![KinTwin controller](https://i.imgur.com/vu6pexwh.jpg) + +The main difference between KinTwin and KinT controllers is that the former utilizes **Blackpill STM32F401** development board and the latter utilizes **Teensy** development boards. + +* Keyboard Maintainer: Alex Stepanov +* Hardware Supported: KinTwin PCB, WeAct Black Pill STM32F401 micro controller +* Hardware Availability: [Open Source (CC-BY-SA)](https://github.com/alvicstep/kintwin) + +Make example for this keyboard (after setting up your build environment): + + make kinesis/kintwin:default + +Flashing example for this keyboard: + + make kinesis/kintwin: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 and plug in the keyboard. +* **Physical reset button**. Hold 'boot0' button on MCU board, press 'reset', then release 'boot0'. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kinesis/kintwin/rules.mk b/keyboards/kinesis/kintwin/rules.mk new file mode 100644 index 00000000000..3922c569c4e --- /dev/null +++ b/keyboards/kinesis/kintwin/rules.mk @@ -0,0 +1 @@ +# File intentionally blank \ No newline at end of file diff --git a/keyboards/kinesis/nguyenvietyen/config.h b/keyboards/kinesis/nguyenvietyen/config.h index f4d3af8dbd1..5e21732a5c6 100644 --- a/keyboards/kinesis/nguyenvietyen/config.h +++ b/keyboards/kinesis/nguyenvietyen/config.h @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #pragma once /* key matrix size */ diff --git a/keyboards/kinesis/nguyenvietyen/info.json b/keyboards/kinesis/nguyenvietyen/info.json index 803f64025f0..123b42e9bfc 100644 --- a/keyboards/kinesis/nguyenvietyen/info.json +++ b/keyboards/kinesis/nguyenvietyen/info.json @@ -6,6 +6,16 @@ "pid": "0x6060", "device_version": "0.0.3" }, + "features": { + "bootmagic": true, + "console": false, + "command": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "audio": false, + "backlight": false + }, "indicators": { "caps_lock": "E6", "num_lock": "D4", @@ -13,100 +23,11 @@ "compose": "D7", "on_state": 0 }, + "debounce": 1, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { "LAYOUT": { - "layout": [ - {"matrix": [0, 2], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 2], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 2], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 0], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 0], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 0], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [8, 0], "x": 0, "y": 1.25, "w": 1.25}, - {"matrix": [7, 0], "x": 1.25, "y": 1.25}, - {"matrix": [6, 0], "x": 2.25, "y": 1}, - {"matrix": [5, 0], "x": 3.25, "y": 1}, - {"matrix": [4, 0], "x": 4.25, "y": 1}, - {"matrix": [3, 0], "x": 5.25, "y": 1}, - {"matrix": [8, 1], "x": 0, "y": 2.25, "w": 1.25}, - {"matrix": [7, 1], "x": 1.25, "y": 2.25}, - {"matrix": [6, 1], "x": 2.25, "y": 2}, - {"matrix": [5, 1], "x": 3.25, "y": 2}, - {"matrix": [4, 1], "x": 4.25, "y": 2}, - {"matrix": [3, 1], "x": 5.25, "y": 2}, - {"matrix": [8, 2], "x": 0, "y": 3.25, "w": 1.25}, - {"matrix": [7, 2], "x": 1.25, "y": 3.25}, - {"matrix": [6, 2], "x": 2.25, "y": 3}, - {"matrix": [5, 2], "x": 3.25, "y": 3}, - {"matrix": [4, 2], "x": 4.25, "y": 3}, - {"matrix": [3, 2], "x": 5.25, "y": 3}, - {"matrix": [8, 3], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [7, 3], "x": 1.25, "y": 4.25}, - {"matrix": [6, 3], "x": 2.25, "y": 4}, - {"matrix": [5, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [3, 3], "x": 5.25, "y": 4}, - {"matrix": [7, 4], "x": 1.25, "y": 5.25}, - {"matrix": [6, 4], "x": 2.25, "y": 5}, - {"matrix": [5, 4], "x": 3.25, "y": 5}, - {"matrix": [3, 4], "x": 4.25, "y": 5}, - {"matrix": [3, 6], "x": 5.25, "y": 6}, - {"matrix": [3, 5], "x": 6.25, "y": 6}, - {"matrix": [5, 5], "x": 6.25, "y": 7}, - {"matrix": [5, 6], "x": 4.25, "y": 7, "h": 2}, - {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, - {"matrix": [7, 5], "x": 6.25, "y": 8}, - {"matrix": [0, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [2, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [1, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 0], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 1], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [9, 4], "x": 9.25, "y": 1}, - {"matrix": [10, 4], "x": 10.25, "y": 1}, - {"matrix": [11, 4], "x": 11.25, "y": 1}, - {"matrix": [13, 4], "x": 12.25, "y": 1}, - {"matrix": [14, 4], "x": 13.25, "y": 1.25}, - {"matrix": [15, 4], "x": 14.25, "y": 1.25, "w": 1.25}, - {"matrix": [9, 5], "x": 9.25, "y": 2}, - {"matrix": [10, 5], "x": 10.25, "y": 2}, - {"matrix": [11, 5], "x": 11.25, "y": 2}, - {"matrix": [13, 5], "x": 12.25, "y": 2}, - {"matrix": [14, 5], "x": 13.25, "y": 2.25}, - {"matrix": [15, 5], "x": 14.25, "y": 2.25, "w": 1.25}, - {"matrix": [9, 6], "x": 9.25, "y": 3}, - {"matrix": [10, 6], "x": 10.25, "y": 3}, - {"matrix": [11, 6], "x": 11.25, "y": 3}, - {"matrix": [13, 6], "x": 12.25, "y": 3}, - {"matrix": [14, 6], "x": 13.25, "y": 3.25}, - {"matrix": [15, 6], "x": 14.25, "y": 3.25, "w": 1.25}, - {"matrix": [9, 7], "x": 9.25, "y": 4}, - {"matrix": [10, 7], "x": 10.25, "y": 4}, - {"matrix": [11, 7], "x": 11.25, "y": 4}, - {"matrix": [13, 7], "x": 12.25, "y": 4}, - {"matrix": [14, 7], "x": 13.25, "y": 4.25}, - {"matrix": [15, 7], "x": 14.25, "y": 4.25, "w": 1.25}, - {"matrix": [9, 3], "x": 10.25, "y": 5}, - {"matrix": [11, 3], "x": 11.25, "y": 5}, - {"matrix": [13, 3], "x": 12.25, "y": 5}, - {"matrix": [14, 3], "x": 13.25, "y": 5.25}, - {"matrix": [4, 7], "x": 8.25, "y": 6}, - {"matrix": [6, 6], "x": 9.25, "y": 6}, - {"matrix": [6, 7], "x": 8.25, "y": 7}, - {"matrix": [8, 7], "x": 8.25, "y": 8}, - {"matrix": [7, 6], "x": 9.25, "y": 7, "h": 2}, - {"matrix": [8, 6], "x": 10.25, "y": 7, "h": 2} - ] - }, - "LAYOUT_pretty": { "layout": [ {"matrix": [0, 2], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, {"matrix": [2, 2], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, diff --git a/keyboards/kinesis/nguyenvietyen/matrix.c b/keyboards/kinesis/nguyenvietyen/matrix.c index 3e078946e09..d6ea67da681 100644 --- a/keyboards/kinesis/nguyenvietyen/matrix.c +++ b/keyboards/kinesis/nguyenvietyen/matrix.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include "matrix.h" #include "quantum.h" diff --git a/keyboards/kinesis/nguyenvietyen/rules.mk b/keyboards/kinesis/nguyenvietyen/rules.mk index 3e0a265135a..59129f4320d 100644 --- a/keyboards/kinesis/nguyenvietyen/rules.mk +++ b/keyboards/kinesis/nguyenvietyen/rules.mk @@ -1,14 +1,7 @@ # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes -EXTRAKEY_ENABLE = yes -COMMAND_ENABLE = yes -NKRO_ENABLE = yes # Enable N-Key Rollover + SLEEP_LED_ENABLE = yes CUSTOM_MATRIX = lite SRC += matrix.c - -# experimentally determined to be sufficient :) -DEBOUNCE=1 diff --git a/keyboards/kinesis/readme.md b/keyboards/kinesis/readme.md index 3802f50c9a3..4767d6a4363 100644 --- a/keyboards/kinesis/readme.md +++ b/keyboards/kinesis/readme.md @@ -1,12 +1,15 @@ # Firmware for the Kinesis Advantage/Contoured keyboard -There are at least two different ways to replace the controller in this keyboard. +There are at least three different ways to replace the controller in this keyboard. -The Stapelberg folder contains the docs and configuration for using the custom controller created by Michael Stapelberg. +1. The **stapelberg** directory contains the docs and configuration for using Teensy based controller created by Michael Stapelberg. -The alvicstep folder contains docs and configuration for directly wiring a Teensy2++ to the existing controller board. This follows the pinouts described in https://github.com/alvicstep/tmk_keyboard, which is where the name comes from. +2. The **alvicstep** directory contains docs and configuration for directly wiring a Teensy2++ to the existing controller board. This follows the pinouts described in https://github.com/alvicstep/tmk_keyboard, which is where the name comes from. -## Keymaps -Both hardware solutions should work with the same keymaps +3. The **kintwin** directory contains the docs and configuration for using BlackPill based controller. +## Keymaps +All three hardware solutions should work with the same keymaps +## Switch Modifications +In addition to the drop-in replacements of the stock controller above, the directory **"keyboards\kin80"** contains the files to support 80 switch modification of the keyboard, compared to original 86 switches. Kin80 keymaps are not compatible with keymaps that are located inside of **kinesis** directory. \ No newline at end of file diff --git a/keyboards/kinesis/rules.mk b/keyboards/kinesis/rules.mk deleted file mode 100644 index 2090c50d470..00000000000 --- a/keyboards/kinesis/rules.mk +++ /dev/null @@ -1,13 +0,0 @@ -# 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 -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output - -DEFAULT_FOLDER = kinesis/alvicstep diff --git a/keyboards/kinesis/stapelberg/config.h b/keyboards/kinesis/stapelberg/config.h index a3ae6615ac5..c0c78135ba1 100644 --- a/keyboards/kinesis/stapelberg/config.h +++ b/keyboards/kinesis/stapelberg/config.h @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #pragma once /* don't know if this should be defined at the board or top level. Assuming board diff --git a/keyboards/kinesis/stapelberg/info.json b/keyboards/kinesis/stapelberg/info.json index 4435edf4cc5..44e2a331575 100644 --- a/keyboards/kinesis/stapelberg/info.json +++ b/keyboards/kinesis/stapelberg/info.json @@ -6,6 +6,16 @@ "pid": "0x6060", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "mousekey": true, + "extrakey": true, + "nkro": true, + "audio": false, + "backlight": false + }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "B4", "B5", "B6"], "rows": ["D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "C0", "C1", "C2", "C3", "C4", "C5", "C6"] @@ -22,96 +32,6 @@ "bootloader": "halfkay", "layouts": { "LAYOUT": { - "layout": [ - {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 0], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 1], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 1], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 1], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 2], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 2], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 2], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, - {"matrix": [1, 0], "x": 1.25, "y": 1.25}, - {"matrix": [2, 0], "x": 2.25, "y": 1}, - {"matrix": [3, 0], "x": 3.25, "y": 1}, - {"matrix": [4, 0], "x": 4.25, "y": 1}, - {"matrix": [5, 0], "x": 5.25, "y": 1}, - {"matrix": [0, 1], "x": 0, "y": 2.25, "w": 1.25}, - {"matrix": [1, 1], "x": 1.25, "y": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [3, 1], "x": 3.25, "y": 2}, - {"matrix": [4, 1], "x": 4.25, "y": 2}, - {"matrix": [5, 1], "x": 5.25, "y": 2}, - {"matrix": [0, 2], "x": 0, "y": 3.25, "w": 1.25}, - {"matrix": [1, 2], "x": 1.25, "y": 3.25}, - {"matrix": [2, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 2], "x": 3.25, "y": 3}, - {"matrix": [4, 2], "x": 4.25, "y": 3}, - {"matrix": [5, 2], "x": 5.25, "y": 3}, - {"matrix": [0, 3], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [1, 3], "x": 1.25, "y": 4.25}, - {"matrix": [2, 3], "x": 2.25, "y": 4}, - {"matrix": [3, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 3], "x": 4.25, "y": 4}, - {"matrix": [5, 3], "x": 5.25, "y": 4}, - {"matrix": [1, 4], "x": 1.25, "y": 5.25}, - {"matrix": [2, 4], "x": 2.25, "y": 5}, - {"matrix": [3, 4], "x": 3.25, "y": 5}, - {"matrix": [5, 4], "x": 4.25, "y": 5}, - {"matrix": [5, 6], "x": 5.25, "y": 6}, - {"matrix": [5, 5], "x": 6.25, "y": 6}, - {"matrix": [3, 5], "x": 6.25, "y": 7}, - {"matrix": [3, 6], "x": 4.25, "y": 7, "h": 2}, - {"matrix": [4, 6], "x": 5.25, "y": 7, "h": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 8}, - {"matrix": [12, 3], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 3], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 3], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 4], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 4], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 4], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [12, 5], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [14, 5], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [13, 5], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, - {"matrix": [6, 0], "x": 9.25, "y": 1}, - {"matrix": [7, 0], "x": 10.25, "y": 1}, - {"matrix": [8, 0], "x": 11.25, "y": 1}, - {"matrix": [9, 0], "x": 12.25, "y": 1}, - {"matrix": [10, 0], "x": 13.25, "y": 1.25}, - {"matrix": [11, 0], "x": 14.25, "y": 1.25, "w": 1.25}, - {"matrix": [6, 1], "x": 9.25, "y": 2}, - {"matrix": [7, 1], "x": 10.25, "y": 2}, - {"matrix": [8, 1], "x": 11.25, "y": 2}, - {"matrix": [9, 1], "x": 12.25, "y": 2}, - {"matrix": [10, 1], "x": 13.25, "y": 2.25}, - {"matrix": [11, 1], "x": 14.25, "y": 2.25, "w": 1.25}, - {"matrix": [6, 2], "x": 9.25, "y": 3}, - {"matrix": [7, 2], "x": 10.25, "y": 3}, - {"matrix": [8, 2], "x": 11.25, "y": 3}, - {"matrix": [9, 2], "x": 12.25, "y": 3}, - {"matrix": [10, 2], "x": 13.25, "y": 3.25}, - {"matrix": [11, 2], "x": 14.25, "y": 3.25, "w": 1.25}, - {"matrix": [6, 3], "x": 9.25, "y": 4}, - {"matrix": [7, 3], "x": 10.25, "y": 4}, - {"matrix": [8, 3], "x": 11.25, "y": 4}, - {"matrix": [9, 3], "x": 12.25, "y": 4}, - {"matrix": [10, 3], "x": 13.25, "y": 4.25}, - {"matrix": [11, 3], "x": 14.25, "y": 4.25, "w": 1.25}, - {"matrix": [6, 4], "x": 10.25, "y": 5}, - {"matrix": [8, 4], "x": 11.25, "y": 5}, - {"matrix": [9, 4], "x": 12.25, "y": 5}, - {"matrix": [10, 4], "x": 13.25, "y": 5.25}, - {"matrix": [9, 6], "x": 8.25, "y": 6}, - {"matrix": [8, 5], "x": 9.25, "y": 6}, - {"matrix": [8, 6], "x": 8.25, "y": 7}, - {"matrix": [6, 6], "x": 8.25, "y": 8}, - {"matrix": [7, 5], "x": 9.25, "y": 7, "h": 2}, - {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2} - ] - }, - "LAYOUT_pretty": { "layout": [ {"matrix": [12, 0], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, {"matrix": [13, 0], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, diff --git a/keyboards/kingly_keys/ave/config.h b/keyboards/kingly_keys/ave/config.h index af9ffae03db..e43087b6978 100644 --- a/keyboards/kingly_keys/ave/config.h +++ b/keyboards/kingly_keys/ave/config.h @@ -17,11 +17,6 @@ #pragma once -#if defined(RGBLIGHT_ENABLE) -# define RGBLED_NUM 2 -# define RGBLIGHT_EFFECT_BREATHING -#endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kingly_keys/ave/ortho/info.json b/keyboards/kingly_keys/ave/ortho/info.json index 0de5b82bddf..c17f41dcb40 100644 --- a/keyboards/kingly_keys/ave/ortho/info.json +++ b/keyboards/kingly_keys/ave/ortho/info.json @@ -18,6 +18,12 @@ {"pin_a": "B2", "pin_b": "B1"} ] }, + "rgblight": { + "led_count": 2, + "animations": { + "breathing": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/kingly_keys/ave/staggered/info.json b/keyboards/kingly_keys/ave/staggered/info.json index b3795f81012..66e6bb3a4c1 100644 --- a/keyboards/kingly_keys/ave/staggered/info.json +++ b/keyboards/kingly_keys/ave/staggered/info.json @@ -18,6 +18,12 @@ {"pin_a": "B2", "pin_b": "B1"} ] }, + "rgblight": { + "led_count": 2, + "animations": { + "breathing": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/kingly_keys/little_foot/config.h b/keyboards/kingly_keys/little_foot/config.h index fe391e91a19..a2c4815a207 100644 --- a/keyboards/kingly_keys/little_foot/config.h +++ b/keyboards/kingly_keys/little_foot/config.h @@ -21,20 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 10 // Number of LEDs - -#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_HUE_STEP 6 -#define RGBLIGHT_SAT_STEP 4 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/kingly_keys/little_foot/info.json b/keyboards/kingly_keys/little_foot/info.json index c3dfe669104..314693d561e 100644 --- a/keyboards/kingly_keys/little_foot/info.json +++ b/keyboards/kingly_keys/little_foot/info.json @@ -9,6 +9,24 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "hue_steps": 6, + "saturation_steps": 4, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/kingly_keys/romac/config.h b/keyboards/kingly_keys/romac/config.h index 0f5a7a6d7fb..5f360813239 100644 --- a/keyboards/kingly_keys/romac/config.h +++ b/keyboards/kingly_keys/romac/config.h @@ -5,8 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGBLED_NUM 0 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/kingly_keys/romac/keymaps/boss566y/rules.mk b/keyboards/kingly_keys/romac/keymaps/boss566y/rules.mk index eee9c0d533e..68d31978961 100755 --- a/keyboards/kingly_keys/romac/keymaps/boss566y/rules.mk +++ b/keyboards/kingly_keys/romac/keymaps/boss566y/rules.mk @@ -1,4 +1,3 @@ VIA_ENABLE = yes BOOTLOADER = qmk-dfu OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C diff --git a/keyboards/kingly_keys/romac_plus/config.h b/keyboards/kingly_keys/romac_plus/config.h index 2d715dbe51f..5f360813239 100644 --- a/keyboards/kingly_keys/romac_plus/config.h +++ b/keyboards/kingly_keys/romac_plus/config.h @@ -5,20 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 4 // Number of LEDs - -#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_HUE_STEP 6 -#define RGBLIGHT_SAT_STEP 4 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/kingly_keys/romac_plus/info.json b/keyboards/kingly_keys/romac_plus/info.json index a5bb27e3972..5808d7fe581 100644 --- a/keyboards/kingly_keys/romac_plus/info.json +++ b/keyboards/kingly_keys/romac_plus/info.json @@ -18,6 +18,24 @@ {"pin_a": "B3", "pin_b": "B2"} ] }, + "rgblight": { + "hue_steps": 6, + "saturation_steps": 4, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c b/keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c index 62c2349150a..ce84abb24dd 100644 --- a/keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c +++ b/keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c @@ -57,10 +57,10 @@ bool oled_task_user(void) { } // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false); return false; } diff --git a/keyboards/kingly_keys/romac_plus/rules.mk b/keyboards/kingly_keys/romac_plus/rules.mk index a2287ae9158..3eef56841c4 100644 --- a/keyboards/kingly_keys/romac_plus/rules.mk +++ b/keyboards/kingly_keys/romac_plus/rules.mk @@ -10,4 +10,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable support for EC11 Rotary Encoder OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C diff --git a/keyboards/kingly_keys/ropro/config.h b/keyboards/kingly_keys/ropro/config.h index 3dba5022386..a11ec4dfb28 100644 --- a/keyboards/kingly_keys/ropro/config.h +++ b/keyboards/kingly_keys/ropro/config.h @@ -21,16 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGBLED_NUM 18 - -#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/kingly_keys/ropro/info.json b/keyboards/kingly_keys/ropro/info.json index ad77ae56085..8026d5c7643 100644 --- a/keyboards/kingly_keys/ropro/info.json +++ b/keyboards/kingly_keys/ropro/info.json @@ -18,6 +18,21 @@ {"pin_a": "B7", "pin_b": "D5"} ] }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kingly_keys/smd_milk/config.h b/keyboards/kingly_keys/smd_milk/config.h index cb3fcd2e0da..7bbb5b4e941 100644 --- a/keyboards/kingly_keys/smd_milk/config.h +++ b/keyboards/kingly_keys/smd_milk/config.h @@ -20,21 +20,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 4 // Number of LEDs - -#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_HUE_STEP 6 -#define RGBLIGHT_SAT_STEP 4 -#define RGBLIGHT_VAL_STEP 10 diff --git a/keyboards/kingly_keys/smd_milk/info.json b/keyboards/kingly_keys/smd_milk/info.json index d2f408e51fe..84174ac248a 100644 --- a/keyboards/kingly_keys/smd_milk/info.json +++ b/keyboards/kingly_keys/smd_milk/info.json @@ -9,6 +9,24 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "hue_steps": 6, + "saturation_steps": 4, + "brightness_steps": 10, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/kingly_keys/soap/config.h b/keyboards/kingly_keys/soap/config.h index 682f1a75315..847cfcd5be7 100644 --- a/keyboards/kingly_keys/soap/config.h +++ b/keyboards/kingly_keys/soap/config.h @@ -19,15 +19,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 3 diff --git a/keyboards/kingly_keys/soap/info.json b/keyboards/kingly_keys/soap/info.json index b10260aa0b4..e6d2cee4212 100644 --- a/keyboards/kingly_keys/soap/info.json +++ b/keyboards/kingly_keys/soap/info.json @@ -8,6 +8,21 @@ "pid": "0x0003", "device_version": "0.0.4" }, + "rgblight": { + "led_count": 3, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/kira75/config.h b/keyboards/kira75/config.h index b51a90cb7e5..d876570c808 100644 --- a/keyboards/kira75/config.h +++ b/keyboards/kira75/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kira75/info.json b/keyboards/kira75/info.json index 48e4bdf85eb..0a923fa44e4 100644 --- a/keyboards/kira75/info.json +++ b/keyboards/kira75/info.json @@ -17,6 +17,23 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/kiserdesigns/madeline/config.h b/keyboards/kiserdesigns/madeline/config.h new file mode 100644 index 00000000000..8522d7cd431 --- /dev/null +++ b/keyboards/kiserdesigns/madeline/config.h @@ -0,0 +1,25 @@ +/* Copyright 2021 Noah Kiser (NCKiser) + * + * This 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 LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +#define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/kiserdesigns/madeline/info.json b/keyboards/kiserdesigns/madeline/info.json new file mode 100644 index 00000000000..73d3f5ccff4 --- /dev/null +++ b/keyboards/kiserdesigns/madeline/info.json @@ -0,0 +1,77 @@ +{ + "manufacturer": "rubybuilds", + "keyboard_name": "Madeline", + "maintainer": "NCKiser", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "GP13", "pin_b": "GP15"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP25", "GP26", "GP27", "GP28", "GP29", "GP9", "GP0", "GP1", "GP2", "GP3"], + "rows": ["GP5", "GP4", "GP12", "GP7"] + }, + "processor": "RP2040", + "qmk": { + "tap_keycode_delay": 10 + }, + "url": "https://qmk.fm/keyboards", + "usb": { + "device_version": "0.0.1", + "pid": "0x6D64", + "vid": "0x5242" + }, + "layouts": { + "LAYOUT": { + "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": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0, "w": 1.25}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 6.75, "y": 1}, + {"matrix": [1, 6], "x": 7.75, "y": 1}, + {"matrix": [1, 7], "x": 8.75, "y": 1}, + {"matrix": [1, 8], "x": 9.75, "y": 1}, + {"matrix": [1, 9], "x": 10.75, "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": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2, "w": 1.5}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 2.5, "y": 3}, + {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 2.25}, + {"matrix": [3, 6], "x": 6.25, "y": 3, "w": 2}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 10.75, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c b/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c new file mode 100644 index 00000000000..09c9d3a2ff7 --- /dev/null +++ b/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 Noah Kiser (NCKiser) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _NUM_SYM +}; + +#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC) +#define KC_GA LGUI_T(KC_A) +#define KC_AS LALT_T(KC_S) +#define KC_CD LCTL_T(KC_D) +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) +#define KC_CK RCTL_T(KC_K) +#define KC_AL RALT_T(KC_L) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, + KC_LCTL, KC_LALT, KC_BSPC, KC_NUM_SPC, KC_RGUI, KC_RCTL + ), + + [_NUM_SYM] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_ESC, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_BSPC, + KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_NO, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE, + 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) } + }; +#endif diff --git a/keyboards/kiserdesigns/madeline/keymaps/default/rules.mk b/keyboards/kiserdesigns/madeline/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/kiserdesigns/madeline/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/kiserdesigns/madeline/keymaps/vial/config.h b/keyboards/kiserdesigns/madeline/keymaps/vial/config.h new file mode 100644 index 00000000000..4fe3120698a --- /dev/null +++ b/keyboards/kiserdesigns/madeline/keymaps/vial/config.h @@ -0,0 +1,27 @@ + /* This 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 VIAL_KEYBOARD_UID {0x19, 0x2F, 0x03, 0x95, 0xE3, 0xAA, 0x1B, 0x85} + +#define VIAL_TAP_DANCE_ENTRIES 32 + +#define VIAL_COMBO_ENTRIES 32 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 9 } + + diff --git a/keyboards/kiserdesigns/madeline/keymaps/vial/keymap.c b/keyboards/kiserdesigns/madeline/keymaps/vial/keymap.c new file mode 100644 index 00000000000..62c265c502e --- /dev/null +++ b/keyboards/kiserdesigns/madeline/keymaps/vial/keymap.c @@ -0,0 +1,46 @@ + /* This 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_NUM_SPC LT(1, KC_SPC) +#define KC_GA LGUI_T(KC_A) +#define KC_AS LALT_T(KC_S) +#define KC_CD LCTL_T(KC_D) +#define KC_SF LSFT_T(KC_F) +#define KC_SJ RSFT_T(KC_J) +#define KC_CK RCTL_T(KC_K) +#define KC_AL RALT_T(KC_L) +#define KC_GSCLN RGUI_T(KC_SCLN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, + KC_LCTL, KC_LALT, KC_BSPC, KC_NUM_SPC, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, + KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_NO, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE, + 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_MS_WH_UP, KC_MS_WH_DOWN) }, + [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/kiserdesigns/madeline/keymaps/vial/rules.mk b/keyboards/kiserdesigns/madeline/keymaps/vial/rules.mk new file mode 100644 index 00000000000..c6bf6798de5 --- /dev/null +++ b/keyboards/kiserdesigns/madeline/keymaps/vial/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kiserdesigns/madeline/keymaps/vial/vial.json b/keyboards/kiserdesigns/madeline/keymaps/vial/vial.json new file mode 100644 index 00000000000..73d0b5f56ce --- /dev/null +++ b/keyboards/kiserdesigns/madeline/keymaps/vial/vial.json @@ -0,0 +1,186 @@ +{ + "matrix": { + "rows": 4, + "cols": 10 + }, + "layouts": { + "keymap": [ + [ + { + "y": 0.24, + "x": 0.3 + }, + "0,0" + ], + [ + { + "x": 0.16, + "w": 1.25 + }, + "1,0" + ], + [ + { + "y": -0.58, + "x": 6.25 + }, + "0,0\n\n\n\n\n\n\n\n\ne" + ], + [ + { + "y": -0.42, + "x": 0.01, + "w": 1.75 + }, + "2,0" + ], + [ + { + "y": -0.58, + "x": 6.25 + }, + "0,1\n\n\n\n\n\n\n\n\ne" + ], + [ + { + "y": -0.42, + "x": 0.1 + }, + "3,0" + ], + [ + { + "rx": 1.5, + "y": 0.24, + "x": 10.2, + "w": 1.25 + }, + "0,9" + ], + [ + { + "x": 10.59 + }, + "1,9" + ], + [ + { + "x": 10.23, + "w": 1.5 + }, + "2,9" + ], + [ + { + "x": 10.63 + }, + "3,9" + ], + [ + { + "r": 8, + "rx": 0, + "y": 0, + "x": 3.44 + }, + "0,3" + ], + [ + { + "y": -1, + "x": 1.44 + }, + "0,1", + "0,2", + { + "x": 1 + }, + "0,4" + ], + [ + { + "x": 1.69 + }, + "1,1", + "1,2", + "1,3", + { + "x": 0 + }, + "1,4" + ], + [ + { + "x": 2.19 + }, + "2,1", + "2,2", + { + "x": 0 + }, + "2,3", + "2,4" + ], + [ + { + "x": 2.94 + }, + "3,1", + { + "w": 2.25 + }, + "3,3" + ], + [ + { + "r": -8, + "rx": 1.5, + "y": 1.66, + "x": 5.94 + }, + "0,5", + { + "x": 0 + }, + "0,6", + "0,7", + "0,8" + ], + [ + { + "x": 6.19 + }, + "1,5", + { + "x": 0 + }, + "1,6", + "1,7", + "1,8" + ], + [ + { + "x": 5.69 + }, + "2,5", + { + "x": 0 + }, + "2,6", + "2,7", + "2,8" + ], + [ + { + "x": 5.69, + "w": 2 + }, + "3,6", + { + "x": 0 + }, + "3,7" + ] + ] + } + } \ No newline at end of file diff --git a/keyboards/kiserdesigns/madeline/readme.md b/keyboards/kiserdesigns/madeline/readme.md new file mode 100644 index 00000000000..138368282a9 --- /dev/null +++ b/keyboards/kiserdesigns/madeline/readme.md @@ -0,0 +1,23 @@ +# Madeline + +![Madeline](https://i.imgur.com/MBT5kg2h.jpg) + +*A cool QAZ-Alice hybrid designed based on the Adalyn by [Marv](https://github.com/MarvFPV/Adalyn) with a PCB by [Rossman360](https://github.com/Rossman360)* +* Keyboard Maintainer: [NCKiser](https://github.com/NCKiser) +* Hardware Supported: Madeline PCB, rp2040 +* Hardware Availability: kb.rubybuilds.com + +Make example for this keyboard (after setting up your build environment): + + make kiserdesigns/madeline:default + +Flashing example for this keyboard: + + make kiserdesigns/madeline: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 double-tap 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/kiserdesigns/madeline/rules.mk b/keyboards/kiserdesigns/madeline/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kiserdesigns/madeline/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kiwikey/borderland/config.h b/keyboards/kiwikey/borderland/config.h index 541c8b45e2c..bff2f881e87 100644 --- a/keyboards/kiwikey/borderland/config.h +++ b/keyboards/kiwikey/borderland/config.h @@ -3,24 +3,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -//# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kiwikey/borderland/info.json b/keyboards/kiwikey/borderland/info.json index 7ecd81e07b1..2e6efabb422 100644 --- a/keyboards/kiwikey/borderland/info.json +++ b/keyboards/kiwikey/borderland/info.json @@ -18,6 +18,26 @@ {"pin_a": "F5", "pin_b": "F6"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/kiwikey/kawii9/config.h b/keyboards/kiwikey/kawii9/config.h index ceaf40636e8..bc1b5f6c88d 100644 --- a/keyboards/kiwikey/kawii9/config.h +++ b/keyboards/kiwikey/kawii9/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -//# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kiwikey/kawii9/info.json b/keyboards/kiwikey/kawii9/info.json index 7537e7fe8a3..ca0e6049517 100644 --- a/keyboards/kiwikey/kawii9/info.json +++ b/keyboards/kiwikey/kawii9/info.json @@ -8,6 +8,23 @@ "pid": "0x0303", "device_version": "0.0.2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kiwikey/wanderland/config.h b/keyboards/kiwikey/wanderland/config.h index 223620c5fe5..1a4dea1b385 100644 --- a/keyboards/kiwikey/wanderland/config.h +++ b/keyboards/kiwikey/wanderland/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kiwikey/wanderland/info.json b/keyboards/kiwikey/wanderland/info.json index eb41a349d08..f0e9317fe17 100644 --- a/keyboards/kiwikey/wanderland/info.json +++ b/keyboards/kiwikey/wanderland/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk b/keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk +++ b/keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/kj_modify/rs40/info.json b/keyboards/kj_modify/rs40/info.json index 719f0e14dd5..a869383bd7d 100644 --- a/keyboards/kj_modify/rs40/info.json +++ b/keyboards/kj_modify/rs40/info.json @@ -17,7 +17,7 @@ "rows": ["B13", "A10", "B1", "B10"] }, "processor": "STM32F401", - "url": "https://www.aliexpress.com/store/911983021", + "url": "https://www.aliexpress.us/item/3256803963501165.html", "usb": { "device_version": "1.0.0", "pid": "0x5253", @@ -26,51 +26,51 @@ "layouts": { "LAYOUT": { "layout": [ - {"x": 0, "y": 0, "w": 1, "matrix": [0, 0], "label": "ESC"}, - {"x": 1, "y": 0, "w": 1, "matrix": [0, 1], "label": "Q"}, - {"x": 2, "y": 0, "w": 1, "matrix": [0, 2], "label": "W"}, - {"x": 3, "y": 0, "w": 1, "matrix": [0, 3], "label": "E"}, - {"x": 4, "y": 0, "w": 1, "matrix": [0, 4], "label": "R"}, - {"x": 5, "y": 0, "w": 1, "matrix": [0, 5], "label": "T"}, - {"x": 6, "y": 0, "w": 1, "matrix": [0, 6], "label": "Y"}, - {"x": 7, "y": 0, "w": 1, "matrix": [0, 7], "label": "U"}, - {"x": 8, "y": 0, "w": 1, "matrix": [0, 8], "label": "I"}, - {"x": 9, "y": 0, "w": 1, "matrix": [0, 9], "label": "O"}, - {"x": 10, "y": 0, "w": 1, "matrix": [0, 10], "label": "P"}, - {"x": 11, "y": 0, "w": 1, "matrix": [0, 11], "label": "BACKSPACE"}, + {"matrix": [0, 0], "label": "ESC", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "Q", "x": 1, "y": 0}, + {"matrix": [0, 2], "label": "W", "x": 2, "y": 0}, + {"matrix": [0, 3], "label": "E", "x": 3, "y": 0}, + {"matrix": [0, 4], "label": "R", "x": 4, "y": 0}, + {"matrix": [0, 5], "label": "T", "x": 5, "y": 0}, + {"matrix": [0, 6], "label": "Y", "x": 6, "y": 0}, + {"matrix": [0, 7], "label": "U", "x": 7, "y": 0}, + {"matrix": [0, 8], "label": "I", "x": 8, "y": 0}, + {"matrix": [0, 9], "label": "O", "x": 9, "y": 0}, + {"matrix": [0, 10], "label": "P", "x": 10, "y": 0}, + {"matrix": [0, 11], "label": "BACKSPACE", "x": 11, "y": 0}, - {"x": 0, "y": 1, "w": 1.25, "matrix": [1, 0], "label": "CAPSLOCK"}, - {"x": 1.25, "y": 1, "w": 1, "matrix": [1, 1], "label": "A"}, - {"x": 2.25, "y": 1, "w": 1, "matrix": [1, 2], "label": "S"}, - {"x": 3.25, "y": 1, "w": 1, "matrix": [1, 3], "label": "D"}, - {"x": 4.25, "y": 1, "w": 1, "matrix": [1, 4], "label": "F"}, - {"x": 5.25, "y": 1, "w": 1, "matrix": [1, 5], "label": "G"}, - {"x": 6.25, "y": 1, "w": 1, "matrix": [1, 6], "label": "H"}, - {"x": 7.25, "y": 1, "w": 1, "matrix": [1, 7], "label": "J"}, - {"x": 8.25, "y": 1, "w": 1, "matrix": [1, 8], "label": "K"}, - {"x": 9.25, "y": 1, "w": 1, "matrix": [1, 9], "label": "L"}, - {"x": 10.25, "y": 1, "w": 1.75, "matrix": [1, 11], "label": "ENTER"}, + {"matrix": [1, 0], "label": "CAPSLOCK", "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "label": "A", "x": 1.25, "y": 1}, + {"matrix": [1, 2], "label": "S", "x": 2.25, "y": 1}, + {"matrix": [1, 3], "label": "D", "x": 3.25, "y": 1}, + {"matrix": [1, 4], "label": "F", "x": 4.25, "y": 1}, + {"matrix": [1, 5], "label": "G", "x": 5.25, "y": 1}, + {"matrix": [1, 6], "label": "H", "x": 6.25, "y": 1}, + {"matrix": [1, 7], "label": "J", "x": 7.25, "y": 1}, + {"matrix": [1, 8], "label": "K", "x": 8.25, "y": 1}, + {"matrix": [1, 9], "label": "L", "x": 9.25, "y": 1}, + {"matrix": [1, 11], "label": "ENTER", "x": 10.25, "y": 1, "w": 1.75}, - {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0], "label": "LSHIFT"}, - {"x": 1.75, "y": 2, "w": 1, "matrix": [2, 2], "label": "Z"}, - {"x": 2.75, "y": 2, "w": 1, "matrix": [2, 3], "label": "X"}, - {"x": 3.75, "y": 2, "w": 1, "matrix": [2, 4], "label": "C"}, - {"x": 4.75, "y": 2, "w": 1, "matrix": [2, 5], "label": "V"}, - {"x": 5.75, "y": 2, "w": 1, "matrix": [2, 6], "label": "B"}, - {"x": 6.75, "y": 2, "w": 1, "matrix": [2, 7], "label": "N"}, - {"x": 7.75, "y": 2, "w": 1, "matrix": [2, 8], "label": "M"}, - {"x": 8.75, "y": 2, "w": 1, "matrix": [2, 9], "label": "COMMA"}, - {"x": 9.75, "y": 2, "w": 1, "matrix": [2, 10], "label": "PERIOD"}, - {"x": 10.75, "y": 2, "w": 1.25, "matrix": [2, 11], "label": "RSHIFT"}, + {"matrix": [2, 0], "label": "LSHIFT", "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "label": "Z", "x": 1.75, "y": 2}, + {"matrix": [2, 3], "label": "X", "x": 2.75, "y": 2}, + {"matrix": [2, 4], "label": "C", "x": 3.75, "y": 2}, + {"matrix": [2, 5], "label": "V", "x": 4.75, "y": 2}, + {"matrix": [2, 6], "label": "B", "x": 5.75, "y": 2}, + {"matrix": [2, 7], "label": "N", "x": 6.75, "y": 2}, + {"matrix": [2, 8], "label": "M", "x": 7.75, "y": 2}, + {"matrix": [2, 9], "label": "COMMA", "x": 8.75, "y": 2}, + {"matrix": [2, 10], "label": "PERIOD", "x": 9.75, "y": 2}, + {"matrix": [2, 11], "label": "RSHIFT", "x": 10.75, "y": 2, "w": 1.25}, - {"x": 1, "y": 3, "w": 1.25, "matrix": [3, 0], "label": "LCTRL"}, - {"x": 1.25, "y": 3, "w": 1, "matrix": [3, 1], "label": "FN2"}, - {"x": 2.25, "y": 3, "w": 1.25, "matrix": [3, 2], "label": "WIN"}, - {"x": 3.5, "y": 3, "w": 2.25, "matrix": [3, 4], "label": "SPACE"}, - {"x": 5.75, "y": 3, "w": 2.75, "matrix": [3, 7], "label": "FN"}, - {"x": 8.5, "y": 3, "w": 1.25, "matrix": [3, 9], "label": "SLASH"}, - {"x": 9.75, "y": 3, "w": 1, "matrix": [3, 10], "label": "SEMICOLON"}, - {"x": 10.75, "y": 3, "w": 1.25, "matrix": [3, 11], "label": "RCTRL"} + {"matrix": [3, 0], "label": "LCTRL", "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "label": "FN2", "x": 1.25, "y": 3}, + {"matrix": [3, 2], "label": "WIN", "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "label": "SPACE", "x": 3.5, "y": 3, "w": 2.25}, + {"matrix": [3, 7], "label": "FN", "x": 5.75, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "label": "SLASH", "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "label": "SEMICOLON", "x": 9.75, "y": 3}, + {"matrix": [3, 11], "label": "RCTRL", "x": 10.75, "y": 3, "w": 1.25} ] } } diff --git a/keyboards/kj_modify/rs40/readme.md b/keyboards/kj_modify/rs40/readme.md index a5bcce2796b..045df2b6223 100644 --- a/keyboards/kj_modify/rs40/readme.md +++ b/keyboards/kj_modify/rs40/readme.md @@ -4,7 +4,7 @@ A compact 40% keyboard with 42 keys. * Keyboard Maintainer: [Audite Marlow](https://github.com/auditemarlow) * Hardware Supported: RS40 PCB -* Hardware Availability: https://www.aliexpress.com/store/911983021 +* Hardware Availability: [KJ-Modify Store on AliExpress](https://www.aliexpress.us/item/3256803963501165.html) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/kmac/config.h b/keyboards/kmac/config.h index bc647193cad..dd12560fb6c 100644 --- a/keyboards/kmac/config.h +++ b/keyboards/kmac/config.h @@ -32,9 +32,6 @@ along with this program. If not, see . #define MATRIX_COL_PINS \ { B6, C6, C7, F1, F0, B5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } -/* COL2ROW, ROW2COL*/ -//#define DIODE_DIRECTION - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kmac_pad/config.h b/keyboards/kmac_pad/config.h index aaffc6c987f..ee27565dcef 100644 --- a/keyboards/kmac_pad/config.h +++ b/keyboards/kmac_pad/config.h @@ -30,9 +30,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { E2, D0, D1, D2, D3, D5 } #define MATRIX_COL_PINS { C7, C6, B6, B5 } -/* COL2ROW, ROW2COL*/ -// #define DIODE_DIRECTION COL2ROW - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kmini/config.h b/keyboards/kmini/config.h index 3c92c89423e..c06925781f6 100755 --- a/keyboards/kmini/config.h +++ b/keyboards/kmini/config.h @@ -28,6 +28,3 @@ */ #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } #define MATRIX_COL_PINS { } - -/* COL2ROW, ROW2COL*/ -//#define DIODE_DIRECTION diff --git a/keyboards/kmini/keymaps/default/keymap.c b/keyboards/kmini/keymaps/default/keymap.c index c3a7b12a40c..1f041daffc9 100755 --- a/keyboards/kmini/keymaps/default/keymap.c +++ b/keyboards/kmini/keymaps/default/keymap.c @@ -39,10 +39,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1<. #pragma once -/* Underlight configuration - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 30 // Number of LEDs -#define RGBLIGHT_HUE_STEP 5 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kona_classic/info.json b/keyboards/kona_classic/info.json index bc79963cb16..7202c358696 100644 --- a/keyboards/kona_classic/info.json +++ b/keyboards/kona_classic/info.json @@ -8,6 +8,24 @@ "pid": "0x6060", "device_version": "0.0.3" }, + "rgblight": { + "hue_steps": 5, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 30, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/kopibeng/mnk60/info.json b/keyboards/kopibeng/mnk60/info.json new file mode 100644 index 00000000000..430fc66c1bc --- /dev/null +++ b/keyboards/kopibeng/mnk60/info.json @@ -0,0 +1,928 @@ +{ + "keyboard_name": "MNK60", + "manufacturer": "kopibeng", + "url": "https://monokei.co", + "maintainer": "kopibeng", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "usb": { + "device_version": "0.0.1", + "pid": "0x0602", + "vid": "0x4B50" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": true, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["C7", "F5", "F1", "F0", "C6", "B6", "B5", "B4", "D7", "D6", "D5", "D3", "D2", "D1"], + "rows": ["F7", "F4", "D0", "B3", "B7"] + }, + "indicators": { + "caps_lock": "D4" + }, + "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, + "led_count": 14, + "max_brightness": 200, + "saturation_steps": 8, + "sleep": true + }, + "ws2812": { + "pin": "F6" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"], + "layouts": { + "LAYOUT_60_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": [1, 13], "w": 2, "x": 13, "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, 12], "w": 1.5, "x": 13.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, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "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": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "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": [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, 12], "w": 1.5, "x": 13.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, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "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": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_spacebar": { + "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": [1, 13], "w": 2, "x": 13, "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, 12], "w": 1.5, "x": 13.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, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "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": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_spacebar_bs_rshift": { + "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": [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, 12], "w": 1.5, "x": 13.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, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "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": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_tsangan": { + "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": [1, 13], "w": 2, "x": 13, "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, 12], "w": 1.5, "x": 13.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, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "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": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 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], "w": 1, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "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": [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, 12], "w": 1.5, "x": 13.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, 13], "w": 2.25, "x": 12.75, "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": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 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], "w": 1, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_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": [1, 13], "w": 2, "x": 13, "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, 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], "x": 12.75, "y": 2 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "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": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "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": [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, 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], "x": 12.75, "y": 2 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "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": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso_split_spacebar": { + "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": [1, 13], "w": 2, "x": 13, "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, 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], "x": 12.75, "y": 2 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "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": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso_split_spacebar_bs_rshift": { + "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": [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, 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], "x": 12.75, "y": 2 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "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": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso_tsangan": { + "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": [1, 13], "w": 2, "x": 13, "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, 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], "x": 12.75, "y": 2 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "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": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 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], "w": 1, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "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": [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, 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], "x": 12.75, "y": 2 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "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": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 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], "w": 1, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "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": [1, 13], "x": 14, "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, 12], "w": 1.5, "x": 13.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, 13], "w": 2.25, "x": 12.75, "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": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + } + } +} diff --git a/keyboards/kopibeng/mnk60/keymaps/default/keymap.c b/keyboards/kopibeng/mnk60/keymaps/default/keymap.c new file mode 100644 index 00000000000..844f338d193 --- /dev/null +++ b/keyboards/kopibeng/mnk60/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2023 Samuel Lu + * + * This 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] = { + + // Default layer + [0] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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(2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(2), KC_RALT, MO(1), KC_RCTL + ), + + // Fn1 Layer + [1] = LAYOUT_all( + 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kopibeng/mnk60/keymaps/via/keymap.c b/keyboards/kopibeng/mnk60/keymaps/via/keymap.c new file mode 100644 index 00000000000..844f338d193 --- /dev/null +++ b/keyboards/kopibeng/mnk60/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2023 Samuel Lu + * + * This 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] = { + + // Default layer + [0] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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(2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(2), KC_RALT, MO(1), KC_RCTL + ), + + // Fn1 Layer + [1] = LAYOUT_all( + 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kopibeng/mnk60/keymaps/via/rules.mk b/keyboards/kopibeng/mnk60/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/kopibeng/mnk60/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kopibeng/mnk60/readme.md b/keyboards/kopibeng/mnk60/readme.md new file mode 100644 index 00000000000..70a382f5de2 --- /dev/null +++ b/keyboards/kopibeng/mnk60/readme.md @@ -0,0 +1,26 @@ +# MNK60 + +![MNK60](https://i.imgur.com/n1arBEh.png) + +A QMK-powered, VIA-enabled universal 60% PCB with support for ANSI/ISO layouts, split Backspace, split Right Shift, stepped Caps Lock, 6.25U/7U bottom row, split Spacebar and RGB underglow. + +* Keyboard Maintainer: [kopibeng](https://github.com/kopibeng) +* Hardware Supported: KEI +* Hardware Availability: [MONOKEI](https://monokei.co) + +Make example for this keyboard (after setting up your build environment): + + make kopibeng/mnk60:default + +Flashing example for this keyboard: + + make kopibeng/mnk60: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 + +* Physical reset button: Press the RESET switch on top side of PCB. +* Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. \ No newline at end of file diff --git a/keyboards/kopibeng/mnk60/rules.mk b/keyboards/kopibeng/mnk60/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/kopibeng/mnk60/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/kopibeng/mnk65_stm32/rules.mk b/keyboards/kopibeng/mnk65_stm32/rules.mk index fddc8cdf737..f2400ced17a 100644 --- a/keyboards/kopibeng/mnk65_stm32/rules.mk +++ b/keyboards/kopibeng/mnk65_stm32/rules.mk @@ -15,5 +15,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no # Enable Encoder -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kopibeng/mnk88/config.h b/keyboards/kopibeng/mnk88/config.h index 449d4606076..62a2978f67c 100644 --- a/keyboards/kopibeng/mnk88/config.h +++ b/keyboards/kopibeng/mnk88/config.h @@ -16,21 +16,6 @@ #pragma once - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kopibeng/mnk88/info.json b/keyboards/kopibeng/mnk88/info.json index 08baf2310b7..67ef66c6479 100644 --- a/keyboards/kopibeng/mnk88/info.json +++ b/keyboards/kopibeng/mnk88/info.json @@ -12,7 +12,18 @@ "pin": "A10" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } }, "matrix_pins": { "cols": ["A2", "A1", "A0", "B11", "B10", "B2", "F1", "B1", "B0", "A7", "A6", "A5", "F0", "A4", "C15", "C14", "C13"], diff --git a/keyboards/kopibeng/mnk88/rules.mk b/keyboards/kopibeng/mnk88/rules.mk index cc3bf2abed3..65bc2097f51 100644 --- a/keyboards/kopibeng/mnk88/rules.mk +++ b/keyboards/kopibeng/mnk88/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no # Enable Encoder -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kopibeng/xt60/config.h b/keyboards/kopibeng/xt60/config.h index 7a903e4eff2..62a2978f67c 100644 --- a/keyboards/kopibeng/xt60/config.h +++ b/keyboards/kopibeng/xt60/config.h @@ -16,21 +16,6 @@ #pragma once - #define RGBLED_NUM 14 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kopibeng/xt60/info.json b/keyboards/kopibeng/xt60/info.json index ca278dff70a..2eefea13108 100644 --- a/keyboards/kopibeng/xt60/info.json +++ b/keyboards/kopibeng/xt60/info.json @@ -8,6 +8,19 @@ "pid": "0x0600", "device_version": "0.0.2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/kopibeng/xt60_singa/config.h b/keyboards/kopibeng/xt60_singa/config.h index 7a903e4eff2..62a2978f67c 100644 --- a/keyboards/kopibeng/xt60_singa/config.h +++ b/keyboards/kopibeng/xt60_singa/config.h @@ -16,21 +16,6 @@ #pragma once - #define RGBLED_NUM 14 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kopibeng/xt60_singa/info.json b/keyboards/kopibeng/xt60_singa/info.json index a4ed2178285..7ccfee941d0 100644 --- a/keyboards/kopibeng/xt60_singa/info.json +++ b/keyboards/kopibeng/xt60_singa/info.json @@ -8,6 +8,19 @@ "pid": "0x0601", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/kopibeng/xt65/config.h b/keyboards/kopibeng/xt65/config.h index b64511a63f7..2ef1d22576d 100644 --- a/keyboards/kopibeng/xt65/config.h +++ b/keyboards/kopibeng/xt65/config.h @@ -16,22 +16,6 @@ #pragma once - #define RGBLED_NUM 12 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kopibeng/xt65/info.json b/keyboards/kopibeng/xt65/info.json index 0a909a1cd3c..d761667b9dd 100644 --- a/keyboards/kopibeng/xt65/info.json +++ b/keyboards/kopibeng/xt65/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "B1", "levels": 5 }, @@ -21,7 +22,23 @@ "pin": "D5" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/kopibeng/xt87/chconf.h b/keyboards/kopibeng/xt87/chconf.h new file mode 100644 index 00000000000..4cb041153f1 --- /dev/null +++ b/keyboards/kopibeng/xt87/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2023 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/kopibeng/xt8x/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/kopibeng/xt87/info.json b/keyboards/kopibeng/xt87/info.json new file mode 100644 index 00000000000..8447d40815c --- /dev/null +++ b/keyboards/kopibeng/xt87/info.json @@ -0,0 +1,886 @@ +{ + "keyboard_name": "XT87", + "manufacturer": "kopibeng", + "url": "https://monokei.co/", + "maintainer": "kopibeng", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "usb": { + "device_version": "0.0.1", + "pid": "0x8700", + "vid": "0x4B50" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["A2", "A1", "A0", "B11", "B10", "B2", "F1", "B1", "B0", "A7", "A6", "A5", "F0", "A4", "C15", "C14", "C13"], + "rows": ["A8", "B15", "A9", "B12", "A3", "B14"] + }, + "indicators": { + "caps_lock": "B3", + "scroll_lock": "A15" + }, + "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, + "led_count": 19, + "max_brightness": 200, + "saturation_steps": 8, + "sleep": true + }, + "ws2812": { + "pin": "A10" + }, + "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [2, 12], "x": 13, "y": 1.25 }, + { "matrix": [1, 13], "x": 14, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 13], "x": 14, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, + { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, + { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [2, 12], "x": 13, "y": 1.25 }, + { "matrix": [1, 13], "x": 14, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 13], "x": 14, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, + { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1, "x": 1.5, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, + { "matrix": [5, 12], "w": 1, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [2, 12], "x": 13, "y": 1.25 }, + { "matrix": [1, 13], "x": 14, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 13], "x": 14, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1, "x": 1.5, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, + { "matrix": [5, 12], "w": 1, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, + { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [2, 12], "x": 13, "y": 1.25 }, + { "matrix": [1, 13], "x": 14, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 13], "x": 14, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, + { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1, "x": 1.5, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, + { "matrix": [5, 12], "w": 1, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [2, 12], "x": 13, "y": 1.25 }, + { "matrix": [1, 13], "x": 14, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 13], "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 13], "x": 14, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1, "x": 1.5, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, + { "matrix": [5, 12], "w": 1, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/kopibeng/xt87/keymaps/default/keymap.c b/keyboards/kopibeng/xt87/keymaps/default/keymap.c new file mode 100644 index 00000000000..d963941d808 --- /dev/null +++ b/keyboards/kopibeng/xt87/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2023 Samuel Lu + * + * This 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] = { + + // Default layer + [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_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_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + // Fn1 Layer + [1] = LAYOUT_all( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLU, + 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_MPLY, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kopibeng/xt87/keymaps/via/keymap.c b/keyboards/kopibeng/xt87/keymaps/via/keymap.c new file mode 100644 index 00000000000..d963941d808 --- /dev/null +++ b/keyboards/kopibeng/xt87/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2023 Samuel Lu + * + * This 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] = { + + // Default layer + [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_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_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + // Fn1 Layer + [1] = LAYOUT_all( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLU, + 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_MPLY, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/kopibeng/xt87/keymaps/via/rules.mk b/keyboards/kopibeng/xt87/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/kopibeng/xt87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kopibeng/xt87/readme.md b/keyboards/kopibeng/xt87/readme.md new file mode 100644 index 00000000000..4e6db529b5d --- /dev/null +++ b/keyboards/kopibeng/xt87/readme.md @@ -0,0 +1,25 @@ +# XT87 + +![XT87](https://i.imgur.com/N1QaXPTh.jpg) + +A QMK-powered, VIA-enabled F12 TKL PCB with support for ANSI/ISO layout, split Backspace, split Right Shift and 6.25U/7U bottom row. + +* Keyboard Maintainer: [kopibeng](https://github.com/kopibeng) +* Hardware Supported: A TKL keyboard with STM32F072 +* Hardware Availability: [MONOKEI](https://monokei.co) + +Make example for this keyboard (after setting up your build environment): + + make kopibeng/xt87:default + +Flashing example for this keyboard: + + make kopibeng/xt87: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 + +* Physical reset button: Press the RESET switch on top side of PCB. +* Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. diff --git a/keyboards/kopibeng/xt87/rules.mk b/keyboards/kopibeng/xt87/rules.mk new file mode 100644 index 00000000000..a92b0993283 --- /dev/null +++ b/keyboards/kopibeng/xt87/rules.mk @@ -0,0 +1,2 @@ +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kopibeng/xt8x/config.h b/keyboards/kopibeng/xt8x/config.h index f385599d800..5f12451e15d 100644 --- a/keyboards/kopibeng/xt8x/config.h +++ b/keyboards/kopibeng/xt8x/config.h @@ -18,21 +18,6 @@ #define INDICATOR_PIN_0 B13 - #define RGBLED_NUM 19 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kopibeng/xt8x/info.json b/keyboards/kopibeng/xt8x/info.json index 1596ed883ef..882dc0521aa 100644 --- a/keyboards/kopibeng/xt8x/info.json +++ b/keyboards/kopibeng/xt8x/info.json @@ -21,7 +21,18 @@ "pin": "A10" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 19, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } }, "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/kopibeng/xt8x/rules.mk b/keyboards/kopibeng/xt8x/rules.mk index cc3bf2abed3..65bc2097f51 100644 --- a/keyboards/kopibeng/xt8x/rules.mk +++ b/keyboards/kopibeng/xt8x/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no # Enable Encoder -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/kprepublic/bm16a/v2/info.json b/keyboards/kprepublic/bm16a/v2/info.json index 8d65ee51f46..e922d0b9ee7 100644 --- a/keyboards/kprepublic/bm16a/v2/info.json +++ b/keyboards/kprepublic/bm16a/v2/info.json @@ -55,7 +55,7 @@ }, "community_layouts": ["ortho_4x4"], "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "animations": { "alphas_mods": true, "gradient_up_down": true, diff --git a/keyboards/kprepublic/bm16s/config.h b/keyboards/kprepublic/bm16s/config.h index fb73fedb045..5f360813239 100755 --- a/keyboards/kprepublic/bm16s/config.h +++ b/keyboards/kprepublic/bm16s/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/kprepublic/bm16s/info.json b/keyboards/kprepublic/bm16s/info.json index 262ce39fba2..de0d51cc4b2 100644 --- a/keyboards/kprepublic/bm16s/info.json +++ b/keyboards/kprepublic/bm16s/info.json @@ -8,6 +8,23 @@ "pid": "0x016B", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/kprepublic/bm40hsrgb/info.json b/keyboards/kprepublic/bm40hsrgb/info.json index 4007cc7360a..c0ba89dbabd 100644 --- a/keyboards/kprepublic/bm40hsrgb/info.json +++ b/keyboards/kprepublic/bm40hsrgb/info.json @@ -12,7 +12,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { "max_brightness": 180 diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h index e8f6fac1201..ca8a4c6ab4e 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h @@ -5,6 +5,9 @@ #define LAYER_STATE_8BIT +#define TURBO_ENABLE +#define HOLD_ON_OTHER_KEY_PRESS + // RGB Matrix effects disable #ifdef RGB_MATRIX_ENABLE # define UNDERGLOW_DISABLE diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c index ef7cfab5fe2..3d5bcade20f 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c @@ -50,6 +50,26 @@ void dynamic_macro_record_end_user(int8_t direction) { #define MCR_SWT KC_NO #endif // DYNAMIC_MACRO_ENABLE +#ifdef TURBO_ENABLE +static bool turbo_active = false; // Only changed by TRBO_ST +static uint16_t turbo_keycode = KC_NO; // turbo_active can't be true if this is KC_NO +static bool turbo_key_pressed = false; +static bool turbo_keycode_selecting = false; // Determine new keycode or delay mode switch +static bool turbo_ms_delay_direction = true; // True is raise the delay, false is lower it +static uint16_t turbo_ms_delay_direction_indicator = 0; +static uint16_t turbo_ms_delay = 100; // Start at sending keycodes 10 times a second +static uint16_t turbo_timer; // Changed semi automatically +/* + * Because the KC's are wrapped in `LT()` they won't be interpreted as KC_NO or KC_TRNS + * Instead they'll just be like any other custom KC which will let me use them how I want +*/ +#define TRBO_ST LT(_CTR, KC_NO ) +#define TRBO_TI LT(_CTR, KC_TRNS) +#else +#define TRBO_ST KC_NO +#define TRBO_TI KC_NO +#endif + const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT_planck_mit( KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, @@ -67,7 +87,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, TOG_MSE, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, XXXXXXX, XXXXXXX, TRBO_TI, TRBO_ST, TOG_MSE, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) #ifdef MOUSEKEY_ENABLE ,[_MSE] = LAYOUT_planck_mit( @@ -117,12 +137,68 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (RECORDING) { RGB_MATRIX_INDICATOR_SET_COLOR(pos, BRIGHTNESS, 0, 0); } break; #endif // DYNAMIC_MACRO_ENABLE + + #ifdef TURBO_ENABLE + case TRBO_ST: + if (turbo_keycode_selecting) { + RGB_MATRIX_INDICATOR_SET_COLOR(pos, BRIGHTNESS, BRIGHTNESS, BRIGHTNESS); + } else { + if (turbo_active) { + if (turbo_key_pressed) { + RGB_MATRIX_INDICATOR_SET_COLOR(pos, BRIGHTNESS, BRIGHTNESS, BRIGHTNESS); + } else { + RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, 0, 0); + } + } + } + break; + + case TRBO_TI: + if (turbo_ms_delay_direction_indicator != 0) { + uint8_t time = timer_elapsed(turbo_ms_delay_direction_indicator) / 200; + if (time > 0) { + if ((time % 2) == 1) { + if (turbo_ms_delay_direction) { + RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, BRIGHTNESS, 0); + } else { + RGB_MATRIX_INDICATOR_SET_COLOR(pos, BRIGHTNESS, 0, 0); + } + } else { + RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, 0, 0); + } + if (time >= 6) { + turbo_ms_delay_direction_indicator = 0; + } + } + } + break; + #endif + } } return false; } #endif +#ifdef TURBO_ENABLE +void housekeeping_task_user(void) { + if (turbo_active) { + if (turbo_key_pressed) { + if (timer_elapsed(turbo_timer) > turbo_ms_delay) { + unregister_code(turbo_keycode); + turbo_key_pressed = false; + turbo_timer = timer_read(); + } + } else { + if (timer_elapsed(turbo_timer) > (turbo_ms_delay / 2)) { + register_code(turbo_keycode); + turbo_key_pressed = true; + } + } + } +} +#endif + bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef DYNAMIC_MACRO_ENABLE if (keycode == MCR_REC) {keycode = REC;} @@ -145,6 +221,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #endif // MOUSEKEY_ENABLE + #ifdef TURBO_ENABLE + if (record->event.pressed) { + if (turbo_keycode_selecting) { + if (IS_BASIC_KEYCODE(keycode) || + IS_MODIFIER_KEYCODE(keycode) || + IS_JOYSTICK_KEYCODE(keycode) || + IS_MOUSE_KEYCODE(keycode)) + { + unregister_code(turbo_keycode); + turbo_key_pressed = false; + turbo_keycode = keycode; + turbo_keycode_selecting = false; + } + } + } + #endif + switch (keycode) { #ifdef DYNAMIC_MACRO_ENABLE case MCR_SWT: @@ -162,6 +255,46 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; #endif // DYNAMIC_MACRO_ENABLE + #ifdef TURBO_ENABLE + case TRBO_ST: + if (record->event.pressed) { + if (!record->tap.count) { + turbo_keycode_selecting = !turbo_keycode_selecting; + } else { + if (turbo_keycode != KC_NO) { + if (!turbo_active) { + turbo_keycode_selecting = false; + turbo_active = true; + } else { + unregister_code(turbo_keycode); + turbo_key_pressed = false; + turbo_active = false; + } + } + } + } + return false; + + case TRBO_TI: + if (record->event.pressed) { + if (!record->tap.count) { + turbo_ms_delay_direction = !turbo_ms_delay_direction; + turbo_ms_delay_direction_indicator = timer_read(); + } else { + if (turbo_ms_delay_direction) + turbo_ms_delay += 20; + else + turbo_ms_delay -= 20; + + if (turbo_ms_delay > 500) // half a second + turbo_ms_delay = 500; + if (turbo_ms_delay < 60) // Around 16 times a second + turbo_ms_delay = 60; + } + } + return false; + #endif + default: return true; //Process all other keycodes normally } diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md index 2798567b5ec..980f559d71f 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md @@ -21,12 +21,12 @@ The secondary layer ( `_SUB` ) is for syntax, F keys, and number keys | 4 | _ | _ | | _ | _ | _ | <- | _ | | | | | The control layer ( `_CTR` ) is for lighting, media, and macros -| row | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -|-----|---|-------|------|-------|------|---------|-----|------|------|------|----|---------| -| 1 | | SPD- | BRI+ | SPD+ | HUE+ | SAT+ | | | VOL+ | | | MCR_REC | -| 2 | | EFCT- | BRI- | EFCT+ | HUE- | SAT- | | PREV | PLAY | NEXT | | MCR_PLY | -| 3 | | | TOG | | | | | | VOL- | | | MCR_SWT | -| 4 | | | | | | MSE_TOG | <- | | | | | | +| row | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | +|-----|---|-------|------|---------|---------|---------|-----|------|------|------|----|---------| +| 1 | | SPD- | BRI+ | SPD+ | HUE+ | SAT+ | | | VOL+ | | | MCR_REC | +| 2 | | EFCT- | BRI- | EFCT+ | HUE- | SAT- | | PREV | PLAY | NEXT | | MCR_PLY | +| 3 | | | TOG | | | | | | VOL- | | | MCR_SWT | +| 4 | | | | TRBO_TI | TRBO_ST | MSE_TOG | <- | | | | | | The mouse layer ( `_MSE` ) is for making the keyboard function as a mouse as well | row | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | @@ -67,6 +67,8 @@ The mouse layer ( `_MSE` ) is for making the keyboard function as a mouse as wel | SCR_D | Mouse scroll down | | ACL_U | Raise mouse/scroll speed | | ACL_D | Lower mouse/scroll speed | +| TRBO_ST | Set turbo key (Hold), start/stop turbo (Tap) | +| TRBO_TI | Turbo speed +/- (Hold to switch direction) | ## Compiling diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c index 5a1d366f56c..eb20a1a25b9 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c @@ -165,7 +165,7 @@ if(IS_LAYER_ON(NSSL)) { //capslock leds -if (host_keyboard_leds() & (1<. #pragma once - #define RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value #endif diff --git a/keyboards/kprepublic/bm43a/info.json b/keyboards/kprepublic/bm43a/info.json index 8cd34875672..041da2164d1 100644 --- a/keyboards/kprepublic/bm43a/info.json +++ b/keyboards/kprepublic/bm43a/info.json @@ -21,7 +21,11 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "max_brightness": 180, + "sleep": true }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/kprepublic/bm43hsrgb/config.h b/keyboards/kprepublic/bm43hsrgb/config.h deleted file mode 100755 index fb800abc06d..00000000000 --- a/keyboards/kprepublic/bm43hsrgb/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2021 bitstarr - -This 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 RGBLED_NUM 53 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 diff --git a/keyboards/kprepublic/bm43hsrgb/info.json b/keyboards/kprepublic/bm43hsrgb/info.json index 1cdaa64602e..93821f3b53e 100755 --- a/keyboards/kprepublic/bm43hsrgb/info.json +++ b/keyboards/kprepublic/bm43hsrgb/info.json @@ -12,7 +12,22 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 53, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "matrix_pins": { "cols": ["C6", "D2", "D1", "D0", "D7", "D6", "D4", "D5", "D3", "B7", "B3", "B2"], diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/config.h b/keyboards/kprepublic/bm60hsrgb/rev1/config.h index eebd3381d57..6a3bee5a52d 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev1/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once #define RGB_MATRIX_LED_COUNT 69 -# define RGBLED_NUM 69 # define RGB_MATRIX_KEYPRESSES #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/info.json b/keyboards/kprepublic/bm60hsrgb/rev1/info.json index f73af590d3c..589f4310f71 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/info.json +++ b/keyboards/kprepublic/bm60hsrgb/rev1/info.json @@ -12,7 +12,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { "max_brightness": 180 diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index c2aafb9adc9..82a3a14e9ec 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -15,22 +15,7 @@ */ #pragma once -//rgb light setting -#define RGBLED_NUM 6 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended #define DRIVER_ADDR_1 0b1010000 diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/info.json b/keyboards/kprepublic/bm60hsrgb/rev2/info.json index bb6533b823f..47c0b8081a1 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/info.json +++ b/keyboards/kprepublic/bm60hsrgb/rev2/info.json @@ -15,7 +15,22 @@ "driver": "custom" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 150, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index 869db0368a8..bbc3e8db52b 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -153,16 +153,16 @@ LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - IS31FL3733_init(DRIVER_ADDR_1, 0); + is31fl3733_init(DRIVER_ADDR_1, 0); for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { bool enabled = true; - IS31FL3733_set_led_control_register(index, enabled, enabled, enabled); + is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); } static void rgb_matrix_driver_flush(void) { - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); # if WS2812_LED_TOTAL > 0 ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif @@ -170,7 +170,7 @@ static void rgb_matrix_driver_flush(void) { static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < ISSI_LED_TOTAL) { - IS31FL3733_set_color(index, red, green, blue); + is31fl3733_set_color(index, red, green, blue); } else { # if WS2812_LED_TOTAL > 0 rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red; @@ -181,7 +181,7 @@ static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, u } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - IS31FL3733_set_color_all(red, green, blue); + is31fl3733_set_color_all(red, green, blue); # if WS2812_LED_TOTAL > 0 for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { rgb_matrix_ws2812_array[i].r = red; diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h index a11d5792397..2f02594e156 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h @@ -17,7 +17,6 @@ #pragma once #define RGB_MATRIX_LED_COUNT 69 - #define RGBLED_NUM 69 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 140 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json b/keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json index 3849e5a338f..a18aa9d4f5f 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json @@ -12,7 +12,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index 1cc17d6c866..b7e95393e5e 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -15,22 +15,7 @@ */ #pragma once -//rgb light setting -#define RGBLED_NUM 6 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define DRIVER_ADDR_1 0b1010000 @@ -66,8 +51,8 @@ // #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 +// #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 diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json b/keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json index d91f6a85317..d78ae63740d 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json @@ -12,10 +12,25 @@ "pin": "F0" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 150, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h index d4ba498987a..563ac242c86 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h @@ -18,12 +18,7 @@ along with this program. If not, see . #pragma once #define RGB_MATRIX_LED_COUNT 70 -# define RGBLED_NUM 70 # define RGB_MATRIX_KEYPRESSES - // #define RGBLIGHT_HUE_STEP 8 - // #define RGBLIGHT_SAT_STEP 8 - // #define RGBLIGHT_VAL_STEP 8 - // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/info.json b/keyboards/kprepublic/bm60hsrgb_iso/rev1/info.json index 6e9256523f2..ad67cc28c3e 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/info.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/info.json @@ -12,10 +12,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" - }, - "rgblight": { - "max_brightness": 180 + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index 7af983c5e77..8ad699ed9a0 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -17,22 +17,7 @@ */ #pragma once -//rgb light setting -#define RGBLED_NUM 6 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define RGB_MATRIX_KEYPRESSES @@ -106,7 +91,7 @@ #ifdef RGBLIGHT_ENABLE # define WS2812_LED_TOTAL 0 #else -# define WS2812_LED_TOTAL RGBLED_NUM +# define WS2812_LED_TOTAL 6 #endif #define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL) diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json index 6326d871df2..6c577a283ea 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json @@ -15,7 +15,22 @@ "driver": "custom" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 150, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index fb38180b4d0..c4ac03e4478 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -153,16 +153,16 @@ LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - IS31FL3733_init(DRIVER_ADDR_1, 0); + is31fl3733_init(DRIVER_ADDR_1, 0); for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { bool enabled = true; - IS31FL3733_set_led_control_register(index, enabled, enabled, enabled); + is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); } static void rgb_matrix_driver_flush(void) { - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); # if WS2812_LED_TOTAL > 0 ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif @@ -170,7 +170,7 @@ static void rgb_matrix_driver_flush(void) { static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < ISSI_LED_TOTAL) { - IS31FL3733_set_color(index, red, green, blue); + is31fl3733_set_color(index, red, green, blue); } else { # if WS2812_LED_TOTAL > 0 rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red; @@ -181,7 +181,7 @@ static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, u } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - IS31FL3733_set_color_all(red, green, blue); + is31fl3733_set_color_all(red, green, blue); # if WS2812_LED_TOTAL > 0 for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { rgb_matrix_ws2812_array[i].r = red; diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h index aac03cec4df..6e721bb7c06 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h @@ -18,22 +18,8 @@ along with this program. If not, see . #pragma once #define RGB_MATRIX_LED_COUNT 67 - #define RGBLED_NUM 67 #define RGB_MATRIX_KEYPRESSES - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE + #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/info.json b/keyboards/kprepublic/bm60hsrgb_poker/rev1/info.json index 5746594468a..d6368610ff5 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/info.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/info.json @@ -12,10 +12,26 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 67, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 2feead3386f..2c0710bfe48 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -15,21 +15,7 @@ */ #pragma once -//rgb light setting -#define RGBLED_NUM 6 -#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_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define RGB_MATRIX_KEYPRESSES @@ -102,7 +88,7 @@ #ifdef RGBLIGHT_ENABLE # define WS2812_LED_TOTAL 0 #else -# define WS2812_LED_TOTAL RGBLED_NUM +# define WS2812_LED_TOTAL 6 #endif #define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL) diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/info.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/info.json index 01d09b59460..82d1974f06e 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/info.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/info.json @@ -15,7 +15,21 @@ "driver": "custom" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 150, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index ee95726e160..bd976f315ab 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -149,16 +149,16 @@ LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - IS31FL3733_init(DRIVER_ADDR_1, 0); + is31fl3733_init(DRIVER_ADDR_1, 0); for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { bool enabled = true; - IS31FL3733_set_led_control_register(index, enabled, enabled, enabled); + is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); } static void rgb_matrix_driver_flush(void) { - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); # if WS2812_LED_TOTAL > 0 ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif @@ -166,7 +166,7 @@ static void rgb_matrix_driver_flush(void) { static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < ISSI_LED_TOTAL) { - IS31FL3733_set_color(index, red, green, blue); + is31fl3733_set_color(index, red, green, blue); } else { # if WS2812_LED_TOTAL > 0 rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red; @@ -177,7 +177,7 @@ static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, u } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - IS31FL3733_set_color_all(red, green, blue); + is31fl3733_set_color_all(red, green, blue); # if WS2812_LED_TOTAL > 0 for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { rgb_matrix_ws2812_array[i].r = red; diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/config.h b/keyboards/kprepublic/bm65hsrgb/rev1/config.h index e2522723fc8..ef410e94412 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm65hsrgb/rev1/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . // The number of LEDs connected #define RGB_MATRIX_LED_COUNT 73 - #define RGBLED_NUM 73 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/info.json b/keyboards/kprepublic/bm65hsrgb/rev1/info.json index d88f3b81773..563d90ce32a 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/info.json +++ b/keyboards/kprepublic/bm65hsrgb/rev1/info.json @@ -12,7 +12,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6"], diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h b/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h index 2814a6609a3..c916ffb2a98 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h @@ -18,11 +18,7 @@ along with this program. If not, see . #pragma once #define RGB_MATRIX_LED_COUNT 74 - #define RGBLED_NUM 74 #define RGB_MATRIX_KEYPRESSES - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 140 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: @@ -74,15 +70,3 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_BAND_SAT -/* If defined, the RGB lighting will be switched off when the host goes to sleep */ -# define RGBLIGHT_SLEEP -/*== all animations 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 diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/info.json b/keyboards/kprepublic/bm65hsrgb_iso/rev1/info.json index 8c3536db6b4..6b8a5a8a3a1 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/info.json +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/info.json @@ -9,11 +9,28 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 74, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6"], diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/config.h b/keyboards/kprepublic/bm68hsrgb/rev1/config.h index cef5a0939b2..a3ef1df3b35 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev1/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . // The number of LEDs connected #define RGB_MATRIX_LED_COUNT 74 -# define RGBLED_NUM 74 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/info.json b/keyboards/kprepublic/bm68hsrgb/rev1/info.json index b3747af5b16..ac3dcdf5088 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/info.json +++ b/keyboards/kprepublic/bm68hsrgb/rev1/info.json @@ -12,10 +12,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" - }, - "rgblight": { - "max_brightness": 180 + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6"], diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index 53aabdaf948..3e74f353f9b 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -16,25 +16,7 @@ */ #pragma once -#define USB_POLLING_INTERVAL_MS 1 - -#define RGBLED_NUM 6 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - - #define DRIVER_ADDR_1 0b0110000 diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/info.json b/keyboards/kprepublic/bm68hsrgb/rev2/info.json index b7c827e0eac..7a0cefeace9 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/info.json +++ b/keyboards/kprepublic/bm68hsrgb/rev2/info.json @@ -12,10 +12,25 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 150, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F0", "F1", "B0", "B1", "B2", "B3", "E6", "B7", "D2", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/kprepublic/bm80hsrgb/config.h b/keyboards/kprepublic/bm80hsrgb/config.h index a9ba033fb0e..c55999846e2 100644 --- a/keyboards/kprepublic/bm80hsrgb/config.h +++ b/keyboards/kprepublic/bm80hsrgb/config.h @@ -20,11 +20,9 @@ along with this program. If not, see . // The number of LEDs connected #define RGB_MATRIX_LED_COUNT 87 -#define RGBLED_NUM 87 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses //#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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/info.json b/keyboards/kprepublic/bm80hsrgb/info.json index d3989e36157..0feaa9a99a4 100644 --- a/keyboards/kprepublic/bm80hsrgb/info.json +++ b/keyboards/kprepublic/bm80hsrgb/info.json @@ -12,7 +12,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F0", "F1", "F4", "D7", "D6", "D4", "D5", "D3", "D2", "F5", "F6", "F7", "D1", "D0", "B4", "B5", "B6"], diff --git a/keyboards/kprepublic/bm80v2/info.json b/keyboards/kprepublic/bm80v2/info.json index cbad2ee816e..a30886a988c 100644 --- a/keyboards/kprepublic/bm80v2/info.json +++ b/keyboards/kprepublic/bm80v2/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["E6", "F0", "F1", "F4", "D7", "D6", "B7", "B1", "B0", "B2", "B3", "D3", "D5", "D4", "D2", "B4", "B5"], diff --git a/keyboards/kprepublic/bm80v2_iso/info.json b/keyboards/kprepublic/bm80v2_iso/info.json index 064af021281..6f8bdc5fd9b 100644 --- a/keyboards/kprepublic/bm80v2_iso/info.json +++ b/keyboards/kprepublic/bm80v2_iso/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["E6", "F0", "F1", "F4", "D7", "D6", "B7", "B1", "B0", "B2", "B3", "D3", "D5", "D4", "D2", "B4", "B5"], diff --git a/keyboards/kprepublic/bm980hsrgb/config.h b/keyboards/kprepublic/bm980hsrgb/config.h index 7ecc626803a..73c222c113f 100644 --- a/keyboards/kprepublic/bm980hsrgb/config.h +++ b/keyboards/kprepublic/bm980hsrgb/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . // The number of LEDs connected #define RGB_MATRIX_LED_COUNT 98 -# define RGBLED_NUM 98 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses //#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/kprepublic/bm980hsrgb/info.json b/keyboards/kprepublic/bm980hsrgb/info.json index badd7d6458f..29944ba4743 100644 --- a/keyboards/kprepublic/bm980hsrgb/info.json +++ b/keyboards/kprepublic/bm980hsrgb/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B1", "B2", "B3", "B7", "D0", "D1", "D2", "D3", "D5", "E6", "F0", "F1", "F4", "F5", "D6"], diff --git a/keyboards/kprepublic/cospad/config.h b/keyboards/kprepublic/cospad/config.h index d9727b63c71..5e90ea1c05b 100644 --- a/keyboards/kprepublic/cospad/config.h +++ b/keyboards/kprepublic/cospad/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 4 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/kprepublic/cospad/info.json b/keyboards/kprepublic/cospad/info.json index 1814b50464c..02551a2f46f 100644 --- a/keyboards/kprepublic/cospad/info.json +++ b/keyboards/kprepublic/cospad/info.json @@ -14,9 +14,26 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F7", "on_state": 0 }, + "rgblight": { + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/kprepublic/jj40/config.h b/keyboards/kprepublic/jj40/config.h deleted file mode 100644 index d77984fc699..00000000000 --- a/keyboards/kprepublic/jj40/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB underglow */ -// NOTE: for PS2AVRGB boards, underglow commands are sent via I2C to 0xB0. -#define RGBLED_NUM 5 -#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/kprepublic/jj40/info.json b/keyboards/kprepublic/jj40/info.json index 2627ffbff95..79c9d4a7591 100644 --- a/keyboards/kprepublic/jj40/info.json +++ b/keyboards/kprepublic/jj40/info.json @@ -19,6 +19,21 @@ "levels": 12, "breathing": true }, + "rgblight": { + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/kprepublic/jj40/keymaps/fun40/rules.mk b/keyboards/kprepublic/jj40/keymaps/fun40/rules.mk index cc9508d7d6f..9018bddfe35 100644 --- a/keyboards/kprepublic/jj40/keymaps/fun40/rules.mk +++ b/keyboards/kprepublic/jj40/keymaps/fun40/rules.mk @@ -13,9 +13,5 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes -DISABLE_WS2812 = yes - SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/kprepublic/jj40/keymaps/stevexyz/keymap.c b/keyboards/kprepublic/jj40/keymaps/stevexyz/keymap.c index 51691e8f1f9..6c8220a702a 100644 --- a/keyboards/kprepublic/jj40/keymaps/stevexyz/keymap.c +++ b/keyboards/kprepublic/jj40/keymaps/stevexyz/keymap.c @@ -262,14 +262,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_init_user(void) { // eeconfig_init(); // reset keyboard to a standard default state; useful when new releases messup with eeprom values // set num lock on at start (for numonly layer to work) - if (!(host_keyboard_leds() & (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 - -/* RGB underglow */ -// NOTE: for PS2AVRGB boards, underglow commands are sent via I2C to 0xB0. -#define RGBLED_NUM 4 -#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/kprepublic/jj4x4/info.json b/keyboards/kprepublic/jj4x4/info.json index fce30c67b04..5fc9c493430 100644 --- a/keyboards/kprepublic/jj4x4/info.json +++ b/keyboards/kprepublic/jj4x4/info.json @@ -19,6 +19,21 @@ "levels": 12, "breathing": true }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/kprepublic/jj50/config.h b/keyboards/kprepublic/jj50/config.h deleted file mode 100644 index 3220fd6477d..00000000000 --- a/keyboards/kprepublic/jj50/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Base Copyright 2017 Luiz Ribeiro -Modified 2017 Andrew Novak -Modified 2018 Wayne Jones (WarmCatUK) -Modified 2020 Guillaume Gérard - -This 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 RGBLED_NUM 12 -#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_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 15 -#define RGBLIGHT_VAL_STEP 18 diff --git a/keyboards/kprepublic/jj50/info.json b/keyboards/kprepublic/jj50/info.json index a83d42ab6ab..492d106f21e 100644 --- a/keyboards/kprepublic/jj50/info.json +++ b/keyboards/kprepublic/jj50/info.json @@ -18,6 +18,24 @@ "levels": 12, "breathing": true }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 15, + "brightness_steps": 18, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c b/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c index 21f8fcbb0f1..f02f27005be 100644 --- a/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c +++ b/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c @@ -64,12 +64,13 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -void led_set_user(uint8_t usb_led) { - if (usb_led & (1<. +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/kradoindustries/kousa/info.json b/keyboards/kradoindustries/kousa/info.json new file mode 100644 index 00000000000..196e863bf5c --- /dev/null +++ b/keyboards/kradoindustries/kousa/info.json @@ -0,0 +1,158 @@ +{ + "keyboard_name": "Kousa-TKL", + "manufacturer": "Krado Industries", + "url": "https://www.kradoindustries.com/", + "maintainer": "Krado Industries", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x4B72", + "pid": "0x4B4F", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "encoder": true, + "rgblight": true + }, + "encoder": { + "rotary": [ + { "pin_a": "GP10", "pin_b": "GP9" } + ] + }, + "ws2812": { + "pin": "GP4", + "driver": "vendor" + }, + "rgblight": { + "led_count": 18, + "sleep": true, + "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 + } + }, + + + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP20", "GP21", "GP14", "GP15", "GP16", "GP17", "GP18", "GP13", "GP0", "GP1", "GP3"], + "rows": [ "GP2", "GP29", "GP28", "GP19", "GP12", "GP11"] + }, + + "layouts": { + "LAYOUT": { + "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.5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.75, "y":0}, + {"matrix": [0, 10], "x":10.75, "y":0}, + {"matrix": [0, 11], "x":11.75, "y":0}, + {"matrix": [0, 12], "x":12.75, "y":0}, + {"matrix": [0, 13], "x":14, "y":0}, + {"matrix": [0, 14], "x":15.25, "y":0}, + {"matrix": [0, 15], "x":16.25, "y":0}, + {"matrix": [0, 16], "x":17.25, "y":0}, + {"matrix": [1, 0], "x":0, "y":1.25, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1.25}, + {"matrix": [1, 2], "x":2.5, "y":1.25}, + {"matrix": [1, 3], "x":3.5, "y":1.25}, + {"matrix": [1, 4], "x":4.5, "y":1.25}, + {"matrix": [1, 5], "x":5.5, "y":1.25}, + {"matrix": [1, 6], "x":6.5, "y":1.25}, + {"matrix": [1, 7], "x":7.5, "y":1.25}, + {"matrix": [1, 8], "x":8.5, "y":1.25}, + {"matrix": [1, 9], "x":9.5, "y":1.25}, + {"matrix": [1, 10], "x":10.5, "y":1.25}, + {"matrix": [1, 11], "x":11.5, "y":1.25}, + {"matrix": [1, 12], "x":12.5, "y":1.25}, + {"matrix": [1, 13], "x":13.5, "y":1.25, "w":1.5}, + {"matrix": [1, 14], "x":15.25, "y":1.25}, + {"matrix": [1, 15], "x":16.25, "y":1.25}, + {"matrix": [1, 16], "x":17.25, "y":1.25}, + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2, 10], "x":10.5, "y":2.25}, + {"matrix": [2, 11], "x":11.5, "y":2.25}, + {"matrix": [2, 12], "x":12.5, "y":2.25}, + {"matrix": [2, 13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2, 14], "x":15.25, "y":2.25}, + {"matrix": [2, 15], "x":16.25, "y":2.25}, + {"matrix": [2, 16], "x":17.25, "y":2.25}, + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3.25}, + {"matrix": [3, 2], "x":2.5, "y":3.25}, + {"matrix": [3, 3], "x":3.5, "y":3.25}, + {"matrix": [3, 4], "x":4.5, "y":3.25}, + {"matrix": [3, 5], "x":5.5, "y":3.25}, + {"matrix": [3, 6], "x":6.5, "y":3.25}, + {"matrix": [3, 7], "x":7.5, "y":3.25}, + {"matrix": [3, 8], "x":8.5, "y":3.25}, + {"matrix": [3, 9], "x":9.5, "y":3.25}, + {"matrix": [3, 10], "x":10.5, "y":3.25}, + {"matrix": [3, 11], "x":11.5, "y":3.25}, + {"matrix": [3, 12], "x":12.5, "y":3.25}, + {"matrix": [3, 13], "x":13.5, "y":3.25, "w":1.5}, + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4.25}, + {"matrix": [4, 2], "x":2.5, "y":4.25}, + {"matrix": [4, 3], "x":3.5, "y":4.25}, + {"matrix": [4, 4], "x":4.5, "y":4.25}, + {"matrix": [4, 5], "x":5.5, "y":4.25}, + {"matrix": [4, 6], "x":6.5, "y":4.25}, + {"matrix": [4, 7], "x":7.5, "y":4.25}, + {"matrix": [4, 8], "x":8.5, "y":4.25}, + {"matrix": [4, 9], "x":9.5, "y":4.25}, + {"matrix": [4, 10], "x":10.5, "y":4.25}, + {"matrix": [4, 11], "x":11.5, "y":4.25}, + {"matrix": [4, 12], "x":12.5, "y":4.25}, + {"matrix": [4, 13], "x":13.5, "y":4.25, "w":1.5}, + {"matrix": [4, 15], "x":16.25, "y":4.25}, + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25}, + {"matrix": [5, 3], "x":3.5, "y":5.25}, + {"matrix": [5, 4], "x":4.5, "y":5.25}, + {"matrix": [5, 5], "x":5.5, "y":5.25}, + {"matrix": [5, 6], "x":6.5, "y":5.25, "w":2}, + {"matrix": [5, 8], "x":8.5, "y":5.25}, + {"matrix": [5, 9], "x":9.5, "y":5.25}, + {"matrix": [5, 10], "x":10.5, "y":5.25}, + {"matrix": [5, 11], "x":11.5, "y":5.25}, + {"matrix": [5, 12], "x":12.5, "y":5.25}, + {"matrix": [5, 13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5, 14], "x":15.25, "y":5.25}, + {"matrix": [5, 15], "x":16.25, "y":5.25}, + {"matrix": [5, 16], "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/kradoindustries/kousa/keymaps/default/keymap.c b/keyboards/kradoindustries/kousa/keymaps/default/keymap.c new file mode 100644 index 00000000000..48978b2a2ba --- /dev/null +++ b/keyboards/kradoindustries/kousa/keymaps/default/keymap.c @@ -0,0 +1,111 @@ +/* +Copyright 2023 Matt F + +This 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 _FN MO(3) +#define FN_BACK LT(3, KC_BSPC) +#define ZOOMIN C(KC_EQL) +#define ZOOMOUT C(KC_MINS) +#define NTAB C(KC_TAB) +#define BTAB C(S(KC_TAB)) + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + + /* Base Layer + + +* --------- .-----------------------------------. .-----------------------------------. .-----------------------------------. --------. .--------------------------. + * | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 | | F13 | | PrintSC| ScrlLk | Pause | + * | | | | | | | | | | | | | | | | | | | | | | | + * '-------+ '--------+--------+--------+--------' '--------+--------+--------+--------' '--------+--------+--------+--------' '-------+ '--------+--------+--------' + + * .-----------------------------------------------------------------------------------------------------------------------------------. .--------------------------. + * | Grave | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | Backspace | | Ins | Home | PageUp | + * | | | | | | | | | | | | | | | | | | | + * |-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------| |--------+--------+--------| + * | Tab | Q | W | E | R | T | | | Y | U | I | O | P | Del | | Del | End |PageDown| + * | | | | | | | | | | | | | | | | | | | + * |-----------+--------+--------+--------+--------+--------| [ | ] |--------+--------+--------+-----------------+-----------| '--------+--------+--------' + * | FN_BACK | A | S | D | F | G |--------+--------| H | J | K | L | " | Enter | + * | | | | | | | | | | | | | ' | | + * |-----------+--------+--------+--------+--------+--------| Prev | Next |--------+--------+--------------------------+-----------| .--------. + * | LShift | Z | X | C | V | B | Tab | Tab | N | M | < | > | ? | RShift | | Up | + * | | | | | | | | | | | , | . | / | | | | + * |-----------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+-----------| .--------+--------+--------. + * | LCtrl | LGUI | LALT | FN | Space | Space | Space | Space | Space | Space | RALT | RGUI | RCTRL | | Left | Down | Right | + * | | | | | | | | | | | | | | | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------------' '--------+--------+--------' + */ + + 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_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_DEL, KC_END, KC_PGDN, + FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, BTAB, NTAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( /* Layer One */ + + 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_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + + [2] = LAYOUT( /* Layer Two */ + + 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_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, ZOOMIN, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_DEL, KC_END, KC_PGDN, + FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ZOOMOUT, KC_LBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [3] = LAYOUT( /* Layer Three */ + + KC_ESC, DF(0), DF(1), DF(2), KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, 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, DF(0), RGB_MOD, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DF(1), RGB_RMOD, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_VOLD, KC_BSLS, KC_CAPS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) } +}; +#endif diff --git a/keyboards/kradoindustries/kousa/keymaps/default/rules.mk b/keyboards/kradoindustries/kousa/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/kradoindustries/kousa/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/kradoindustries/kousa/keymaps/via/keymap.c b/keyboards/kradoindustries/kousa/keymaps/via/keymap.c new file mode 100644 index 00000000000..48978b2a2ba --- /dev/null +++ b/keyboards/kradoindustries/kousa/keymaps/via/keymap.c @@ -0,0 +1,111 @@ +/* +Copyright 2023 Matt F + +This 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 _FN MO(3) +#define FN_BACK LT(3, KC_BSPC) +#define ZOOMIN C(KC_EQL) +#define ZOOMOUT C(KC_MINS) +#define NTAB C(KC_TAB) +#define BTAB C(S(KC_TAB)) + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + + /* Base Layer + + +* --------- .-----------------------------------. .-----------------------------------. .-----------------------------------. --------. .--------------------------. + * | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 | | F13 | | PrintSC| ScrlLk | Pause | + * | | | | | | | | | | | | | | | | | | | | | | | + * '-------+ '--------+--------+--------+--------' '--------+--------+--------+--------' '--------+--------+--------+--------' '-------+ '--------+--------+--------' + + * .-----------------------------------------------------------------------------------------------------------------------------------. .--------------------------. + * | Grave | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | Backspace | | Ins | Home | PageUp | + * | | | | | | | | | | | | | | | | | | | + * |-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------| |--------+--------+--------| + * | Tab | Q | W | E | R | T | | | Y | U | I | O | P | Del | | Del | End |PageDown| + * | | | | | | | | | | | | | | | | | | | + * |-----------+--------+--------+--------+--------+--------| [ | ] |--------+--------+--------+-----------------+-----------| '--------+--------+--------' + * | FN_BACK | A | S | D | F | G |--------+--------| H | J | K | L | " | Enter | + * | | | | | | | | | | | | | ' | | + * |-----------+--------+--------+--------+--------+--------| Prev | Next |--------+--------+--------------------------+-----------| .--------. + * | LShift | Z | X | C | V | B | Tab | Tab | N | M | < | > | ? | RShift | | Up | + * | | | | | | | | | | | , | . | / | | | | + * |-----------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+-----------| .--------+--------+--------. + * | LCtrl | LGUI | LALT | FN | Space | Space | Space | Space | Space | Space | RALT | RGUI | RCTRL | | Left | Down | Right | + * | | | | | | | | | | | | | | | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------------' '--------+--------+--------' + */ + + 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_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_DEL, KC_END, KC_PGDN, + FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, BTAB, NTAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( /* Layer One */ + + 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_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + + [2] = LAYOUT( /* Layer Two */ + + 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_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, ZOOMIN, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_DEL, KC_END, KC_PGDN, + FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ZOOMOUT, KC_LBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [3] = LAYOUT( /* Layer Three */ + + KC_ESC, DF(0), DF(1), DF(2), KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, 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, DF(0), RGB_MOD, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DF(1), RGB_RMOD, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_VOLD, KC_BSLS, KC_CAPS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, 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][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) } +}; +#endif diff --git a/keyboards/kradoindustries/kousa/keymaps/via/rules.mk b/keyboards/kradoindustries/kousa/keymaps/via/rules.mk new file mode 100644 index 00000000000..aaf0497be13 --- /dev/null +++ b/keyboards/kradoindustries/kousa/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kradoindustries/kousa/readme.md b/keyboards/kradoindustries/kousa/readme.md new file mode 100644 index 00000000000..b9a50a93c93 --- /dev/null +++ b/keyboards/kradoindustries/kousa/readme.md @@ -0,0 +1,32 @@ +# Kousa TKL + +![Photo](https://i.imgur.com/b2JJoiIh.jpg) + +A hotswap H88-Compact Type-C compatible ortholinear TKL PCB that uses ergodox modifiers. Based on the [Boardwalk](https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardwalk)'s split hand layout, with the addtion of 6u and split 3u spacebar stabilizer support. F13 and F12 layouts are supported. The F13 location also supports a rotary encoder. The default layout will have 1.5u vertical inner modifiers, but it is possible to convert the center keys to 1u by soldering hotswap sockets. The board is designed to be compatible with H88-C type C boards and the outline of the board was based on zykrah's [slime88 pcb](https://github.com/zykrah/slime88). The usb C port can be broken off and used with a JST connector and daughterboard. + +The name is meant to be read "Kousa Tenkeyless". "Kousaten" (交差点) means intersection or crossing in Japanese. I wanted the name to be a nod to the Boardwalk without using u/shensmobile's naming conventions and Crosswalk seemed pretty close, but then I realized "crossing" in Japanese is "kousaten" and I thought it would call it the Kousa Tenkeyless! + +* Keyboard Maintainer: [Feags](https://github.com/Feags) / [Krado Industries](https://kradoindustries.com/) +* Hardware Supported: H88-C type C cases. Confirmed working in KFA Freebird TKL. Also confirmed working in KBDFans Tiger80 Lite. *Please note that you will need a custom plate for any case.* +* Hardware Availabilitiy: [Krado Industries](https://kradoindustries.com/) + +Make example for this keyboard (after setting up your build environment): + + make kradoindustries/kousa:default + +Flashing example for this keyboard: + + make kradoindustries/kousa:default:flash + + + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/kradoindustries/kousa/rules.mk b/keyboards/kradoindustries/kousa/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kradoindustries/kousa/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/kradoindustries/krado66/info.json b/keyboards/kradoindustries/krado66/info.json new file mode 100644 index 00000000000..aefadf12de1 --- /dev/null +++ b/keyboards/kradoindustries/krado66/info.json @@ -0,0 +1,130 @@ +{ + "keyboard_name": "Krado66", + "manufacturer": "Krado Industries", + "url": "https://www.kradoindustries.com/", + "maintainer": "Krado Industries", + "usb": { + "vid": "0x4B72", + "pid": "0x6664", + "device_version": "2.0.0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "encoder": true, + "rgblight": true + }, + "ws2812": { + "pin": "B2" + }, + "rgblight": { + "led_count": 14, + "sleep": true, + "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 + } + }, + "encoder": { + "rotary": [ + { "pin_a": "B1", "pin_b": "B0" }, + { "pin_a": "D7", "pin_b": "D6" }, + { "pin_a": "F7", "pin_b": "F6" } + ] + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "C7", "B3", "D0", "D1", "D2", "D3", "D5", "D4"], + "rows": [ "F5", "F4", "F1", "F0", "B7", "E6", "B4", "B5", "C6", "B6" ] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0.25, "y":0}, + {"matrix": [1, 0], "x":1.25, "y":0}, + {"matrix": [0, 1], "x":2.25, "y":0}, + {"matrix": [1, 1], "x":3.25, "y":0}, + {"matrix": [0, 2], "x":4.25, "y":0}, + {"matrix": [1, 2], "x":5.25, "y":0}, + {"matrix": [0, 3], "x":6.25, "y":0}, + {"matrix": [1, 3], "x":7.25, "y":0}, + {"matrix": [0, 4], "x":8.25, "y":0}, + {"matrix": [1, 4], "x":9.25, "y":0}, + {"matrix": [0, 5], "x":10.25, "y":0}, + {"matrix": [1, 5], "x":11.25, "y":0}, + {"matrix": [0, 6], "x":12.25, "y":0}, + {"matrix": [1, 6], "x":13.25, "y":0}, + {"matrix": [0, 7], "x":14.25, "y":0}, + {"matrix": [1, 7], "x":15.25, "y":0}, + {"matrix": [3, 0], "x":0.75, "y":1, "w":1.5}, + {"matrix": [2, 1], "x":2.25, "y":1}, + {"matrix": [3, 1], "x":3.25, "y":1}, + {"matrix": [2, 2], "x":4.25, "y":1}, + {"matrix": [3, 2], "x":5.25, "y":1}, + {"matrix": [2, 3], "x":6.25, "y":1}, + {"matrix": [3, 3], "x":7.25, "y":1}, + {"matrix": [2, 4], "x":8.25, "y":1}, + {"matrix": [3, 4], "x":9.25, "y":1}, + {"matrix": [2, 5], "x":10.25, "y":1}, + {"matrix": [3, 5], "x":11.25, "y":1}, + {"matrix": [2, 6], "x":12.25, "y":1}, + {"matrix": [3, 6], "x":13.25, "y":1}, + {"matrix": [2, 7], "x":14.25, "y":1, "w":1.5}, + {"matrix": [5, 0], "x":0.5, "y":2, "w":1.75}, + {"matrix": [4, 1], "x":2.25, "y":2}, + {"matrix": [5, 1], "x":3.25, "y":2}, + {"matrix": [4, 2], "x":4.25, "y":2}, + {"matrix": [5, 2], "x":5.25, "y":2}, + {"matrix": [4, 3], "x":6.25, "y":2}, + {"matrix": [5, 3], "x":7.25, "y":2}, + {"matrix": [4, 4], "x":8.25, "y":2}, + {"matrix": [5, 4], "x":9.25, "y":2}, + {"matrix": [4, 5], "x":10.25, "y":2}, + {"matrix": [5, 5], "x":11.25, "y":2}, + {"matrix": [4, 6], "x":12.25, "y":2}, + {"matrix": [5, 6], "x":13.25, "y":2, "w":2.25}, + {"matrix": [7, 0], "x":0, "y":3, "w":2.25}, + {"matrix": [6, 1], "x":2.25, "y":3}, + {"matrix": [7, 1], "x":3.25, "y":3}, + {"matrix": [6, 2], "x":4.25, "y":3}, + {"matrix": [7, 2], "x":5.25, "y":3}, + {"matrix": [6, 3], "x":6.25, "y":3}, + {"matrix": [7, 3], "x":7.25, "y":3}, + {"matrix": [6, 4], "x":8.25, "y":3}, + {"matrix": [7, 4], "x":9.25, "y":3}, + {"matrix": [6, 5], "x":10.25, "y":3}, + {"matrix": [7, 5], "x":11.25, "y":3}, + {"matrix": [6, 6], "x":12.25, "y":3, "w":1.75}, + {"matrix": [6, 7], "x":14, "y":3}, + {"matrix": [7, 7], "x":15, "y":3}, + {"matrix": [8, 0], "x":0, "y":4, "w":1.25}, + {"matrix": [9, 0], "x":1.25, "y":4, "w":1.25}, + {"matrix": [8, 1], "x":2.5, "y":4, "w":1.25}, + {"matrix": [9, 2], "x":3.75, "y":4, "w":1.25}, + {"matrix": [8, 3], "x":5, "y":4, "w":2.25}, + {"matrix": [9, 4], "x":7.25, "y":4, "w":2.75}, + {"matrix": [8, 5], "x":10, "y":4}, + {"matrix": [9, 5], "x":11, "y":4}, + {"matrix": [8, 6], "x":12, "y":4}, + {"matrix": [9, 6], "x":13, "y":4}, + {"matrix": [8, 7], "x":14, "y":4}, + {"matrix": [9, 7], "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/kradoindustries/krado66/keymaps/default/keymap.c b/keyboards/kradoindustries/krado66/keymaps/default/keymap.c new file mode 100644 index 00000000000..ca18457196d --- /dev/null +++ b/keyboards/kradoindustries/krado66/keymaps/default/keymap.c @@ -0,0 +1,177 @@ +/* +Copyright 2022 Matt F + +This 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 layer { + _QWERTY, + _QWERTYX, + _FUNCTION, + _EXTRA, +}; + + +#define QWERTY DF(_QWERTY) +#define QWERTYX DF(_QWERTYX) +#define FN MO(_FUNCTION) +#define BACKFN LT(_FUNCTION, KC_BSPC) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + KC_ESC, 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_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_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, FN, \ + KC_LCTL, KC_LGUI, KC_LALT, FN, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + +/* Default + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | ESC | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspc| Back | + * | | ` | | | | | | | | | | | _ | = | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | DELETE | + * | | | | | | | | | | | | { | } | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | CAPS LOCK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | + * | | | | | | | | | | | : | " | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+-----------+-----+ + * | SHIFT | Z | X | C | V | B | N | M | < | > | / | RSHIFT | UP | Fn | + * | | | | | | | | | , | . | ? | | | | + * |----------+----------+----------+--------------------------------------------------------+--------+--------+--------+--------+--------+--------+ + * | LCTRL | LGUI | LALT | Fn | SPACE | Space | RALT | RCTRL | GUI | LEFT | DOWN | RIGHT | + * | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ + */ + + + + [_QWERTYX] = LAYOUT( + KC_ESC, 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_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, \ + BACKFN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_UP, FN, \ + KC_LCTL, KC_LGUI, KC_LALT, FN, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + +/* Default + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | ESC | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspc| Back | + * | | ` | | | | | | | | | | | _ | = | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | DELETE | + * | | | | | | | | | | | | { | } | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | BACKSPACE (FN)| A | S | D | F | G | H | J | K | L | ; | ' | ENTER | + * | | | | | | | | | | | : | " | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+-----------+-----+ + * | CADET SHIFT ( | Z | X | C | V | B | N | M | < | > | / | CADET SHIFT ) | UP | Fn | + * | | | | | | | | | , | . | ? | | | | + * |----------+----------+----------+--------------------------------------------------------+--------+--------+--------+--------+--------|--------+ + * | LCTRL | LGUI | LALT | Fn | SPACE | Space | RALT | GUI | RCTRL | LEFT | DOWN | RIGHT | + * | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ +*/ + + + [_FUNCTION] = LAYOUT( + QK_BOOT, QWERTYX, 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, \ + QWERTY, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_DEL, \ + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, RGB_TOG, \ + KC_TRNS, RGB_M_R, RGB_M_X, RGB_M_SW,RGB_M_K, RGB_M_B, RGB_M_G, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, KC_CAPS, KC_PGUP, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END \ + ), + +/* Fn + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | |QWERTYEX| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE | RESET | + * | | | | | | | | | | | | | | | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | QWERTY | HOME | UP | END | PGUP | | | | INS | | Print | | | DELETE | + * | | | | | | | | | | | Screen | | | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | | LEFT | DOWN | RIGHT | PGDN | | | PREV | PLAY | NEXT | | | RGB TOG | + * | | | | | | | | | | | | | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+------------+----+ + * | | Rainbow| Xmas | Swirl | Knight |Breathe |GradieNt| MUTE | VOL DN | VOL UP | PIPE \ | CAPS LOCK | PAGEUP | Fn | + * | | | | | | | | | | | | | | | + * |----------+----------+----------+---------------------------------------------------------+--------+--------+----------------+--------+--------+ + * | | | | Fn | ENTER | NUM.Dot | | | | HOME | PAGEDN | END | + * | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ + */ + + [_EXTRA] = LAYOUT( + QK_BOOT, QWERTYX, 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, \ + QWERTY, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_DEL, \ + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, RGB_TOG, \ + KC_TRNS, RGB_M_R, RGB_M_X, RGB_M_SW,RGB_M_K, RGB_M_B, RGB_M_G, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, KC_CAPS, KC_PGUP, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END \ + ), + +/* Fn + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | |QWERTYX | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE | RESET | + * | | | | | | | | | | | | | | | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | QWERTY | HOME | UP | END | PGUP | | | | INS | | Print | | | DELETE | + * | | | | | | | | | | | Screen | | | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | | LEFT | DOWN | RIGHT | PGDN | | | PREV | PLAY | NEXT | | | RGB TOG | + * | | | | | | | | | | | | | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+------------+----+ + * | | Rainbow| Xmas | Swirl | Knight |Breathe |GradieNt| MUTE | VOL DN | VOL UP | PIPE \ | CAPS LOCK | PAGEUP | Fn | + * | | | | | | | | | | | | | | E2 | + * |----------+----------+----------+---------------------------------------------------------+--------+--------+----------------+--------+--------+ + * | | | | Fn | ENTER | NUM.Dot | | | | HOME | PAGEDN | END | + * | E3 | | | | E3 | | | | E2 | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ + */ +}; + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_QWERTYX] = { ENCODER_CCW_CW(C(KC_TAB), C(S(KC_TAB))), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [_FUNCTION] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [_EXTRA] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) }, +}; +#endif + + + + /* Encoder Positions + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | | | | | | | | | | | | | | | | | + * | E1 | | | | | | | | | | | | | | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | | | | | | | | | | | | | | | + * | | | | | | | | | | | | | | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | | | | | | | | | | | | | | + * | | | | | | | | | | | | | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+------------+----+ + * | | | | | | | | | | | | | | | + * | | | | | | | | | | | | | | E2 | + * |----------+----------+----------+---------------------------------------------------------+--------+--------+----------------+--------+--------+ + * | | | | | | | | | | | | | + * | E3 | | | | E3 | | | | E2 | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ + */ \ No newline at end of file diff --git a/keyboards/kradoindustries/krado66/keymaps/default/rules.mk b/keyboards/kradoindustries/krado66/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/kradoindustries/krado66/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/kradoindustries/krado66/keymaps/via/keymap.c b/keyboards/kradoindustries/krado66/keymaps/via/keymap.c new file mode 100644 index 00000000000..192bd377bdf --- /dev/null +++ b/keyboards/kradoindustries/krado66/keymaps/via/keymap.c @@ -0,0 +1,177 @@ +/* +Copyright 2022 Matt F + +This 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 layer { + _QWERTY, + _QWERTYX, + _FUNCTION, + _EXTRA, +}; + + +#define QWERTY DF(_QWERTY) +#define QWERTYX DF(_QWERTYX) +#define FN MO(_FUNCTION) +#define BACKFN LT(_FUNCTION, KC_BSPC) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + KC_ESC, 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_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_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, FN, \ + KC_LCTL, KC_LGUI, KC_LALT, FN, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + +/* Default + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | ESC | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspc| Back | + * | | ` | | | | | | | | | | | _ | = | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | DELETE | + * | | | | | | | | | | | | { | } | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | CAPS LOCK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | + * | | | | | | | | | | | : | " | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+-----------+-----+ + * | SHIFT | Z | X | C | V | B | N | M | < | > | / | RSHIFT | UP | Fn | + * | | | | | | | | | , | . | ? | | | | + * |----------+----------+----------+--------------------------------------------------------+--------+--------+--------+--------+--------+--------+ + * | LCTRL | LGUI | LALT | Fn | SPACE | Space | RALT | RCTRL | GUI | LEFT | DOWN | RIGHT | + * | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ + */ + + + + [_QWERTYX] = LAYOUT( + KC_ESC, 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_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, \ + BACKFN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_UP, FN, \ + KC_LCTL, KC_LGUI, KC_LALT, FN, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + +/* Default + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | ESC | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspc| Back | + * | | ` | | | | | | | | | | | _ | = | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | DELETE | + * | | | | | | | | | | | | { | } | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | BACKSPACE (FN)| A | S | D | F | G | H | J | K | L | ; | ' | ENTER | + * | | | | | | | | | | | : | " | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+-----------+-----+ + * | CADET SHIFT ( | Z | X | C | V | B | N | M | < | > | / | CADET SHIFT ) | UP | Fn | + * | | | | | | | | | , | . | ? | | | | + * |----------+----------+----------+--------------------------------------------------------+--------+--------+--------+--------+--------|--------+ + * | LCTRL | LGUI | LALT | Fn | SPACE | Space | RALT | GUI | RCTRL | LEFT | DOWN | RIGHT | + * | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ +*/ + + + [_FUNCTION] = LAYOUT( + QK_BOOT, QWERTYX, 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, \ + QWERTY, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_DEL, \ + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, RGB_TOG, \ + KC_TRNS, RGB_M_R, RGB_M_X, RGB_M_SW,RGB_M_K, RGB_M_B, RGB_M_G, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, KC_CAPS, KC_PGUP, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END \ + ), + +/* Fn + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | |QWERTYEX| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE | RESET | + * | | | | | | | | | | | | | | | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | QWERTY | HOME | UP | END | PGUP | | | | INS | | Print | | | DELETE | + * | | | | | | | | | | | Screen | | | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | | LEFT | DOWN | RIGHT | PGDN | | | PREV | PLAY | NEXT | | | RGB TOG | + * | | | | | | | | | | | | | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+------------+----+ + * | | Rainbow| Xmas | Swirl | Knight |Breathe |GradieNt| MUTE | VOL DN | VOL UP | PIPE \ | CAPS LOCK | PAGEUP | Fn | + * | | | | | | | | | | | | | | | + * |----------+----------+----------+---------------------------------------------------------+--------+--------+----------------+--------+--------+ + * | | | | Fn | ENTER | NUM.Dot | | | | HOME | PAGEDN | END | + * | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ + */ + + [_EXTRA] = LAYOUT( + QK_BOOT, QWERTYX, 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, \ + QWERTY, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_DEL, \ + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, RGB_TOG, \ + KC_TRNS, RGB_M_R, RGB_M_X, RGB_M_SW,RGB_M_K, RGB_M_B, RGB_M_G, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, KC_CAPS, KC_PGUP, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END \ + ), + +/* Fn + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | |QWERTYX | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE | RESET | + * | | | | | | | | | | | | | | | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | QWERTY | HOME | UP | END | PGUP | | | | INS | | Print | | | DELETE | + * | | | | | | | | | | | Screen | | | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | | LEFT | DOWN | RIGHT | PGDN | | | PREV | PLAY | NEXT | | | RGB TOG | + * | | | | | | | | | | | | | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+------------+----+ + * | | Rainbow| Xmas | Swirl | Knight |Breathe |GradieNt| MUTE | VOL DN | VOL UP | PIPE \ | CAPS LOCK | PAGEUP | Fn | + * | | | | | | | | | | | | | | E2 | + * |----------+----------+----------+---------------------------------------------------------+--------+--------+----------------+--------+--------+ + * | | | | Fn | ENTER | NUM.Dot | | | | HOME | PAGEDN | END | + * | E3 | | | | E3 | | | | E2 | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ + */ +}; + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_QWERTYX] = { ENCODER_CCW_CW(C(KC_TAB), C(S(KC_TAB))), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [_FUNCTION] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [_EXTRA] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) }, +}; +#endif + + + + /* Encoder Positions + * .-----------------------------------------------------------------------------------------------------------------------------------------------+ + * | | | | | | | | | | | | | | | | | + * | E1 | | | | | | | | | | | | | | | | + * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + * | | | | | | | | | | | | | | | + * | | | | | | | | | | | | | | | + * +---------------+--------+--------+--------+--------+------- +--------+--------+--------+--------+--------+--------|--------+-------------+ + * | | | | | | | | | | | | | | + * | | | | | | | | | | | | | | + * +-----------------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------+-------+------------+----+ + * | | | | | | | | | | | | | | | + * | | | | | | | | | | | | | | E2 | + * |----------+----------+----------+---------------------------------------------------------+--------+--------+----------------+--------+--------+ + * | | | | | | | | | | | | | + * | E3 | | | | E3 | | | | E2 | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------+--------+ + */ \ No newline at end of file diff --git a/keyboards/kradoindustries/krado66/keymaps/via/rules.mk b/keyboards/kradoindustries/krado66/keymaps/via/rules.mk new file mode 100644 index 00000000000..8111cb54a73 --- /dev/null +++ b/keyboards/kradoindustries/krado66/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes + diff --git a/keyboards/kradoindustries/krado66/readme.md b/keyboards/kradoindustries/krado66/readme.md new file mode 100644 index 00000000000..7b8a275ee40 --- /dev/null +++ b/keyboards/kradoindustries/krado66/readme.md @@ -0,0 +1,30 @@ +# Krado66 + +![Photo](https://i.imgur.com/Du3bBT9h.jpg) + +The Krado66 is a 65%ish ortholinear keyboard the uses standard 65% layout keycaps. It can also be configured to accept standard ANSI keycaps (Full 2.75u Right Shift and 1.25u bottom modifiers.) + +For those that are wondering, "Krado" means "grid" in Esperanto. The board has 66 keys in its default layout. + +* Keyboard Maintainer: [Feags](https://github.com/Feags) / [Krado Industries](https://kradoindustries.com/) +* Hardware Supported: Only Krado66 acrylic case and skeleton cases are supported. +* Hardware Availabilitiy: [Krado Industries](https://kradoindustries.com/) + +Make example for this keyboard (after setting up your build environment): + + make kradoindustries/krado66:default + +Flashing example for this keyboard: + + make kradoindustries/krado66:default:flash + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/kradoindustries/krado66/rules.mk b/keyboards/kradoindustries/krado66/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/kradoindustries/krado66/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/kradoindustries/promenade/info.json b/keyboards/kradoindustries/promenade/info.json new file mode 100644 index 00000000000..a4d47b34f35 --- /dev/null +++ b/keyboards/kradoindustries/promenade/info.json @@ -0,0 +1,123 @@ +{ + "keyboard_name": "Promenade", + "manufacturer": "krado industries", + "url": "https://www.kradoindustries.com/", + "maintainer": "Krado Industries", + "usb": { + "vid": "0x4B72", + "pid": "0x706D", + "device_version": "1.0.0" + }, + + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgblight": true + }, + "ws2812": { + "pin": "B7" + }, + "rgblight": { + "led_count": 14, + "sleep": true, + "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 + } + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "F4", "C7", "D7", "B4", "B5", "B6", "C6", "D6", "D4", "D5", "D3", "D2", "D1", "D0"], + "rows": [ "F1", "F5", "E6", "F7", "F6"] + }, + + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "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.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0, 10], "x":10.5, "y":0}, + {"matrix": [0, 11], "x":11.5, "y":0}, + {"matrix": [0, 12], "x":12.5, "y":0}, + {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + {"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, "h":1.5}, + {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, + {"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, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [2, 9], "x":9.5, "y":2}, + {"matrix": [2, 10], "x":10.5, "y":2}, + {"matrix": [2, 11], "x":11.5, "y":2}, + {"matrix": [2, 12], "x":12.5, "y":2}, + {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, + {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, + {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3}, + {"matrix": [3, 2], "x":2.5, "y":3}, + {"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, 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.5}, + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4}, + {"matrix": [4, 2], "x":2.5, "y":4}, + {"matrix": [4, 3], "x":3.5, "y":4}, + {"matrix": [4, 4], "x":4.5, "y":4}, + {"matrix": [4, 5], "x":5.5, "y":4}, + {"matrix": [4, 6], "x":6.5, "y":4, "w":2}, + {"matrix": [4, 8], "x":8.5, "y":4}, + {"matrix": [4, 9], "x":9.5, "y":4}, + {"matrix": [4, 10], "x":10.5, "y":4}, + {"matrix": [4, 11], "x":11.5, "y":4}, + {"matrix": [4, 12], "x":12.5, "y":4}, + {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} + + ] + } + } +} diff --git a/keyboards/kradoindustries/promenade/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade/keymaps/default/keymap.c new file mode 100644 index 00000000000..42e606c149e --- /dev/null +++ b/keyboards/kradoindustries/promenade/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +/* +Copyright 2023 Matt F +This 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_names { + _BASE, + _FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | CAP LK | A | S | D | F | G | | | H | J | K | L | ; | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LSHIFT | Z | X | C | V | B | END | PG DN | N | M | , | . | / | RSHIFT | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | LGUI | FN | LALT | SPACE | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL + ), + + /* Function Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | Home | Up | End | PgUp | | | | | | | | PRT SC | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | Left | Down | Right | PgDn | | | | | | | | | Reset | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | | | | | | | | MUTE | VOL DN | VOL UP | \ | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | | | | | | | Reset | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_FN] = 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_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/kradoindustries/promenade/keymaps/via/keymap.c b/keyboards/kradoindustries/promenade/keymaps/via/keymap.c new file mode 100644 index 00000000000..8797471b4ca --- /dev/null +++ b/keyboards/kradoindustries/promenade/keymaps/via/keymap.c @@ -0,0 +1,66 @@ +/* +Copyright 2023 Matt F +This 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_names { + _BASE, + _FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | CAP LK | A | S | D | F | G | | | H | J | K | L | ; | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LSHIFT | Z | X | C | V | B | END | PG DN | N | M | , | . | / | RSHIFT | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | LGUI | FN | LALT | SPACE | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL + ), + + /* Function Layer + * .-----------------------------------------------------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | Home | Up | End | PgUp | | | | | | | | PRT SC | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | Left | Down | Right | PgDn | | | | | | | | | Reset | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | | | | | | | | MUTE | VOL DN | VOL UP | \ | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | | | | | | | Reset | + * '-----------------------------------------------------------------------------------------------------------------------------' + */ + [_FN] = 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_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/kradoindustries/promenade/keymaps/via/rules.mk b/keyboards/kradoindustries/promenade/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/kradoindustries/promenade/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kradoindustries/promenade/readme.md b/keyboards/kradoindustries/promenade/readme.md new file mode 100644 index 00000000000..179563995cf --- /dev/null +++ b/keyboards/kradoindustries/promenade/readme.md @@ -0,0 +1,30 @@ +# Promenade + +![Promenade](https://i.imgur.com/VXlXflth.jpg) + +The Promenade is a 60% ortholinear hotswap keyboard based on the split hand layout of the [Boardwalk](https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardwalk). While similar to the Professional 2 hotswap version of the Boardwalk, it uses 1.5u verticle inner mods instead of 1u keys, includes a JST connector, adds stabilizer mounting positions for 6u and split 3u spacebards, and in addition to 60% tray mounting points the pcb has edge cuts for for use in gummy o-ring mount boards like the Bakeneko60. + +The 1.5u vertical inner mods are the default configuration, but the board can be configured to use 3x2 1u keys either by removing the existing hotswap sockets and soldering 6 hotswap sockets to the 1u pads. *Note that the some of the 1u keys may require the plastic legs of 5-pin switches to be trimmed.* + +* Keyboard Maintainer: [Feags](https://github.com/Feags) / [Krado Industries](https://kradoindustries.com/) +* Hardware Supported: Promenade pcb. Many 60% cases. +* Hardware Availability: [Krado Industries](https://kradoindustries.com/) + +Make example for this keyboard (after setting up your build environment): + + make kradoindustries/promenade:default + +Flashing example for this keyboard: + + make kradoindustries/promenade:default:flash + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/kradoindustries/promenade/rules.mk b/keyboards/kradoindustries/promenade/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/kradoindustries/promenade/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/ktec/daisy/config.h b/keyboards/ktec/daisy/config.h index 7928ebcd352..5e90ea1c05b 100644 --- a/keyboards/ktec/daisy/config.h +++ b/keyboards/ktec/daisy/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 8 -# define RGBLIGHT_HUE_STEP 12 -# define RGBLIGHT_SAT_STEP 25 -# define RGBLIGHT_VAL_STEP 12 -// #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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ktec/daisy/info.json b/keyboards/ktec/daisy/info.json index ddd45dae05c..32a289dace2 100644 --- a/keyboards/ktec/daisy/info.json +++ b/keyboards/ktec/daisy/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D0", "levels": 6 }, @@ -21,6 +22,24 @@ "caps_lock": "C6", "on_state": 0 }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/ktec/ergodone/keymaps/vega/keymap.c b/keyboards/ktec/ergodone/keymaps/vega/keymap.c index 8e460d7b4c3..d668f9b41ea 100644 --- a/keyboards/ktec/ergodone/keymaps/vega/keymap.c +++ b/keyboards/ktec/ergodone/keymaps/vega/keymap.c @@ -686,112 +686,112 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MATH] = LAYOUT_ergodox( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, - KC_TAB, X(Mc), X(Munion), X(arwl), X(or), X(exists), KC_BSLS, - X(arwr), X(root), X(and), X(imply), X(nexists), X(forall), - SC_LSPO, KC_SCLN, X(intgrl), X(Mn), X(Mz), X(member), X(arwl), + KC_TAB, UM(Mc), UM(Munion), UM(arwl), UM(or), UM(exists), KC_BSLS, + UM(arwr), UM(root), UM(and), UM(imply), UM(nexists), UM(forall), + SC_LSPO, KC_SCLN, UM(intgrl), UM(Mn), UM(Mz), UM(member), UM(arwl), KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL, KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN, TT(FNLR), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_PGUP, X(plsminus), X(infin), X(neleof), X(equiv), X(Mq), KC_EQL, - X(sum), X(emtyset), X(porp), X(suprsetof), X(not), X(neq), - KC_PGDN, X(subsetof), X(intersection), X(angl), X(nmember), X(eleof), SC_RSPC, + KC_PGUP, UM(plsminus), UM(infin), UM(neleof), UM(equiv), UM(Mq), KC_EQL, + UM(sum), UM(emtyset), UM(porp), UM(suprsetof), UM(not), UM(neq), + KC_PGDN, UM(subsetof), UM(intersection), UM(angl), UM(nmember), UM(eleof), SC_RSPC, KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE), KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC ), [SYMB] = LAYOUT_ergodox( - X(Os), X(Oa), X(Ob), X(Oc), X(Od), X(Oe), X(mdot), - X(boxemp), X(bbstr), X(bbrtr), X(bbrtl), X(bbstl), X(degree), X(brkdn), - X(boxchk), X(bbmbl), X(bbml), X(bbmr), X(bbmbr), X(neteen), - X(boxX), X(bbsbr), X(bbrbr), X(bbrbl), X(bbsbl), X(uxclm), X(brkup), - X(floppy), TO(BASE), TO(BASE), X(arwu), X(arwd), - X(fire), X(lshade), X(mshade), KC_SPC, X(OS), X(dshade), - - X(Ox), X(Of), X(Og), X(Oh), X(Oi), X(OA), X(OB), - X(numero), X(trade), X(copy), X(cleft), X(cent), X(OED), X(OC), - X(Agrave), X(gnd), X(sqr), X(sine), X(opt), X(OD), - X(sect), X(Aacute), X(Acircm), X(Adiaer), X(Abreve), X(Atilde), X(OE), - X(arwl), X(arwr), X(geq), X(leq), X(OF), - X(rang), X(water), X(perup), X(perdn), X(baster), KC_ENT + UM(Os), UM(Oa), UM(Ob), UM(Oc), UM(Od), UM(Oe), UM(mdot), + UM(boxemp), UM(bbstr), UM(bbrtr), UM(bbrtl), UM(bbstl), UM(degree), UM(brkdn), + UM(boxchk), UM(bbmbl), UM(bbml), UM(bbmr), UM(bbmbr), UM(neteen), + UM(boxX), UM(bbsbr), UM(bbrbr), UM(bbrbl), UM(bbsbl), UM(uxclm), UM(brkup), + UM(floppy), TO(BASE), TO(BASE), UM(arwu), UM(arwd), + UM(fire), UM(lshade), UM(mshade), KC_SPC, UM(OS), UM(dshade), + + UM(Ox), UM(Of), UM(Og), UM(Oh), UM(Oi), UM(OA), UM(OB), + UM(numero), UM(trade), UM(copy), UM(cleft), UM(cent), UM(OED), UM(OC), + UM(Agrave), UM(gnd), UM(sqr), UM(sine), UM(opt), UM(OD), + UM(sect), UM(Aacute), UM(Acircm), UM(Adiaer), UM(Abreve), UM(Atilde), UM(OE), + UM(arwl), UM(arwr), UM(geq), UM(leq), UM(OF), + UM(rang), UM(water), UM(perup), UM(perdn), UM(baster), KC_ENT ), [GREL] = LAYOUT_ergodox( - KC_ESC, X(Rone), X(Rtwo), X(Rthree), X(Rfour), X(Rfive), KC_GRV, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, X(gp), X(gy), KC_SLSH, - KC_SLSH, X(ga), X(go), X(ge), X(gu), X(gi), - MO(GREU), KC_SCLN, X(gq), X(gj), X(gk), X(gx), KC_AMPR, + KC_ESC, UM(Rone), UM(Rtwo), UM(Rthree), UM(Rfour), UM(Rfive), KC_GRV, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(gp), UM(gy), KC_SLSH, + KC_SLSH, UM(ga), UM(go), UM(ge), UM(gu), UM(gi), + MO(GREU), KC_SCLN, UM(gq), UM(gj), UM(gk), UM(gx), KC_AMPR, KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL, KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN, - TO(BASE), X(Rsix), X(Rseven), X(Reight), X(Rnine), X(Rten), KC_BSPC, - KC_PGUP, X(gf), X(gg), X(gc), X(gr), X(gl), KC_EQL, - X(gd), X(gh), X(gt), X(gn), X(gs), KC_MINS, - KC_PGDN, X(gb), X(gm), X(gw), X(gv), X(gz), MO(GREU), + TO(BASE), UM(Rsix), UM(Rseven), UM(Reight), UM(Rnine), UM(Rten), KC_BSPC, + KC_PGUP, UM(gf), UM(gg), UM(gc), UM(gr), UM(gl), KC_EQL, + UM(gd), UM(gh), UM(gt), UM(gn), UM(gs), KC_MINS, + KC_PGDN, UM(gb), UM(gm), UM(gw), UM(gv), UM(gz), MO(GREU), KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE), KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC ), [GREU] = LAYOUT_ergodox( - KC_ESC, X(Rone), X(Rtwo), X(Rthree), X(Rfour), X(Rfive), KC_GRV, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, X(Gp), X(Gy), KC_SLSH, - KC_SLSH, X(Ga), X(Go), X(Ge), X(Gu), X(Gi), - KC_TRNS, KC_SCLN, X(Gq), X(Gj), X(Gk), X(Gx), KC_AMPR, + KC_ESC, UM(Rone), UM(Rtwo), UM(Rthree), UM(Rfour), UM(Rfive), KC_GRV, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(Gp), UM(Gy), KC_SLSH, + KC_SLSH, UM(Ga), UM(Go), UM(Ge), UM(Gu), UM(Gi), + KC_TRNS, KC_SCLN, UM(Gq), UM(Gj), UM(Gk), UM(Gx), KC_AMPR, KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL, KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN, - TO(BASE), X(Rsix), X(Rseven), X(Reight), X(Rnine), X(Rten), KC_BSPC, - KC_PGUP, X(Gf), X(Gg), X(Gc), X(Gr), X(Gl), KC_EQL, - X(Gd), X(Gh), X(Gt), X(Gn), X(Gs), KC_MINS, - KC_PGDN, X(Gb), X(Gm), X(Gw), X(Gv), X(Gz), KC_TRNS, + TO(BASE), UM(Rsix), UM(Rseven), UM(Reight), UM(Rnine), UM(Rten), KC_BSPC, + KC_PGUP, UM(Gf), UM(Gg), UM(Gc), UM(Gr), UM(Gl), KC_EQL, + UM(Gd), UM(Gh), UM(Gt), UM(Gn), UM(Gs), KC_MINS, + KC_PGDN, UM(Gb), UM(Gm), UM(Gw), UM(Gv), UM(Gz), KC_TRNS, KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE), KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC ), [TINY] = LAYOUT_ergodox( - KC_ESC, X(tone), X(ttwo), X(tthree), X(tfour), X(tfive), KC_GRV, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, X(tp), X(ty), KC_SLSH, - KC_SLSH, X(ta), X(to), X(te), X(tu), X(ti), - KC_TRNS, KC_SCLN, X(tq), X(tj), X(tk), X(tx), KC_AMPR, + KC_ESC, UM(tone), UM(ttwo), UM(tthree), UM(tfour), UM(tfive), KC_GRV, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(tp), UM(ty), KC_SLSH, + KC_SLSH, UM(ta), UM(to), UM(te), UM(tu), UM(ti), + KC_TRNS, KC_SCLN, UM(tq), UM(tj), UM(tk), UM(tx), KC_AMPR, KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL, KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN, - TO(BASE), X(tsix), X(tseven), X(teight), X(tnine), X(tzero), KC_BSPC, - KC_PGUP, X(tf), X(tg), X(tc), X(tr), X(tl), KC_EQL, - X(td), X(th), X(tt), X(tn), X(ts), KC_MINS, - KC_PGDN, X(tb), X(tm), X(tw), X(tv), X(tz), KC_TRNS, + TO(BASE), UM(tsix), UM(tseven), UM(teight), UM(tnine), UM(tzero), KC_BSPC, + KC_PGUP, UM(tf), UM(tg), UM(tc), UM(tr), UM(tl), KC_EQL, + UM(td), UM(th), UM(tt), UM(tn), UM(ts), KC_MINS, + KC_PGDN, UM(tb), UM(tm), UM(tw), UM(tv), UM(tz), KC_TRNS, KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE), KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC ), [FULL] = LAYOUT_ergodox( - KC_ESC, X(fwone), X(fwtwo), X(fwthree), X(fwfour), X(fwfive), KC_GRV, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, X(fwp), X(fwy), KC_SLSH, - KC_SLSH, X(fwa), X(fwo), X(fwe), X(fwu), X(fwi), - MO(FULU), KC_SCLN, X(fwq), X(fwj), X(fwk), X(fwx), KC_AMPR, + KC_ESC, UM(fwone), UM(fwtwo), UM(fwthree), UM(fwfour), UM(fwfive), KC_GRV, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(fwp), UM(fwy), KC_SLSH, + KC_SLSH, UM(fwa), UM(fwo), UM(fwe), UM(fwu), UM(fwi), + MO(FULU), KC_SCLN, UM(fwq), UM(fwj), UM(fwk), UM(fwx), KC_AMPR, KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL, KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN, - TO(BASE), X(fwsix), X(fwseven), X(fweight), X(fwnine), X(fwzero), KC_BSPC, - KC_PGUP, X(fwf), X(fwg), X(fwc), X(fwr), X(fwl), KC_EQL, - X(fwd), X(fwh), X(fwt), X(fwn), X(fws), KC_MINS, - KC_PGDN, X(fwb), X(fwm), X(fww), X(fwv), X(fwz), MO(FULU), + TO(BASE), UM(fwsix), UM(fwseven), UM(fweight), UM(fwnine), UM(fwzero), KC_BSPC, + KC_PGUP, UM(fwf), UM(fwg), UM(fwc), UM(fwr), UM(fwl), KC_EQL, + UM(fwd), UM(fwh), UM(fwt), UM(fwn), UM(fws), KC_MINS, + KC_PGDN, UM(fwb), UM(fwm), UM(fww), UM(fwv), UM(fwz), MO(FULU), KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE), KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC ), [FULU] = LAYOUT_ergodox( - KC_ESC, X(Fwone), X(Fwtwo), X(Fwthree), X(Fwfour), X(Fwfive), KC_GRV, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, X(Fwp), X(Fwy), KC_SLSH, - KC_SLSH, X(Fwa), X(Fwo), X(Fwe), X(Fwu), X(Fwi), - KC_TRNS, KC_SCLN, X(Fwq), X(Fwj), X(Fwk), X(Fwx), KC_AMPR, + KC_ESC, UM(Fwone), UM(Fwtwo), UM(Fwthree), UM(Fwfour), UM(Fwfive), KC_GRV, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(Fwp), UM(Fwy), KC_SLSH, + KC_SLSH, UM(Fwa), UM(Fwo), UM(Fwe), UM(Fwu), UM(Fwi), + KC_TRNS, KC_SCLN, UM(Fwq), UM(Fwj), UM(Fwk), UM(Fwx), KC_AMPR, KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL, KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN, - TO(BASE), X(Fwsix), X(Fwseven), X(Fweight), X(Fwnine), X(Fwzero), KC_BSPC, - KC_PGUP, X(Fwf), X(Fwg), X(Fwc), X(Fwr), X(Fwl), KC_EQL, - X(Fwd), X(Fwh), X(Fwt), X(Fwn), X(Fws), KC_MINS, - KC_PGDN, X(Fwb), X(Fwm), X(Fww), X(Fwv), X(Fwz), KC_TRNS, + TO(BASE), UM(Fwsix), UM(Fwseven), UM(Fweight), UM(Fwnine), UM(Fwzero), KC_BSPC, + KC_PGUP, UM(Fwf), UM(Fwg), UM(Fwc), UM(Fwr), UM(Fwl), KC_EQL, + UM(Fwd), UM(Fwh), UM(Fwt), UM(Fwn), UM(Fws), KC_MINS, + KC_PGDN, UM(Fwb), UM(Fwm), UM(Fww), UM(Fwv), UM(Fwz), KC_TRNS, KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE), KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC ), diff --git a/keyboards/ktec/staryu/config.h b/keyboards/ktec/staryu/config.h deleted file mode 100755 index 31f2930ac17..00000000000 --- a/keyboards/ktec/staryu/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2018 Cole Markham - -This 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 RGBLED_NUM 1 // Number of LEDs -#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/ktec/staryu/info.json b/keyboards/ktec/staryu/info.json index 3600de0c358..ec29a53168f 100644 --- a/keyboards/ktec/staryu/info.json +++ b/keyboards/ktec/staryu/info.json @@ -9,6 +9,7 @@ "device_version": "2.0.5" }, "backlight": { + "driver": "timer", "pins": ["C2", "C7", "D5", "D6", "B0"], "levels": 10 }, @@ -19,7 +20,20 @@ "pin": "C6" }, "rgblight": { - "max_brightness": 200 + "led_count": 1, + "max_brightness": 200, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u2", "bootloader": "lufa-dfu", diff --git a/keyboards/kudox/columner/config.h b/keyboards/kudox/columner/config.h index 7506090b1ed..04bc8cb2d21 100644 --- a/keyboards/kudox/columner/config.h +++ b/keyboards/kudox/columner/config.h @@ -21,22 +21,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 14 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/kudox/columner/info.json b/keyboards/kudox/columner/info.json index 7c106b14484..5f7d4444114 100644 --- a/keyboards/kudox/columner/info.json +++ b/keyboards/kudox/columner/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kudox/rev1/config.h b/keyboards/kudox/rev1/config.h index 80ac84c64fa..666cb49b2e4 100644 --- a/keyboards/kudox/rev1/config.h +++ b/keyboards/kudox/rev1/config.h @@ -21,22 +21,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 14 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/kudox/rev1/info.json b/keyboards/kudox/rev1/info.json index efb55bb9895..52579e1c431 100644 --- a/keyboards/kudox/rev1/info.json +++ b/keyboards/kudox/rev1/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kudox/rev2/config.h b/keyboards/kudox/rev2/config.h index 80ac84c64fa..666cb49b2e4 100644 --- a/keyboards/kudox/rev2/config.h +++ b/keyboards/kudox/rev2/config.h @@ -21,22 +21,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 14 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/kudox/rev2/info.json b/keyboards/kudox/rev2/info.json index 9dab738c388..98cb6bb4319 100644 --- a/keyboards/kudox/rev2/info.json +++ b/keyboards/kudox/rev2/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kudox/rev3/config.h b/keyboards/kudox/rev3/config.h index 7506090b1ed..04bc8cb2d21 100644 --- a/keyboards/kudox/rev3/config.h +++ b/keyboards/kudox/rev3/config.h @@ -21,22 +21,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 14 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/kudox/rev3/info.json b/keyboards/kudox/rev3/info.json index a7e73c84ae7..35144cc25a1 100644 --- a/keyboards/kudox/rev3/info.json +++ b/keyboards/kudox/rev3/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kudox_full/rev1/config.h b/keyboards/kudox_full/rev1/config.h index 84d08bce543..f1dcbbcf3df 100644 --- a/keyboards/kudox_full/rev1/config.h +++ b/keyboards/kudox_full/rev1/config.h @@ -8,19 +8,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 14 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/kudox_full/rev1/info.json b/keyboards/kudox_full/rev1/info.json index 45958b56c99..673fda9acfc 100644 --- a/keyboards/kudox_full/rev1/info.json +++ b/keyboards/kudox_full/rev1/info.json @@ -16,6 +16,20 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kudox_game/rev1/config.h b/keyboards/kudox_game/rev1/config.h index 5fddd8102a2..b0b9607f4bb 100644 --- a/keyboards/kudox_game/rev1/config.h +++ b/keyboards/kudox_game/rev1/config.h @@ -22,22 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 7 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/kudox_game/rev1/info.json b/keyboards/kudox_game/rev1/info.json index 7868308eadb..e5c39fce316 100644 --- a/keyboards/kudox_game/rev1/info.json +++ b/keyboards/kudox_game/rev1/info.json @@ -2,6 +2,23 @@ "usb": { "device_version": "1.0.0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kudox_game/rev2/config.h b/keyboards/kudox_game/rev2/config.h index 7b6ef67bd97..37fde915999 100644 --- a/keyboards/kudox_game/rev2/config.h +++ b/keyboards/kudox_game/rev2/config.h @@ -22,22 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 7 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/kudox_game/rev2/info.json b/keyboards/kudox_game/rev2/info.json index 4a441b73855..e811c70d5ba 100644 --- a/keyboards/kudox_game/rev2/info.json +++ b/keyboards/kudox_game/rev2/info.json @@ -2,6 +2,23 @@ "usb": { "device_version": "2.0.0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/kuro/kuro65/info.json b/keyboards/kuro/kuro65/info.json index eacb0a3ce67..c91a34f55c8 100644 --- a/keyboards/kuro/kuro65/info.json +++ b/keyboards/kuro/kuro65/info.json @@ -115,7 +115,7 @@ } }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [4, 6], "x": 96, "y": 64}, {"flags": 1, "matrix": [4, 10], "x": 150, "y": 64}, diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk index cfdb94059ba..0a6437f0ef1 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk +++ b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk @@ -1,2 +1,2 @@ RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 \ No newline at end of file +RGB_MATRIX_DRIVER = ws2812 \ No newline at end of file diff --git a/keyboards/labyrinth75/config.h b/keyboards/labyrinth75/config.h index 8ff700ade82..92a3858433b 100644 --- a/keyboards/labyrinth75/config.h +++ b/keyboards/labyrinth75/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 6 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/labyrinth75/info.json b/keyboards/labyrinth75/info.json index 797627865e3..49b84b280a3 100644 --- a/keyboards/labyrinth75/info.json +++ b/keyboards/labyrinth75/info.json @@ -16,6 +16,21 @@ "bootmagic": { "matrix": [0, 2] }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/laser_ninja/pumpkin_pad/info.json b/keyboards/laser_ninja/pumpkin_pad/info.json index 9b11f873a1c..cb76145388e 100644 --- a/keyboards/laser_ninja/pumpkin_pad/info.json +++ b/keyboards/laser_ninja/pumpkin_pad/info.json @@ -46,7 +46,7 @@ } }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 36, "y": 3}, {"flags": 2, "x": 86, "y": 2}, diff --git a/keyboards/late9/rev1/config.h b/keyboards/late9/rev1/config.h index e6fcd30ebea..8c9a5702f26 100644 --- a/keyboards/late9/rev1/config.h +++ b/keyboards/late9/rev1/config.h @@ -16,8 +16,5 @@ along with this program. If not, see . */ #pragma once -/* Tap interval for tap dance */ -#define TAPPING_TERM 400 - /* Oneshot interval */ #define ONESHOT_TIMEOUT 5000 diff --git a/keyboards/late9/rev1/info.json b/keyboards/late9/rev1/info.json index 7d3a710bc54..05d0934b964 100644 --- a/keyboards/late9/rev1/info.json +++ b/keyboards/late9/rev1/info.json @@ -8,6 +8,12 @@ "pid": "0x3777", "device_version": "0.1.0" }, + "tapping": { + "term": 400 + }, + "build": { + "debounce_type": "sym_eager_pk" + }, "matrix_pins": { "cols": ["B5", "C6", "D4"], "rows": ["B4", "E6", "D7", "B3", "B2", "B6"] diff --git a/keyboards/late9/rev1/rules.mk b/keyboards/late9/rev1/rules.mk index 82d5e4237f8..874033acc90 100644 --- a/keyboards/late9/rev1/rules.mk +++ b/keyboards/late9/rev1/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -DEBOUNCE_TYPE = sym_eager_pk diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h index 8b647046387..7908e4cecab 100644 --- a/keyboards/latincompass/latin17rgb/config.h +++ b/keyboards/latincompass/latin17rgb/config.h @@ -85,18 +85,3 @@ # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 5 -#define RGBLIGHT_SAT_STEP 5 -#define RGBLIGHT_VAL_STEP 5 -#define RGBLIGHT_SLEEP diff --git a/keyboards/latincompass/latin17rgb/info.json b/keyboards/latincompass/latin17rgb/info.json index 7a5a6fbb6d2..9b466c216a2 100644 --- a/keyboards/latincompass/latin17rgb/info.json +++ b/keyboards/latincompass/latin17rgb/info.json @@ -8,11 +8,30 @@ "pid": "0x7C97", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 5, + "saturation_steps": 5, + "brightness_steps": 5, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4"], diff --git a/keyboards/latincompass/latin47ble/config.h b/keyboards/latincompass/latin47ble/config.h index 6068bc87d91..4551532bfa7 100644 --- a/keyboards/latincompass/latin47ble/config.h +++ b/keyboards/latincompass/latin47ble/config.h @@ -16,24 +16,6 @@ #pragma once - #define RGBLED_NUM 3 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -// #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 -#define RGBLIGHT_EFFECT_TWINKLE - -#define TAPPING_TERM 250 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -54,5 +36,3 @@ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define VIA_HAS_BROKEN_KEYCODES diff --git a/keyboards/latincompass/latin47ble/info.json b/keyboards/latincompass/latin47ble/info.json index b9a9b7eb952..64ab0bd85c9 100644 --- a/keyboards/latincompass/latin47ble/info.json +++ b/keyboards/latincompass/latin47ble/info.json @@ -13,6 +13,29 @@ "rows": ["D0", "D1", "D2", "D3"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 3, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "tapping": { + "term": 250 + }, + "bluetooth": { + "driver": "bluefruit_le" + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/latincompass/latin47ble/rules.mk b/keyboards/latincompass/latin47ble/rules.mk index 77af9dc3dac..1c65d3584ea 100644 --- a/keyboards/latincompass/latin47ble/rules.mk +++ b/keyboards/latincompass/latin47ble/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/latincompass/latin60rgb/info.json b/keyboards/latincompass/latin60rgb/info.json index 3c32ccf76bf..f11f6ac3d5d 100644 --- a/keyboards/latincompass/latin60rgb/info.json +++ b/keyboards/latincompass/latin60rgb/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "E6", "B0", "B1", "B2", "B3", "D6", "D4", "D3"], diff --git a/keyboards/latincompass/latin64ble/config.h b/keyboards/latincompass/latin64ble/config.h index 326f4795c00..1f8c7a49a0f 100644 --- a/keyboards/latincompass/latin64ble/config.h +++ b/keyboards/latincompass/latin64ble/config.h @@ -15,21 +15,4 @@ along with this program. If not, see .*/ #pragma once -#define RGBLED_NUM 2 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM - -#define RGBLIGHT_VAL_STEP 25 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 20 -#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 VIA_HAS_BROKEN_KEYCODES diff --git a/keyboards/latincompass/latin64ble/info.json b/keyboards/latincompass/latin64ble/info.json index d59a5fb02c5..cce49aea054 100644 --- a/keyboards/latincompass/latin64ble/info.json +++ b/keyboards/latincompass/latin64ble/info.json @@ -8,6 +8,25 @@ "pid": "0x6C71", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, + "rgblight": { + "brightness_steps": 25, + "led_count": 2, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/latincompass/latin64ble/rules.mk b/keyboards/latincompass/latin64ble/rules.mk index 5fdb1567a42..6ad854a5a2b 100644 --- a/keyboards/latincompass/latin64ble/rules.mk +++ b/keyboards/latincompass/latin64ble/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/latincompass/latin6rgb/info.json b/keyboards/latincompass/latin6rgb/info.json index dd7cfc232d2..0c43da36e47 100644 --- a/keyboards/latincompass/latin6rgb/info.json +++ b/keyboards/latincompass/latin6rgb/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["F7", "F6", "F5"], diff --git a/keyboards/latincompass/latinpad/config.h b/keyboards/latincompass/latinpad/config.h index d166baebc7d..35e52a8fc4e 100644 --- a/keyboards/latincompass/latinpad/config.h +++ b/keyboards/latincompass/latinpad/config.h @@ -16,10 +16,7 @@ along with this program. If not, see .*/ #pragma once -#define SSD1306OLED - -#define RGBLED_NUM 18 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 18 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects @@ -53,20 +50,20 @@ along with this program. If not, see .*/ #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// #define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_SPLASH +// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define OLED_FONT_H "./lib/glcdfont.c" diff --git a/keyboards/latincompass/latinpad/info.json b/keyboards/latincompass/latinpad/info.json index 3705550a601..6c54145723f 100644 --- a/keyboards/latincompass/latinpad/info.json +++ b/keyboards/latincompass/latinpad/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6"], diff --git a/keyboards/latincompass/latinpad/rules.mk b/keyboards/latincompass/latinpad/rules.mk index 4d41664e3ce..c6959a65903 100644 --- a/keyboards/latincompass/latinpad/rules.mk +++ b/keyboards/latincompass/latinpad/rules.mk @@ -11,6 +11,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no RGBLIGHT_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes RGB_MATRIX_ENABLE = yes diff --git a/keyboards/latincompass/latinpadble/info.json b/keyboards/latincompass/latinpadble/info.json index 70575f7381e..fe35f74e794 100644 --- a/keyboards/latincompass/latinpadble/info.json +++ b/keyboards/latincompass/latinpadble/info.json @@ -50,7 +50,7 @@ } }, "bluetooth": { - "driver": "BluefruitLE" + "driver": "bluefruit_le" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/lazydesigners/bolt/config.h b/keyboards/lazydesigners/bolt/config.h deleted file mode 100644 index 218631d1d51..00000000000 --- a/keyboards/lazydesigners/bolt/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2020 LAZYDESIGNERS - -This 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 - -/* RBG underglow */ -#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_SLEEP - #define RGBLED_NUM 13 - /* #define RGBLIGHT_HUE_STEP 8 */ - /* #define RGBLIGHT_SAT_STEP 8 */ - /* #define RGBLIGHT_VAL_STEP 8 */ diff --git a/keyboards/lazydesigners/bolt/info.json b/keyboards/lazydesigners/bolt/info.json index a12226cf51b..8319972abda 100644 --- a/keyboards/lazydesigners/bolt/info.json +++ b/keyboards/lazydesigners/bolt/info.json @@ -8,6 +8,22 @@ "pid": "0x0041", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 13, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/lazydesigners/cassette8/config.h b/keyboards/lazydesigners/cassette8/config.h deleted file mode 100755 index 23284233ef4..00000000000 --- a/keyboards/lazydesigners/cassette8/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2021 LAZYDESIGNERS - * - * This 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 - -/* RBG underglow */ -#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_SLEEP - #define RGBLED_NUM 15 - /* #define RGBLIGHT_HUE_STEP 8 */ - /* #define RGBLIGHT_SAT_STEP 8 */ - /* #define RGBLIGHT_VAL_STEP 8 */ diff --git a/keyboards/lazydesigners/cassette8/info.json b/keyboards/lazydesigners/cassette8/info.json index d01080fabfc..c801c1352ea 100755 --- a/keyboards/lazydesigners/cassette8/info.json +++ b/keyboards/lazydesigners/cassette8/info.json @@ -8,6 +8,22 @@ "pid": "0x0008", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 15, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C2" }, diff --git a/keyboards/lazydesigners/dimple/config.h b/keyboards/lazydesigners/dimple/config.h index 0dc7502eacd..5a7ea57b432 100644 --- a/keyboards/lazydesigners/dimple/config.h +++ b/keyboards/lazydesigners/dimple/config.h @@ -22,20 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* RBG underglow */ -#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_SLEEP - #define RGBLED_NUM 50 - /* #define RGBLIGHT_HUE_STEP 8 */ - /* #define RGBLIGHT_SAT_STEP 8 */ - /* #define RGBLIGHT_VAL_STEP 8 */ diff --git a/keyboards/lazydesigners/dimple/ortho/info.json b/keyboards/lazydesigners/dimple/ortho/info.json index fc23ad45c59..7328cfca79e 100644 --- a/keyboards/lazydesigners/dimple/ortho/info.json +++ b/keyboards/lazydesigners/dimple/ortho/info.json @@ -13,6 +13,22 @@ "rows": ["D0", "D1", "D2", "D3"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 50, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/lazydesigners/dimple/staggered/info.json b/keyboards/lazydesigners/dimple/staggered/info.json index 1ffe78fc5c9..66dea6414a5 100644 --- a/keyboards/lazydesigners/dimple/staggered/info.json +++ b/keyboards/lazydesigners/dimple/staggered/info.json @@ -8,6 +8,22 @@ "pid": "0x0040", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 50, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c b/keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c index cdaade987f1..d1917e4aa70 100644 --- a/keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c +++ b/keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c @@ -100,10 +100,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void led_set_user(uint8_t usb_led) { -if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { +if (led_state.caps_lock) { writePinLow(E6); } else { writePinHigh(E6); } + return false; } diff --git a/keyboards/lazydesigners/dimpleplus/config.h b/keyboards/lazydesigners/dimpleplus/config.h deleted file mode 100644 index 828667122d7..00000000000 --- a/keyboards/lazydesigners/dimpleplus/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2020 LAZYDESIGNERS - -This 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 - -/* RBG underglow */ -#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_SLEEP - #define RGBLED_NUM 8 - /* #define RGBLIGHT_HUE_STEP 8 */ - /* #define RGBLIGHT_SAT_STEP 8 */ - /* #define RGBLIGHT_VAL_STEP 8 */ diff --git a/keyboards/lazydesigners/dimpleplus/info.json b/keyboards/lazydesigners/dimpleplus/info.json index 0d47a51f95a..35a40b60ff2 100644 --- a/keyboards/lazydesigners/dimpleplus/info.json +++ b/keyboards/lazydesigners/dimpleplus/info.json @@ -16,6 +16,22 @@ "backlight": { "pin": "B7" }, + "rgblight": { + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/lazydesigners/the40/config.h b/keyboards/lazydesigners/the40/config.h deleted file mode 100644 index 8a326c3ba0c..00000000000 --- a/keyboards/lazydesigners/the40/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright 2020 LAZYDESIGNERS - - This 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 RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/lazydesigners/the40/info.json b/keyboards/lazydesigners/the40/info.json index e7aab1bea36..b87fc9a29dd 100644 --- a/keyboards/lazydesigners/the40/info.json +++ b/keyboards/lazydesigners/the40/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/lazydesigners/the50/config.h b/keyboards/lazydesigners/the50/config.h index 366d9d33258..5f360813239 100644 --- a/keyboards/lazydesigners/the50/config.h +++ b/keyboards/lazydesigners/the50/config.h @@ -5,6 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGBLED_NUM 1 -#define RGBLIGHT_SLEEP diff --git a/keyboards/lazydesigners/the50/info.json b/keyboards/lazydesigners/the50/info.json index f29e8dfe0d8..0c76516e803 100644 --- a/keyboards/lazydesigners/the50/info.json +++ b/keyboards/lazydesigners/the50/info.json @@ -17,6 +17,10 @@ "pin": "B6", "levels": 6 }, + "rgblight": { + "led_count": 1, + "sleep": true + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/lazydesigners/the50/keymaps/default/keymap.c b/keyboards/lazydesigners/the50/keymaps/default/keymap.c index 5d8ea732f6b..61e6ee878c6 100644 --- a/keyboards/lazydesigners/the50/keymaps/default/keymap.c +++ b/keyboards/lazydesigners/the50/keymaps/default/keymap.c @@ -49,11 +49,12 @@ EE_CLR, _______, _______, _______, _______, ) }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { // Turn LED On/Off for Caps Lock - if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { the50_led_on(); } else { the50_led_off(); } + return false; } diff --git a/keyboards/lazydesigners/the50/keymaps/mikethetiger/keymap.c b/keyboards/lazydesigners/the50/keymaps/mikethetiger/keymap.c index 8986fd6c3d7..c384c3c5202 100644 --- a/keyboards/lazydesigners/the50/keymaps/mikethetiger/keymap.c +++ b/keyboards/lazydesigners/the50/keymaps/mikethetiger/keymap.c @@ -69,11 +69,12 @@ EE_CLR, _______, _______, _______, _______, ) }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { // Turn LED On/Off for Caps Lock - if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { the50_led_on(); } else { the50_led_off(); } + return false; } diff --git a/keyboards/lazydesigners/the60/rev2/config.h b/keyboards/lazydesigners/the60/rev2/config.h deleted file mode 100755 index 19bd7fbb1f5..00000000000 --- a/keyboards/lazydesigners/the60/rev2/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright 2021 LAZYDESIGNERS - - This 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 RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/lazydesigners/the60/rev2/info.json b/keyboards/lazydesigners/the60/rev2/info.json index 7a5dce5906e..6070b3a59a2 100755 --- a/keyboards/lazydesigners/the60/rev2/info.json +++ b/keyboards/lazydesigners/the60/rev2/info.json @@ -18,6 +18,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/leafcutterlabs/bigknob/config.h b/keyboards/leafcutterlabs/bigknob/config.h deleted file mode 100644 index d8b9a4fa0be..00000000000 --- a/keyboards/leafcutterlabs/bigknob/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 5 // Number of LEDs diff --git a/keyboards/leafcutterlabs/bigknob/info.json b/keyboards/leafcutterlabs/bigknob/info.json index 1361138549a..4e955777a75 100644 --- a/keyboards/leafcutterlabs/bigknob/info.json +++ b/keyboards/leafcutterlabs/bigknob/info.json @@ -13,6 +13,21 @@ {"pin_a": "D0", "pin_b": "D2"} ] }, + "rgblight": { + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/leeku/finger65/config.h b/keyboards/leeku/finger65/config.h deleted file mode 100644 index 0626eb5d0e6..00000000000 --- a/keyboards/leeku/finger65/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2018 Rasmus Schults - -This 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 RGBLED_NUM 12 diff --git a/keyboards/lefty/rules.mk b/keyboards/lefty/rules.mk index e0d5a4375e5..bbf738e03bb 100644 --- a/keyboards/lefty/rules.mk +++ b/keyboards/lefty/rules.mk @@ -13,6 +13,5 @@ AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 DEFAULT_FOLDER = lefty/rev2 diff --git a/keyboards/lets_split/rev1/config.h b/keyboards/lets_split/rev1/config.h index a7b7c4843e0..0b8941e7760 100644 --- a/keyboards/lets_split/rev1/config.h +++ b/keyboards/lets_split/rev1/config.h @@ -23,8 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 16 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/lets_split/rev1/info.json b/keyboards/lets_split/rev1/info.json index 3c9cea5e5ee..6f00161cd5d 100644 --- a/keyboards/lets_split/rev1/info.json +++ b/keyboards/lets_split/rev1/info.json @@ -14,6 +14,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 16 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h index a30fed60780..0b8941e7760 100644 --- a/keyboards/lets_split/rev2/config.h +++ b/keyboards/lets_split/rev2/config.h @@ -23,8 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 12 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/lets_split/rev2/info.json b/keyboards/lets_split/rev2/info.json index d25e6de6112..8c6d622732f 100644 --- a/keyboards/lets_split/rev2/info.json +++ b/keyboards/lets_split/rev2/info.json @@ -14,6 +14,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/lets_split/sockets/config.h b/keyboards/lets_split/sockets/config.h index 3655ec19c50..dee5c458b22 100644 --- a/keyboards/lets_split/sockets/config.h +++ b/keyboards/lets_split/sockets/config.h @@ -18,8 +18,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 12 // Number of LEDs - /* Audio settings */ #ifdef AUDIO_ENABLE #define AUDIO_PIN C6 // Define this to enable the buzzer diff --git a/keyboards/lets_split/sockets/info.json b/keyboards/lets_split/sockets/info.json index cf716c05070..76972243dc4 100644 --- a/keyboards/lets_split/sockets/info.json +++ b/keyboards/lets_split/sockets/info.json @@ -14,6 +14,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/lfkeyboards/lfk65_hs/config.h b/keyboards/lfkeyboards/lfk65_hs/config.h index ae682e447f4..221eee1bd46 100644 --- a/keyboards/lfkeyboards/lfk65_hs/config.h +++ b/keyboards/lfkeyboards/lfk65_hs/config.h @@ -1,24 +1,7 @@ #pragma once -#define RGBLED_NUM 20 // Number of LEDs - #define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255} -#define RGBLED_NUM 20 // Number of LEDs -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/lfk65_hs/info.json b/keyboards/lfkeyboards/lfk65_hs/info.json index 894a0095831..ca2e2c695bf 100644 --- a/keyboards/lfkeyboards/lfk65_hs/info.json +++ b/keyboards/lfkeyboards/lfk65_hs/info.json @@ -16,6 +16,22 @@ "backlight": { "levels": 8 }, + "rgblight": { + "hue_steps": 10, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/lfkeyboards/lfk78/config.h b/keyboards/lfkeyboards/lfk78/config.h index 5748d29987c..89d9c4b2437 100644 --- a/keyboards/lfkeyboards/lfk78/config.h +++ b/keyboards/lfkeyboards/lfk78/config.h @@ -19,25 +19,9 @@ along with this program. If not, see . #define BACKLIGHT_PWM_MAP { 8, 16, 40, 55, 70, 128, 200, 255 } -#define TAPPING_TERM 200 - #define AUDIO_PIN C6 #define AUDIO_VOICES -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk index f1836baa277..481ff1407bd 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk +++ b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk @@ -10,7 +10,6 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = no # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes TAP_DANCE_ENABLE = yes diff --git a/keyboards/lfkeyboards/lfk78/post_rules.mk b/keyboards/lfkeyboards/lfk78/post_rules.mk index 03f975b9df2..817a085f5e2 100644 --- a/keyboards/lfkeyboards/lfk78/post_rules.mk +++ b/keyboards/lfkeyboards/lfk78/post_rules.mk @@ -2,13 +2,13 @@ SRC += TWIlib.c issi.c lighting.c ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE + OPT_DEFS += -DISSI_ENABLE endif ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE + OPT_DEFS += -DWATCHDOG_ENABLE endif ifeq ($(strip $(CAPSLOCK_LED)), yes) - TMK_COMMON_DEFS += -DCAPSLOCK_LED + OPT_DEFS += -DCAPSLOCK_LED endif diff --git a/keyboards/lfkeyboards/lfk78/revb/config.h b/keyboards/lfkeyboards/lfk78/revb/config.h deleted file mode 100644 index 377ea211232..00000000000 --- a/keyboards/lfkeyboards/lfk78/revb/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define RGBLED_NUM 31 diff --git a/keyboards/lfkeyboards/lfk78/revb/info.json b/keyboards/lfkeyboards/lfk78/revb/info.json index 92662bacc78..1431ce1cc68 100644 --- a/keyboards/lfkeyboards/lfk78/revb/info.json +++ b/keyboards/lfkeyboards/lfk78/revb/info.json @@ -17,6 +17,23 @@ "driver": "custom", "levels": 8 }, + "rgblight": { + "driver": "custom", + "hue_steps": 10, + "led_count": 31, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/lfkeyboards/lfk78/revc/config.h b/keyboards/lfkeyboards/lfk78/revc/config.h deleted file mode 100644 index 78343dc888c..00000000000 --- a/keyboards/lfkeyboards/lfk78/revc/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define RGBLED_NUM 27 diff --git a/keyboards/lfkeyboards/lfk78/revc/info.json b/keyboards/lfkeyboards/lfk78/revc/info.json index 830205c584c..980ffafc634 100644 --- a/keyboards/lfkeyboards/lfk78/revc/info.json +++ b/keyboards/lfkeyboards/lfk78/revc/info.json @@ -17,6 +17,23 @@ "driver": "custom", "levels": 8 }, + "rgblight": { + "driver": "custom", + "hue_steps": 10, + "led_count": 27, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/lfkeyboards/lfk78/revj/config.h b/keyboards/lfkeyboards/lfk78/revj/config.h deleted file mode 100644 index 78343dc888c..00000000000 --- a/keyboards/lfkeyboards/lfk78/revj/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define RGBLED_NUM 27 diff --git a/keyboards/lfkeyboards/lfk78/revj/info.json b/keyboards/lfkeyboards/lfk78/revj/info.json index 8f9198b089d..5ff7bcbbfd6 100644 --- a/keyboards/lfkeyboards/lfk78/revj/info.json +++ b/keyboards/lfkeyboards/lfk78/revj/info.json @@ -17,6 +17,23 @@ "driver": "custom", "levels": 8 }, + "rgblight": { + "driver": "custom", + "hue_steps": 10, + "led_count": 27, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk index 6c0b7f6d8dd..4e3f7b9256f 100644 --- a/keyboards/lfkeyboards/lfk78/rules.mk +++ b/keyboards/lfkeyboards/lfk78/rules.mk @@ -10,7 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lfkeyboards, not qmk base SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfk87/config.h b/keyboards/lfkeyboards/lfk87/config.h index 3a8f16e0fd5..20aba2ad6ba 100644 --- a/keyboards/lfkeyboards/lfk87/config.h +++ b/keyboards/lfkeyboards/lfk87/config.h @@ -22,22 +22,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255} -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -#define TAPPING_TERM 200 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/lfk87/info.json b/keyboards/lfkeyboards/lfk87/info.json index d76ee0c6937..6a2d5eb796e 100644 --- a/keyboards/lfkeyboards/lfk87/info.json +++ b/keyboards/lfkeyboards/lfk87/info.json @@ -12,6 +12,9 @@ "driver": "custom", "levels": 10 }, + "rgblight": { + "driver": "custom" + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk index ab5bc0930db..8d2c18f6dd2 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk @@ -10,7 +10,6 @@ AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes TAP_DANCE_ENABLE = yes diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk index 9babefffc88..ec4ce1afba3 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk @@ -7,7 +7,6 @@ NKRO_ENABLE = yes BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk index 9a6b4ff65af..01b8506d3a2 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk @@ -10,7 +10,6 @@ AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk index 0e7008aa209..7baa40317ad 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk @@ -7,7 +7,6 @@ NKRO_ENABLE = yes BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfk87/reva/info.json b/keyboards/lfkeyboards/lfk87/reva/info.json index 457f3602ab8..ad3ad7f8773 100644 --- a/keyboards/lfkeyboards/lfk87/reva/info.json +++ b/keyboards/lfkeyboards/lfk87/reva/info.json @@ -7,7 +7,20 @@ }, "diode_direction": "COL2ROW", "rgblight": { - "led_count": 25 + "hue_steps": 10, + "led_count": 25, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT_tkl_ansi": { diff --git a/keyboards/lfkeyboards/lfk87/revc/info.json b/keyboards/lfkeyboards/lfk87/revc/info.json index 7d18e71197d..cf627facdfc 100644 --- a/keyboards/lfkeyboards/lfk87/revc/info.json +++ b/keyboards/lfkeyboards/lfk87/revc/info.json @@ -7,7 +7,20 @@ }, "diode_direction": "COL2ROW", "rgblight": { - "led_count": 24 + "hue_steps": 10, + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT_tkl_ansi": { diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk index 2dc08f71f63..154e03fe779 100644 --- a/keyboards/lfkeyboards/lfk87/rules.mk +++ b/keyboards/lfkeyboards/lfk87/rules.mk @@ -11,7 +11,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfkpad/config.h b/keyboards/lfkeyboards/lfkpad/config.h index 5393e47b391..b9449c4714b 100644 --- a/keyboards/lfkeyboards/lfkpad/config.h +++ b/keyboards/lfkeyboards/lfkpad/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 28 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -# 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 TAPPING_TERM 200 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/lfkpad/info.json b/keyboards/lfkeyboards/lfkpad/info.json index d4abb0abdd1..a3910b0df5a 100644 --- a/keyboards/lfkeyboards/lfkpad/info.json +++ b/keyboards/lfkeyboards/lfkpad/info.json @@ -8,6 +8,23 @@ "pid": "0x3231", "device_version": "0.0.1" }, + "rgblight": { + "driver": "custom", + "hue_steps": 10, + "led_count": 28, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/lfkeyboards/lfkpad/post_rules.mk b/keyboards/lfkeyboards/lfkpad/post_rules.mk index ad997587b2d..044d9754f15 100644 --- a/keyboards/lfkeyboards/lfkpad/post_rules.mk +++ b/keyboards/lfkeyboards/lfkpad/post_rules.mk @@ -1,7 +1,7 @@ ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE + OPT_DEFS += -DISSI_ENABLE endif ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE + OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/lfkeyboards/lfkpad/rules.mk b/keyboards/lfkeyboards/lfkpad/rules.mk index b60f4b532ff..ec8efa88bf6 100644 --- a/keyboards/lfkeyboards/lfkpad/rules.mk +++ b/keyboards/lfkeyboards/lfkpad/rules.mk @@ -9,7 +9,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lfkeyboards, not qmk base AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes diff --git a/keyboards/lfkeyboards/mini1800/config.h b/keyboards/lfkeyboards/mini1800/config.h index c367ad95c3c..20aba2ad6ba 100644 --- a/keyboards/lfkeyboards/mini1800/config.h +++ b/keyboards/lfkeyboards/mini1800/config.h @@ -17,29 +17,11 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 26 // Number of LEDs - #define AUDIO_VOICES #define AUDIO_PIN C6 #define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255} -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -#define TAPPING_TERM 200 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/mini1800/info.json b/keyboards/lfkeyboards/mini1800/info.json index cf1cc7764bb..6737c1bacaf 100644 --- a/keyboards/lfkeyboards/mini1800/info.json +++ b/keyboards/lfkeyboards/mini1800/info.json @@ -17,6 +17,23 @@ "driver": "custom", "levels": 10 }, + "rgblight": { + "driver": "custom", + "hue_steps": 10, + "led_count": 26, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/lfkeyboards/mini1800/reva/post_rules.mk b/keyboards/lfkeyboards/mini1800/reva/post_rules.mk index ad997587b2d..044d9754f15 100644 --- a/keyboards/lfkeyboards/mini1800/reva/post_rules.mk +++ b/keyboards/lfkeyboards/mini1800/reva/post_rules.mk @@ -1,7 +1,7 @@ ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE + OPT_DEFS += -DISSI_ENABLE endif ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE + OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/lfkeyboards/mini1800/reva/rules.mk b/keyboards/lfkeyboards/mini1800/reva/rules.mk index edd26e498d1..473bcb10ae9 100644 --- a/keyboards/lfkeyboards/mini1800/reva/rules.mk +++ b/keyboards/lfkeyboards/mini1800/reva/rules.mk @@ -10,9 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output - -# RGB code is implemented in lfkeyboards, not WS2812 -RGBLIGHT_CUSTOM_DRIVER = yes SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/mini1800/revc/post_rules.mk b/keyboards/lfkeyboards/mini1800/revc/post_rules.mk index ad997587b2d..044d9754f15 100644 --- a/keyboards/lfkeyboards/mini1800/revc/post_rules.mk +++ b/keyboards/lfkeyboards/mini1800/revc/post_rules.mk @@ -1,7 +1,7 @@ ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE + OPT_DEFS += -DISSI_ENABLE endif ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE + OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/lfkeyboards/mini1800/revc/rules.mk b/keyboards/lfkeyboards/mini1800/revc/rules.mk index edd26e498d1..473bcb10ae9 100644 --- a/keyboards/lfkeyboards/mini1800/revc/rules.mk +++ b/keyboards/lfkeyboards/mini1800/revc/rules.mk @@ -10,9 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output - -# RGB code is implemented in lfkeyboards, not WS2812 -RGBLIGHT_CUSTOM_DRIVER = yes SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk index 0cc9a7b76ba..1f0147bd38f 100644 --- a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk +++ b/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk @@ -6,12 +6,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms - - -ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE -endif - -ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE -endif diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk index 0cc9a7b76ba..1f0147bd38f 100644 --- a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk +++ b/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk @@ -6,12 +6,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms - - -ifeq ($(strip $(ISSI_ENABLE)), yes) - TMK_COMMON_DEFS += -DISSI_ENABLE -endif - -ifeq ($(strip $(WATCHDOG_ENABLE)), yes) - TMK_COMMON_DEFS += -DWATCHDOG_ENABLE -endif diff --git a/keyboards/lfkeyboards/smk65/post_rules.mk b/keyboards/lfkeyboards/smk65/post_rules.mk new file mode 100644 index 00000000000..044d9754f15 --- /dev/null +++ b/keyboards/lfkeyboards/smk65/post_rules.mk @@ -0,0 +1,7 @@ +ifeq ($(strip $(ISSI_ENABLE)), yes) + OPT_DEFS += -DISSI_ENABLE +endif + +ifeq ($(strip $(WATCHDOG_ENABLE)), yes) + OPT_DEFS += -DWATCHDOG_ENABLE +endif diff --git a/keyboards/lfkeyboards/smk65/revb/config.h b/keyboards/lfkeyboards/smk65/revb/config.h index af7f6b17b82..c758caa92c2 100644 --- a/keyboards/lfkeyboards/smk65/revb/config.h +++ b/keyboards/lfkeyboards/smk65/revb/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define MATRIX_ROW_PINS {D6, D7, E0, C3, C4} #define MATRIX_COL_PINS {F2, C5, E5, E4, B7, B6, B5, B4, B3, B2, B1, B0, E1, C0, C1, C2} -#define RGBLED_NUM 20 // Number of LEDs //RevB only: @@ -33,21 +32,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255} -#define RGBLED_NUM 20 // Number of LEDs -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/smk65/revb/info.json b/keyboards/lfkeyboards/smk65/revb/info.json index f635133e9ad..39df87cc236 100644 --- a/keyboards/lfkeyboards/smk65/revb/info.json +++ b/keyboards/lfkeyboards/smk65/revb/info.json @@ -5,6 +5,23 @@ "backlight": { "levels": 8 }, + "rgblight": { + "driver": "custom", + "hue_steps": 10, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/lfkeyboards/smk65/revb/rules.mk b/keyboards/lfkeyboards/smk65/revb/rules.mk index 57bf01d4cf5..1bd6ebc6a6c 100644 --- a/keyboards/lfkeyboards/smk65/revb/rules.mk +++ b/keyboards/lfkeyboards/smk65/revb/rules.mk @@ -3,7 +3,6 @@ # BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 AUDIO_ENABLE = no # Audio output # Extra source files for IS3731 lighting diff --git a/keyboards/lfkeyboards/smk65/revf/config.h b/keyboards/lfkeyboards/smk65/revf/config.h index 50ce3410539..9e32ac9d3fe 100644 --- a/keyboards/lfkeyboards/smk65/revf/config.h +++ b/keyboards/lfkeyboards/smk65/revf/config.h @@ -31,8 +31,6 @@ along with this program. If not, see . /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -#define RGBLED_NUM 28 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/smk65/revf/info.json b/keyboards/lfkeyboards/smk65/revf/info.json index 63e9d0abc75..50c039b76cb 100644 --- a/keyboards/lfkeyboards/smk65/revf/info.json +++ b/keyboards/lfkeyboards/smk65/revf/info.json @@ -4,6 +4,10 @@ }, "processor": "atmega32u4", "bootloader": "halfkay", + "rgblight": { + "driver": "custom", + "led_count": 28 + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/lfkeyboards/smk65/revf/rules.mk b/keyboards/lfkeyboards/smk65/revf/rules.mk index 25457479594..e372473a507 100644 --- a/keyboards/lfkeyboards/smk65/revf/rules.mk +++ b/keyboards/lfkeyboards/smk65/revf/rules.mk @@ -2,4 +2,3 @@ # change yes to no to disable # RGBLIGHT_ENABLE = no # TODO: Enable keyboard RGB underglow -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 diff --git a/keyboards/lily58/glow_enc/config.h b/keyboards/lily58/glow_enc/config.h deleted file mode 100644 index cf58b0fe457..00000000000 --- a/keyboards/lily58/glow_enc/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2017 F_YUUCHI -Copyright 2020 Ben Roesner (keycapsss.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 - -#define RGBLED_NUM 72 // Number of LEDs - -#define RGBLED_SPLIT { 36, 36 } -#define RGBLIGHT_SPLIT diff --git a/keyboards/lily58/glow_enc/info.json b/keyboards/lily58/glow_enc/info.json index 79358416f59..006cf0aa210 100644 --- a/keyboards/lily58/glow_enc/info.json +++ b/keyboards/lily58/glow_enc/info.json @@ -38,7 +38,9 @@ "pin": "F4" }, "rgblight": { - "max_brightness": 120 + "led_count": 72, + "max_brightness": 120, + "split_count": [36, 36] }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/lily58/keymaps/chuan/config.h b/keyboards/lily58/keymaps/chuan/config.h index d952ce457be..b3a47769bf6 100644 --- a/keyboards/lily58/keymaps/chuan/config.h +++ b/keyboards/lily58/keymaps/chuan/config.h @@ -30,8 +30,6 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -// #define SSD1306OLED - #define QUICK_TAP_TERM 0 /* define tapping term */ diff --git a/keyboards/lily58/keymaps/chuan/keymap.c b/keyboards/lily58/keymaps/chuan/keymap.c index fed5b6df679..58a19ebd5f3 100644 --- a/keyboards/lily58/keymaps/chuan/keymap.c +++ b/keyboards/lily58/keymaps/chuan/keymap.c @@ -173,13 +173,6 @@ bool oled_task_user(void) { #endif //OLED_ENABLE bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - // set_keylog(keycode, record); -#endif - // set_timelog(); - } - switch (keycode) { case QWERTY: if (record->event.pressed) { diff --git a/keyboards/lily58/keymaps/datadavd/config.h b/keyboards/lily58/keymaps/datadavd/config.h index 19b372e569d..c851d7ad0ef 100644 --- a/keyboards/lily58/keymaps/datadavd/config.h +++ b/keyboards/lily58/keymaps/datadavd/config.h @@ -28,8 +28,6 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -// #define SSD1306OLED - #define QUICK_TAP_TERM 0 #define TAPPING_TERM 50 diff --git a/keyboards/lily58/keymaps/domnantas/config.h b/keyboards/lily58/keymaps/domnantas/config.h index 143a950ef24..830139cc033 100644 --- a/keyboards/lily58/keymaps/domnantas/config.h +++ b/keyboards/lily58/keymaps/domnantas/config.h @@ -28,7 +28,5 @@ along with this program. If not, see . // #define MASTER_RIGHT #define EE_HANDS -// #define SSD1306OLED - #define QUICK_TAP_TERM 0 #define TAPPING_TERM 100 diff --git a/keyboards/lily58/keymaps/drasbeck/rules.mk b/keyboards/lily58/keymaps/drasbeck/rules.mk index 10228e36776..f0442f1008c 100644 --- a/keyboards/lily58/keymaps/drasbeck/rules.mk +++ b/keyboards/lily58/keymaps/drasbeck/rules.mk @@ -13,7 +13,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow SWAP_HANDS_ENABLE = no # Enable one-hand typing OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # OLED display ENCODER_ENABLE = yes # Enable encoder # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE diff --git a/keyboards/lily58/keymaps/gaston/config.h b/keyboards/lily58/keymaps/gaston/config.h index 988e3eb6f83..f4f3140d513 100644 --- a/keyboards/lily58/keymaps/gaston/config.h +++ b/keyboards/lily58/keymaps/gaston/config.h @@ -24,3 +24,4 @@ #define QUICK_TAP_TERM 0 #define TAPPING_TERM 150 /* ms */ +#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY diff --git a/keyboards/lily58/keymaps/gaston/keymap.c b/keyboards/lily58/keymaps/gaston/keymap.c index b7129b71e00..c98ec4254bd 100644 --- a/keyboards/lily58/keymaps/gaston/keymap.c +++ b/keyboards/lily58/keymaps/gaston/keymap.c @@ -26,6 +26,7 @@ enum layer_number { #define EN_LOWER LT(_LOWER, KC_SPC) #define EN_MOUSE MO(_MOUSE) +#define MT_CESC LCTL_T(KC_ESC) /* See the readme.md file for an ASCII representation of this keymap. */ @@ -34,13 +35,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MT_CESC, 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, EN_MOUSE,KC_EQL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_RALT, KC_LALT, KC_LGUI, EN_LOWER,EN_LOWER, KC_LBRC, KC_RBRC, KC_BSLS ), [_LOWER] = 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, KC_F12, KC_TRNS, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, KC_BRID, KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, @@ -56,3 +57,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; + +bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MT_CESC: + // Immediately select the hold action when another key is pressed. + return true; + default: + // Do not select the hold action when another key is pressed. + return false; + } +} diff --git a/keyboards/lily58/keymaps/gaston/readme.md b/keyboards/lily58/keymaps/gaston/readme.md index 8edd92cc3ff..cf8b13786e3 100644 --- a/keyboards/lily58/keymaps/gaston/readme.md +++ b/keyboards/lily58/keymaps/gaston/readme.md @@ -10,6 +10,7 @@ The main characteristics of this keymap are: * The main thumb buttons are spaces when tapped and enable the LOWER layer when held. * Vim style arrow keys. + * Left Control is ESC when tapped. * Left and right ALT in case you need different behaviors. (For example, the default Option and readline's Alt behavior in macOS.) * The LOWER layer has mostly meta keys. @@ -23,7 +24,7 @@ The main characteristics of this keymap are: |------+------+------+------+------+------| |------+------+------+------+------+------| | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | |------+------+------+------+------+------| |------+------+------+------+------+------| -|LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | +|C_ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | |------+------+------+------+------+------| MOUSE | | = |------+------+------+------+------+------| | LSFT | Z | X | C | V | B |-------| |-------| N | M | , | . | / | ENT | `-----------------------------------------/ LT / \ LT \----------------------------------------' @@ -36,7 +37,7 @@ The main characteristics of this keymap are: ```plain ,-----------------------------------------. ,-----------------------------------------. -| ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | +| TRNS | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | |------+------+------+------+------+------| |------+------+------+------+------+------| | TRNS | | MUTE | VOLD | VOLU | | | HOME | PGDN | PGUP | END | | F12 | |------+------+------+------+------+------| |------+------+------+------+------+------| diff --git a/keyboards/lily58/keymaps/gshmu/rules.mk b/keyboards/lily58/keymaps/gshmu/rules.mk index 4b7da61a0cb..401abfb4cf6 100644 --- a/keyboards/lily58/keymaps/gshmu/rules.mk +++ b/keyboards/lily58/keymaps/gshmu/rules.mk @@ -1,6 +1,5 @@ VIA_ENABLE = yes OLED_ENABLE = no -OLED_DRIVER = SSD1306 MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes DYNAMIC_TAPPING_TERM_ENABLE = yes diff --git a/keyboards/lily58/keymaps/hvp/config.h b/keyboards/lily58/keymaps/hvp/config.h index ec0960470af..35c0f25f2c2 100644 --- a/keyboards/lily58/keymaps/hvp/config.h +++ b/keyboards/lily58/keymaps/hvp/config.h @@ -28,8 +28,6 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -#define SSD1306OLED - #define TAPPING_TERM 100 #undef TAPPING_TERM #define TAPPING_TERM 150 diff --git a/keyboards/lily58/keymaps/hvp/keymap.c b/keyboards/lily58/keymaps/hvp/keymap.c index 5ca0b73653b..b94ea9397ce 100644 --- a/keyboards/lily58/keymaps/hvp/keymap.c +++ b/keyboards/lily58/keymaps/hvp/keymap.c @@ -5,9 +5,6 @@ #include "lufa.h" #include "split_util.h" #endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings @@ -84,63 +81,9 @@ void matrix_init_user(void) { #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_config.mode; #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write(matrix, read_logo()); - } } -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - set_keylog(keycode, record); -#endif - // set_timelog(); - } - switch (keycode) { case QWERTY: if (record->event.pressed) { diff --git a/keyboards/lily58/keymaps/jhelvy/config.h b/keyboards/lily58/keymaps/jhelvy/config.h index dbd058a8b58..08ddcd4e32b 100644 --- a/keyboards/lily58/keymaps/jhelvy/config.h +++ b/keyboards/lily58/keymaps/jhelvy/config.h @@ -28,8 +28,6 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -#define SSD1306OLED - #define QUICK_TAP_TERM 0 #undef TAPPING_TERM #define TAPPING_TERM 200 diff --git a/keyboards/lily58/keymaps/jhelvy/keymap.c b/keyboards/lily58/keymaps/jhelvy/keymap.c index 03e56b1bd1b..ae44d372c6a 100644 --- a/keyboards/lily58/keymaps/jhelvy/keymap.c +++ b/keyboards/lily58/keymaps/jhelvy/keymap.c @@ -4,10 +4,6 @@ #include "lufa.h" #include "split_util.h" #endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - extern uint8_t is_master; @@ -45,68 +41,3 @@ LGUI(KC_BSPC),MO(2),LGUI(KC_S),LGUI(KC_C),LGUI(KC_V),LGUI(KC_X), KC_NO, KC_NO,KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO) }; - -void matrix_init_user(void) { - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write(matrix, read_logo()); - } -} - -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - set_keylog(keycode, record); -#endif - // set_timelog(); - } - return true; -} diff --git a/keyboards/lily58/keymaps/mb_via/rules.mk b/keyboards/lily58/keymaps/mb_via/rules.mk index d3528d52a1a..3c1f402d2ad 100644 --- a/keyboards/lily58/keymaps/mb_via/rules.mk +++ b/keyboards/lily58/keymaps/mb_via/rules.mk @@ -1,5 +1,4 @@ VIA_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes diff --git a/keyboards/lily58/keymaps/mikefightsbears/keymap.c b/keyboards/lily58/keymaps/mikefightsbears/keymap.c index 4bf723eb8d6..ce9aa64e35a 100644 --- a/keyboards/lily58/keymaps/mikefightsbears/keymap.c +++ b/keyboards/lily58/keymaps/mikefightsbears/keymap.c @@ -4,9 +4,6 @@ #include "lufa.h" #include "split_util.h" #endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings diff --git a/keyboards/lily58/keymaps/muuko/rules.mk b/keyboards/lily58/keymaps/muuko/rules.mk index 7c38d43f82b..004fc910f65 100644 --- a/keyboards/lily58/keymaps/muuko/rules.mk +++ b/keyboards/lily58/keymaps/muuko/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes EXTRAKEY_ENABLE = yes COMBO_ENABLE = yes diff --git a/keyboards/lily58/keymaps/ninjonas/rules.mk b/keyboards/lily58/keymaps/ninjonas/rules.mk index b7c57d87b9e..9f00574d5d0 100644 --- a/keyboards/lily58/keymaps/ninjonas/rules.mk +++ b/keyboards/lily58/keymaps/ninjonas/rules.mk @@ -1,3 +1,2 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes diff --git a/keyboards/lily58/keymaps/pomodoro/config.h b/keyboards/lily58/keymaps/pomodoro/config.h new file mode 100644 index 00000000000..ce2b0e4bcde --- /dev/null +++ b/keyboards/lily58/keymaps/pomodoro/config.h @@ -0,0 +1,56 @@ +/* +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 QUICK_TAP_TERM 0 +#define TAPPING_TERM 100 + +#undef 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 RGBLED_NUM 27 +#define RGBLIGHT_LIMIT_VAL 120 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +#define SPLIT_TRANSACTION_IDS_USER SYNC_POMODORO_RUNNING + +// Underglow +/* +#undef RGBLED_NUM +#define RGBLED_NUM 14 // Number of LEDs +#define RGBLIGHT_SLEEP +*/ diff --git a/keyboards/lily58/keymaps/pomodoro/keymap.c b/keyboards/lily58/keymaps/pomodoro/keymap.c new file mode 100644 index 00000000000..7689a391f2d --- /dev/null +++ b/keyboards/lily58/keymaps/pomodoro/keymap.c @@ -0,0 +1,154 @@ +/* +Copyright 2023 Casey Borders + +This 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 layer_number { + _QWERTY = 0, + _LOWER, + _RAISE, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |Backsp| + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Play |LOWER | LGUI | / Enter / \Space \ | RGUI |RAISE | Mute | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + [_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_MINS, + 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_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_MPLY, MO(_LOWER), KC_LGUI, KC_ENT, KC_SPC, KC_RGUI, MO(_RAISE), KC_MUTE + ), + /* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | Up | | \ | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| | Left | Down |Right | = | | + * |------+------+------+------+------+------| < | | > |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | | | | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Play |LOWER | LGUI | / Enter / \Space \ | RGUI |RAISE | Mute | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LT, KC_GT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + + ), + /* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | Vol+ | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | Prev | Vol- | Next | | |-------. ,-------| | | | | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | | | | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Play |LOWER | LGUI | / Enter / \Space \ | RGUI |RAISE | Mute | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + _______, _______, KC_VOLU, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, + _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LT, KC_GT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + + ), + /* ADJUST + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | Oper | Out | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| | | | | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | | | | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Play |LOWER | LGUI | / Enter / \Space \ | RGUI |RAISE | Mute | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_OPER, KC_OUT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +// SSD1306 OLED update loop, make sure to enable OLED_ENABLE=yes in rules.mk +#ifdef OLED_ENABLE + +// When you add source files to SRC in rules.mk, you can use functions. +const char *read_layer_state(void); +const char *read_logo(void); +const char *read_timelog(void); + +void toggle_pomodoro(void); +const char* read_pomodoro_running(void); +void update_pomodoro_display(void); + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) + return OLED_ROTATION_90; + return rotation; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + oled_write_ln(read_layer_state(), false); + oled_write_ln(read_pomodoro_running(), false); + } else { + update_pomodoro_display(); + } + return false; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed && keycode == KC_OPER) { + toggle_pomodoro(); + } + return true; +} + +#endif // OLED_ENABLE diff --git a/keyboards/lily58/keymaps/pomodoro/pomodoro.c b/keyboards/lily58/keymaps/pomodoro/pomodoro.c new file mode 100644 index 00000000000..1c0641978dc --- /dev/null +++ b/keyboards/lily58/keymaps/pomodoro/pomodoro.c @@ -0,0 +1,249 @@ +/* +Copyright 2023 Casey Borders + +This 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 + +#include "transactions.h" + +#ifdef OLED_ENABLE + +#define HEADER_SIZE 32 +const char headerBase[] PROGMEM = { + 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, + 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, + 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, + 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF +}; +char header[HEADER_SIZE]; + +#define STATUS_WIDTH 15 +#define STATUS_HEIGHT 32 +#define STATUS_PIXELS (STATUS_WIDTH * 8) +#define STATUS_SIZE (STATUS_WIDTH * STATUS_HEIGHT) +const char logoBase[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7F, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x61, 0x61, 0x81, 0x81, 0x01, 0x01, 0xC1, 0xC1, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xC0, 0xFF, 0xFF, 0xC3, 0xC3, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xF0, 0xF0, 0x00, 0x00, 0xF0, 0xF0, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xF0, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0F, 0x0F, 0x00, 0x00, 0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0F, 0x0F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x06, 0x9E, 0x9E, 0x66, 0x66, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0xF8, 0xF8, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xF8, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x86, 0x86, 0x67, 0x67, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x86, 0x86, 0x00, 0x00, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x31, 0x31, 0xC1, 0xC1, 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, 0x3F, 0x3F, 0x30, 0x30, 0x3F, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 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, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xF3, 0x7F, 0x3F, 0x7F, 0xFF, 0xFF, 0x3B, 0xF1, 0xF7, 0xFF, 0x3F, 0x39, 0x30, 0x00, 0x01, 0x01, 0x01, 0x83, 0x86, 0x0C, 0xF8, 0xF0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xCF, 0x07, 0x1F, 0x3F, 0x3F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xDF, 0xFC, 0x7F, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0E, 0x1C, 0x18, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00 +}; + +const char workBase[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x3E, 0x3E, 0x3E, 0x3E, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x3E, 0x3E, 0x3E, 0x3E, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xF0, 0xF0, 0xF0, 0xF0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7C, 0x7C, 0x7C, 0x7C, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x7F, 0x7F, 0x7F, 0x7F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00 +}; + +const char restBase[] PROGMEM = { + 0x00, 0x00, 0x80, 0x80, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3F, 0x3F, 0x3F, 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, 0xFC, 0xFC, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xF0, 0xF0, 0xF0, 0xF0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7C, 0x7C, 0x7C, 0x7C, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 +}; +char displayBuffer[STATUS_SIZE]; + +#define WORK_TIME ((uint32_t)25 * 60 * 1000) +#define REST_TIME ((uint32_t)5 * 60 * 1000) + +typedef enum pomo_state { + _STOPPED, + _WORK, + _REST, +} pomo_state; + +/* The master only needs to know if the timer is running or not */ +bool isRunning = false; + +/* The slave needs more info about the state and what's going on */ +pomo_state state = _STOPPED; +uint8_t pomoCount = 0; +uint32_t pomoTimer; +uint32_t totalTime = 0; +uint32_t currTime = 0; +uint32_t lastTime = 0; +uint16_t lastProgress = 0; + +const char* read_pomodoro_state(void) { + switch (state) { + case _STOPPED: return "STOPPED"; + case _REST: return "REST"; + case _WORK: return "WORK"; + default: return "UNKNOWN"; + } +} + +const char* read_pomodoro_running(void) { + if (isRunning) { return "RUNNING"; } + else { return "STOPPED"; } +} + +void update_display_base(void) { + switch (state) { + case _STOPPED: { + memcpy_P(displayBuffer, logoBase, STATUS_SIZE); + memset(header, 0, HEADER_SIZE); + } break; + case _WORK: { + memcpy_P(displayBuffer, workBase, STATUS_SIZE); + memcpy_P(header, headerBase, HEADER_SIZE); + } break; + case _REST: { + memcpy_P(displayBuffer, restBase, STATUS_SIZE); + memcpy_P(header, headerBase, HEADER_SIZE); + } break; + } +} + +void update_cycle_display(void) { + if (state == _STOPPED) { return; } + uint8_t start = (HEADER_SIZE / 4) * (4 - pomoCount); + for (uint8_t i = start; i < HEADER_SIZE; i++) { + header[i] = ~header[i]; + } +} + +bool syncRunning = false; +void toggle_pomodoro(void) { + isRunning = !isRunning; + syncRunning = true; +} + +void set_slave_pomodoro_running(uint8_t in_buflen, const void *in_data, uint8_t out_buflen, void *out_data) { + isRunning = *(bool*)in_data; + if (isRunning) { + /* Reset stuff and start the timer */ + pomoTimer = timer_read32(); + state = _WORK; + totalTime = WORK_TIME; + lastTime = 0; + lastProgress = 0; + currTime = 0; + pomoCount = 1; + update_display_base(); + update_cycle_display(); + } else { + state = _STOPPED; + update_display_base(); + } +} + +void keyboard_post_init_user(void) { + memcpy_P(displayBuffer, logoBase, STATUS_SIZE); + memset(header, 0, HEADER_SIZE); + transaction_register_rpc(SYNC_POMODORO_RUNNING, set_slave_pomodoro_running); +} + +void update_pomodoro_display(void) { + oled_set_cursor(0, 0); + oled_write_raw(displayBuffer, STATUS_SIZE); + oled_set_cursor(0, STATUS_WIDTH); + oled_write_raw(header, HEADER_SIZE); +} + +void update_time_display(void) { + if (currTime > lastTime) { + float ratio = (float)currTime / totalTime; + uint16_t progress = (uint16_t)(ratio * STATUS_PIXELS); + + for (int i = lastProgress + 1; i <= progress; i++) { + uint16_t row = i / 8; + uint16_t bit = i % 8; + char mask = 1 << bit; + for (int j = 0; j < STATUS_HEIGHT; j++) { + uint16_t index = row * STATUS_HEIGHT + j; + if (index > STATUS_SIZE) break; + displayBuffer[index] = displayBuffer[index] ^ mask; + } + } + + lastTime = currTime; + lastProgress = progress; + } +} + +void housekeeping_task_user(void) { + if (is_keyboard_master()) { + if (syncRunning && transaction_rpc_send(SYNC_POMODORO_RUNNING, sizeof(bool), &isRunning)) { + syncRunning = false; + } + } else { + /* This is where the time will be updated */ + if (isRunning) { + currTime = timer_elapsed32(pomoTimer); + if (currTime >= totalTime) { + if (state == _WORK) { + state = _REST; + totalTime = REST_TIME; + } else if (state == _REST) { + state = _WORK; + totalTime = WORK_TIME; + pomoCount++; + } + + if (pomoCount > 4) { + isRunning = false; + state = _STOPPED; + } + + pomoTimer = timer_read32(); + currTime = 0; + lastTime = 0; + lastProgress = 0; + update_display_base(); + update_cycle_display(); + } else { + update_time_display(); + } + } + } +} + +#endif // OLED_ENABLE diff --git a/keyboards/lily58/keymaps/pomodoro/rules.mk b/keyboards/lily58/keymaps/pomodoro/rules.mk new file mode 100644 index 00000000000..a6666f7fc14 --- /dev/null +++ b/keyboards/lily58/keymaps/pomodoro/rules.mk @@ -0,0 +1,23 @@ +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no # Audio output +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +SWAP_HANDS_ENABLE = no # Enable one-hand typing +OLED_ENABLE = yes # OLED display +LTO_ENABLE = yes # Link time optimisations +EXTRAKEY_ENABLE = yes # Audio control and System control + +# If you want to change the display of OLED, you need to change here +SRC += ./lib/rgb_state_reader.c \ + ./lib/layer_state_reader.c \ + ./lib/logo_reader.c \ + ./lib/keylogger.c \ + ./lib/mode_icon_reader.c \ + ./lib/host_led_state_reader.c \ + ./lib/timelogger.c \ + ./lib/keylogger.c \ + pomodoro.c \ diff --git a/keyboards/lily58/keymaps/via/rules.mk b/keyboards/lily58/keymaps/via/rules.mk index d3528d52a1a..3c1f402d2ad 100644 --- a/keyboards/lily58/keymaps/via/rules.mk +++ b/keyboards/lily58/keymaps/via/rules.mk @@ -1,5 +1,4 @@ VIA_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes diff --git a/keyboards/lily58/keymaps/yshrsmz/keymap.c b/keyboards/lily58/keymaps/yshrsmz/keymap.c index 03269aa6a9b..3ab9222b9d3 100644 --- a/keyboards/lily58/keymaps/yshrsmz/keymap.c +++ b/keyboards/lily58/keymaps/yshrsmz/keymap.c @@ -4,9 +4,6 @@ #include "lufa.h" #include "split_util.h" #endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings diff --git a/keyboards/lily58/keymaps/yuchi/config.h b/keyboards/lily58/keymaps/yuchi/config.h index 8e07ec837fe..55d05464bc0 100644 --- a/keyboards/lily58/keymaps/yuchi/config.h +++ b/keyboards/lily58/keymaps/yuchi/config.h @@ -28,7 +28,5 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -//#define OLED_DRIVER - #define QUICK_TAP_TERM 0 #define TAPPING_TERM 100 diff --git a/keyboards/lily58/keymaps/yuchi/keymap.c b/keyboards/lily58/keymaps/yuchi/keymap.c index 1c87661113b..c8c9eea5e9b 100644 --- a/keyboards/lily58/keymaps/yuchi/keymap.c +++ b/keyboards/lily58/keymaps/yuchi/keymap.c @@ -4,9 +4,6 @@ #include "lufa.h" #include "split_util.h" #endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif extern uint8_t is_master; diff --git a/keyboards/lily58/lib/rgb_state_reader.c b/keyboards/lily58/lib/rgb_state_reader.c index 3d74fb45e4e..9bb86a11ad3 100644 --- a/keyboards/lily58/lib/rgb_state_reader.c +++ b/keyboards/lily58/lib/rgb_state_reader.c @@ -1,6 +1,6 @@ #ifdef RGBLIGHT_ENABLE - #include +#include "rgblight.h" extern rgblight_config_t rgblight_config; char rbf_info_str[24]; diff --git a/keyboards/lily58/light/config.h b/keyboards/lily58/light/config.h deleted file mode 100644 index 88cb95c2438..00000000000 --- a/keyboards/lily58/light/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2017 F_YUUCHI -Copyright 2020 Ben Roesner (keycapsss.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 - -#define RGBLED_SPLIT { 35, 35 } -#define RGBLED_NUM 70 -#define RGBLIGHT_SPLIT diff --git a/keyboards/lily58/light/info.json b/keyboards/lily58/light/info.json index 7cca1288a39..1c556e429a6 100644 --- a/keyboards/lily58/light/info.json +++ b/keyboards/lily58/light/info.json @@ -39,7 +39,9 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 120 + "led_count": 70, + "max_brightness": 120, + "split_count": [35, 35] }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/lily58/r2g/config.h b/keyboards/lily58/r2g/config.h index da72735e2e5..955cf70161e 100644 --- a/keyboards/lily58/r2g/config.h +++ b/keyboards/lily58/r2g/config.h @@ -19,8 +19,6 @@ along with this program. If not, see . */ #pragma once -//#define SERIAL_USE_MULTI_TRANSACTION - #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_COUNT 74 diff --git a/keyboards/lily58/r2g/info.json b/keyboards/lily58/r2g/info.json index e445d1d48fd..c7fe3e011e7 100644 --- a/keyboards/lily58/r2g/info.json +++ b/keyboards/lily58/r2g/info.json @@ -104,7 +104,7 @@ } }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "split_count": [37, 37], "layout": [ {"flags": 4, "matrix": [0, 5], "x": 72, "y": 4}, // L SW06 diff --git a/keyboards/lily58/rev1/config.h b/keyboards/lily58/rev1/config.h deleted file mode 100644 index 8e94f9f62b7..00000000000 --- a/keyboards/lily58/rev1/config.h +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2017 F_YUUCHI - -This 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 - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs - -/* - * 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/lily58/rev1/info.json b/keyboards/lily58/rev1/info.json index a3e89ec3a75..6f341915bff 100644 --- a/keyboards/lily58/rev1/info.json +++ b/keyboards/lily58/rev1/info.json @@ -20,6 +20,9 @@ "enabled": true, "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/lily58/rev1/keymaps/vial/rules.mk b/keyboards/lily58/rev1/keymaps/vial/rules.mk index d94a4b5a969..c0d8958d609 100644 --- a/keyboards/lily58/rev1/keymaps/vial/rules.mk +++ b/keyboards/lily58/rev1/keymaps/vial/rules.mk @@ -1,7 +1,6 @@ VIA_ENABLE = yes VIAL_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 MOUSEKEY_ENABLE = no EXTRAKEY_ENABLE = yes WPM_ENABLE = yes diff --git a/keyboards/lily58/rules.mk b/keyboards/lily58/rules.mk index 76ce166170d..a63bd42ad37 100644 --- a/keyboards/lily58/rules.mk +++ b/keyboards/lily58/rules.mk @@ -1,3 +1 @@ -OLED_DRIVER = SSD1306 - DEFAULT_FOLDER = lily58/rev1 diff --git a/keyboards/lime/rev1/config.h b/keyboards/lime/rev1/config.h index 6ecfdf3034a..ef4f99076da 100644 --- a/keyboards/lime/rev1/config.h +++ b/keyboards/lime/rev1/config.h @@ -16,8 +16,6 @@ #pragma once -#define TAPPING_TERM 100 - /* joystick support */ #ifdef JOYSTICK_ENABLE # define JOYSTICK_AXIS_COUNT 2 @@ -25,8 +23,6 @@ # define JOYSTICK_AXIS_RESOLUTION 8 #endif -#define TAP_CODE_DELAY 10 - #define SPLIT_USB_DETECT #ifdef WPM_ENABLE diff --git a/keyboards/lime/rev1/info.json b/keyboards/lime/rev1/info.json index 215b47e1038..13caf33841e 100644 --- a/keyboards/lime/rev1/info.json +++ b/keyboards/lime/rev1/info.json @@ -28,6 +28,12 @@ } } }, + "tapping": { + "term": 100 + }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/lime/rev1/rules.mk b/keyboards/lime/rev1/rules.mk index f83c13ac8d6..8ef96fa9d06 100644 --- a/keyboards/lime/rev1/rules.mk +++ b/keyboards/lime/rev1/rules.mk @@ -1,4 +1,3 @@ ENCODER_ENABLE = yes ENCODER_RIGHT_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/linworks/fave104/config.h b/keyboards/linworks/fave104/config.h index 73e72a129f8..41c1a917f39 100644 --- a/keyboards/linworks/fave104/config.h +++ b/keyboards/linworks/fave104/config.h @@ -19,5 +19,4 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 2 -#define BACKLIGHT_PAL_MODE 2 #define BACKLIGHT_PWM_OUTPUT_FREQUENCY 1000 // Increases backlight PWM freq if compiled with an unmerged PR. Does no harm without it. diff --git a/keyboards/linworks/fave104/rules.mk b/keyboards/linworks/fave104/rules.mk index af31ae9eca1..d6925994b5f 100644 --- a/keyboards/linworks/fave104/rules.mk +++ b/keyboards/linworks/fave104/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/linworks/fave60a/config.h b/keyboards/linworks/fave60a/config.h new file mode 100644 index 00000000000..fd70ee7c38f --- /dev/null +++ b/keyboards/linworks/fave60a/config.h @@ -0,0 +1,67 @@ +// Copyright 2023 ziptyze (@ziptyze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Define RGB */ +#define RGB_MATRIX_LED_COUNT 91 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 + +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL + +#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 +// The PIXEL_FRACTAL effect does not work properly when the matrix layout is +// different from the physical layout; it also has problems when underglow +// LEDs are present, or when multiple LEDs are associated with the same key. +#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL + +// Framebuffer effects; can be enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS +// is defined. Both of these effects currently don't work properly when the +// key matrix does not match the physical layout, so they are disabled. +#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP +#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN + +// Reactive effects; can be enabled only if at least one 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 diff --git a/keyboards/linworks/fave60a/info.json b/keyboards/linworks/fave60a/info.json new file mode 100644 index 00000000000..b7753c2fce7 --- /dev/null +++ b/keyboards/linworks/fave60a/info.json @@ -0,0 +1,192 @@ +{ + "manufacturer": "Lx3", + "keyboard_name": "fave60a", + "maintainer": "keydler", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14", "C13"], + "rows": ["A8", "B15", "B14", "B8", "B9"] + }, + "processor": "STM32F072", + "ws2812": { + "pin": "A10" + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + { "flags": 4, "matrix": [4, 13], "x": 208, "y": 64 }, + { "flags": 4, "matrix": [4, 12], "x": 192, "y": 64 }, + { "flags": 4, "matrix": [4, 11], "x": 176, "y": 64 }, + { "flags": 1, "matrix": [4, 6], "x": 96, "y": 64 }, + { "flags": 4, "matrix": [4, 2], "x": 32, "y": 64 }, + { "flags": 4, "matrix": [4, 1], "x": 16, "y": 64 }, + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 48 }, + { "flags": 1, "matrix": [3, 2], "x": 32, "y": 48 }, + { "flags": 1, "matrix": [3, 3], "x": 48, "y": 48 }, + { "flags": 1, "matrix": [3, 4], "x": 64, "y": 48 }, + { "flags": 1, "matrix": [3, 5], "x": 80, "y": 48 }, + { "flags": 1, "matrix": [3, 6], "x": 96, "y": 48 }, + { "flags": 1, "matrix": [3, 7], "x": 112, "y": 48 }, + { "flags": 1, "matrix": [3, 8], "x": 128, "y": 48 }, + { "flags": 1, "matrix": [3, 9], "x": 144, "y": 48 }, + { "flags": 1, "matrix": [3, 10], "x": 160, "y": 48 }, + { "flags": 1, "matrix": [3, 11], "x": 176, "y": 48 }, + { "flags": 4, "matrix": [3, 13], "x": 208, "y": 48 }, + { "flags": 1, "matrix": [2, 13], "x": 208, "y": 32 }, + { "flags": 1, "matrix": [2, 11], "x": 176, "y": 32 }, + { "flags": 1, "matrix": [2, 10], "x": 160, "y": 32 }, + { "flags": 1, "matrix": [2, 9], "x": 144, "y": 32 }, + { "flags": 1, "matrix": [2, 8], "x": 128, "y": 32 }, + { "flags": 1, "matrix": [2, 7], "x": 112, "y": 32 }, + { "flags": 1, "matrix": [2, 6], "x": 96, "y": 32 }, + { "flags": 1, "matrix": [2, 5], "x": 80, "y": 32 }, + { "flags": 1, "matrix": [2, 4], "x": 64, "y": 32 }, + { "flags": 1, "matrix": [2, 3], "x": 48, "y": 32 }, + { "flags": 1, "matrix": [2, 2], "x": 24, "y": 32 }, + { "flags": 1, "matrix": [2, 1], "x": 12, "y": 32 }, + { "flags": 9, "matrix": [2, 0], "x": 0, "y": 32 }, + { "flags": 1, "matrix": [1, 0], "x": 0, "y": 16 }, + { "flags": 1, "matrix": [1, 1], "x": 16, "y": 16 }, + { "flags": 1, "matrix": [1, 2], "x": 32, "y": 16 }, + { "flags": 1, "matrix": [1, 3], "x": 48, "y": 16 }, + { "flags": 1, "matrix": [1, 4], "x": 64, "y": 16 }, + { "flags": 1, "matrix": [1, 5], "x": 80, "y": 16 }, + { "flags": 1, "matrix": [1, 6], "x": 96, "y": 16 }, + { "flags": 1, "matrix": [1, 7], "x": 112, "y": 16 }, + { "flags": 1, "matrix": [1, 8], "x": 128, "y": 16 }, + { "flags": 1, "matrix": [1, 9], "x": 144, "y": 16 }, + { "flags": 1, "matrix": [1, 10], "x": 160, "y": 16 }, + { "flags": 1, "matrix": [1, 11], "x": 176, "y": 16 }, + { "flags": 1, "matrix": [1, 12], "x": 192, "y": 16 }, + { "flags": 1, "matrix": [1, 13], "x": 208, "y": 16 }, + { "flags": 1, "matrix": [0, 13], "x": 208, "y": 0 }, + { "flags": 1, "matrix": [0, 12], "x": 192, "y": 0 }, + { "flags": 1, "matrix": [0, 11], "x": 176, "y": 0 }, + { "flags": 1, "matrix": [0, 10], "x": 160, "y": 0 }, + { "flags": 1, "matrix": [0, 9], "x": 144, "y": 0 }, + { "flags": 1, "matrix": [0, 8], "x": 128, "y": 0 }, + { "flags": 1, "matrix": [0, 7], "x": 112, "y": 0 }, + { "flags": 1, "matrix": [0, 6], "x": 96, "y": 0 }, + { "flags": 1, "matrix": [0, 5], "x": 80, "y": 0 }, + { "flags": 1, "matrix": [0, 4], "x": 64, "y": 0 }, + { "flags": 1, "matrix": [0, 3], "x": 48, "y": 0 }, + { "flags": 1, "matrix": [0, 2], "x": 32, "y": 0 }, + { "flags": 1, "matrix": [0, 1], "x": 16, "y": 0 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 2, "x": 0, "y": 3 }, + { "flags": 2, "x": 16, "y": 3 }, + { "flags": 2, "x": 32, "y": 3 }, + { "flags": 2, "x": 48, "y": 3 }, + { "flags": 2, "x": 64, "y": 3 }, + { "flags": 2, "x": 80, "y": 3 }, + { "flags": 2, "x": 96, "y": 3 }, + { "flags": 2, "x": 112, "y": 3 }, + { "flags": 2, "x": 128, "y": 3 }, + { "flags": 2, "x": 144, "y": 3 }, + { "flags": 2, "x": 160, "y": 3 }, + { "flags": 2, "x": 176, "y": 3 }, + { "flags": 2, "x": 192, "y": 3 }, + { "flags": 2, "x": 208, "y": 3 }, + { "flags": 2, "x": 208, "y": 19 }, + { "flags": 2, "x": 208, "y": 35 }, + { "flags": 2, "x": 208, "y": 51 }, + { "flags": 2, "x": 176, "y": 51 }, + { "flags": 2, "x": 160, "y": 51 }, + { "flags": 2, "x": 144, "y": 51 }, + { "flags": 2, "x": 128, "y": 51 }, + { "flags": 2, "x": 112, "y": 51 }, + { "flags": 2, "x": 96, "y": 51 }, + { "flags": 2, "x": 80, "y": 51 }, + { "flags": 2, "x": 64, "y": 51 }, + { "flags": 2, "x": 48, "y": 51 }, + { "flags": 2, "x": 32, "y": 51 }, + { "flags": 2, "x": 16, "y": 51 }, + { "flags": 2, "x": 0, "y": 51 }, + { "flags": 2, "x": 0, "y": 35 }, + { "flags": 2, "x": 0, "y": 19 } + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x000C", + "vid": "0x4C58" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "K14", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 3, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "K54", "matrix": [3, 14], "x": 14, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "K58", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "Alt", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/linworks/fave60a/keymaps/default/keymap.c b/keyboards/linworks/fave60a/keymaps/default/keymap.c new file mode 100644 index 00000000000..22e9c5f7821 --- /dev/null +++ b/keyboards/linworks/fave60a/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This 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_TRNS, + 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_TRNS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL + ), + [1] = 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_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, 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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/linworks/fave60a/keymaps/via/keymap.c b/keyboards/linworks/fave60a/keymaps/via/keymap.c new file mode 100644 index 00000000000..22e9c5f7821 --- /dev/null +++ b/keyboards/linworks/fave60a/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This 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_TRNS, + 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_TRNS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL + ), + [1] = 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_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, 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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/linworks/fave60a/keymaps/via/rules.mk b/keyboards/linworks/fave60a/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/linworks/fave60a/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/linworks/fave60a/readme.md b/keyboards/linworks/fave60a/readme.md new file mode 100644 index 00000000000..645c5d257d6 --- /dev/null +++ b/keyboards/linworks/fave60a/readme.md @@ -0,0 +1,29 @@ +# linworks/fave60a + +![linworks/fave60a front](https://i.imgur.com/UeWR8Klh.png) +![linworks/fave60a back](https://i.imgur.com/j3mu8LFh.png) + +The Fave60a PCB is a 60 keys keyboard designed by Lx3 (Linworks). +Matrix and Under RGB supported. + +* Keyboard Maintainer: [keydler](https://github.com/duilchoi) +* Hardware Supported: Fave 60 PCBs. linworks 60key keyboards. +* Hardware Availability: Groupbuy.Check the ongoing ones on [the Linworks Discord](https://discord.gg/UC8gTdVnsj) + +Make example for this keyboard (after setting up your build environment): + + make linworks/fave60a:default + +Flashing example for this keyboard: + + make linworks/fave60a: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/linworks/fave60a/rules.mk b/keyboards/linworks/fave60a/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/linworks/fave65h/config.h b/keyboards/linworks/fave65h/config.h index 2c8d4845b13..3f549797d89 100644 --- a/keyboards/linworks/fave65h/config.h +++ b/keyboards/linworks/fave65h/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once /* Define RGB */ -#define RGBLED_NUM 67 #define RGB_MATRIX_LED_COUNT 67 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/linworks/fave65h/info.json b/keyboards/linworks/fave65h/info.json index c0fbdd69033..3bcfcb01164 100644 --- a/keyboards/linworks/fave65h/info.json +++ b/keyboards/linworks/fave65h/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], diff --git a/keyboards/linworks/fave84h/info.json b/keyboards/linworks/fave84h/info.json index 96e432e5ee6..01619e7bc67 100644 --- a/keyboards/linworks/fave84h/info.json +++ b/keyboards/linworks/fave84h/info.json @@ -23,7 +23,7 @@ "rows": ["B1", "B2", "B3", "D3", "D1", "D0"] }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [3, 13], "x": 190, "y": 40}, {"flags": 4, "matrix": [3, 11], "x": 167, "y": 40}, diff --git a/keyboards/linworks/fave87/config.h b/keyboards/linworks/fave87/config.h deleted file mode 100644 index c46332b0077..00000000000 --- a/keyboards/linworks/fave87/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2021 Moritz Plattner -This 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 - -/* Underglow */ -#define RGBLED_NUM 40 -#define RGBLIGHT_SLEEP // Turns LEDs off if the PC goes to sleep/shutdown -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/linworks/fave87/info.json b/keyboards/linworks/fave87/info.json index e77af6d10dc..8f551d8d391 100644 --- a/keyboards/linworks/fave87/info.json +++ b/keyboards/linworks/fave87/info.json @@ -17,6 +17,15 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "led_count": 40, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/linworks/fave87h/config.h b/keyboards/linworks/fave87h/config.h index ef57446100d..e84a0ec9296 100644 --- a/keyboards/linworks/fave87h/config.h +++ b/keyboards/linworks/fave87h/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once /* Define RGB */ -#define RGBLED_NUM 87 #define RGB_MATRIX_LED_COUNT 87 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/linworks/fave87h/info.json b/keyboards/linworks/fave87h/info.json index 4b7aff9ae38..c2008c4bb21 100644 --- a/keyboards/linworks/fave87h/info.json +++ b/keyboards/linworks/fave87h/info.json @@ -12,7 +12,7 @@ "pin": "D2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "B0", "B7", "E6"], diff --git a/keyboards/linworks/favepada/config.h b/keyboards/linworks/favepada/config.h new file mode 100644 index 00000000000..bee089bb436 --- /dev/null +++ b/keyboards/linworks/favepada/config.h @@ -0,0 +1,11 @@ +// Copyright 2023 ziptyze (@ziptyze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Define RGB */ +#define RGB_MATRIX_LED_COUNT 37 +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL diff --git a/keyboards/linworks/favepada/info.json b/keyboards/linworks/favepada/info.json new file mode 100644 index 00000000000..005d7d06d0c --- /dev/null +++ b/keyboards/linworks/favepada/info.json @@ -0,0 +1,140 @@ +{ + "manufacturer": "Lx3", + "keyboard_name": "favepada", + "maintainer": "keydler", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + }, + "matrix_pins": { + "cols": ["A14", "A15", "B3", "B4"], + "rows": ["A9", "A8", "B15", "B14", "B13", "B12"] + }, + "processor": "STM32F072", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "layout": [ + { "flags": 1, "matrix": [5, 2], "x": 149, "y": 59 }, + { "flags": 1, "matrix": [5, 0], "x": 0, "y": 59 }, + { "flags": 1, "matrix": [4, 0], "x": 0, "y": 51 }, + { "flags": 1, "matrix": [4, 1], "x": 74, "y": 51 }, + { "flags": 1, "matrix": [4, 2], "x": 149, "y": 51 }, + { "flags": 1, "matrix": [4, 3], "x": 224, "y": 51 }, + { "flags": 1, "matrix": [3, 2], "x": 149, "y": 38 }, + { "flags": 1, "matrix": [3, 1], "x": 74, "y": 38 }, + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 38 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 26 }, + { "flags": 1, "matrix": [2, 1], "x": 74, "y": 26 }, + { "flags": 1, "matrix": [2, 2], "x": 149, "y": 26 }, + { "flags": 1, "matrix": [2, 3], "x": 224, "y": 26 }, + { "flags": 1, "matrix": [1, 3], "x": 224, "y": 13 }, + { "flags": 1, "matrix": [1, 2], "x": 149, "y": 13 }, + { "flags": 1, "matrix": [1, 1], "x": 74, "y": 13 }, + { "flags": 9, "matrix": [1, 0], "x": 0, "y": 13 }, + { "flags": 2, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 2, "matrix": [0, 1], "x": 74, "y": 0 }, + { "flags": 2, "matrix": [0, 2], "x": 149, "y": 0 }, + { "flags": 2, "matrix": [0, 3], "x": 224, "y": 0 }, + { "flags": 4, "x": 224, "y": 5 }, + { "flags": 4, "x": 149, "y": 5 }, + { "flags": 4, "x": 74, "y": 5 }, + { "flags": 4, "x": 0, "y": 5 }, + { "flags": 4, "x": 0, "y": 18 }, + { "flags": 4, "x": 0, "y": 31 }, + { "flags": 4, "x": 0, "y": 43 }, + { "flags": 4, "x": 0, "y": 56 }, + { "flags": 4, "x": 0, "y": 64 }, + { "flags": 4, "x": 74, "y": 64 }, + { "flags": 4, "x": 149, "y": 64 }, + { "flags": 4, "x": 224, "y": 64 }, + { "flags": 4, "x": 224, "y": 56 }, + { "flags": 4, "x": 224, "y": 43 }, + { "flags": 4, "x": 224, "y": 31 }, + { "flags": 4, "x": 224, "y": 18 } + ], + "max_brightness": 120 + }, + "ws2812": { + "pin": "B1" + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x000B", + "vid": "0x4C58" + }, + "community_layouts": ["numpad_6x4"], + "layouts": { + "LAYOUT_numpad_6x4": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "Num Lock", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "/", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "*", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "-", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "7", "matrix": [2, 0], "x": 0, "y": 2.25 }, + { "label": "8", "matrix": [2, 1], "x": 1, "y": 2.25 }, + { "label": "9", "matrix": [2, 2], "x": 2, "y": 2.25 }, + { "label": "4", "matrix": [3, 0], "x": 0, "y": 3.25 }, + { "label": "5", "matrix": [3, 1], "x": 1, "y": 3.25 }, + { "label": "6", "matrix": [3, 2], "x": 2, "y": 3.25 }, + { "h": 2, "label": "+", "matrix": [2, 3], "x": 3, "y": 2.25 }, + { "label": "1", "matrix": [4, 0], "x": 0, "y": 4.25 }, + { "label": "2", "matrix": [4, 1], "x": 1, "y": 4.25 }, + { "label": "3", "matrix": [4, 2], "x": 2, "y": 4.25 }, + { "label": "0", "matrix": [5, 0], "w": 2, "x": 0, "y": 5.25 }, + { "label": "Del", "matrix": [5, 2], "x": 2, "y": 5.25 }, + { "h": 2, "label": "Enter", "matrix": [4, 3], "x": 3, "y": 4.25 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/linworks/favepada/keymaps/default/keymap.c b/keyboards/linworks/favepada/keymaps/default/keymap.c new file mode 100644 index 00000000000..e17d76109ab --- /dev/null +++ b/keyboards/linworks/favepada/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 noroadsleft + * + * This 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_numpad_6x4( + MO(1), KC_A, KC_B, KC_C, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_numpad_6x4( + KC_TRNS, RGB_TOG, RGB_MOD, KC_D, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ) +}; diff --git a/keyboards/linworks/favepada/keymaps/via/keymap.c b/keyboards/linworks/favepada/keymaps/via/keymap.c new file mode 100644 index 00000000000..e98ca5e7417 --- /dev/null +++ b/keyboards/linworks/favepada/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 noroadsleft + * + * This 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_numpad_6x4( + MO(1), KC_A, KC_B, KC_C, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_numpad_6x4( + KC_TRNS, RGB_TOG, RGB_MOD, KC_D, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ) +}; diff --git a/keyboards/linworks/favepada/keymaps/via/rules.mk b/keyboards/linworks/favepada/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/linworks/favepada/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/linworks/favepada/readme.md b/keyboards/linworks/favepada/readme.md new file mode 100644 index 00000000000..7f06ca90ca2 --- /dev/null +++ b/keyboards/linworks/favepada/readme.md @@ -0,0 +1,18 @@ +# linworks/favepada + +![linworks/favepada front](https://i.imgur.com/tkKHcL2h.png) +![linworks/favepada back](https://i.imgur.com/1x5UokRh.png) + +* Keyboard Maintainer: [keydler](https://github.com/duilchoi) +* Hardware Supported: +* Hardware Availability: None, feel free to order/manufacture parts yourself. + +Make example for this keyboard (after setting up your build environment): + + make linworks/favepada:default + +Flashing example for this keyboard: + + make linworks/favepada: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/linworks/favepada/rules.mk b/keyboards/linworks/favepada/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/linworks/whale75/config.h b/keyboards/linworks/whale75/config.h index e21a6d3974b..629c1dcf701 100644 --- a/keyboards/linworks/whale75/config.h +++ b/keyboards/linworks/whale75/config.h @@ -15,22 +15,14 @@ along with this program. If not, see . #pragma once #define BACKLIGHT_PWM_DRIVER PWMD1 -#define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 6 #define BACKLIGHT_PWM_OUTPUT_FREQUENCY 1000 // Increases backlight PWM freq if compiled with an unmerged PR. Does no harm without it. /* Underglow */ #define WS2812_EXTERNAL_PULLUP // This board uses a pull-up + 5 V tolerant GPIO in open drain config ro generate a 5 V signal -#define RGBLED_NUM 18 /* section for PWM WS2812 driver */ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_PAL_MODE 2 #define WS2812_DMA_STREAM STM32_DMA1_STREAM7 #define WS2812_DMA_CHANNEL 7 -#define RGBLIGHT_SLEEP -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/linworks/whale75/info.json b/keyboards/linworks/whale75/info.json index b08d77e3074..c5bd5d78b72 100644 --- a/keyboards/linworks/whale75/info.json +++ b/keyboards/linworks/whale75/info.json @@ -8,6 +8,15 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, "ws2812": { "pin": "B9", "driver": "pwm" @@ -22,6 +31,9 @@ {"pin_a": "A15", "pin_b": "A14", "resolution": 2} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "backlight": { "pin": "A10", "levels": 5, diff --git a/keyboards/linworks/whale75/rules.mk b/keyboards/linworks/whale75/rules.mk index 2fd78a13f17..76b31f0a0a0 100644 --- a/keyboards/linworks/whale75/rules.mk +++ b/keyboards/linworks/whale75/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/littlealby/mute/config.h b/keyboards/littlealby/mute/config.h deleted file mode 100644 index 3a5b0356a94..00000000000 --- a/keyboards/littlealby/mute/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2019 albybarber - * - * This 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 RGBLIGHT_ENABLE -#define RGBLED_NUM 1 -#endif diff --git a/keyboards/littlealby/mute/info.json b/keyboards/littlealby/mute/info.json index a6392a76e78..a4a2a5822ec 100644 --- a/keyboards/littlealby/mute/info.json +++ b/keyboards/littlealby/mute/info.json @@ -9,6 +9,9 @@ "device_version": "0.0.1", "max_power": 100 }, + "rgblight": { + "led_count": 1 + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/ll3macorn/bongopad/config.h b/keyboards/ll3macorn/bongopad/config.h index b4d4367f1db..4ee4b5a9975 100644 --- a/keyboards/ll3macorn/bongopad/config.h +++ b/keyboards/ll3macorn/bongopad/config.h @@ -2,9 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -/* rgb underglow */ -#define RGBLED_NUM 6 - /* misc */ #define LAYER_STATE_8BIT #define NO_ACTION_TAPPING diff --git a/keyboards/ll3macorn/bongopad/info.json b/keyboards/ll3macorn/bongopad/info.json index 6208b749f93..cde72e5882f 100644 --- a/keyboards/ll3macorn/bongopad/info.json +++ b/keyboards/ll3macorn/bongopad/info.json @@ -21,6 +21,9 @@ "bootmagic": { "matrix": [1, 0] }, + "rgblight": { + "led_count": 6 + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/ll3macorn/bongopad/rules.mk b/keyboards/ll3macorn/bongopad/rules.mk index c7f8935a088..722f12e66ec 100644 --- a/keyboards/ll3macorn/bongopad/rules.mk +++ b/keyboards/ll3macorn/bongopad/rules.mk @@ -12,5 +12,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/lm_keyboard/lm60n/config.h b/keyboards/lm_keyboard/lm60n/config.h index e40b0762d3a..aea945a035d 100644 --- a/keyboards/lm_keyboard/lm60n/config.h +++ b/keyboards/lm_keyboard/lm60n/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 41 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lm_keyboard/lm60n/info.json b/keyboards/lm_keyboard/lm60n/info.json index ed8af5bc77a..6698ed9f34d 100644 --- a/keyboards/lm_keyboard/lm60n/info.json +++ b/keyboards/lm_keyboard/lm60n/info.json @@ -17,6 +17,24 @@ "caps_lock": "C7", "num_lock": "B7" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 41, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/loki65/config.h b/keyboards/loki65/config.h index 750a12d64f0..3627f4c7e6d 100644 --- a/keyboards/loki65/config.h +++ b/keyboards/loki65/config.h @@ -27,18 +27,3 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM5 #define WS2812_DMA_CHANNEL 5 #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB - -#define RGBLED_NUM 37 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/loki65/info.json b/keyboards/loki65/info.json index a1a5e3ef06c..8424f7d437e 100644 --- a/keyboards/loki65/info.json +++ b/keyboards/loki65/info.json @@ -8,6 +8,23 @@ "pid": "0x4C36", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 37, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A9", "driver": "pwm" diff --git a/keyboards/loki65/rules.mk b/keyboards/loki65/rules.mk index 000ee78e21a..cc9d7bb3f53 100644 --- a/keyboards/loki65/rules.mk +++ b/keyboards/loki65/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/longnald/corin/config.h b/keyboards/longnald/corin/config.h deleted file mode 100644 index caafcfd8a16..00000000000 --- a/keyboards/longnald/corin/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2020 Longnald - * Copyright (C) 2020 Seaton Jiang - * - * This 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 3 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 RGBLED_NUM 64 -# define RGBLIGHT_HUE_STEP 20 -# define RGBLIGHT_SAT_STEP 20 -# define RGBLIGHT_VAL_STEP 40 -# define RGBLIGHT_SLEEP -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_STATIC_GRADIENT diff --git a/keyboards/longnald/corin/info.json b/keyboards/longnald/corin/info.json index 52964256bbc..f3d42039222 100644 --- a/keyboards/longnald/corin/info.json +++ b/keyboards/longnald/corin/info.json @@ -12,7 +12,18 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 200 + "hue_steps": 20, + "saturation_steps": 20, + "brightness_steps": 40, + "led_count": 64, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true + } }, "matrix_pins": { "cols": ["F7", "F6", "F1", "F5", "B1", "E6", "D4", "B7", "D1", "D2", "D0", "B4", "B6", "C6", "C7"], diff --git a/keyboards/lucid/velvet_hotswap/info.json b/keyboards/lucid/velvet_hotswap/info.json index e3302cef1cd..2cbecb782d8 100644 --- a/keyboards/lucid/velvet_hotswap/info.json +++ b/keyboards/lucid/velvet_hotswap/info.json @@ -23,8 +23,114 @@ }, "processor": "at90usb646", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_f13_ansi_split_bs_rshift" + }, + "community_layouts": [ + "tkl_f13_ansi", + "tkl_f13_ansi_split_bs_rshift", + "tkl_f13_ansi_tsangan", + "tkl_f13_ansi_tsangan_split_bs_rshift" + ], "layouts": { - "LAYOUT": { + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "label": "|", "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 1], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 2], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 3], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 4], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 5], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 6], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 7], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 8], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 9], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 10], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { "layout": [ {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, @@ -107,7 +213,7 @@ {"matrix": [4, 9], "label": ">", "x": 10.25, "y": 4.25}, {"matrix": [4, 10], "label": "?", "x": 11.25, "y": 4.25}, {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "label": "Right Shift", "x": 12.25, "y": 4.25}, + {"matrix": [4, 13], "label": "Right Shift", "x": 14, "y": 4.25}, {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, @@ -122,6 +228,200 @@ {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "label": "|", "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 1], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 2], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 3], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 4], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 5], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 6], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 7], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 8], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 9], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 10], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "label": "Win", "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "label": "Alt", "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [3, 12], "label": "Back Space", "x": 13, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 14, "y": 1.25}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "label": "|", "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 1], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 2], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 3], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 4], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 5], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 6], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 7], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 8], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 9], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 10], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "label": "Right Shift", "x": 14, "y": 4.25}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "label": "Win", "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "label": "Alt", "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] } } } diff --git a/keyboards/lucid/velvet_hotswap/keymaps/default/keymap.c b/keyboards/lucid/velvet_hotswap/keymaps/default/keymap.c index 93c617b1a17..23e76c78544 100644 --- a/keyboards/lucid/velvet_hotswap/keymaps/default/keymap.c +++ b/keyboards/lucid/velvet_hotswap/keymaps/default/keymap.c @@ -20,22 +20,22 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_LAYER0] = 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_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_BSPC, 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_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + + [_LAYER0] = LAYOUT_tkl_f13_ansi_split_bs_rshift( + 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, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = 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, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER1] = LAYOUT_tkl_f13_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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/lucid/velvet_hotswap/keymaps/via/keymap.c b/keyboards/lucid/velvet_hotswap/keymaps/via/keymap.c index bd0122a4a8e..b7257c8274b 100644 --- a/keyboards/lucid/velvet_hotswap/keymaps/via/keymap.c +++ b/keyboards/lucid/velvet_hotswap/keymaps/via/keymap.c @@ -23,39 +23,39 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_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, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_tkl_f13_ansi_split_bs_rshift( + 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, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = 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, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER1] = LAYOUT_tkl_f13_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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, 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_tkl_f13_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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, 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_tkl_f13_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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/lucid/velvet_hotswap/matrix_diagram.md b/keyboards/lucid/velvet_hotswap/matrix_diagram.md new file mode 100644 index 00000000000..7ee3ce0403d --- /dev/null +++ b/keyboards/lucid/velvet_hotswap/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for FJLaboratories Velvet Hotswap + +``` +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ +│00 ││01 │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 │3C │1D ││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 │4D │ │4F │ │4C │ 2.75u RShift +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ └──────────┘ +│50 │51 │52 │55 │59 │5A │5B │5D ││5E │5F │5G │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │55 │5A │5B │5D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/lucid/velvet_solder/info.json b/keyboards/lucid/velvet_solder/info.json index e1469cb813c..1cc8e43cdbc 100644 --- a/keyboards/lucid/velvet_solder/info.json +++ b/keyboards/lucid/velvet_solder/info.json @@ -23,8 +23,11 @@ }, "processor": "at90usb646", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, @@ -108,7 +111,604 @@ {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "label": "Right Shift", "x": 12.25, "y": 4.25}, + {"matrix": [4, 13], "label": "Right Shift", "x": 14, "y": 4.25}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 4], "x": 3.75, "y": 5.25, "w": 2.75}, + {"matrix": [5, 5], "x": 6.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 8], "x": 7.75, "y": 5.25, "w": 2.25}, + {"matrix": [5, 9], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "label": "|", "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 13, "y": 1.25}, + {"matrix": [3, 14], "label": "Back Space", "x": 14, "y": 1.25}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "label": "|", "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "label": "Right Shift", "x": 14, "y": 4.25}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_space_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 13, "y": 1.25}, + {"matrix": [3, 14], "label": "Back Space", "x": 14, "y": 1.25}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "label": "|", "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "label": "Right Shift", "x": 14, "y": 4.25}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 4], "x": 3.75, "y": 5.25, "w": 2.75}, + {"matrix": [5, 5], "x": 6.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 8], "x": 7.75, "y": 5.25, "w": 2.25}, + {"matrix": [5, 9], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "~", "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "label": "Enter", "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "label": "|", "x": 1.25, "y": 4.25, "w": 1}, + {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 13, "y": 1.25}, + {"matrix": [3, 14], "label": "Back Space", "x": 14, "y": 1.25}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "~", "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "label": "Enter", "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "label": "|", "x": 1.25, "y": 4.25, "w": 1}, + {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "label": "Right Shift", "x": 14, "y": 4.25}, + {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_space_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [0, 10], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [0, 13], "label": "F13", "x": 14, "y": 0}, + {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, + {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, + {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, + {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, + {"matrix": [1, 3], "label": "#", "x": 3, "y": 1.25}, + {"matrix": [1, 4], "label": "$", "x": 4, "y": 1.25}, + {"matrix": [1, 5], "label": "%", "x": 5, "y": 1.25}, + {"matrix": [1, 6], "label": "^", "x": 6, "y": 1.25}, + {"matrix": [1, 7], "label": "&", "x": 7, "y": 1.25}, + {"matrix": [1, 8], "label": "*", "x": 8, "y": 1.25}, + {"matrix": [1, 9], "label": "(", "x": 9, "y": 1.25}, + {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, + {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, + {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, + {"matrix": [1, 13], "label": "Back Space", "x": 13, "y": 1.25}, + {"matrix": [3, 14], "label": "Back Space", "x": 14, "y": 1.25}, + {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "label": "SQ", "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "label": "~", "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "label": "Enter", "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "label": "Left Shift", "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "label": "|", "x": 1.25, "y": 4.25, "w": 1}, + {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Right Shift", "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "label": "Right Shift", "x": 14, "y": 4.25}, {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, @@ -116,7 +716,7 @@ {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, {"matrix": [5, 4], "x": 3.75, "y": 5.25, "w": 2.75}, {"matrix": [5, 5], "x": 6.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 8], "x": 6.75, "y": 5.25, "w": 2.25}, + {"matrix": [5, 8], "x": 7.75, "y": 5.25, "w": 2.25}, {"matrix": [5, 9], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, {"matrix": [5, 10], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, {"matrix": [5, 11], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, diff --git a/keyboards/lucid/velvet_solder/keymaps/default/keymap.c b/keyboards/lucid/velvet_solder/keymaps/default/keymap.c index dbe2f58a81a..57fa9bf2bc0 100644 --- a/keyboards/lucid/velvet_solder/keymaps/default/keymap.c +++ b/keyboards/lucid/velvet_solder/keymaps/default/keymap.c @@ -20,22 +20,22 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_LAYER0] = 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_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_BSPC, KC_ENT, - 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_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + + [_LAYER0] = 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_LSFT, 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER1] = 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 ) }; diff --git a/keyboards/lucid/velvet_solder/keymaps/via/keymap.c b/keyboards/lucid/velvet_solder/keymaps/via/keymap.c index b6d8377e4c4..2c7cd72db8b 100644 --- a/keyboards/lucid/velvet_solder/keymaps/via/keymap.c +++ b/keyboards/lucid/velvet_solder/keymaps/via/keymap.c @@ -23,39 +23,39 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_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_LSFT, 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_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = 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_LSFT, 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER1] = 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 ), - [_LAYER2] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER2] = 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 ), - [_LAYER3] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER3] = 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/lucid/velvet_solder/matrix_diagram.md b/keyboards/lucid/velvet_solder/matrix_diagram.md new file mode 100644 index 00000000000..3269c061aa9 --- /dev/null +++ b/keyboards/lucid/velvet_solder/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for FJLaboratories Velvet Solder + +``` +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ +│00 ││01 │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 │3E ││1E │1F │1G │ │1D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D ││2E │2F │2G │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐2D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │3D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ +├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│50 │51 │52 │54 │55 │58 │59 │5A │5B │5D ││5E │5F │5G │ +└────┴────┴────┴──────────┴────┴────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│40 │ 2.25u LShift 2.75u RShift │4C │ +└────────┘ └──────────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│50 │51 │52 │55 │59 │5A │5B │5D │ Standard +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬───┬─────┬──────────┬─────┬──────────┬─────┬───┬─────┐ +│50 │51 │52 │54 │55 │58 │5A │5B │5D │ Tsangan/WKL with Split Spacebar +└─────┴───┴─────┴──────────┴─────┴──────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │55 │5A │5B │5D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/lw75/info.json b/keyboards/lw75/info.json index d236546c3bf..bb9aceb95f9 100644 --- a/keyboards/lw75/info.json +++ b/keyboards/lw75/info.json @@ -107,9 +107,9 @@ {"matrix": [4, 11], "x": 11.25, "y": 4.25}, {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 15.5, "y": 4.25}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, - {"matrix": [4, 14], "x": 14.25, "y": 4.5}, + {"matrix": [4, 14], "x": 15.5, "y": 4.25}, {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, @@ -211,9 +211,9 @@ {"matrix": [4, 11], "x": 11.25, "y": 4.25}, {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 15.5, "y": 4.25}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, - {"matrix": [4, 14], "x": 14.25, "y": 4.5}, + {"matrix": [4, 14], "x": 15.5, "y": 4.25}, {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, @@ -315,9 +315,9 @@ {"matrix": [4, 11], "x": 11.25, "y": 4.25}, {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 15.5, "y": 4.25}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, - {"matrix": [4, 14], "x": 14.25, "y": 4.5}, + {"matrix": [4, 14], "x": 15.5, "y": 4.25}, {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, @@ -420,9 +420,9 @@ {"matrix": [4, 11], "x": 11.25, "y": 4.25}, {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [4, 13], "x": 15.5, "y": 4.25}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, - {"matrix": [4, 14], "x": 14.25, "y": 4.5}, + {"matrix": [4, 14], "x": 15.5, "y": 4.25}, {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, diff --git a/keyboards/lxxt/lxxt.c b/keyboards/lxxt/lxxt.c index 0c4401c32b1..67c9085d92b 100644 --- a/keyboards/lxxt/lxxt.c +++ b/keyboards/lxxt/lxxt.c @@ -20,7 +20,7 @@ #if defined(ENCODER_ENABLE) bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_kb(index, clockwise)) { + if (!encoder_update_user(index, clockwise)) { return false; /* Don't process further events if user function exists and returns false */ } if (index == 0) { /* First encoder */ @@ -39,4 +39,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/lyso1/lck75/config.h b/keyboards/lyso1/lck75/config.h index ef5df5dd3d3..b7ade40289a 100644 --- a/keyboards/lyso1/lck75/config.h +++ b/keyboards/lyso1/lck75/config.h @@ -21,8 +21,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLIGHT_SLEEP - #define OLED_TIMEOUT 10000 #define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_MACOS, UNICODE_MODE_LINUX @@ -42,6 +40,5 @@ along with this program. If not, see . #endif #define PERMISSIVE_HOLD -#define TAPPING_TERM 200 #define NO_ACTION_ONESHOT diff --git a/keyboards/lyso1/lck75/rules.mk b/keyboards/lyso1/lck75/rules.mk index db42ab6247c..6f3aabc44fc 100644 --- a/keyboards/lyso1/lck75/rules.mk +++ b/keyboards/lyso1/lck75/rules.mk @@ -15,7 +15,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes WPM_ENABLE = yes LTO_ENABLE = no diff --git a/keyboards/lz/erghost/config.h b/keyboards/lz/erghost/config.h index 4f298a1af80..870f7003bdb 100644 --- a/keyboards/lz/erghost/config.h +++ b/keyboards/lz/erghost/config.h @@ -36,22 +36,3 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 28 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -# define RGBLIGHT_EFFECT_STATIC_LIGHT -# 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 -#endif diff --git a/keyboards/lz/erghost/info.json b/keyboards/lz/erghost/info.json index d7e266d134c..68918a38f28 100644 --- a/keyboards/lz/erghost/info.json +++ b/keyboards/lz/erghost/info.json @@ -12,6 +12,24 @@ "pin": "B6", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 28, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/m10a/keymaps/gam3cat/keymap.c b/keyboards/m10a/keymaps/gam3cat/keymap.c index bfe30b79811..8860bbd0108 100644 --- a/keyboards/m10a/keymaps/gam3cat/keymap.c +++ b/keyboards/m10a/keymaps/gam3cat/keymap.c @@ -110,10 +110,6 @@ void matrix_init_user(void) { #endif } -void matrix_scan_user(void) { - -} - layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case _L0: @@ -152,7 +148,3 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/macro1/keymaps/default/keymap.c b/keyboards/macro1/keymaps/default/keymap.c index 22cff4a718b..047ea698085 100644 --- a/keyboards/macro1/keymaps/default/keymap.c +++ b/keyboards/macro1/keymaps/default/keymap.c @@ -41,24 +41,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT), - - [1] = LAYOUT_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), - - [2] = LAYOUT_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_KP_0, KC_KP_DOT) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)} +}; +#endif diff --git a/keyboards/macrocat/keymaps/oled/rules.mk b/keyboards/macrocat/keymaps/oled/rules.mk index ca8d16ba670..ab9d5c6ac2f 100644 --- a/keyboards/macrocat/keymaps/oled/rules.mk +++ b/keyboards/macrocat/keymaps/oled/rules.mk @@ -1,3 +1,2 @@ VIA_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/makrosu/config.h b/keyboards/makrosu/config.h index 64f4553f903..2977cd9d40a 100644 --- a/keyboards/makrosu/config.h +++ b/keyboards/makrosu/config.h @@ -16,8 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/makrosu/info.json b/keyboards/makrosu/info.json index 96eaf9fad62..ad6acdb100a 100644 --- a/keyboards/makrosu/info.json +++ b/keyboards/makrosu/info.json @@ -18,6 +18,9 @@ {"pin_a": "E6", "pin_b": "D1"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "bootmagic": { "matrix": [0, 5] }, diff --git a/keyboards/malevolti/lyra/rev1/config.h b/keyboards/malevolti/lyra/rev1/config.h deleted file mode 100644 index 38a1a09cd34..00000000000 --- a/keyboards/malevolti/lyra/rev1/config.h +++ /dev/null @@ -1,18 +0,0 @@ - /* Copyright 2021 Domanic Calleja - * - * This 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 TAPPING_TERM 100 diff --git a/keyboards/malevolti/lyra/rev1/info.json b/keyboards/malevolti/lyra/rev1/info.json index 2b7f8fbd713..7a9aa305acb 100644 --- a/keyboards/malevolti/lyra/rev1/info.json +++ b/keyboards/malevolti/lyra/rev1/info.json @@ -16,6 +16,9 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 100 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/malevolti/superlyra/rev1/config.h b/keyboards/malevolti/superlyra/rev1/config.h deleted file mode 100644 index cffc2e9ff2e..00000000000 --- a/keyboards/malevolti/superlyra/rev1/config.h +++ /dev/null @@ -1,18 +0,0 @@ - /* Copyright 2021 Domanic Calleja - * - * This 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 TAPPING_TERM 100 diff --git a/keyboards/malevolti/superlyra/rev1/info.json b/keyboards/malevolti/superlyra/rev1/info.json index 59cd50af421..989e6baaa75 100644 --- a/keyboards/malevolti/superlyra/rev1/info.json +++ b/keyboards/malevolti/superlyra/rev1/info.json @@ -8,6 +8,9 @@ "pid": "0x4C53", "device_version": "30.3.1" }, + "tapping": { + "term": 100 + }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1"], "rows": ["B7", "B3", "B2", "B1", "B0"] diff --git a/keyboards/manta60/config.h b/keyboards/manta60/config.h index 918edbdbb04..cd3521fd657 100644 --- a/keyboards/manta60/config.h +++ b/keyboards/manta60/config.h @@ -19,11 +19,6 @@ along with this program. If not, see . #define SELECT_SOFT_SERIAL_SPEED 1 -# define RGBLED_NUM 68 -# define RGBLIGHT_SPLIT -# define RGBLED_SPLIT { 34, 34 } -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 # ifndef IOS_DEVICE_ENABLE # define RGBLIGHT_VAL_STEP 16 # define RGBLIGHT_LIMIT_VAL 128 /* The maximum brightness level */ @@ -31,17 +26,6 @@ along with this program. If not, see . # define RGBLIGHT_VAL_STEP 4 # define RGBLIGHT_LIMIT_VAL 32 /* The maximum brightness level */ # endif -//# 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 -# define RGBLIGHT_EFFECT_TWINKLE #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) # define USB_MAX_POWER_CONSUMPTION 400 diff --git a/keyboards/manta60/info.json b/keyboards/manta60/info.json index ba48f72ad23..86637d4b680 100644 --- a/keyboards/manta60/info.json +++ b/keyboards/manta60/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "saturation_steps": 8, + "led_count": 68, + "split_count": [34, 34], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/manyboard/macro/config.h b/keyboards/manyboard/macro/config.h deleted file mode 100644 index 39274737112..00000000000 --- a/keyboards/manyboard/macro/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2020 William Ehman - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB Pins */ -#define RGBLED_NUM 2 diff --git a/keyboards/manyboard/macro/info.json b/keyboards/manyboard/macro/info.json index 3df9a79430a..10218337d96 100644 --- a/keyboards/manyboard/macro/info.json +++ b/keyboards/manyboard/macro/info.json @@ -22,6 +22,7 @@ "pin": "B6" }, "rgblight": { + "led_count": 2, "max_brightness": 10 }, "processor": "atmega32u4", diff --git a/keyboards/maple_computing/6ball/config.h b/keyboards/maple_computing/6ball/config.h deleted file mode 100644 index 59679e27535..00000000000 --- a/keyboards/maple_computing/6ball/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 // Number of LEDs - -#define TAPPING_TERM 200 diff --git a/keyboards/maple_computing/6ball/info.json b/keyboards/maple_computing/6ball/info.json index b799baa28c7..56531d6fa25 100644 --- a/keyboards/maple_computing/6ball/info.json +++ b/keyboards/maple_computing/6ball/info.json @@ -8,6 +8,21 @@ "pid": "0x0007", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/maple_computing/christmas_tree/info.json b/keyboards/maple_computing/christmas_tree/info.json index 0a19667957c..e675f2f9327 100644 --- a/keyboards/maple_computing/christmas_tree/info.json +++ b/keyboards/maple_computing/christmas_tree/info.json @@ -13,6 +13,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D2" }, "processor": "atmega32u4", diff --git a/keyboards/maple_computing/ivy/rev1/info.json b/keyboards/maple_computing/ivy/rev1/info.json index 3b971cb6736..de89abee75c 100644 --- a/keyboards/maple_computing/ivy/rev1/info.json +++ b/keyboards/maple_computing/ivy/rev1/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D2" }, "processor": "atmega32u4", diff --git a/keyboards/maple_computing/jnao/info.json b/keyboards/maple_computing/jnao/info.json index f1e753017f1..73ddf107ecb 100644 --- a/keyboards/maple_computing/jnao/info.json +++ b/keyboards/maple_computing/jnao/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D0" }, "processor": "atmega32u4", diff --git a/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk b/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk index c3b1e0a8b97..9fa73f2406c 100644 --- a/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk +++ b/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk @@ -4,4 +4,4 @@ RGBLIGHT_ENABLE = no AUDIO_ENABLE = no BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 diff --git a/keyboards/maple_computing/launchpad/rev1/config.h b/keyboards/maple_computing/launchpad/rev1/config.h deleted file mode 100644 index 7cf73259b44..00000000000 --- a/keyboards/maple_computing/launchpad/rev1/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -#define RGBLED_NUM 10 -#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/maple_computing/launchpad/rev1/info.json b/keyboards/maple_computing/launchpad/rev1/info.json index 81c23850ec4..a846dd83f50 100644 --- a/keyboards/maple_computing/launchpad/rev1/info.json +++ b/keyboards/maple_computing/launchpad/rev1/info.json @@ -8,6 +8,21 @@ "pid": "0x6007", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/maple_computing/lets_split_eh/eh/config.h b/keyboards/maple_computing/lets_split_eh/eh/config.h index c64be02975a..38cf73ae1e3 100644 --- a/keyboards/maple_computing/lets_split_eh/eh/config.h +++ b/keyboards/maple_computing/lets_split_eh/eh/config.h @@ -18,21 +18,6 @@ along with this program. If not, see . #pragma once -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs (each hand) -#define RGBLED_SPLIT { 6, 6 } -#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 - - /* Split Defines */ #define SPLIT_HAND_PIN D3 diff --git a/keyboards/maple_computing/lets_split_eh/eh/info.json b/keyboards/maple_computing/lets_split_eh/eh/info.json index 1908f56eeb1..2b77267da81 100644 --- a/keyboards/maple_computing/lets_split_eh/eh/info.json +++ b/keyboards/maple_computing/lets_split_eh/eh/info.json @@ -16,6 +16,22 @@ "backlight": { "pin": "B7" }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/maple_computing/the_ruler/config.h b/keyboards/maple_computing/the_ruler/config.h index e3b34d1bf00..b9449c4714b 100644 --- a/keyboards/maple_computing/the_ruler/config.h +++ b/keyboards/maple_computing/the_ruler/config.h @@ -37,18 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define RGBLED_NUM 1 // Number of LEDs -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/maple_computing/the_ruler/info.json b/keyboards/maple_computing/the_ruler/info.json index 336d48af4c6..9ba1355fdd3 100644 --- a/keyboards/maple_computing/the_ruler/info.json +++ b/keyboards/maple_computing/the_ruler/info.json @@ -8,6 +8,22 @@ "pid": "0x6007", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/marksard/leftover30/config.h b/keyboards/marksard/leftover30/config.h index 8f87bd4f1ac..4d408c6e4bd 100644 --- a/keyboards/marksard/leftover30/config.h +++ b/keyboards/marksard/leftover30/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/marksard/leftover30/info.json b/keyboards/marksard/leftover30/info.json index 44e8b9bca51..139214ad497 100644 --- a/keyboards/marksard/leftover30/info.json +++ b/keyboards/marksard/leftover30/info.json @@ -18,6 +18,24 @@ {"pin_a": "F4", "pin_b": "F5"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/marksard/rhymestone/rev1/config.h b/keyboards/marksard/rhymestone/rev1/config.h index d3250461b2d..bd9aeeecdbe 100644 --- a/keyboards/marksard/rhymestone/rev1/config.h +++ b/keyboards/marksard/rhymestone/rev1/config.h @@ -17,37 +17,14 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 40 - #define RGBLED_SPLIT {20, 20} - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#endif - #ifdef RGB_MATRIX_ENABLE - #define RGBLED_NUM 40 // Number of LEDs - #define RGB_MATRIX_LED_COUNT RGBLED_NUM + #define RGB_MATRIX_LED_COUNT 40 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #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) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 - #define RGB_MATRIX_HUE_STEP 8 - #define RGB_MATRIX_SAT_STEP 8 - #define RGB_MATRIX_VAL_STEP 8 - #define RGB_MATRIX_SPD_STEP 10 // #undef ENABLE_RGB_MATRIX_ALPHAS_MODS // #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/marksard/rhymestone/rev1/info.json b/keyboards/marksard/rhymestone/rev1/info.json index fc4ee548d16..be8a846cfc2 100644 --- a/keyboards/marksard/rhymestone/rev1/info.json +++ b/keyboards/marksard/rhymestone/rev1/info.json @@ -9,7 +9,10 @@ "device_version": "0.2.0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4"], @@ -23,7 +26,18 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 40, + "max_brightness": 150, + "sleep": true, + "split_count": [20, 20], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/marksard/treadstone32/lite/config.h b/keyboards/marksard/treadstone32/lite/config.h index 22435108df1..0d26ca0cf0c 100644 --- a/keyboards/marksard/treadstone32/lite/config.h +++ b/keyboards/marksard/treadstone32/lite/config.h @@ -17,7 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 6 #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ #define RGBLIGHT_VAL_STEP 8 @@ -25,18 +24,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #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 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for treadstone32 keyboard diff --git a/keyboards/marksard/treadstone32/lite/info.json b/keyboards/marksard/treadstone32/lite/info.json index 878b4db2ac2..4ca3d8b1389 100644 --- a/keyboards/marksard/treadstone32/lite/info.json +++ b/keyboards/marksard/treadstone32/lite/info.json @@ -3,6 +3,17 @@ "usb": { "device_version": "0.1.5" }, + "rgblight": { + "saturation_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/marksard/treadstone32/rev1/config.h b/keyboards/marksard/treadstone32/rev1/config.h index 1f3a9ec1684..fca4ba8f3dc 100644 --- a/keyboards/marksard/treadstone32/rev1/config.h +++ b/keyboards/marksard/treadstone32/rev1/config.h @@ -17,7 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 6 #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ #define RGBLIGHT_VAL_STEP 8 @@ -25,18 +24,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #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 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for treadstone32 keyboard diff --git a/keyboards/marksard/treadstone32/rev1/info.json b/keyboards/marksard/treadstone32/rev1/info.json index 00538f7e8ab..7da6e2c24e8 100644 --- a/keyboards/marksard/treadstone32/rev1/info.json +++ b/keyboards/marksard/treadstone32/rev1/info.json @@ -3,6 +3,17 @@ "usb": { "device_version": "0.1.0" }, + "rgblight": { + "saturation_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/marksard/treadstone48/common/oled_helper.c b/keyboards/marksard/treadstone48/common/oled_helper.c index c3c8f23cbc5..e9a8cf564a3 100644 --- a/keyboards/marksard/treadstone48/common/oled_helper.c +++ b/keyboards/marksard/treadstone48/common/oled_helper.c @@ -43,10 +43,10 @@ void render_key_status(void) { static char lock_buf[24] = "Lock state ready.\n"; void update_lock_status(void) { - uint8_t leds = host_keyboard_leds(); - char *num_lock = (leds & (1<. #define RGBLED_NUM 32 #define RGBLED_SPLIT {12, 20} #endif - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/marksard/treadstone48/rev1/info.json b/keyboards/marksard/treadstone48/rev1/info.json index f4dfc35ec10..5c13e5b15c5 100644 --- a/keyboards/marksard/treadstone48/rev1/info.json +++ b/keyboards/marksard/treadstone48/rev1/info.json @@ -20,7 +20,16 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "max_brightness": 180, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/rules.mk b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/rules.mk index fafe992d6f9..6b041a7554f 100644 --- a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/rules.mk +++ b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/rules.mk @@ -2,7 +2,6 @@ MOUSEKEY_ENABLE = yes # Mouse keys RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes # If you use connection the Rhymestone, please enable RS_EXTRA_LED diff --git a/keyboards/marksard/treadstone48/rev2/config.h b/keyboards/marksard/treadstone48/rev2/config.h index 4335ea06702..4d408c6e4bd 100644 --- a/keyboards/marksard/treadstone48/rev2/config.h +++ b/keyboards/marksard/treadstone48/rev2/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 12 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/marksard/treadstone48/rev2/info.json b/keyboards/marksard/treadstone48/rev2/info.json index 6e39235dc1c..59af38e55d9 100644 --- a/keyboards/marksard/treadstone48/rev2/info.json +++ b/keyboards/marksard/treadstone48/rev2/info.json @@ -12,7 +12,17 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 220 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "max_brightness": 220, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true + } }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/marksard/treadstone48/rules.mk b/keyboards/marksard/treadstone48/rules.mk index 78219bfaceb..e9a2de4c251 100644 --- a/keyboards/marksard/treadstone48/rules.mk +++ b/keyboards/marksard/treadstone48/rules.mk @@ -14,6 +14,5 @@ MOUSEKEY_ENABLE = yes # Mouse keys RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow OLED_ENABLE = yes -OLED_DRIVER = SSD1306 DEFAULT_FOLDER = marksard/treadstone48/rev1 diff --git a/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c b/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c index edd906deb51..8df4376806b 100644 --- a/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c +++ b/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c @@ -65,10 +65,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, LAG_SWP, LAG_NRM, _______, _______, TG(3), _______, _______, _______ ), [3] = LAYOUT( - XP(0,1), XP(2,3), XP(4,5), XP(6,7), XP(8,9), XP(10,11), XP(12,13), XP(14,15), XP(16,17), XP(18,19), XP(20,21), XP(22,23), XP(24,25), _______, _______, - _______, KC_QUES, XP(27,28), XP(29,31), X(32), XP(33,34), X(35), X(36), XP(37,38), XP(39,40), XP(41,42), XP(43,44), XP(45,46), _______, _______, - _______, XP(47,48), X(49), X(50), KC_UNDS, XP(52,5), XP(53,54), XP(55,56), KC_QUOT, XP(59,60), XP(61,62), XP(63,64), _______, _______, - _______, XP(65,66), X(67), XP(68,69), X(70), X(71), X(72), X(73), KC_PIPE, XP(75,76), X(77), XP(78,79), _______, _______, + UP(0,1), UP(2,3), UP(4,5), UP(6,7), UP(8,9), UP(10,11), UP(12,13), UP(14,15), UP(16,17), UP(18,19), UP(20,21), UP(22,23), UP(24,25), _______, _______, + _______, KC_QUES, UP(27,28), UP(29,31), UM(32), UP(33,34), UM(35), UM(36), UP(37,38), UP(39,40), UP(41,42), UP(43,44), UP(45,46), _______, _______, + _______, UP(47,48), UM(49), UM(50), KC_UNDS, UP(52,5), UP(53,54), UP(55,56), KC_QUOT, UP(59,60), UP(61,62), UP(63,64), _______, _______, + _______, UP(65,66), UM(67), UP(68,69), UM(70), UM(71), UM(72), UM(73), KC_PIPE, UP(75,76), UM(77), UP(78,79), _______, _______, _______, _______, _______, _______, _______, TG(3), _______, _______, _______ ), }; diff --git a/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c b/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c index 51772f1fa3f..c974fb9e2b3 100644 --- a/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c +++ b/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c @@ -26,7 +26,6 @@ uint16_t rgb_idle_seconds = 0; uint16_t rgb_timer; uint8_t save_layer; -#define NUMLOCK_ON (host_keyboard_leds() & (1<. /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* RGB */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - - -#define RGBLED_NUM 16 -#define RGBLIGHT_SLEEP #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB diff --git a/keyboards/matrix/m12og/rev1/info.json b/keyboards/matrix/m12og/rev1/info.json index b74c0590082..38a9de45acc 100644 --- a/keyboards/matrix/m12og/rev1/info.json +++ b/keyboards/matrix/m12og/rev1/info.json @@ -12,6 +12,22 @@ "caps_lock": "B6", "scroll_lock": "B5" }, + "rgblight": { + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B8" }, diff --git a/keyboards/matrix/m12og/rev2/config.h b/keyboards/matrix/m12og/rev2/config.h index 7fb34f50014..47955aa2200 100644 --- a/keyboards/matrix/m12og/rev2/config.h +++ b/keyboards/matrix/m12og/rev2/config.h @@ -4,19 +4,4 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB diff --git a/keyboards/matrix/m12og/rev2/info.json b/keyboards/matrix/m12og/rev2/info.json index e6e77ba1eed..2205db43fa5 100644 --- a/keyboards/matrix/m12og/rev2/info.json +++ b/keyboards/matrix/m12og/rev2/info.json @@ -8,6 +8,24 @@ "pid": "0x8712", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h index 421773affc1..8d4c69bb9c3 100644 --- a/keyboards/matrix/m20add/config.h +++ b/keyboards/matrix/m20add/config.h @@ -78,20 +78,6 @@ #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 -// rgb light setting -#define RGBLED_NUM 20 -#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 DRIVER_ADDR_1 0b1110100 #define DRIVER_COUNT 1 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 20 diff --git a/keyboards/matrix/m20add/info.json b/keyboards/matrix/m20add/info.json index 7d88bb81f5b..972aab9d0d2 100644 --- a/keyboards/matrix/m20add/info.json +++ b/keyboards/matrix/m20add/info.json @@ -8,6 +8,21 @@ "pid": "0x20AD", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c index 4466ec3bea5..4567f0348d5 100644 --- a/keyboards/matrix/m20add/rgb_ring.c +++ b/keyboards/matrix/m20add/rgb_ring.c @@ -135,13 +135,13 @@ static void testing_mode(void) if (timer_elapsed(animation_status.last_timer) > EFFECT_TEST_INTERVAL) { HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; RGB c = hsv_to_rgb(h); - //IS31FL3731_set_color_all(c.r, c.g, c.b); - IS31FL3731_set_color_all(0, 0, 0); - IS31FL3731_set_color(rgb_ring.outer_index+RING_OUTER_BEGIN, c.r, c.g, c.b); + //is31fl3731_set_color_all(c.r, c.g, c.b); + is31fl3731_set_color_all(0, 0, 0); + is31fl3731_set_color(rgb_ring.outer_index+RING_OUTER_BEGIN, c.r, c.g, c.b); h.v = EFFECT_TEST_VAL_STEP*rgb_ring.outer_index; c = hsv_to_rgb(h); for (uint8_t i = RING_INNER_BEGIN; i <= RING_INNER_END; i++) { - IS31FL3731_set_color(i, c.r, c.g, c.b); + is31fl3731_set_color(i, c.r, c.g, c.b); } rgb_ring.outer_index = (rgb_ring.outer_index + 1) % RING_OUTER_SIZE; //rgb_ring.inner_index = (rgb_ring.inner_index + 1) % RING_INNER_SIZE; @@ -183,7 +183,7 @@ static void ring_effect_no_1(void) HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) { RGB c = hsv_to_rgb(h); - IS31FL3731_set_color(i, c.r, c.g, c.b); + is31fl3731_set_color(i, c.r, c.g, c.b); } rgblight_config.hue += EFFECT_1_HUE_STEP; rgb_ring.effect_count++; @@ -200,12 +200,12 @@ static void ring_effect_no_1(void) static void ring_effect_no_2(void) { if (need_update(EFFECT_2_INTERVAL)) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; RGB c = hsv_to_rgb(h); - IS31FL3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); - IS31FL3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); + is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); + is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); rgb_ring.led_begin = (rgb_ring.led_begin + 1) % RING_OUTER_SIZE; rgb_ring.led_end = (rgb_ring.led_end + RING_OUTER_SIZE - 1) % RING_OUTER_SIZE; @@ -225,19 +225,19 @@ static void ring_effect_no_2(void) static void ring_effect_no_3(void) { if (rgb_ring.effect_count == 0) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); } if (need_update(EFFECT_3_INTERVAL)) { HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; if (rgb_ring.led_clear) { - IS31FL3731_set_color(rgb_ring.led_begin, 0, 0, 0); - IS31FL3731_set_color(rgb_ring.led_end, 0, 0, 0); + is31fl3731_set_color(rgb_ring.led_begin, 0, 0, 0); + is31fl3731_set_color(rgb_ring.led_end, 0, 0, 0); } else { RGB c = hsv_to_rgb(h); - IS31FL3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); - IS31FL3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); + is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); + is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); } rgb_ring.led_begin = (rgb_ring.led_begin + 1) % RING_OUTER_SIZE; @@ -273,12 +273,12 @@ static void ring_effect_no_3(void) static void ring_effect_no_4(void) { if (need_update(EFFECT_4_INTERVAL)) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; RGB c = hsv_to_rgb(h); - IS31FL3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); - IS31FL3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); + is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b); + is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b); rgb_ring.led_begin = (rgb_ring.led_begin + EFFECT_4_STEP) % RING_OUTER_SIZE; rgb_ring.led_end = (rgb_ring.led_end + RING_OUTER_SIZE - EFFECT_4_STEP) % RING_OUTER_SIZE; @@ -297,16 +297,16 @@ static void ring_effect_no_4(void) static void ring_effect_no_5(void) { if (need_update(EFFECT_5_INTERVAL)) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); for (uint8_t i = RING_INNER_BEGIN; i <= RING_INNER_END; i++) { HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; RGB c = hsv_to_rgb(h); - IS31FL3731_set_color(i, c.r, c.g, c.b); + is31fl3731_set_color(i, c.r, c.g, c.b); } for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) { HSV h = {rgblight_config.hue+EFFECT_5_HUE_STEP, rgblight_config.sat, rgblight_config.val}; RGB c = hsv_to_rgb(h); - IS31FL3731_set_color(i, c.r, c.g, c.b); + is31fl3731_set_color(i, c.r, c.g, c.b); } rgblight_config.hue += EFFECT_5_HUE_STEP; rgb_ring.effect_count++; @@ -323,16 +323,16 @@ static void ring_effect_no_5(void) static void ring_effect_no_6(void) { if (need_update(EFFECT_6_INTERVAL)) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); for (uint8_t i = RING_INNER_BEGIN; i <= RING_INNER_END; i++) { HSV h = {rgblight_config.hue+i*EFFECT_I_HUE_STEP, rgblight_config.sat, rgblight_config.val}; RGB c = hsv_to_rgb(h); - IS31FL3731_set_color(i, c.r, c.g, c.b); + is31fl3731_set_color(i, c.r, c.g, c.b); } for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) { HSV h = {rgblight_config.hue+i*EFFECT_O_HUE_STEP, rgblight_config.sat, rgblight_config.val}; RGB c = hsv_to_rgb(h); - IS31FL3731_set_color(i, c.r, c.g, c.b); + is31fl3731_set_color(i, c.r, c.g, c.b); } rgblight_config.hue += EFFECT_I_HUE_STEP; rgb_ring.effect_count++; @@ -364,7 +364,7 @@ void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) } for (uint8_t i = 0; i < num_leds; i++) { - IS31FL3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); + is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); } } @@ -372,12 +372,12 @@ void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) void rgb_ring_init(void) { i2c_init(); - IS31FL3731_init(DRIVER_ADDR_1); + is31fl3731_init(DRIVER_ADDR_1); for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { bool enabled = true; - IS31FL3731_set_led_control_register(index, enabled, enabled, enabled); + is31fl3731_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); } void rgb_ring_task(void) @@ -396,7 +396,7 @@ void rgb_ring_task(void) break; }; - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); } bool process_record_kb(uint16_t keycode, keyrecord_t *record) diff --git a/keyboards/matrix/me/config.h b/keyboards/matrix/me/config.h deleted file mode 100644 index 8ee1b57bde7..00000000000 --- a/keyboards/matrix/me/config.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - * config.h - * - Copyright 2021 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 . - */ -#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 - -//rgb light setting -#define RGBLED_NUM 4 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/matrix/me/info.json b/keyboards/matrix/me/info.json index 935035317cc..147fc7c5c87 100644 --- a/keyboards/matrix/me/info.json +++ b/keyboards/matrix/me/info.json @@ -17,6 +17,23 @@ "caps_lock": "E6", "scroll_lock": "D2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h index 5a74ab52068..452fef4ceee 100644 --- a/keyboards/matrix/noah/config.h +++ b/keyboards/matrix/noah/config.h @@ -73,22 +73,3 @@ # define ENABLE_RGB_MATRIX_MULTISPLASH # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH - -/* indicator rgb */ -#define RGBLED_NUM 7 -#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 - - -// tapping setting -//#define TAPPING_TERM 200 -//#define RETRO_TAPPING -//#define PERMISSIVE_HOLD diff --git a/keyboards/matrix/noah/info.json b/keyboards/matrix/noah/info.json index 33dedc6bce0..507c36120e6 100644 --- a/keyboards/matrix/noah/info.json +++ b/keyboards/matrix/noah/info.json @@ -8,11 +8,27 @@ "pid": "0x0065", "device_version": "0.0.1" }, + "rgblight": { + "driver": "custom", + "led_count": 7, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "community_layouts": ["65_iso_blocker"], "layouts": { diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c index 671d272d855..0969998fa97 100644 --- a/keyboards/matrix/noah/noah.c +++ b/keyboards/matrix/noah/noah.c @@ -32,14 +32,14 @@ void rgblight_set(void) { } } if (noah_led_mode) { - uint8_t ind_led = host_keyboard_leds(); - if (IS_LED_ON(ind_led, USB_LED_CAPS_LOCK)) { + led_t led_state = host_keyboard_led_state(); + if (led_state.caps_lock) { noah_leds[0] = led[0]; } - if (IS_LED_ON(ind_led, USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { noah_leds[1] = led[1]; } - if (IS_LED_ON(ind_led, USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { noah_leds[2] = led[2]; } for (int32_t i = 0; i < 4; i++) { diff --git a/keyboards/matrix/noah/rules.mk b/keyboards/matrix/noah/rules.mk index 55ea2f42b07..3b75264222d 100644 --- a/keyboards/matrix/noah/rules.mk +++ b/keyboards/matrix/noah/rules.mk @@ -27,7 +27,6 @@ NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in RGB_MATRIX_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes WS2812_DRIVER_REQUIRED = yes CUSTOM_MATRIX = yes diff --git a/keyboards/maxr1998/phoebe/config.h b/keyboards/maxr1998/phoebe/config.h index b6b67b1bcb3..a8824e48677 100644 --- a/keyboards/maxr1998/phoebe/config.h +++ b/keyboards/maxr1998/phoebe/config.h @@ -23,8 +23,4 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Selectively enable animation effects */ -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_CHRISTMAS #define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 diff --git a/keyboards/maxr1998/phoebe/info.json b/keyboards/maxr1998/phoebe/info.json index f05898aed94..7bb3832cbef 100644 --- a/keyboards/maxr1998/phoebe/info.json +++ b/keyboards/maxr1998/phoebe/info.json @@ -98,7 +98,12 @@ "rows": ["B7", "B3", "B2", "B1", "D6"] }, "rgblight": { - "led_count": 8 + "led_count": 8, + "animations": { + "rainbow_swirl": true, + "snake": true, + "christmas": true + } }, "ws2812": { "pin": "F0" diff --git a/keyboards/maxr1998/pulse4k/config.h b/keyboards/maxr1998/pulse4k/config.h index 0b552acfda0..804d1c386ed 100644 --- a/keyboards/maxr1998/pulse4k/config.h +++ b/keyboards/maxr1998/pulse4k/config.h @@ -20,19 +20,6 @@ /* Combo setup */ #define COMBO_TERM 150 -/* RGB LED Setup */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 2 // number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/maxr1998/pulse4k/info.json b/keyboards/maxr1998/pulse4k/info.json index 2d3b6e8a4be..5502edcb9ef 100644 --- a/keyboards/maxr1998/pulse4k/info.json +++ b/keyboards/maxr1998/pulse4k/info.json @@ -8,6 +8,21 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 2, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/mazestudio/jocker/info.json b/keyboards/mazestudio/jocker/info.json new file mode 100644 index 00000000000..5c5d4d6c087 --- /dev/null +++ b/keyboards/mazestudio/jocker/info.json @@ -0,0 +1,150 @@ +{ + "manufacturer": "Maze Studio", + "keyboard_name": "Jocker 1800", + "maintainer": "mazestd", + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "url": "", + "usb": { + "vid": "0x70F5", + "pid": "0x4A01", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "dynamic_keymap": { + "layer_count": 3 + }, + "bootmagic":{ + "matrix": [1, 0] + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B2", "B3"], + "rows": ["B1", "B0", "D1", "D0", "D5", "D3", "B7", "D2", "D4", "D6", "B4", "D7"] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [1,0], "x":0, "y":0}, + {"label": "F1", "matrix": [0,0], "x":1.25, "y":0}, + {"label": "F2", "matrix": [1,1], "x":2.25, "y":0}, + {"label": "F3", "matrix": [0,1], "x":3.25, "y":0}, + {"label": "F4", "matrix": [1,2], "x":4.25, "y":0}, + {"label": "F5", "matrix": [0,2], "x":5.5, "y":0}, + {"label": "F6", "matrix": [1,3], "x":6.5, "y":0}, + {"label": "F7", "matrix": [0,3], "x":7.5, "y":0}, + {"label": "F8", "matrix": [1,4], "x":8.5, "y":0}, + {"label": "F9", "matrix": [1,5], "x":9.75, "y":0}, + {"label": "F10", "matrix": [0,5], "x":10.75, "y":0}, + {"label": "F11", "matrix": [1,6], "x":11.75, "y":0}, + {"label": "F12", "matrix": [0,6], "x":12.75, "y":0}, + {"label": "F13", "matrix": [1,7], "x":14, "y":0}, + {"label": "Scroll Lock", "matrix": [0,7], "x":15.25, "y":0}, + {"label": "Pause Break", "matrix": [1,8], "x":16.5, "y":0}, + {"label": "Insert", "matrix": [0,8], "x":17.5, "y":0}, + {"label": "Home", "matrix": [1,9], "x":18.5, "y":0}, + {"label": "Print Screen", "matrix": [0,9], "x":19.5, "y":0}, + + {"label": "~", "matrix": [3,0], "x":0, "y":1.25}, + {"label": "1", "matrix": [2,0], "x":1, "y":1.25}, + {"label": "2", "matrix": [3,1], "x":2, "y":1.25}, + {"label": "3", "matrix": [2,1], "x":3, "y":1.25}, + {"label": "4", "matrix": [3,2], "x":4, "y":1.25}, + {"label": "5", "matrix": [2,2], "x":5, "y":1.25}, + {"label": "6", "matrix": [3,3], "x":6, "y":1.25}, + {"label": "7", "matrix": [2,3], "x":7, "y":1.25}, + {"label": "8", "matrix": [3,4], "x":8, "y":1.25}, + {"label": "9", "matrix": [2,4], "x":9, "y":1.25}, + {"label": "0", "matrix": [3,5], "x":10, "y":1.25}, + {"label": "-", "matrix": [2,5], "x":11, "y":1.25}, + {"label": "=", "matrix": [3,6], "x":12, "y":1.25}, + {"label": "|", "matrix": [2,6], "x":13, "y":1.25}, + {"label": "Delete", "matrix": [3,7], "x":14, "y":1.25}, + {"label": "Page Up", "matrix": [2,7], "x":15.25, "y":1.25}, + {"label": "Num Lock", "matrix": [3,8], "x":16.5, "y":1.25}, + {"label": "/", "matrix": [2,8], "x":17.5, "y":1.25}, + {"label": "*", "matrix": [3,9], "x":18.5, "y":1.25}, + {"label": "-", "matrix": [2,9], "x":19.5, "y":1.25}, + + {"label": "Tab", "matrix": [5,0], "x":0, "y":2.25, "w":1.5}, + {"label": "Q", "matrix": [4,0], "x":1.5, "y":2.25}, + {"label": "W", "matrix": [5,1], "x":2.5, "y":2.25}, + {"label": "E", "matrix": [4,1], "x":3.5, "y":2.25}, + {"label": "R", "matrix": [5,2], "x":4.5, "y":2.25}, + {"label": "T", "matrix": [4,2], "x":5.5, "y":2.25}, + {"label": "Y", "matrix": [5,3], "x":6.5, "y":2.25}, + {"label": "U", "matrix": [4,3], "x":7.5, "y":2.25}, + {"label": "I", "matrix": [5,4], "x":8.5, "y":2.25}, + {"label": "O", "matrix": [4,4], "x":9.5, "y":2.25}, + {"label": "P", "matrix": [5,5], "x":10.5, "y":2.25}, + {"label": "[", "matrix": [4,5], "x":11.5, "y":2.25}, + {"label": "]", "matrix": [5,6], "x":12.5, "y":2.25}, + {"label": "Backspace", "matrix": [5,7], "x":13.5, "y":2.25, "w":1.5}, + {"label": "Page Down", "matrix": [4,7], "x":15.25, "y":2.25}, + {"label": "Num 7", "matrix": [5,8], "x":16.5, "y":2.25}, + {"label": "Num 8", "matrix": [4,8], "x":17.5, "y":2.25}, + {"label": "Num 9", "matrix": [5,9], "x":18.5, "y":2.25}, + {"label": "Num Plus", "matrix": [4,9], "x":19.5, "y":2.25, "h":2}, + + {"label": "Caps Lock", "matrix": [7,0], "x":0, "y":3.25, "w":1.75}, + {"label": "A", "matrix": [6,0], "x":1.75, "y":3.25}, + {"label": "S", "matrix": [7,1], "x":2.75, "y":3.25}, + {"label": "D", "matrix": [6,1], "x":3.75, "y":3.25}, + {"label": "F", "matrix": [7,2], "x":4.75, "y":3.25}, + {"label": "G", "matrix": [6,2], "x":5.75, "y":3.25}, + {"label": "H", "matrix": [7,3], "x":6.75, "y":3.25}, + {"label": "J", "matrix": [6,3], "x":7.75, "y":3.25}, + {"label": "K", "matrix": [7,4], "x":8.75, "y":3.25}, + {"label": "L", "matrix": [6,4], "x":9.75, "y":3.25}, + {"label": ";", "matrix": [7,5], "x":10.75, "y":3.25}, + {"label": "'", "matrix": [6,5], "x":11.75, "y":3.25}, + {"label": "Enter", "matrix": [6,6], "x":12.75, "y":3.25, "w":2.25}, + {"label": "Delete", "matrix": [6,7], "x":15.25, "y":3.25}, + {"label": "Num 4", "matrix": [7,8], "x":16.5, "y":3.25}, + {"label": "Num 5", "matrix": [6,8], "x":17.5, "y":3.25}, + {"label": "Num 6", "matrix": [7,9], "x":18.5, "y":3.25}, + + {"label": "Left Shift", "matrix": [9,0], "x":0, "y":4.25, "w":2.25}, + {"label": "Z", "matrix": [8,0], "x":2.25, "y":4.25}, + {"label": "X", "matrix": [9,1], "x":3.25, "y":4.25}, + {"label": "C", "matrix": [8,1], "x":4.25, "y":4.25}, + {"label": "V", "matrix": [9,2], "x":5.25, "y":4.25}, + {"label": "B", "matrix": [8,2], "x":6.25, "y":4.25}, + {"label": "N", "matrix": [9,3], "x":7.25, "y":4.25}, + {"label": "M", "matrix": [8,3], "x":8.25, "y":4.25}, + {"label": ",", "matrix": [9,4], "x":9.25, "y":4.25}, + {"label": ".", "matrix": [8,4], "x":10.25, "y":4.25}, + {"label": "/", "matrix": [9,5], "x":11.25, "y":4.25}, + {"label": "Right Shift", "matrix": [9,6], "x":12.25, "y":4.25, "w":1.75}, + {"label": "Up", "matrix": [9,7], "x":14.25, "y":4.5}, + {"label": "Num 1", "matrix": [9,8], "x":16.5, "y":4.25}, + {"label": "Num 2", "matrix": [8,8], "x":17.5, "y":4.25}, + {"label": "Num 3", "matrix": [9,9], "x":18.5, "y":4.25}, + {"label": "Enter", "matrix": [8,9], "x":19.5, "y":4.25, "h":2}, + + {"label": "Left Ctrl", "matrix": [11,0], "x":0, "y":5.25, "w":1.25}, + {"label": "Left Win", "matrix": [10,0], "x":1.25, "y":5.25, "w":1.25}, + {"label": "Left Alt", "matrix": [11,1], "x":2.5, "y":5.25, "w":1.25}, + {"label": "Space", "matrix": [10,2], "x":3.75, "y":5.25, "w":6.25}, + {"label": "Right Alt", "matrix": [10,4], "x":10, "y":5.25, "w":1.5}, + {"label": "Right Ctrl", "matrix": [10,5], "x":11.5, "y":5.25, "w":1.5}, + {"label": "Left", "matrix": [10,6], "x":13.25, "y":5.5}, + {"label": "Down", "matrix": [11,7], "x":14.25, "y":5.5}, + {"label": "Right", "matrix": [10,7], "x":15.25, "y":5.5}, + {"label": "Num 0", "matrix": [10,8], "x":16.5, "y":5.25, "w":2}, + {"label": "Num Del", "matrix": [11,9], "x":18.5, "y":5.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mazestudio/jocker/keymaps/default/keymap.c b/keyboards/mazestudio/jocker/keymaps/default/keymap.c new file mode 100644 index 00000000000..b64c4a299f0 --- /dev/null +++ b/keyboards/mazestudio/jocker/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2023 Maze Studio +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_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_SCRL, KC_PAUS, KC_INS, KC_HOME, KC_PSCR, + 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_DEL, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + + ) +}; \ No newline at end of file diff --git a/keyboards/mazestudio/jocker/keymaps/via/keymap.c b/keyboards/mazestudio/jocker/keymaps/via/keymap.c new file mode 100644 index 00000000000..b64c4a299f0 --- /dev/null +++ b/keyboards/mazestudio/jocker/keymaps/via/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2023 Maze Studio +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_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_SCRL, KC_PAUS, KC_INS, KC_HOME, KC_PSCR, + 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_DEL, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + + ) +}; \ No newline at end of file diff --git a/keyboards/mazestudio/jocker/keymaps/via/rules.mk b/keyboards/mazestudio/jocker/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/mazestudio/jocker/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mazestudio/jocker/readme.md b/keyboards/mazestudio/jocker/readme.md new file mode 100644 index 00000000000..8dcc6390b08 --- /dev/null +++ b/keyboards/mazestudio/jocker/readme.md @@ -0,0 +1,27 @@ +# Jocker 1800 + +![jocker1800]( https://i.imgur.com/aQEiE4Hh.jpg ) + +PCB Replacement for Austin 1800 + +* Keyboard Maintainer: [Maze Studio](https://github.com/mazestd) +* Hardware Supported: Jocker PCB, Atmega32u4 +* Hardware Availability: Local Group Buy + +Make example for this keyboard (after setting up your build environment): + + make mazestd/jocker:default + +Flashing example for this keyboard: + + make mazestd/jocker: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 (1,0) in the matrix or Escape Key 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/mazestudio/jocker/rules.mk b/keyboards/mazestudio/jocker/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/mazestudio/jocker/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/mechanickeys/undead60m/config.h b/keyboards/mechanickeys/undead60m/config.h deleted file mode 100644 index 9388d3da68a..00000000000 --- a/keyboards/mechanickeys/undead60m/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2021 jfescobar18 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ - -#pragma once - -/* RGB Underglow */ - #define RGBLED_NUM 16 - #define RGBLIGHT_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 - #define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/mechanickeys/undead60m/info.json b/keyboards/mechanickeys/undead60m/info.json index 5fd2c835142..4c186431614 100644 --- a/keyboards/mechanickeys/undead60m/info.json +++ b/keyboards/mechanickeys/undead60m/info.json @@ -8,6 +8,22 @@ "pid": "0x3C4D", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/mechbrewery/mb65s/config.h b/keyboards/mechbrewery/mb65s/config.h deleted file mode 100644 index 603bf2a949e..00000000000 --- a/keyboards/mechbrewery/mb65s/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2022 MechBrewery - * Author: tuananhnguyen204 (https://github.com/AnthonyNguyen168) (tuananhnguyen204@gmail.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 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/mechbrewery/mb65s/info.json b/keyboards/mechbrewery/mb65s/info.json index f73a11bcd7b..b81ce87b211 100644 --- a/keyboards/mechbrewery/mb65s/info.json +++ b/keyboards/mechbrewery/mb65s/info.json @@ -21,7 +21,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/mechkeys/acr60/config.h b/keyboards/mechkeys/acr60/config.h index 8f261b69f25..a55618488c5 100644 --- a/keyboards/mechkeys/acr60/config.h +++ b/keyboards/mechkeys/acr60/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mechkeys/acr60/info.json b/keyboards/mechkeys/acr60/info.json index 422b3f6270a..04012cf2342 100644 --- a/keyboards/mechkeys/acr60/info.json +++ b/keyboards/mechkeys/acr60/info.json @@ -21,6 +21,23 @@ "caps_lock": "B2", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechkeys/alu84/config.h b/keyboards/mechkeys/alu84/config.h index 16e59303644..1620751facf 100755 --- a/keyboards/mechkeys/alu84/config.h +++ b/keyboards/mechkeys/alu84/config.h @@ -16,23 +16,6 @@ #pragma once -#if defined(RGBLIGHT_ENABLE) -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 10 -# define RGBLIGHT_VAL_STEP 10 -# 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 -#endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/mechkeys/alu84/info.json b/keyboards/mechkeys/alu84/info.json index 5251bc600b8..73efa61268e 100644 --- a/keyboards/mechkeys/alu84/info.json +++ b/keyboards/mechkeys/alu84/info.json @@ -17,6 +17,24 @@ "pin": "B6", "breathing": true }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechkeys/espectro/config.h b/keyboards/mechkeys/espectro/config.h index a7436fb00c1..41ccde97026 100755 --- a/keyboards/mechkeys/espectro/config.h +++ b/keyboards/mechkeys/espectro/config.h @@ -21,19 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - -#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/mechkeys/espectro/info.json b/keyboards/mechkeys/espectro/info.json index 40d67108297..53dbc75dcf1 100644 --- a/keyboards/mechkeys/espectro/info.json +++ b/keyboards/mechkeys/espectro/info.json @@ -23,6 +23,24 @@ "scroll_lock": "B1", "on_state": 0 }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechkeys/mechmini/v1/config.h b/keyboards/mechkeys/mechmini/v1/config.h deleted file mode 100644 index f76d0f01e1c..00000000000 --- a/keyboards/mechkeys/mechmini/v1/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB underglow */ -#define RGBLED_NUM 16 -#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/mechkeys/mechmini/v1/info.json b/keyboards/mechkeys/mechmini/v1/info.json index eea1d15feba..7dda26af254 100644 --- a/keyboards/mechkeys/mechmini/v1/info.json +++ b/keyboards/mechkeys/mechmini/v1/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/mechkeys/mechmini/v2/config.h b/keyboards/mechkeys/mechmini/v2/config.h index 9517f6a7317..93c5aa9e24d 100755 --- a/keyboards/mechkeys/mechmini/v2/config.h +++ b/keyboards/mechkeys/mechmini/v2/config.h @@ -20,18 +20,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mechkeys/mechmini/v2/info.json b/keyboards/mechkeys/mechmini/v2/info.json index 53f60637f97..26d0b930001 100644 --- a/keyboards/mechkeys/mechmini/v2/info.json +++ b/keyboards/mechkeys/mechmini/v2/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "B6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechkeys/mk60/config.h b/keyboards/mechkeys/mk60/config.h index 782b3a7381b..b5b661bef2a 100644 --- a/keyboards/mechkeys/mk60/config.h +++ b/keyboards/mechkeys/mk60/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 12 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mechkeys/mk60/info.json b/keyboards/mechkeys/mk60/info.json index ef7658a1e13..4cc03cec3b1 100644 --- a/keyboards/mechkeys/mk60/info.json +++ b/keyboards/mechkeys/mk60/info.json @@ -22,6 +22,24 @@ "caps_lock": "B7", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/mechllama/g35/rules.mk b/keyboards/mechllama/g35/rules.mk index 205f5872385..be2e71f9036 100644 --- a/keyboards/mechllama/g35/rules.mk +++ b/keyboards/mechllama/g35/rules.mk @@ -1,6 +1,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover OLED_ENABLE = yes -OLED_DRIVER = SSD1306 RGBLIGHT_ENABLE = yes DEFAULT_FOLDER = mechllama/g35/v2 diff --git a/keyboards/mechllama/g35/v1/config.h b/keyboards/mechllama/g35/v1/config.h deleted file mode 100644 index 1aee08380ca..00000000000 --- a/keyboards/mechllama/g35/v1/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2019 Kaylyn Bogle - -This 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 RGBLED_NUM 41 diff --git a/keyboards/mechllama/g35/v1/info.json b/keyboards/mechllama/g35/v1/info.json index c5d4c69e7b7..36d542dc586 100644 --- a/keyboards/mechllama/g35/v1/info.json +++ b/keyboards/mechllama/g35/v1/info.json @@ -6,5 +6,8 @@ "cols": ["D6", "D7", "B4", "B5", "B6", "F0", "D5"], "rows": ["F5", "F6", "F4", "F1", "D4"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 41 + } } diff --git a/keyboards/mechllama/g35/v2/config.h b/keyboards/mechllama/g35/v2/config.h deleted file mode 100644 index 7c15560a1a7..00000000000 --- a/keyboards/mechllama/g35/v2/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2019 Kaylyn Bogle - -This 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 RGBLED_NUM 6 diff --git a/keyboards/mechllama/g35/v2/info.json b/keyboards/mechllama/g35/v2/info.json index 563625f428b..aa6bab75254 100644 --- a/keyboards/mechllama/g35/v2/info.json +++ b/keyboards/mechllama/g35/v2/info.json @@ -6,5 +6,8 @@ "cols": ["D6", "D7", "B4", "B5", "B6", "F6", "D5"], "rows": ["F5", "F4", "F1", "F0", "D4"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 6 + } } diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/info.json b/keyboards/mechlovin/adelais/rgb_led/rev1/info.json index 816b9414c16..bdf9e7fdf5a 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/info.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev1/info.json @@ -4,7 +4,7 @@ "pid": "0xAEC1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B8", "B4", "B5", "B3", "C14", "A15"], diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index 1e549f9a898..d4b34ff48e1 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -1,20 +1,5 @@ #pragma once -#define RGBLED_NUM 23 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - //rgb matrix setting // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) @@ -86,5 +71,3 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define RGB_MATRIX_DISABLE_KEYCODES - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/info.json b/keyboards/mechlovin/adelais/rgb_led/rev2/info.json index 4ac693f894c..60fff3c7a78 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/info.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/info.json @@ -4,7 +4,7 @@ "pid": "0xAEC2" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B8", "B4", "B5", "B3", "C14", "A7"], @@ -16,6 +16,26 @@ {"pin_a": "A4", "pin_b": "A3"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 23, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A15" }, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index c4f801b40de..c4961c6492c 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -17,24 +17,8 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE #define WS2812_SPI SPID1 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 -#define RGBLED_NUM 23 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#endif #ifdef RGB_MATRIX_ENABLE //rgb matrix setting @@ -108,5 +92,3 @@ along with this program. If not, see . #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #endif - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/info.json b/keyboards/mechlovin/adelais/rgb_led/rev3/info.json index d1775ccb83b..6064967f7f1 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/info.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/info.json @@ -4,7 +4,7 @@ "pid": "0xAEC3" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B10", "B11", "B2", "B1", "B0", "A6", "A5", "A10", "A9", "A15", "B3", "B4", "B5", "B8", "B9"], @@ -16,6 +16,9 @@ {"pin_a": "B12", "pin_b": "B13"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "STM32F103", "bootloader": "stm32duino", "indicators": { @@ -23,6 +26,23 @@ "num_lock": "A0", "scroll_lock": "C15" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 23, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A7", "driver": "spi" diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk index 5664ce68441..e144301381d 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk @@ -6,6 +6,3 @@ RGBLIGHT_ENABLE = yes ENCODER_ENABLE = yes CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration - -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/arm/config.h b/keyboards/mechlovin/adelais/standard_led/arm/config.h index 1c9b61b9df8..d8e1a8fd39d 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/config.h +++ b/keyboards/mechlovin/adelais/standard_led/arm/config.h @@ -18,16 +18,3 @@ along with this program. If not, see . #pragma once #define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 - -#define RGBLED_NUM 23 -#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/mechlovin/adelais/standard_led/arm/info.json b/keyboards/mechlovin/adelais/standard_led/arm/info.json index 9c6bd46a702..578584cc541 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/info.json +++ b/keyboards/mechlovin/adelais/standard_led/arm/info.json @@ -9,6 +9,21 @@ "pin": "B0", "breathing": true }, + "rgblight": { + "led_count": 23, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A7" }, diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h b/keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h deleted file mode 100644 index 254d2040381..00000000000 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define TAP_CODE_DELAY 10 \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json b/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json index a5ebef5b875..46907dc7a9d 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json +++ b/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json @@ -9,6 +9,9 @@ {"pin_a": "B7", "pin_b": "B6"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "STM32F303", "board": "QMK_PROTON_C", "bootloader": "stm32-dfu", diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h b/keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h deleted file mode 100644 index 7905be18915..00000000000 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* -Copyright 2021 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 . -*/ -#pragma once - -#define TAP_CODE_DELAY 10 \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json b/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json index b6ee0c5b670..f0d10942adc 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json +++ b/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json @@ -9,6 +9,9 @@ {"pin_a": "B7", "pin_b": "B6"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "layout_aliases": { "LAYOUT_all": "LAYOUT_alice_split_bs" }, diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h b/keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h index 0e23efaf3ad..dd04e29a7a3 100644 --- a/keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h +++ b/keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h @@ -30,17 +30,3 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL - -#define RGBLED_NUM 23 -#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 TAP_CODE_DELAY 10 diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json b/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json index 31de7de9575..95aac7b0d41 100644 --- a/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json +++ b/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json @@ -10,10 +10,28 @@ {"pin_a": "C7", "pin_b": "C6"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "backlight": { "pin": "B5", "breathing": true }, + "rgblight": { + "led_count": 23, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/delphine/mono_led/config.h b/keyboards/mechlovin/delphine/mono_led/config.h deleted file mode 100644 index 61c495c889d..00000000000 --- a/keyboards/mechlovin/delphine/mono_led/config.h +++ /dev/null @@ -1,20 +0,0 @@ - -#pragma once - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 13 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/mechlovin/delphine/mono_led/info.json b/keyboards/mechlovin/delphine/mono_led/info.json index 7f775f8c363..e1b90d1191b 100644 --- a/keyboards/mechlovin/delphine/mono_led/info.json +++ b/keyboards/mechlovin/delphine/mono_led/info.json @@ -3,6 +3,24 @@ "pid": "0xDEF1", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 13, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h index 7d9aa447f97..9498e8914f1 100644 --- a/keyboards/mechlovin/delphine/rgb_led/config.h +++ b/keyboards/mechlovin/delphine/rgb_led/config.h @@ -1,23 +1,5 @@ #pragma once -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 13 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif - //rgb matrix setting// This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) // The address will vary depending on your wiring: diff --git a/keyboards/mechlovin/delphine/rgb_led/info.json b/keyboards/mechlovin/delphine/rgb_led/info.json index 3b9fb036e9d..59127ea64fb 100644 --- a/keyboards/mechlovin/delphine/rgb_led/info.json +++ b/keyboards/mechlovin/delphine/rgb_led/info.json @@ -3,10 +3,28 @@ "pid": "0xDEF2", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 13, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" } } diff --git a/keyboards/mechlovin/foundation/config.h b/keyboards/mechlovin/foundation/config.h deleted file mode 100644 index cdcfe8572cd..00000000000 --- a/keyboards/mechlovin/foundation/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -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 . -*/ - -#pragma once - -# define RGBLED_NUM 22 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - -#define TAP_CODE_DELAY 10 \ No newline at end of file diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json index 7132ecb9536..bec0c883c5c 100644 --- a/keyboards/mechlovin/foundation/info.json +++ b/keyboards/mechlovin/foundation/info.json @@ -18,10 +18,31 @@ {"pin_a": "C13", "pin_b": "C14"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "indicators": { "caps_lock": "A1", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mechlovin/hannah60rgb/rev1/info.json b/keyboards/mechlovin/hannah60rgb/rev1/info.json index 5e82c00c664..3eeba2ab7e7 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/info.json +++ b/keyboards/mechlovin/hannah60rgb/rev1/info.json @@ -12,7 +12,7 @@ "pin": "A15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A0", "C15", "B4", "B5", "B3", "C13", "C14"], diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index 81335f31be9..7e9a9184930 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -1,22 +1,5 @@ #pragma once -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 18 -# 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_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -#endif - //rgb matrix setting// This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) // The address will vary depending on your wiring: diff --git a/keyboards/mechlovin/hannah60rgb/rev2/info.json b/keyboards/mechlovin/hannah60rgb/rev2/info.json index 61ce6898c82..84524c2331f 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/info.json +++ b/keyboards/mechlovin/hannah60rgb/rev2/info.json @@ -8,11 +8,28 @@ "pid": "0x6002", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A15" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A0", "C15", "B4", "B5", "B3", "C13", "C14"], diff --git a/keyboards/mechlovin/hannah65/config.h b/keyboards/mechlovin/hannah65/config.h deleted file mode 100644 index 1686c861fb1..00000000000 --- a/keyboards/mechlovin/hannah65/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2020 Team Mechlovin - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD4 -#define BACKLIGHT_PWM_CHANNEL 3 diff --git a/keyboards/mechlovin/hannah910/config.h b/keyboards/mechlovin/hannah910/config.h index ef401a6c2b7..a6ae7f4a106 100644 --- a/keyboards/mechlovin/hannah910/config.h +++ b/keyboards/mechlovin/hannah910/config.h @@ -17,17 +17,6 @@ along with this program. If not, see . #pragma once -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mechlovin/hannah910/rev1/config.h b/keyboards/mechlovin/hannah910/rev1/config.h deleted file mode 100644 index 7b793c75b91..00000000000 --- a/keyboards/mechlovin/hannah910/rev1/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define RGBLED_NUM 9 \ No newline at end of file diff --git a/keyboards/mechlovin/hannah910/rev1/info.json b/keyboards/mechlovin/hannah910/rev1/info.json index 49eb2af5c10..af20cffd4fb 100644 --- a/keyboards/mechlovin/hannah910/rev1/info.json +++ b/keyboards/mechlovin/hannah910/rev1/info.json @@ -17,6 +17,21 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/hannah910/rev2/config.h b/keyboards/mechlovin/hannah910/rev2/config.h deleted file mode 100644 index c37c581ae61..00000000000 --- a/keyboards/mechlovin/hannah910/rev2/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define RGBLED_NUM 28 \ No newline at end of file diff --git a/keyboards/mechlovin/hannah910/rev2/info.json b/keyboards/mechlovin/hannah910/rev2/info.json index 43f6ab51a10..a9cfe5f66be 100644 --- a/keyboards/mechlovin/hannah910/rev2/info.json +++ b/keyboards/mechlovin/hannah910/rev2/info.json @@ -17,6 +17,21 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "led_count": 28, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/hannah910/rev3/config.h b/keyboards/mechlovin/hannah910/rev3/config.h deleted file mode 100644 index fbb878ab6aa..00000000000 --- a/keyboards/mechlovin/hannah910/rev3/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define RGBLED_NUM 28 diff --git a/keyboards/mechlovin/hannah910/rev3/info.json b/keyboards/mechlovin/hannah910/rev3/info.json index d6b606913d3..abeaa1e1824 100644 --- a/keyboards/mechlovin/hannah910/rev3/info.json +++ b/keyboards/mechlovin/hannah910/rev3/info.json @@ -17,6 +17,21 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "led_count": 28, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/hex4b/rev2/config.h b/keyboards/mechlovin/hex4b/rev2/config.h deleted file mode 100644 index 14dfffbed3a..00000000000 --- a/keyboards/mechlovin/hex4b/rev2/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2020 Team Mechlovin - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD4 diff --git a/keyboards/mechlovin/hex6c/config.h b/keyboards/mechlovin/hex6c/config.h index a22137acf7b..4cfcaebcdef 100644 --- a/keyboards/mechlovin/hex6c/config.h +++ b/keyboards/mechlovin/hex6c/config.h @@ -18,9 +18,6 @@ along with this program. If not, see . #pragma once #define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 - -#define TAP_CODE_DELAY 10 #define WEAR_LEVELING_BACKING_SIZE 4096 #define WEAR_LEVELING_LOGICAL_SIZE 2048 diff --git a/keyboards/mechlovin/hex6c/info.json b/keyboards/mechlovin/hex6c/info.json index 4ae471cb474..dfeb91e0bac 100644 --- a/keyboards/mechlovin/hex6c/info.json +++ b/keyboards/mechlovin/hex6c/info.json @@ -18,6 +18,9 @@ {"pin_a": "A15", "pin_b": "A2"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "backlight": { "pin": "B0", "breathing": true diff --git a/keyboards/mechlovin/infinity87/rev1/config.h b/keyboards/mechlovin/infinity87/rev1/config.h index 2265fff2d12..e21e5d019f7 100644 --- a/keyboards/mechlovin/infinity87/rev1/config.h +++ b/keyboards/mechlovin/infinity87/rev1/config.h @@ -17,4 +17,3 @@ #pragma once #define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 diff --git a/keyboards/mechlovin/infinity87/rev1/standard/config.h b/keyboards/mechlovin/infinity87/rev1/standard/config.h deleted file mode 100644 index 7b3e497cdf0..00000000000 --- a/keyboards/mechlovin/infinity87/rev1/standard/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 Team Mechlovin' - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RGBLED_NUM 26 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/mechlovin/infinity87/rev1/standard/info.json b/keyboards/mechlovin/infinity87/rev1/standard/info.json index c83cad4b060..964a7a8cb9a 100644 --- a/keyboards/mechlovin/infinity87/rev1/standard/info.json +++ b/keyboards/mechlovin/infinity87/rev1/standard/info.json @@ -8,6 +8,22 @@ "pid": "0x8701", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 26, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A15" }, diff --git a/keyboards/mechlovin/infinity87/rev2/config.h b/keyboards/mechlovin/infinity87/rev2/config.h index 851a9f860e9..39ae7c362fb 100644 --- a/keyboards/mechlovin/infinity87/rev2/config.h +++ b/keyboards/mechlovin/infinity87/rev2/config.h @@ -33,21 +33,3 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/mechlovin/infinity87/rev2/info.json b/keyboards/mechlovin/infinity87/rev2/info.json index d3b5cfc3ca5..42db9894ca1 100644 --- a/keyboards/mechlovin/infinity87/rev2/info.json +++ b/keyboards/mechlovin/infinity87/rev2/info.json @@ -17,6 +17,24 @@ "num_lock": "D7", "scroll_lock": "B4" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/info.json b/keyboards/mechlovin/infinity87/rgb_rev1/info.json index b3fc9f63d3f..347ea1b3112 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/info.json +++ b/keyboards/mechlovin/infinity87/rgb_rev1/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B12", "B13", "B14", "B15", "A8", "A9", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A2", "A1", "A0"], diff --git a/keyboards/mechlovin/infinity875/info.json b/keyboards/mechlovin/infinity875/info.json index fcec3c2afa8..bb249cf39be 100644 --- a/keyboards/mechlovin/infinity875/info.json +++ b/keyboards/mechlovin/infinity875/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "indicators": { "caps_lock": "D6", diff --git a/keyboards/mechlovin/infinity88/config.h b/keyboards/mechlovin/infinity88/config.h index 40bcfcfeb96..c12d2db1781 100644 --- a/keyboards/mechlovin/infinity88/config.h +++ b/keyboards/mechlovin/infinity88/config.h @@ -18,17 +18,3 @@ along with this program. If not, see . #pragma once #define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 - -#define RGBLED_NUM 26 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 diff --git a/keyboards/mechlovin/infinity88/info.json b/keyboards/mechlovin/infinity88/info.json index fdbb45a7d6a..3724d8a82d9 100644 --- a/keyboards/mechlovin/infinity88/info.json +++ b/keyboards/mechlovin/infinity88/info.json @@ -21,6 +21,22 @@ "caps_lock": "A4", "num_lock": "A3" }, + "rgblight": { + "led_count": 26, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A15" }, diff --git a/keyboards/mechlovin/infinityce/config.h b/keyboards/mechlovin/infinityce/config.h deleted file mode 100644 index 88c6c21dfa6..00000000000 --- a/keyboards/mechlovin/infinityce/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2020 mechlovin - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLED_NUM 31 -#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/mechlovin/infinityce/info.json b/keyboards/mechlovin/infinityce/info.json index 1c49d541065..0ded6a5eee8 100644 --- a/keyboards/mechlovin/infinityce/info.json +++ b/keyboards/mechlovin/infinityce/info.json @@ -17,6 +17,21 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "led_count": 31, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/kanu/config.h b/keyboards/mechlovin/kanu/config.h deleted file mode 100644 index bfa29088903..00000000000 --- a/keyboards/mechlovin/kanu/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2020 Team Mechlovin' - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLED_NUM 6 -#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/mechlovin/kanu/info.json b/keyboards/mechlovin/kanu/info.json index 1e8dafd2d74..f8931cdff8c 100644 --- a/keyboards/mechlovin/kanu/info.json +++ b/keyboards/mechlovin/kanu/info.json @@ -17,6 +17,21 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/kay60/config.h b/keyboards/mechlovin/kay60/config.h deleted file mode 100644 index bf5e80fc753..00000000000 --- a/keyboards/mechlovin/kay60/config.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright 2021 Mechlovin' - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -# define RGBLED_NUM 22 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - -/* - * 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/mechlovin/kay60/info.json b/keyboards/mechlovin/kay60/info.json index 698247d76ba..7e1ba1fa2d7 100644 --- a/keyboards/mechlovin/kay60/info.json +++ b/keyboards/mechlovin/kay60/info.json @@ -16,6 +16,24 @@ "indicators": { "caps_lock": "B0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/kay65/config.h b/keyboards/mechlovin/kay65/config.h deleted file mode 100644 index 1fb8123364e..00000000000 --- a/keyboards/mechlovin/kay65/config.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright 2021 Mechlovin' - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -# define RGBLED_NUM 24 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE - -/* - * 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/mechlovin/kay65/info.json b/keyboards/mechlovin/kay65/info.json index fbd556217ca..9a8cf1b5d2f 100644 --- a/keyboards/mechlovin/kay65/info.json +++ b/keyboards/mechlovin/kay65/info.json @@ -17,6 +17,24 @@ "caps_lock": "D6", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/mechlovin9/rev1/config.h b/keyboards/mechlovin/mechlovin9/rev1/config.h deleted file mode 100644 index 3686536dfb5..00000000000 --- a/keyboards/mechlovin/mechlovin9/rev1/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021 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 . -*/ - -#pragma once - -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 diff --git a/keyboards/mechlovin/olly/bb/config.h b/keyboards/mechlovin/olly/bb/config.h index e48a1c82a1b..84a700e4101 100644 --- a/keyboards/mechlovin/olly/bb/config.h +++ b/keyboards/mechlovin/olly/bb/config.h @@ -33,19 +33,3 @@ along with this program. If not, see . * */ #define MATRIX_ROW_PINS {D6, A5, A4, A3, A6} - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 24 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 -#endif diff --git a/keyboards/mechlovin/olly/bb/info.json b/keyboards/mechlovin/olly/bb/info.json index c3b55f95d86..fddb8931136 100644 --- a/keyboards/mechlovin/olly/bb/info.json +++ b/keyboards/mechlovin/olly/bb/info.json @@ -12,6 +12,22 @@ "pin": "D4", "breathing": true }, + "rgblight": { + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/mechlovin/olly/jf/config.h b/keyboards/mechlovin/olly/jf/config.h index c028a045541..35480dc83c7 100644 --- a/keyboards/mechlovin/olly/jf/config.h +++ b/keyboards/mechlovin/olly/jf/config.h @@ -36,17 +36,3 @@ along with this program. If not, see . /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION ROW2COL - -#define RGBLED_NUM 27 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 diff --git a/keyboards/mechlovin/olly/jf/info.json b/keyboards/mechlovin/olly/jf/info.json index 0d49cb611a1..cb0ab92fb47 100644 --- a/keyboards/mechlovin/olly/jf/info.json +++ b/keyboards/mechlovin/olly/jf/info.json @@ -17,6 +17,22 @@ "num_lock": "B1", "scroll_lock": "B2" }, + "rgblight": { + "led_count": 27, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/mechlovin/olly/octagon/config.h b/keyboards/mechlovin/olly/octagon/config.h index a1127f6aadb..4e502b61542 100644 --- a/keyboards/mechlovin/olly/octagon/config.h +++ b/keyboards/mechlovin/olly/octagon/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 26 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#endif - #ifdef LED_MATRIX_ENABLE // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) diff --git a/keyboards/mechlovin/olly/octagon/info.json b/keyboards/mechlovin/olly/octagon/info.json index 81893874e0d..3621f491d82 100644 --- a/keyboards/mechlovin/olly/octagon/info.json +++ b/keyboards/mechlovin/olly/octagon/info.json @@ -8,11 +8,28 @@ "pid": "0xD750", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 26, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A7" }, "led_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B2", "B1", "A15", "B3", "B9", "B8", "B7", "B6", "B5", "B4"], diff --git a/keyboards/mechlovin/olly/orion/config.h b/keyboards/mechlovin/olly/orion/config.h deleted file mode 100644 index 9b3e98be719..00000000000 --- a/keyboards/mechlovin/olly/orion/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -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 . -*/ - -#pragma once - -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 24 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/mechlovin/olly/orion/info.json b/keyboards/mechlovin/olly/orion/info.json index ad792e81af4..0c0ee86c95c 100644 --- a/keyboards/mechlovin/olly/orion/info.json +++ b/keyboards/mechlovin/olly/orion/info.json @@ -18,6 +18,24 @@ "num_lock": "A13", "scroll_lock": "A14" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mechlovin/pisces/config.h b/keyboards/mechlovin/pisces/config.h deleted file mode 100644 index 5cc93f2d91e..00000000000 --- a/keyboards/mechlovin/pisces/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2020 Team Mechlovin' - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - - #define RGBLED_NUM 12 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/mechlovin/pisces/info.json b/keyboards/mechlovin/pisces/info.json index 84fdaefd21f..bf084ba863c 100644 --- a/keyboards/mechlovin/pisces/info.json +++ b/keyboards/mechlovin/pisces/info.json @@ -19,6 +19,24 @@ "indicators": { "caps_lock": "B2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/serratus/config.h b/keyboards/mechlovin/serratus/config.h index 1efbadfd299..5c7dc13e4be 100644 --- a/keyboards/mechlovin/serratus/config.h +++ b/keyboards/mechlovin/serratus/config.h @@ -37,21 +37,3 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/mechlovin/serratus/info.json b/keyboards/mechlovin/serratus/info.json index 69a64066cd0..780a369cb81 100644 --- a/keyboards/mechlovin/serratus/info.json +++ b/keyboards/mechlovin/serratus/info.json @@ -17,6 +17,24 @@ "num_lock": "D7", "scroll_lock": "B4" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mechlovin/tmkl/config.h b/keyboards/mechlovin/tmkl/config.h index e604c6bcfad..03e3beacd0f 100644 --- a/keyboards/mechlovin/tmkl/config.h +++ b/keyboards/mechlovin/tmkl/config.h @@ -17,8 +17,5 @@ along with this program. If not, see . #pragma once -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 3 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/mechlovin/zed60/config.h b/keyboards/mechlovin/zed60/config.h index ebee58857b6..cdbbd6dd0ed 100644 --- a/keyboards/mechlovin/zed60/config.h +++ b/keyboards/mechlovin/zed60/config.h @@ -17,24 +17,5 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 22 - #define WS2812_SPI SPID1 // default: SPID1 -#define WS2812_SPI_MOSI_PAL_MODE 5 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 - -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#endif +#define WS2812_SPI_MOSI_PAL_MODE 6 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 diff --git a/keyboards/mechlovin/zed60/info.json b/keyboards/mechlovin/zed60/info.json index f02dfd89a5c..83b8c3f449e 100644 --- a/keyboards/mechlovin/zed60/info.json +++ b/keyboards/mechlovin/zed60/info.json @@ -16,6 +16,23 @@ "indicators": { "caps_lock": "A4" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "A7", "driver": "spi" diff --git a/keyboards/mechlovin/zed65/910/config.h b/keyboards/mechlovin/zed65/910/config.h new file mode 100644 index 00000000000..a5902fa9c1d --- /dev/null +++ b/keyboards/mechlovin/zed65/910/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2023 Mechlovin' + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI SPID1 // default: SPID1 +#define WS2812_SPI_MOSI_PAL_MODE 6 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 diff --git a/keyboards/mechlovin/zed65/910/halconf.h b/keyboards/mechlovin/zed65/910/halconf.h new file mode 100644 index 00000000000..e4ef339ffb8 --- /dev/null +++ b/keyboards/mechlovin/zed65/910/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/mechlovin/zed65/910/info.json b/keyboards/mechlovin/zed65/910/info.json new file mode 100644 index 00000000000..7874c09e2dd --- /dev/null +++ b/keyboards/mechlovin/zed65/910/info.json @@ -0,0 +1,350 @@ +{ + "manufacturer": "Mechlovin Studio", + "url": "https://mechlovin.studio/", + "maintainer": "mechlovin", + "keyboard_name": "Zed65 910 Rev1", + "usb": { + "vid": "0x4D4C", + "pid": "0x6505", + "device_version": "0.0.1" + }, + "features": { + "backlight": false, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "rows": ["B15", "B14", "B13", "B12", "A1"], + "cols": ["B11", "B10", "B2", "B1", "B0", "A6", "A5", "A4", "A3", "C13", "B7", "B6", "B5", "B4", "B3"] + }, + "indicators": { + "caps_lock": "B9", + "on_state": 0 + }, + "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 4, + "sleep": true, + "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 + } + }, + "ws2812": { + "pin": "A7", + "driver": "spi" + }, + "layouts": { + "LAYOUT_65_iso_tsangan_split_bs": { + "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": [2, 12], "x": 14, "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, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_tsangan_split_bs": { + "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": [2, 12], "x": 14, "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": [1, 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": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_tsangan": { + "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, 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": [1, 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": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + + "LAYOUT_65_ansi_blocker_tsangan": { + "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, 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": [1, 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": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c b/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c new file mode 100644 index 00000000000..1c530e8420b --- /dev/null +++ b/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* +Copyright 2023 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_65_ansi_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_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; \ No newline at end of file diff --git a/keyboards/mechlovin/zed65/910/keymaps/via/keymap.c b/keyboards/mechlovin/zed65/910/keymaps/via/keymap.c new file mode 100644 index 00000000000..d41ff034722 --- /dev/null +++ b/keyboards/mechlovin/zed65/910/keymaps/via/keymap.c @@ -0,0 +1,29 @@ +/* +Copyright 2023 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_65_ansi_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_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + diff --git a/keyboards/mechlovin/zed65/910/keymaps/via/rules.mk b/keyboards/mechlovin/zed65/910/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/mechlovin/zed65/910/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mechlovin/zed65/910/mcuconf.h b/keyboards/mechlovin/zed65/910/mcuconf.h new file mode 100644 index 00000000000..ab20db61c30 --- /dev/null +++ b/keyboards/mechlovin/zed65/910/mcuconf.h @@ -0,0 +1,23 @@ +/* Copyright 2023 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/mechlovin/zed65/910/readme.md b/keyboards/mechlovin/zed65/910/readme.md new file mode 100644 index 00000000000..7a207e2b448 --- /dev/null +++ b/keyboards/mechlovin/zed65/910/readme.md @@ -0,0 +1,28 @@ +# zed65 + +![Zed65](https://i.imgur.com/PevF9snh.png) + +A 65% PCB, APM32F103. + +* Keyboard Maintainer: [Mechlovin](https://github.com/mechlovin) +* Hardware Supported: TGRxGSK 910 +* Hardware Availability: [Mechlovin' Studio](https://mechlovin.studio/) + +Make example for this keyboard (after setting up your build environment): + + make mechlovin/zed65/910:default + +Flashing example for this keyboard: + + make mechlovin/zed65/910: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 4 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 reset**: Hold down the key at (0,13) in the matrix (usually the Back Space) 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/mechlovin/zed65/910/rules.mk b/keyboards/mechlovin/zed65/910/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/mechlovin/zed65/910/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/mechlovin/zed65/mono_led/config.h b/keyboards/mechlovin/zed65/mono_led/config.h index 9806ec92d61..1ec1746456a 100644 --- a/keyboards/mechlovin/zed65/mono_led/config.h +++ b/keyboards/mechlovin/zed65/mono_led/config.h @@ -60,19 +60,3 @@ along with this program. If not, see . #define VIA_QMK_LED_MATRIX_ENABLE #endif - -# define RGBLED_NUM 24 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/mechlovin/zed65/mono_led/info.json b/keyboards/mechlovin/zed65/mono_led/info.json index c2133902cee..228d2c50d54 100644 --- a/keyboards/mechlovin/zed65/mono_led/info.json +++ b/keyboards/mechlovin/zed65/mono_led/info.json @@ -8,11 +8,29 @@ "pid": "0x6503", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A7" }, "led_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B2", "B1", "A15", "B3", "B9", "B8", "B7", "B6", "B5", "B4"], diff --git a/keyboards/mechlovin/zed65/no_backlight/retro66/config.h b/keyboards/mechlovin/zed65/no_backlight/retro66/config.h deleted file mode 100644 index 6786e3b953c..00000000000 --- a/keyboards/mechlovin/zed65/no_backlight/retro66/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2022 Mechlovin' - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define TAP_CODE_DELAY 10 \ No newline at end of file diff --git a/keyboards/mechlovin/zed65/no_backlight/retro66/info.json b/keyboards/mechlovin/zed65/no_backlight/retro66/info.json index 79190905638..0709014f76b 100644 --- a/keyboards/mechlovin/zed65/no_backlight/retro66/info.json +++ b/keyboards/mechlovin/zed65/no_backlight/retro66/info.json @@ -19,6 +19,9 @@ {"pin_a": "B6", "pin_b": "B9"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "indicators": { "caps_lock": "C14" }, diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h index 9f668f2c479..5cb2a00b885 100644 --- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h +++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h @@ -17,24 +17,5 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 24 - #define WS2812_SPI SPID2 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 0 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 - -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#endif diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/info.json b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/info.json index 264d20504c6..5b0df671dfc 100644 --- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/info.json +++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/info.json @@ -16,6 +16,23 @@ "indicators": { "caps_lock": "C14" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/mechlovin/zed65/rev1/info.json b/keyboards/mechlovin/zed65/rev1/info.json index 193430bfed6..20f04dbe655 100644 --- a/keyboards/mechlovin/zed65/rev1/info.json +++ b/keyboards/mechlovin/zed65/rev1/info.json @@ -20,8 +20,8 @@ "caps_lock": "B9", "on_state": 0 }, + "diode_direction": "COL2ROW", "rgblight": { - "pin": "A7", "led_count": 24, "sleep": true, "animations": { @@ -38,11 +38,30 @@ } }, "ws2812": { + "pin": "A7", "driver": "spi" }, - "community_layouts": ["65_ansi_blocker_tsangan"], + "community_layouts": [ + "65_ansi", + "65_ansi_split_bs", + "65_ansi_blocker", + "65_ansi_blocker_split_bs", + "65_ansi_blocker_tsangan", + "65_ansi_blocker_tsangan_split_bs", + "65_iso", + "65_iso_split_bs", + "65_iso_blocker", + "65_iso_blocker_split_bs", + "65_iso_blocker_tsangan", + "65_iso_blocker_tsangan_split_bs" + ], + "layout_aliases": { + "LAYOUT_65_ansi_tsangan": "LAYOUT_65_ansi", + "LAYOUT_65_iso_tsangan_split_bs": "LAYOUT_65_iso_split_bs", + "LAYOUT_65_ansi_tsangan_split_bs": "LAYOUT_65_ansi_split_bs" + }, "layouts": { - "LAYOUT_65_iso_tsangan_split_bs": { + "LAYOUT_65_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -57,8 +76,7 @@ {"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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 14], "x": 15, "y": 0}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, @@ -74,7 +92,7 @@ {"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], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [1, 14], "x": 15, "y": 1}, {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, @@ -89,11 +107,10 @@ {"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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, {"matrix": [2, 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, 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}, @@ -120,7 +137,7 @@ {"matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_tsangan_split_bs": { + "LAYOUT_65_ansi_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -170,8 +187,7 @@ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, {"matrix": [2, 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, 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}, @@ -198,7 +214,7 @@ {"matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_tsangan": { + "LAYOUT_65_ansi_blocker": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -263,18 +279,92 @@ {"matrix": [3, 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, 1], "x": 1.25, "y": 4}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 9], "x": 10, "y": 4}, - {"matrix": [4, 10], "x": 11, "y": 4}, - {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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": [1, 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": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "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, 12], "x": 13, "y": 4}, {"matrix": [4, 13], "x": 14, "y": 4}, {"matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_blocker_tsangan": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -339,6 +429,540 @@ {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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": [1, 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": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_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": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "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": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 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, 6], "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, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 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, 6], "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, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "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": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "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": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 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, 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": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 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": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, {"matrix": [4, 1], "x": 1.5, "y": 4}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, diff --git a/keyboards/mechlovin/zed65/rev1/keymaps/default/keymap.c b/keyboards/mechlovin/zed65/rev1/keymaps/default/keymap.c index 7a922d6b850..1929a0084c2 100644 --- a/keyboards/mechlovin/zed65/rev1/keymaps/default/keymap.c +++ b/keyboards/mechlovin/zed65/rev1/keymaps/default/keymap.c @@ -18,11 +18,11 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_tsangan_split_bs( + [0] = LAYOUT_65_ansi_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_BSPC, KC_DEL, 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_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_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_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/zed65/rev1/keymaps/via/keymap.c b/keyboards/mechlovin/zed65/rev1/keymaps/via/keymap.c index 333f14ec70e..a3ab29005f8 100644 --- a/keyboards/mechlovin/zed65/rev1/keymaps/via/keymap.c +++ b/keyboards/mechlovin/zed65/rev1/keymaps/via/keymap.c @@ -18,11 +18,11 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_tsangan_split_bs( + [0] = LAYOUT_65_ansi_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_BSPC, KC_DEL, 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_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_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_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/mechlovin/zed65/rev1/matrix_diagram.md b/keyboards/mechlovin/zed65/rev1/matrix_diagram.md new file mode 100644 index 00000000000..6af22df46c7 --- /dev/null +++ b/keyboards/mechlovin/zed65/rev1/matrix_diagram.md @@ -0,0 +1,36 @@ +# Matrix Diagram for Mechlovin Studio Zed65 Rev1 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │ │1E │ │1D │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2D ├───┤ ┌──┴─────┤ ANSI Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │1D │ │2E │ │2D │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ └────────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│40 │41 │42 │46 │49 │4A │4B │4C │4D │4E │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬─────┬───────────────────────────┬───┬───┬───┐ +│40 │41 │46 │49 │4A │4B │ LWKL +└─────┴─────┴───────────────────────────┴───┴───┴───┘ +┌────┬────┬────┬────────────────────────┬─────┬─────┐ +│40 │41 │42 │46 │49 │4A │ RWKL +└────┴────┴────┴────────────────────────┴─────┴─────┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│40 │41 │46 │49 │4A │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│40 │41 │42 │46 │49 │4A │ Blocker +└────┴────┴────┴────────────────────────┴────┴────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4A │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` diff --git a/keyboards/mechstudio/ud_40_ortho/config.h b/keyboards/mechstudio/ud_40_ortho/config.h deleted file mode 100644 index 4dea48a8782..00000000000 --- a/keyboards/mechstudio/ud_40_ortho/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 David Dejaeghere - * - * This 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 RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/mechstudio/ud_40_ortho/info.json b/keyboards/mechstudio/ud_40_ortho/info.json index fe386149659..6b301e69e40 100644 --- a/keyboards/mechstudio/ud_40_ortho/info.json +++ b/keyboards/mechstudio/ud_40_ortho/info.json @@ -17,6 +17,24 @@ "esc_input": "B7", "esc_output": "F0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h b/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h new file mode 100644 index 00000000000..658c829f048 --- /dev/null +++ b/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once + +# define TAPPING_TERM 160 +# define TAPPING_TERM_PER_KEY +# define HOLD_ON_OTHER_KEY_PRESS +# define QUICK_TAP_TERM TAPPING_TERM / 2 +# define QUICK_TAP_TERM_PER_KEY diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c b/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c new file mode 100644 index 00000000000..e8a26fd28a2 --- /dev/null +++ b/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c @@ -0,0 +1,221 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#include "miketronic.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* WORKMAN + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ Q │ D │ R │ W │ B │ 7 │ 8 │ 9 │ J │ F │ U │ P │ BSPC│BSPC │ + * │ ESC │ │ │ │ SYM │ │ │ │ SYM │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┤ + * │ A │ S │ H ┃ T ┃ G │ 4 │ 5 │ 6 │ Y ┃ N ┃ E │ O │ I │UP │ + * │SHIFT│ │ ┃ EX ┃ │ │ │ │ ┃ ┃ │ │ │RIGHT│ + * ├─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┤ + * │ Z │ X │ M │ C │ V │ 1 │ 2 │ 3 │ K │ L │ SPC │ SPC │ENTER│DOWN │ + * │ FN │ CTRL│ OS │ ALT │LOWER│ │ 0 │ │RAISE│RAISE│ │ │ │LEFT │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + * + */ + + [_WM] = LAYOUT_3x14_wrapper ( + _____________WORKMAN_310_001_L_____________, _________NUMBER_01__________, _____________WORKMAN_310_001_R_____________, KC_BSPC, + _____________WORKMAN_310_002_L_____________, _________NUMBER_02__________, _____________WORKMAN_310_002_R_____________, TD_UR, + _____________WORKMAN_310_003_L_____________, _________NUMBER_03__________, _____________WORKMAN_310_003_R_____________, TD_DL + ), + + [_QW] = LAYOUT_3x14_wrapper ( + _________________QWERTY_L1_________________, _________NUMBER_01__________, _________________QWERTY_R1_________________, KC_MUTE, + _________________QWERTY_L2_________________, _________NUMBER_02__________, _________________QWERTY_R2_________________, TD_UR, + _________________QWERTY_L3_________________, _________NUMBER_03__________, _________________QWERTY_R3_________________, TD_DL + ), + + + /* LOWER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ () │ [] │ /\ │ │ │ │ 7 │ 8 │ 9 │ 0 │ │ │ │LEAD │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ @ # │ & % │ ┃ ┃ │ ┃ 4 ┃ 5 │ 6 │ │ │ │ │ │ + * │ │ │ ┃ ┃ │ ┃ ┃ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ . │ │ │ │ │ + * │ │ │ │ │LOWER│ │ │ 0 │ │ ENT │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + * + */ + + [_LOWER] = LAYOUT_3x14_wrapper ( + _______________LOWER_310_L1________________, _________NUMBER_01__________, _______________LOWER_310_R1________________, QK_LEAD, + _______________LOWER_310_L2________________, _________NUMBER_02__________, _______________LOWER_310_R2________________, TD_UR, + _______________LOWER_310_L3________________, _________NUMBER_03__________, _______________LOWER_310_R3________________, TD_DL + ), + + + /* RAISE + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ BOOT│DEBUG│ │ │ MAKE│ │ F7 │ F8 │ F9 │ F10 │ │ │ │LEAD │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ RGB │ RGB ┃ RGB ┃ RGB │ _ ┃ F4 ┃ F5 │ F6 │ F11 │ │ │ │ │ + * │ │ TOG │ MOD ┃ HUI ┃ HUD │ - ┃ ┃ _ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ RGB │ RGB │ RGB │ RGB │RAISE│ F1 │ F2 │ F3 │ F12 │ │ │ │ │ + * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + * + */ + + [_RAISE] = LAYOUT_3x14_wrapper ( + _______________RAISE_310_L1________________, _________NUMBER_01__________, _______________RAISE_310_R1________________, QK_LEAD, + _______________RAISE_310_L2________________, _________NUMBER_02__________, _______________RAISE_310_R2________________, TD_UR, + _______________RAISE_310_L3________________, _________NUMBER_03__________, _______________RAISE_310_R3________________, TD_DL + ), + + + /* EXTRAS + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ! │ │ │ │ │ │ /\ | () | [] | ; │ │ │ │LEAD │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ ┃EXTRA┃ │ ┃ @ # ┃ & % | | ' | │ │ │ │ + * │ │ │ ┃ ┃ │ ┃ ┃ _ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ , | . | ? │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_EX] = LAYOUT_3x14_wrapper ( + ______________EXTRAS_310_L1________________, _________NUMBER_01__________, ______________EXTRAS_310_R1________________, QK_LEAD, + ______________EXTRAS_310_L2________________, _________NUMBER_02__________, ______________EXTRAS_310_R2________________, TD_UR, + ______________EXTRAS_310_L3________________, _________NUMBER_03__________, ______________EXTRAS_310_R3________________, TD_DL +), + + + /* FUNCTION + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │COPY │CLIP │ SS │ │ │ │ │ │ | /\ │ UP │ │ DEL │LEAD │ + * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┤ + * │SHIFT│ M05 │ M06 ┃ M07 ┃ M08 │ │ │ │ ┃ LEFT┃ DOWN│RIGHT│ │ UP │ + * │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │RIGHT│ + * ├─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┤ + * │ │ M01 │ M02 │ M03 │ M04 │ │ │ | | │ , │ . │ │DOWN │ + * │ FN │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_FN] = LAYOUT_3x14_wrapper ( + _____________FUNCTION_310_L1_______________, _________NUMBER_01__________, _____________FUNCTION_310_R1_______________, QK_LEAD, + _____________FUNCTION_310_L2_______________, _________NUMBER_02__________, _____________FUNCTION_310_R2_______________, TD_UR, + _____________FUNCTION_310_L3_______________, _________NUMBER_03__________, _____________FUNCTION_310_R3_______________, TD_DL + ), + + + + /* SYMBOLS + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │ + * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │ + * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ + * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │ + * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ + * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ + * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │ + * │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘ + */ + + [_SYMB] = LAYOUT_3x14_wrapper ( + _____________SYMBOLS_310_L1________________, _________NUMBER_01__________, _____________SYMBOLS_310_R1________________, QK_LEAD, + _____________SYMBOLS_310_L2________________, _________NUMBER_02__________, _____________SYMBOLS_310_R2________________, TD_UR, + _____________SYMBOLS_310_L3________________, _________NUMBER_03__________, _____________SYMBOLS_310_R3________________, TD_DL + ), + + + +}; + + +#ifndef NUM_DIRECTIONS +# define NUM_DIRECTIONS 2 +#endif +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) }, + [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LOWER] = { ENCODER_CCW_CW(____, ____) }, + [_RAISE] = { ENCODER_CCW_CW(____, ____) }, + [_EX] = { ENCODER_CCW_CW(____, ____) }, + [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) }, + [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif + +bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SFT_T(KC_A): + // Do not force the mod-tap key press to be handled as a modifier + // if any other key was pressed while the mod-tap key is held down. + return false; + case TEX: + return false; + case CTRLX: + return false; + case FNZ: + return false; + case MGUI: + return false; + case VLOWER: + return false; + case KRAISE: + return false; + default: + // Force the dual-role key press to be handled as a modifier if any + // other key was pressed while the mod-tap key is held down. + return true; + } +} + +#ifdef AUDIO_ENABLE +float leader_start_song[][2] = SONG(ONE_UP_SOUND); +float leader_succeed_song[][2] = SONG(ALL_STAR); +float leader_fail_song[][2] = SONG(RICK_ROLL); +#endif + +void matrix_scan_user(void); + +void leader_start_user(void) { +#ifdef AUDIO_ENABLE + PLAY_SONG(leader_start_song); +#endif +} + +bool did_leader_succeed; + +void leader_end_user(void) { + did_leader_succeed = false; + + if (leader_sequence_one_key(KC_E)) { + SEND_STRING(SS_LCTL(SS_LSFT("t"))); + did_leader_succeed = true; + } else if (leader_sequence_two_keys(KC_E, KC_D)) { + SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c")); + did_leader_succeed = true; + } else if (leader_sequence_two_keys(KC_A, KC_T)) { + SEND_STRING("@guidehouse.com"); + did_leader_succeed = true; + } + + +#ifdef AUDIO_ENABLE + if (did_leader_succeed) { + PLAY_SONG(leader_succeed_song); + } else { + PLAY_SONG(leader_fail_song); + } +#endif +} \ No newline at end of file diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk b/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk new file mode 100644 index 00000000000..6cdd5981242 --- /dev/null +++ b/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk @@ -0,0 +1,12 @@ +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +EXTRAKEY_ENABLE = yes # Audio control and System control +TAP_DANCE_ENABLE = yes # Tap Dance keys +NKRO_ENABLE = yes # Enable N-Key Rollover +MACROS_ENABLED = yes +LEADER_ENABLE = yes + +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes +OLED_ENABLE = yes # Enable OLED Screen + +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/mechwild/bde/rev2/rules.mk b/keyboards/mechwild/bde/rev2/rules.mk index 307b1ef7974..bade0749fc9 100644 --- a/keyboards/mechwild/bde/rev2/rules.mk +++ b/keyboards/mechwild/bde/rev2/rules.mk @@ -1,3 +1,2 @@ ENCODER_ENABLE = yes # Enable encoder OLED_ENABLE = yes # Enable OLED Screen -OLED_DRIVER = SSD1306 # Set OLED Driver diff --git a/keyboards/mechwild/clunker/rules.mk b/keyboards/mechwild/clunker/rules.mk index 3e6a4da7dbe..a521203b326 100644 --- a/keyboards/mechwild/clunker/rules.mk +++ b/keyboards/mechwild/clunker/rules.mk @@ -1 +1 @@ -HAPTIC_DRIVER += SOLENOID +HAPTIC_DRIVER = solenoid diff --git a/keyboards/mechwild/mercutio/config.h b/keyboards/mechwild/mercutio/config.h index f9f13d9ac0d..7a7d9cfd15b 100755 --- a/keyboards/mechwild/mercutio/config.h +++ b/keyboards/mechwild/mercutio/config.h @@ -17,8 +17,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - /* Define custom font */ #define OLED_FONT_H "lib/mercutiofont.c" diff --git a/keyboards/mechwild/mercutio/info.json b/keyboards/mechwild/mercutio/info.json index f4b1fa141a6..796d22e3639 100644 --- a/keyboards/mechwild/mercutio/info.json +++ b/keyboards/mechwild/mercutio/info.json @@ -18,6 +18,9 @@ {"pin_a": "B4", "pin_b": "B5"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega328p", "bootloader": "usbasploader", "layouts": { diff --git a/keyboards/mechwild/mercutio/rules.mk b/keyboards/mechwild/mercutio/rules.mk index 27c445ca2fc..a62bc3d00cd 100644 --- a/keyboards/mechwild/mercutio/rules.mk +++ b/keyboards/mechwild/mercutio/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/mechwild/mokulua/mirrored/config.h b/keyboards/mechwild/mokulua/mirrored/config.h index c8381bc6361..219a4ec7b00 100644 --- a/keyboards/mechwild/mokulua/mirrored/config.h +++ b/keyboards/mechwild/mokulua/mirrored/config.h @@ -3,36 +3,15 @@ #pragma once -#define TAP_CODE_DELAY 10 - #define OLED_FONT_H "keyboards/mechwild/mokulua/glcdfont.c" #define MASTER_LEFT //#define MASTER_RIGHT -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 8, 8 } #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_LED_STATE_ENABLE #define SPLIT_MODS_ENABLE #define SPLIT_OLED_ENABLE -/* RGB options */ -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== choose RGB 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mechwild/mokulua/mirrored/info.json b/keyboards/mechwild/mokulua/mirrored/info.json index 5401c8898f2..5221238784c 100644 --- a/keyboards/mechwild/mokulua/mirrored/info.json +++ b/keyboards/mechwild/mokulua/mirrored/info.json @@ -18,9 +18,23 @@ {"pin_a": "D2", "pin_b": "B2"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "split": { "soft_serial_pin": "D3" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "split_count": [8, 8], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/mechwild/mokulua/mirrored/rules.mk b/keyboards/mechwild/mokulua/mirrored/rules.mk index c04e6937b06..875d4311681 100644 --- a/keyboards/mechwild/mokulua/mirrored/rules.mk +++ b/keyboards/mechwild/mokulua/mirrored/rules.mk @@ -12,5 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable encoder OLED_ENABLE = yes # Enable OLED Screen -OLED_DRIVER = SSD1306 # Define OLED Driver -SPLIT_KEYBOARD = yes # Define split functionality \ No newline at end of file +SPLIT_KEYBOARD = yes # Define split functionality diff --git a/keyboards/mechwild/mokulua/standard/config.h b/keyboards/mechwild/mokulua/standard/config.h index 7f902d0ca47..f13e1e582ac 100644 --- a/keyboards/mechwild/mokulua/standard/config.h +++ b/keyboards/mechwild/mokulua/standard/config.h @@ -3,36 +3,15 @@ #pragma once -#define TAP_CODE_DELAY 10 - #define OLED_FONT_H "keyboards/mechwild/mokulua/glcdfont.c" #define MASTER_LEFT //#define MASTER_RIGHT -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 8, 8 } #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_LED_STATE_ENABLE #define SPLIT_MODS_ENABLE #define SPLIT_OLED_ENABLE -/* RGB options */ -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== choose RGB 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mechwild/mokulua/standard/info.json b/keyboards/mechwild/mokulua/standard/info.json index 4ab38d9d370..05ca6775df0 100644 --- a/keyboards/mechwild/mokulua/standard/info.json +++ b/keyboards/mechwild/mokulua/standard/info.json @@ -18,9 +18,23 @@ {"pin_a": "D2", "pin_b": "B2"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "split": { "soft_serial_pin": "D3" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "split_count": [8, 8], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/mechwild/mokulua/standard/rules.mk b/keyboards/mechwild/mokulua/standard/rules.mk index c04e6937b06..875d4311681 100644 --- a/keyboards/mechwild/mokulua/standard/rules.mk +++ b/keyboards/mechwild/mokulua/standard/rules.mk @@ -12,5 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable encoder OLED_ENABLE = yes # Enable OLED Screen -OLED_DRIVER = SSD1306 # Define OLED Driver -SPLIT_KEYBOARD = yes # Define split functionality \ No newline at end of file +SPLIT_KEYBOARD = yes # Define split functionality diff --git a/keyboards/mechwild/murphpad/config.h b/keyboards/mechwild/murphpad/config.h index 000ad097683..6898c0a344c 100644 --- a/keyboards/mechwild/murphpad/config.h +++ b/keyboards/mechwild/murphpad/config.h @@ -17,26 +17,8 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 - #define OLED_FONT_H "keyboards/mechwild/murphpad/lib/murphpadfont.c" -# define RGBLED_NUM 8 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/mechwild/murphpad/info.json b/keyboards/mechwild/murphpad/info.json index 29247492cae..dd635fed599 100644 --- a/keyboards/mechwild/murphpad/info.json +++ b/keyboards/mechwild/murphpad/info.json @@ -19,9 +19,30 @@ {"pin_a": "D2", "pin_b": "D3"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "bootmagic": { "matrix": [0, 1] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/mechwild/murphpad/rules.mk b/keyboards/mechwild/murphpad/rules.mk index ddfffd4c4b0..df9b208bb21 100644 --- a/keyboards/mechwild/murphpad/rules.mk +++ b/keyboards/mechwild/murphpad/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable encoder OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable OLED Screen diff --git a/keyboards/mechwild/obe/config.h b/keyboards/mechwild/obe/config.h index 300bb16ef56..d9eed88676a 100644 --- a/keyboards/mechwild/obe/config.h +++ b/keyboards/mechwild/obe/config.h @@ -17,25 +17,6 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 - -/* RGB settings, uncomment this define to enable RGB */ -# define RGBLED_NUM 10 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mechwild/obe/info.json b/keyboards/mechwild/obe/info.json index f529efd1e6a..98c70bef08a 100644 --- a/keyboards/mechwild/obe/info.json +++ b/keyboards/mechwild/obe/info.json @@ -18,6 +18,9 @@ {"pin_a": "B5", "pin_b": "B4"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "indicators": { "caps_lock": "B9", "num_lock": "B8" @@ -25,6 +28,24 @@ "bootmagic": { "matrix": [5, 4] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A0" }, diff --git a/keyboards/mechwild/puckbuddy/config.h b/keyboards/mechwild/puckbuddy/config.h index 1df6c97bea1..53263d764e1 100644 --- a/keyboards/mechwild/puckbuddy/config.h +++ b/keyboards/mechwild/puckbuddy/config.h @@ -13,11 +13,6 @@ /* set the tapping term for glidepoint pad to register a tap click */ //#define CIRQUE_PINNACLE_TAPPING_TERM 0 // This is set to 0 to disable it -/* TAPPING_TERM value is used for the CIRQUE_PINNACLE_TAPPING_TERM as well by default - * defining it this way allows us to easily modify it with DYNAMIC_TAPPING_TERM_ENABLE - */ -#define TAPPING_TERM 0 - /* spi config */ #define SPI_DRIVER SPID1 #define SPI_SCK_PIN A5 @@ -29,24 +24,6 @@ #define CIRQUE_PINNACLE_SPI_DIVISOR 8 #define CIRQUE_PINNACLE_SPI_CS_PIN A4 -#define TAP_CODE_DELAY 10 - -/* RGB settings, uncomment this define to enable RGB */ -# define RGBLED_NUM 3 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mechwild/puckbuddy/info.json b/keyboards/mechwild/puckbuddy/info.json index b8e653be6be..503d9b4429d 100644 --- a/keyboards/mechwild/puckbuddy/info.json +++ b/keyboards/mechwild/puckbuddy/info.json @@ -19,10 +19,33 @@ {"pin_a": "B3", "pin_b": "A15"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "indicators": { "caps_lock": "C13", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 3, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, + "tapping": { + "term": 0 + }, "ws2812": { "pin": "A3" }, diff --git a/keyboards/mechwild/puckbuddy/keymaps/vial/config.h b/keyboards/mechwild/puckbuddy/keymaps/vial/config.h new file mode 100644 index 00000000000..234d1f5bbb6 --- /dev/null +++ b/keyboards/mechwild/puckbuddy/keymaps/vial/config.h @@ -0,0 +1,8 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define VIAL_KEYBOARD_UID {0x5C, 0x46, 0x5D, 0x32, 0xF6, 0xD3, 0x42, 0xCA} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 2 } diff --git a/keyboards/mechwild/puckbuddy/keymaps/vial/keymap.json b/keyboards/mechwild/puckbuddy/keymaps/vial/keymap.json new file mode 100644 index 00000000000..7029e17f171 --- /dev/null +++ b/keyboards/mechwild/puckbuddy/keymaps/vial/keymap.json @@ -0,0 +1,38 @@ +{ + "keyboard": "mechwild/puckbuddy", + "keymap": "vial", + "version": 1, + "layout": "LAYOUT", + "layers": [ + [ + "KC_MUTE", "KC_TRNS", "MO(2)", "MO(1)", "LGUI(KC_D)", + "MO(1)", "KC_HOME", + "MO(2)", "KC_END", + "KC_BTN3", "KC_BTN1", "KC_BTN2", "KC_BTN2", "KC_BTN1", "DPI_FINE" + ], + [ + "RGB_TOG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "TAP_TOG", + "DPI_UP", "TAP_UP", + "DPI_DN", "TAP_DN", + "KC_TRNS", "KC_HOME", "KC_PGUP", "KC_PGDN", "KC_END", "KC_TRNS" + ], + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", + "KC_TRNS", "RGB_MOD", + "KC_TRNS", "RGB_RMOD", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + ], + "config": { + "features": { + "via": true, + "vial": true, + "encoder_map": true + } + }, + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGDN", "cw": "KC_PGUP"}], + [{"ccw": "DPI_DN", "cw": "DPI_UP"}, {"ccw": "TAP_DN", "cw": "TAP_UP"}], + [{"ccw": "KC_TRNS", "cw": "KC_TRNS"}, {"ccw": "KC_TRNS", "cw": "KC_TRNS"}] + ] +} diff --git a/keyboards/mechwild/puckbuddy/keymaps/vial/vial.json b/keyboards/mechwild/puckbuddy/keymaps/vial/vial.json new file mode 100644 index 00000000000..984bf9ab4af --- /dev/null +++ b/keyboards/mechwild/puckbuddy/keymaps/vial/vial.json @@ -0,0 +1,57 @@ +{ + "lighting": "qmk_rgblight", + "matrix": { "rows": 4, "cols": 4 }, + "customKeycodes": [ + { + "name": "DPI_UP", + "title": "Increase the DPI of the touchpad.", + "shortName": "DPI\nDown" + }, + { + "name": "DPI_DN", + "title": "Decrease the DPI of the touchpad.", + "shortName": "DPI\nUp" + }, + { + "name": "DPI_FINE", + "title": "While held, drops the DPI to minimum.", + "shortName": "Sniper\nMode" + }, + { + "name": "TAP_UP", + "title": "Increase the tapping term. This affects mod/layer-tap timing.", + "shortname": "Tap Term\nUp" + }, + { + "name": "TAP_DN", + "title": "Decrease the tapping term. This affects mod/layer-tap timing.", + "shortname": "Tap Term\nDown" + }, + { + "name": "TAP_ON", + "title": "Enable tap to click on touchpad.", + "shortname": "Tap-Click\nOn" + }, + { + "name": "TP_OFF", + "title": "Disable tap to click on touchpad.", + "shortname": "Tap-Click\nOff" + }, + { + "name": "TAP_TOG", + "title": "Toggle touchpad tap clicking on/off.", + "shortname": "Tap-Click\nToggle" + } + ], + "layouts": { + "keymap": [ + ["0,1\n\n\n\n\n\n\n\n\ne",{"x":6.5},"1,1\n\n\n\n\n\n\n\n\ne"], + [{"y":-0.5,"x":1.25},"0,0",{"x":0.5},"0,1","1,1","2,1",{"x":0.5},"0,2"], + [{"y":-0.5},"0,0\n\n\n\n\n\n\n\n\ne",{"x":6.5},"1,0\n\n\n\n\n\n\n\n\ne"], + [{"y":-0.25,"x":1.25},"1,0",{"x":4},"1,2"], + [{"x":1.25},"2,0",{"x":4},"2,2"], + [{"x":1.25},"3,0",{"x":4},"3,2"], + [{"y":0.25,"x":2.25},"0,3","1,3","2,3","3,3"] + ] + } +} diff --git a/keyboards/mechwild/puckbuddy/rules.mk b/keyboards/mechwild/puckbuddy/rules.mk index 4bddc4813fc..980fe281cff 100644 --- a/keyboards/mechwild/puckbuddy/rules.mk +++ b/keyboards/mechwild/puckbuddy/rules.mk @@ -12,7 +12,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Encoder Enabled OLED_ENABLE = yes # OLED Enabled -OLED_DRIVER = SSD1306 # OLED Driver DIP_SWITCH_ENABLE = yes # Dip Switch Enabled POINTING_DEVICE_ENABLE = yes # Pointing Device Enabled diff --git a/keyboards/mechwild/sugarglider/config.h b/keyboards/mechwild/sugarglider/config.h index 1512cc1528b..75aa26956cf 100644 --- a/keyboards/mechwild/sugarglider/config.h +++ b/keyboards/mechwild/sugarglider/config.h @@ -19,10 +19,6 @@ /* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */ #define DIP_SWITCH_PINS { A0 } -/* TAPPING_TERM value is used for the CIRQUE_PINNACLE_TAPPING_TERM as well by default - * defining it this way allows us to easily modify it with DYNAMIC_TAPPING_TERM_ENABLE - */ -#define TAPPING_TERM 0 #define CIRQUE_PINNACLE_TAP_ENABLE #define POINTING_DEVICE_GESTURES_SCROLL_ENABLE diff --git a/keyboards/mechwild/sugarglider/info.json b/keyboards/mechwild/sugarglider/info.json index 046776be491..f8439dde110 100644 --- a/keyboards/mechwild/sugarglider/info.json +++ b/keyboards/mechwild/sugarglider/info.json @@ -42,9 +42,15 @@ "twinkle": true } }, + "tapping": { + "term": 0 + }, "ws2812": { "pin": "B5" }, + "build": { + "debounce_type": "sym_eager_pk" + }, "encoder": { "rotary": [ {"pin_a": "B0", "pin_b": "A2", "resolution": 4}, diff --git a/keyboards/mechwild/sugarglider/rules.mk b/keyboards/mechwild/sugarglider/rules.mk index acf0b6f1f4c..9cfa6b77970 100644 --- a/keyboards/mechwild/sugarglider/rules.mk +++ b/keyboards/mechwild/sugarglider/rules.mk @@ -2,7 +2,6 @@ # change yes to no to disable # OLED_ENABLE = yes # OLED Enabled -OLED_DRIVER = SSD1306 # OLED Driver # Cirque touchpad settings POINTING_DEVICE_ENABLE = yes # Pointing Device Enabled @@ -11,7 +10,6 @@ DYNAMIC_TAPPING_TERM_ENABLE = yes # Enable Dynamic Tapping Term to # Custom matrix setup CUSTOM_MATRIX = lite -DEBOUNCE_TYPE = sym_eager_pk VPATH += drivers/gpio SRC += mcp23018.c matrix.c diff --git a/keyboards/mechwild/waka60/config.h b/keyboards/mechwild/waka60/config.h index 21e197df4cc..d9eed88676a 100644 --- a/keyboards/mechwild/waka60/config.h +++ b/keyboards/mechwild/waka60/config.h @@ -17,25 +17,6 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 - -/* RGB settings, uncomment this define to enable RGB */ -# define RGBLED_NUM 3 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mechwild/waka60/info.json b/keyboards/mechwild/waka60/info.json index 1014411ba02..0d50b0f261b 100644 --- a/keyboards/mechwild/waka60/info.json +++ b/keyboards/mechwild/waka60/info.json @@ -8,6 +8,24 @@ "pid": "0x1709", "device_version": "1.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 3, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A1" }, @@ -21,6 +39,9 @@ {"pin_a": "A3", "pin_b": "A2"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mecxlabs/mp1/rules.mk b/keyboards/mecxlabs/mp1/rules.mk index ee2a7c0d6a9..0ab54aaaf71 100644 --- a/keyboards/mecxlabs/mp1/rules.mk +++ b/keyboards/mecxlabs/mp1/rules.mk @@ -1,4 +1,2 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/mehkee96/config.h b/keyboards/mehkee96/config.h deleted file mode 100644 index e5f456306d9..00000000000 --- a/keyboards/mehkee96/config.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#define RGBLED_NUM 18 -#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 -/* key combination for command */ diff --git a/keyboards/mehkee96/info.json b/keyboards/mehkee96/info.json index f192bb50363..9a81cba932a 100644 --- a/keyboards/mehkee96/info.json +++ b/keyboards/mehkee96/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/meletrix/zoom65/config.h b/keyboards/meletrix/zoom65/config.h deleted file mode 100644 index e5cc1f3e5b7..00000000000 --- a/keyboards/meletrix/zoom65/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2021 meletrix - * - * This 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 - -// Note: array is { col, row ) -#define ENCODERS_CW_KEY { { 5, 4 } } -#define ENCODERS_CCW_KEY { { 3, 4 } } diff --git a/keyboards/meletrix/zoom65/info.json b/keyboards/meletrix/zoom65/info.json index 30e4962a294..59de004989f 100644 --- a/keyboards/meletrix/zoom65/info.json +++ b/keyboards/meletrix/zoom65/info.json @@ -43,9 +43,7 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0}, {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [4, 3], "x": 15, "y": 0, "w": 0.5}, {"matrix": [0, 14], "x": 15.5, "y": 0}, - {"matrix": [4, 5], "x": 16.5, "y": 0, "w": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, diff --git a/keyboards/meletrix/zoom65/keymaps/default/keymap.c b/keyboards/meletrix/zoom65/keymaps/default/keymap.c index 3eab5dabb07..b96eff2257f 100644 --- a/keyboards/meletrix/zoom65/keymaps/default/keymap.c +++ b/keyboards/meletrix/zoom65/keymaps/default/keymap.c @@ -18,14 +18,14 @@ 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_VOLD, KC_MUTE, KC_VOLU, + 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_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_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_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_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, + 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_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, diff --git a/keyboards/meletrix/zoom65/keymaps/via/keymap.c b/keyboards/meletrix/zoom65/keymaps/via/keymap.c index 62e10541c25..f593d408d51 100644 --- a/keyboards/meletrix/zoom65/keymaps/via/keymap.c +++ b/keyboards/meletrix/zoom65/keymaps/via/keymap.c @@ -18,31 +18,40 @@ 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_VOLD, KC_MUTE, KC_VOLU, + 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_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_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_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_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, + 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_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/meletrix/zoom65/keymaps/via/rules.mk b/keyboards/meletrix/zoom65/keymaps/via/rules.mk index 43061db1dd4..1189f4ad192 100644 --- a/keyboards/meletrix/zoom65/keymaps/via/rules.mk +++ b/keyboards/meletrix/zoom65/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/meletrix/zoom65/zoom65.c b/keyboards/meletrix/zoom65/zoom65.c deleted file mode 100644 index 10b48c7b2db..00000000000 --- a/keyboards/meletrix/zoom65/zoom65.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright 2021 meletrix - * - * This 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 VIA_ENABLE -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) -{ - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} -void encoder_action_register(uint8_t index, bool clockwise) -{ - keyevent_t encoder_event = (keyevent_t){ - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -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); - return true; -}; -#endif diff --git a/keyboards/meletrix/zoom65_lite/config.h b/keyboards/meletrix/zoom65_lite/config.h deleted file mode 100644 index e5cc1f3e5b7..00000000000 --- a/keyboards/meletrix/zoom65_lite/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2021 meletrix - * - * This 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 - -// Note: array is { col, row ) -#define ENCODERS_CW_KEY { { 5, 4 } } -#define ENCODERS_CCW_KEY { { 3, 4 } } diff --git a/keyboards/meletrix/zoom65_lite/info.json b/keyboards/meletrix/zoom65_lite/info.json index b8b59a487da..932dc8571e2 100644 --- a/keyboards/meletrix/zoom65_lite/info.json +++ b/keyboards/meletrix/zoom65_lite/info.json @@ -43,9 +43,7 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0}, {"matrix": [2, 13], "x": 14, "y": 0}, - {"matrix": [4, 3], "x": 15, "y": 0, "w": 0.5}, {"matrix": [0, 14], "x": 15.5, "y": 0}, - {"matrix": [4, 5], "x": 16.5, "y": 0, "w": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, diff --git a/keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c b/keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c index 9d9aa675576..b96eff2257f 100644 --- a/keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c +++ b/keyboards/meletrix/zoom65_lite/keymaps/default/keymap.c @@ -18,14 +18,14 @@ 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_VOLU, KC_MUTE, KC_VOLD, + 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_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_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_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_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MNXT, KC_MPLY, KC_MPRV, + 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_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, diff --git a/keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c b/keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c index 4adfaba69d7..f593d408d51 100644 --- a/keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c +++ b/keyboards/meletrix/zoom65_lite/keymaps/via/keymap.c @@ -16,78 +16,42 @@ #include QMK_KEYBOARD_H -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) -{ - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} -void encoder_action_register(uint8_t index, bool clockwise) -{ - keyevent_t encoder_event = (keyevent_t){ - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -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); - return true; -} - 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_VOLU, KC_MUTE, KC_VOLD, + 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_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_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_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_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MNXT, KC_MPLY, KC_MPRV, + 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_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk b/keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk index 43061db1dd4..1189f4ad192 100644 --- a/keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk +++ b/keyboards/meletrix/zoom65_lite/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/meletrix/zoom65_lite/keymaps/vial/keymap.c b/keyboards/meletrix/zoom65_lite/keymaps/vial/keymap.c index cfd34fe622c..36079eda34a 100644 --- a/keyboards/meletrix/zoom65_lite/keymaps/vial/keymap.c +++ b/keyboards/meletrix/zoom65_lite/keymaps/vial/keymap.c @@ -26,21 +26,21 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { 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_VOLU, KC_MUTE, KC_VOLD, + 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_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_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_LSFT, KC_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_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MNXT, KC_MPLY, KC_MPRV, + 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_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/meletrix/zoom87/config.h b/keyboards/meletrix/zoom87/config.h deleted file mode 100644 index 3cc2858e75f..00000000000 --- a/keyboards/meletrix/zoom87/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2022 meletrix - * - * This 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 RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*======= RGB function=======*/ -#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/meletrix/zoom87/info.json b/keyboards/meletrix/zoom87/info.json index be54c6ccd30..551bdc76aa9 100644 --- a/keyboards/meletrix/zoom87/info.json +++ b/keyboards/meletrix/zoom87/info.json @@ -21,7 +21,23 @@ "pin": "D2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/melgeek/mach80/rev1/info.json b/keyboards/melgeek/mach80/rev1/info.json index 3a1a27847dd..1d7d87b76f1 100644 --- a/keyboards/melgeek/mach80/rev1/info.json +++ b/keyboards/melgeek/mach80/rev1/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"], diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c index bb04eddd5b3..da4c6b73d85 100755 --- a/keyboards/melgeek/mach80/rev1/rev1.c +++ b/keyboards/melgeek/mach80/rev1/rev1.c @@ -153,21 +153,21 @@ const is31_led g_is31_indicator_leds[3] = { bool led_update_kb(led_t led_state) { if (led_update_user(led_state)) { if (led_state.caps_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0xff); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0xff); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); } if (led_state.num_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0xff, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0xff, 0x00, 0x00); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); } if (led_state.scroll_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0xff, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0xff, 0x00); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); } } return true; @@ -176,10 +176,10 @@ bool led_update_kb(led_t led_state) { void matrix_init_kb(void) { for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { is31_led led = g_is31_indicator_leds[i]; - IS31FL3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); + is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } - IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); matrix_init_user(); } diff --git a/keyboards/melgeek/mach80/rev2/info.json b/keyboards/melgeek/mach80/rev2/info.json index 3a1a27847dd..1d7d87b76f1 100644 --- a/keyboards/melgeek/mach80/rev2/info.json +++ b/keyboards/melgeek/mach80/rev2/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"], diff --git a/keyboards/melgeek/mach80/rev2/rev2.c b/keyboards/melgeek/mach80/rev2/rev2.c index 7e578c78b54..632466376d3 100755 --- a/keyboards/melgeek/mach80/rev2/rev2.c +++ b/keyboards/melgeek/mach80/rev2/rev2.c @@ -151,21 +151,21 @@ const is31_led g_is31_indicator_leds[3] = { bool led_update_kb(led_t led_state) { if (led_update_user(led_state)) { if (led_state.caps_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0xff); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0xff); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); } if (led_state.num_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0xff, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0xff, 0x00, 0x00); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); } if (led_state.scroll_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0xff, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0xff, 0x00); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); } } return true; @@ -174,10 +174,10 @@ bool led_update_kb(led_t led_state) { void matrix_init_kb(void) { for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { is31_led led = g_is31_indicator_leds[i]; - IS31FL3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); + is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } - IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); matrix_init_user(); } diff --git a/keyboards/melgeek/mj61/rev1/info.json b/keyboards/melgeek/mj61/rev1/info.json index c146adef043..705023fb8e4 100644 --- a/keyboards/melgeek/mj61/rev1/info.json +++ b/keyboards/melgeek/mj61/rev1/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], diff --git a/keyboards/melgeek/mj61/rev2/info.json b/keyboards/melgeek/mj61/rev2/info.json index 330137a02ab..62b2c58f157 100644 --- a/keyboards/melgeek/mj61/rev2/info.json +++ b/keyboards/melgeek/mj61/rev2/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], diff --git a/keyboards/melgeek/mj63/rev1/info.json b/keyboards/melgeek/mj63/rev1/info.json index c146adef043..705023fb8e4 100644 --- a/keyboards/melgeek/mj63/rev1/info.json +++ b/keyboards/melgeek/mj63/rev1/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], diff --git a/keyboards/melgeek/mj63/rev2/info.json b/keyboards/melgeek/mj63/rev2/info.json index 330137a02ab..62b2c58f157 100644 --- a/keyboards/melgeek/mj63/rev2/info.json +++ b/keyboards/melgeek/mj63/rev2/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], diff --git a/keyboards/melgeek/mj64/rev1/info.json b/keyboards/melgeek/mj64/rev1/info.json index c146adef043..705023fb8e4 100644 --- a/keyboards/melgeek/mj64/rev1/info.json +++ b/keyboards/melgeek/mj64/rev1/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], diff --git a/keyboards/melgeek/mj64/rev2/info.json b/keyboards/melgeek/mj64/rev2/info.json index c146adef043..705023fb8e4 100644 --- a/keyboards/melgeek/mj64/rev2/info.json +++ b/keyboards/melgeek/mj64/rev2/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], diff --git a/keyboards/melgeek/mj64/rev3/info.json b/keyboards/melgeek/mj64/rev3/info.json index 330137a02ab..62b2c58f157 100644 --- a/keyboards/melgeek/mj64/rev3/info.json +++ b/keyboards/melgeek/mj64/rev3/info.json @@ -1,6 +1,6 @@ { "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], diff --git a/keyboards/melgeek/mj65/info.json b/keyboards/melgeek/mj65/info.json index 71fce4cf7a9..061b4bc83e0 100644 --- a/keyboards/melgeek/mj65/info.json +++ b/keyboards/melgeek/mj65/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1", "B14"], diff --git a/keyboards/melgeek/mj6xy/rev3/config.h b/keyboards/melgeek/mj6xy/rev3/config.h index dbe73b7e3d7..288c8e3a3e7 100755 --- a/keyboards/melgeek/mj6xy/rev3/config.h +++ b/keyboards/melgeek/mj6xy/rev3/config.h @@ -16,20 +16,5 @@ #pragma once -# 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_EFFECT_RAINBOW_MOOD + 6) # define RGBLIGHT_DEFAULT_SPD 10 -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP diff --git a/keyboards/melgeek/mj6xy/rev3/info.json b/keyboards/melgeek/mj6xy/rev3/info.json index 5dd66001c51..dba086e493b 100644 --- a/keyboards/melgeek/mj6xy/rev3/info.json +++ b/keyboards/melgeek/mj6xy/rev3/info.json @@ -5,10 +5,27 @@ }, "diode_direction": "COL2ROW", "backlight": { - "driver": "software", "pin": "B7", "levels": 10 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C6" } diff --git a/keyboards/melgeek/mojo68/info.json b/keyboards/melgeek/mojo68/info.json index c5dcb5d4109..7e160d0c59f 100755 --- a/keyboards/melgeek/mojo68/info.json +++ b/keyboards/melgeek/mojo68/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c index cadc625adbe..bea523c84e6 100755 --- a/keyboards/melgeek/mojo68/rev1/rev1.c +++ b/keyboards/melgeek/mojo68/rev1/rev1.c @@ -121,21 +121,21 @@ const is31_led g_is31_indicator_leds[3] = { bool led_update_kb(led_t led_state) { if (led_update_user(led_state)) { if (led_state.caps_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0xff, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0xff, 0x00, 0x00); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); } if (led_state.num_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0xff, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0xff, 0x00); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); } if (led_state.scroll_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0xff); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0xff); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); } } return true; @@ -144,10 +144,10 @@ bool led_update_kb(led_t led_state) { void matrix_init_kb(void) { for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { is31_led led = g_is31_indicator_leds[i]; - IS31FL3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); + is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } - IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); matrix_init_user(); } diff --git a/keyboards/melgeek/mojo75/info.json b/keyboards/melgeek/mojo75/info.json index 7d7c6db3ff2..c22c5710a5e 100644 --- a/keyboards/melgeek/mojo75/info.json +++ b/keyboards/melgeek/mojo75/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B12", "B13", "B14", "B15", "A8", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], diff --git a/keyboards/melgeek/tegic/info.json b/keyboards/melgeek/tegic/info.json index 31aa0673230..c54f53ca61c 100644 --- a/keyboards/melgeek/tegic/info.json +++ b/keyboards/melgeek/tegic/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], diff --git a/keyboards/melgeek/z70ultra/info.json b/keyboards/melgeek/z70ultra/info.json index 697d107a4f2..ae555e046bd 100644 --- a/keyboards/melgeek/z70ultra/info.json +++ b/keyboards/melgeek/z70ultra/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["B11", "B10", "B1", "A10", "B5", "B4", "B3", "A15", "A2", "A1", "A0", "C15", "C14", "C13"], diff --git a/keyboards/melgeek/z70ultra/z70ultra.c b/keyboards/melgeek/z70ultra/z70ultra.c index 9ff2e778c63..d0b23c3bf86 100644 --- a/keyboards/melgeek/z70ultra/z70ultra.c +++ b/keyboards/melgeek/z70ultra/z70ultra.c @@ -129,27 +129,27 @@ const is31_led g_is31_indicator_leds[6] = { bool led_update_kb(led_t led_state) { if (led_update_user(led_state)) { if (led_state.caps_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0xff, 0x00, 0x00); - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[3], 0xff, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0xff, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[3], 0xff, 0x00, 0x00); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[3], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[3], 0x00, 0x00, 0x00); } if (led_state.num_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0xff, 0x00); - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[4], 0x00, 0xff, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0xff, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[4], 0x00, 0xff, 0x00); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[4], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[4], 0x00, 0x00, 0x00); } if (led_state.scroll_lock) { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0xff); - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[5], 0x00, 0x00, 0xff); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0xff); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[5], 0x00, 0x00, 0xff); } else { - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); - IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[5], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00); + is31fl3741_set_pwm_buffer(&g_is31_indicator_leds[5], 0x00, 0x00, 0x00); } } return true; @@ -158,10 +158,10 @@ bool led_update_kb(led_t led_state) { void matrix_init_kb(void) { for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { is31_led led = g_is31_indicator_leds[i]; - IS31FL3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); + is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } - IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); matrix_init_user(); } diff --git a/keyboards/meow48/config.h b/keyboards/meow48/config.h index 2cd54cde397..f0ecc58d807 100644 --- a/keyboards/meow48/config.h +++ b/keyboards/meow48/config.h @@ -19,24 +19,6 @@ along with this program. If not, see . #define OLED_BRIGHTNESS 100 - #define RGBLED_NUM 48 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - -/*== all animations 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 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/meow48/info.json b/keyboards/meow48/info.json index b5d80286c77..a38eee886bf 100644 --- a/keyboards/meow48/info.json +++ b/keyboards/meow48/info.json @@ -12,7 +12,23 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 48, + "max_brightness": 100, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], diff --git a/keyboards/meow48/rules.mk b/keyboards/meow48/rules.mk index b38f37579e1..50a1438ecd3 100644 --- a/keyboards/meow48/rules.mk +++ b/keyboards/meow48/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/merge/uc1/config.h b/keyboards/merge/uc1/config.h deleted file mode 100644 index 945f7535995..00000000000 --- a/keyboards/merge/uc1/config.h +++ /dev/null @@ -1,33 +0,0 @@ - /* Copyright 2021 duoshock - * - * This 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 RGBLED_NUM 12 -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 -#define RGBLIGHT_SLEEP diff --git a/keyboards/merge/uc1/info.json b/keyboards/merge/uc1/info.json index 95de5a2e20d..b1f032417f1 100644 --- a/keyboards/merge/uc1/info.json +++ b/keyboards/merge/uc1/info.json @@ -8,6 +8,25 @@ "pid": "0x5543", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/merge/um70/config.h b/keyboards/merge/um70/config.h index bbc2f5b5fbb..04569dc9894 100644 --- a/keyboards/merge/um70/config.h +++ b/keyboards/merge/um70/config.h @@ -20,14 +20,10 @@ #define MASTER_LEFT #define SPLIT_MODS_ENABLE -#define RGBLIGHT_SPLIT -#define RGBLED_NUM 83 -#define RGBLED_SPLIT { 39, 44 } #ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 83 +# define RGB_MATRIX_SPLIT { 39, 44 } #endif -#define RGBLIGHT_SLEEP #define B6_AUDIO diff --git a/keyboards/merge/um70/info.json b/keyboards/merge/um70/info.json index 84f44ba6d14..95f3bb1cea2 100644 --- a/keyboards/merge/um70/info.json +++ b/keyboards/merge/um70/info.json @@ -25,7 +25,10 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 150 + "led_count": 83, + "max_brightness": 150, + "sleep": true, + "split_count": [39, 44] }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/merge/um70/rules.mk b/keyboards/merge/um70/rules.mk index de0aec2ab23..11776618e22 100644 --- a/keyboards/merge/um70/rules.mk +++ b/keyboards/merge/um70/rules.mk @@ -13,4 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes SPLIT_KEYBOARD = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/merge/um80/config.h b/keyboards/merge/um80/config.h index 84b23cd33b7..70a5d7ba590 100644 --- a/keyboards/merge/um80/config.h +++ b/keyboards/merge/um80/config.h @@ -20,14 +20,10 @@ #define MASTER_LEFT #define SPLIT_MODS_ENABLE -#define RGBLIGHT_SPLIT -#define RGBLED_NUM 100 -#define RGBLED_SPLIT { 48, 52 } #ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 100 +# define RGB_MATRIX_SPLIT { 48, 52 } #endif -#define RGBLIGHT_SLEEP #define AUDIO_PIN B6 diff --git a/keyboards/merge/um80/info.json b/keyboards/merge/um80/info.json index 2223b3d4c04..554d1997a36 100644 --- a/keyboards/merge/um80/info.json +++ b/keyboards/merge/um80/info.json @@ -25,7 +25,10 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 120 + "led_count": 100, + "max_brightness": 120, + "sleep": true, + "split_count": [48, 52] }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/merge/um80/rules.mk b/keyboards/merge/um80/rules.mk index de0aec2ab23..11776618e22 100644 --- a/keyboards/merge/um80/rules.mk +++ b/keyboards/merge/um80/rules.mk @@ -13,4 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes SPLIT_KEYBOARD = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/merge/uma/rules.mk b/keyboards/merge/uma/rules.mk index 1fec8e42150..8bd01d2bb4c 100644 --- a/keyboards/merge/uma/rules.mk +++ b/keyboards/merge/uma/rules.mk @@ -14,4 +14,3 @@ ENCODER_ENABLE = yes SPLIT_KEYBOARD = yes LTO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/meson/config.h b/keyboards/meson/config.h index e89409d4774..a84e55df1f2 100644 --- a/keyboards/meson/config.h +++ b/keyboards/meson/config.h @@ -19,24 +19,6 @@ along with this program. If not, see . #define USE_I2C - #define RGBLED_NUM 10 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 5, 5 } - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/meson/info.json b/keyboards/meson/info.json index 62aa154c0b4..55b4591f1fb 100644 --- a/keyboards/meson/info.json +++ b/keyboards/meson/info.json @@ -15,6 +15,25 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "split_count": [5, 5], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/mexsistor/ludmila/config.h b/keyboards/mexsistor/ludmila/config.h index 8d8aaed5c7e..d23f6af9d6b 100644 --- a/keyboards/mexsistor/ludmila/config.h +++ b/keyboards/mexsistor/ludmila/config.h @@ -37,16 +37,3 @@ along with this program. If not, see . /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW - -#define RGBLED_NUM 4 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/mexsistor/ludmila/info.json b/keyboards/mexsistor/ludmila/info.json index fcfecd0fd78..6e44d33913c 100644 --- a/keyboards/mexsistor/ludmila/info.json +++ b/keyboards/mexsistor/ludmila/info.json @@ -13,6 +13,22 @@ {"pin_a": "F6", "pin_b": "F5"} ] }, + "rgblight": { + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/miller/gm862/info.json b/keyboards/miller/gm862/info.json index c66bba782f4..952bb34397b 100644 --- a/keyboards/miller/gm862/info.json +++ b/keyboards/miller/gm862/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["B5", "B6", "C6", "C7", "F7", "F6", "B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5"], diff --git a/keyboards/mincedshon/ecila/config.h b/keyboards/mincedshon/ecila/config.h deleted file mode 100644 index 0b3c4eb59a0..00000000000 --- a/keyboards/mincedshon/ecila/config.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2022 mincedshon (@mincedshon) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/mincedshon/ecila/info.json b/keyboards/mincedshon/ecila/info.json index 9ca79d21867..fe7173e34a6 100644 --- a/keyboards/mincedshon/ecila/info.json +++ b/keyboards/mincedshon/ecila/info.json @@ -11,7 +11,23 @@ "pin": "B0" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 150, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "bootloader": "atmel-dfu", "features": { diff --git a/keyboards/miniaxe/config.h b/keyboards/miniaxe/config.h index 8d0955d7695..716fdf387a8 100644 --- a/keyboards/miniaxe/config.h +++ b/keyboards/miniaxe/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* Uncomment below if use underglow */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/miniaxe/info.json b/keyboards/miniaxe/info.json index 6f6c68d8d09..9b7f3104a0c 100644 --- a/keyboards/miniaxe/info.json +++ b/keyboards/miniaxe/info.json @@ -11,6 +11,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/minimacro5/config.h b/keyboards/minimacro5/config.h deleted file mode 100644 index 317e1509359..00000000000 --- a/keyboards/minimacro5/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -//speed for double tap -#define TAPPING_TERM 200 - -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 5 // Number of LEDs diff --git a/keyboards/minimacro5/info.json b/keyboards/minimacro5/info.json index e417a689ae4..4396783673a 100644 --- a/keyboards/minimacro5/info.json +++ b/keyboards/minimacro5/info.json @@ -8,6 +8,21 @@ "pid": "0x0007", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/minimon/index_tab/config.h b/keyboards/minimon/index_tab/config.h index 1d1616ee258..52607b345c2 100644 --- a/keyboards/minimon/index_tab/config.h +++ b/keyboards/minimon/index_tab/config.h @@ -20,17 +20,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGBLED_NUM 10 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/minimon/index_tab/info.json b/keyboards/minimon/index_tab/info.json index c3867950249..62a8d2df942 100644 --- a/keyboards/minimon/index_tab/info.json +++ b/keyboards/minimon/index_tab/info.json @@ -9,6 +9,22 @@ "pid": "0x1306", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/mino_plus/hotswap/config.h b/keyboards/mino_plus/hotswap/config.h new file mode 100644 index 00000000000..b8c00079386 --- /dev/null +++ b/keyboards/mino_plus/hotswap/config.h @@ -0,0 +1,15 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define I2C_DRIVER I2CD1 +#define I2C1_SCL_PIN B6 +#define I2C1_SDA_PIN B7 +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 +#define I2C1_TIMINGR_PRESC 0x00U +#define I2C1_TIMINGR_SCLDEL 0x03U +#define I2C1_TIMINGR_SDADEL 0x01U +#define I2C1_TIMINGR_SCLH 0x03U +#define I2C1_TIMINGR_SCLL 0x09U + diff --git a/keyboards/mino_plus/hotswap/halconf.h b/keyboards/mino_plus/hotswap/halconf.h new file mode 100644 index 00000000000..fb8ce45220b --- /dev/null +++ b/keyboards/mino_plus/hotswap/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/mino_plus/hotswap/hotswap.c b/keyboards/mino_plus/hotswap/hotswap.c new file mode 100644 index 00000000000..a5920b26173 --- /dev/null +++ b/keyboards/mino_plus/hotswap/hotswap.c @@ -0,0 +1,8 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" + +void board_init(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; + SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); +} \ No newline at end of file diff --git a/keyboards/mino_plus/hotswap/info.json b/keyboards/mino_plus/hotswap/info.json new file mode 100644 index 00000000000..b7cda6d71ff --- /dev/null +++ b/keyboards/mino_plus/hotswap/info.json @@ -0,0 +1,100 @@ +{ + "manufacturer": "ShandonCodes", + "keyboard_name": "Mino Plus (Hotswap)", + "maintainer": "ShandonCodes", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B12", "A15", "B3", "B2", "B0", "A7", "A5", "A4", "A3", "A2", "A1", "F1", "A0", "A8", "A10"], + "rows": ["B14", "B10", "F0", "C15", "C14"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0004", + "vid": "0x7877" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Del", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Ins", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 10.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Pgup", "matrix": [2, 14], "x": 14, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 12], "x": 14, "y": 3}, + {"label": "Pgdn", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Super", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Meta", "matrix": [4, 9], "x": 10, "y": 4}, + {"label": "Win", "matrix": [4, 10], "x": 11, "y": 4}, + {"label": "Ctrl", "matrix": [4, 11], "x": 12, "y": 4}, + {"label": "Left", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "Down", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "Right", "matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/mino_plus/hotswap/keymaps/default/keymap.c b/keyboards/mino_plus/hotswap/keymaps/default/keymap.c new file mode 100644 index 00000000000..f068c662153 --- /dev/null +++ b/keyboards/mino_plus/hotswap/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_ESCAPE, 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_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_ENTER, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/mino_plus/hotswap/keymaps/via/keymap.c b/keyboards/mino_plus/hotswap/keymaps/via/keymap.c new file mode 100644 index 00000000000..901adcb3d27 --- /dev/null +++ b/keyboards/mino_plus/hotswap/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_ESCAPE, 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_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_ENTER, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/mino_plus/hotswap/keymaps/via/rules.mk b/keyboards/mino_plus/hotswap/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/mino_plus/hotswap/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mino_plus/hotswap/mcuconf.h b/keyboards/mino_plus/hotswap/mcuconf.h new file mode 100644 index 00000000000..7b8a66123e5 --- /dev/null +++ b/keyboards/mino_plus/hotswap/mcuconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/mino_plus/hotswap/rules.mk b/keyboards/mino_plus/hotswap/rules.mk new file mode 100644 index 00000000000..76e55c05f48 --- /dev/null +++ b/keyboards/mino_plus/hotswap/rules.mk @@ -0,0 +1,2 @@ +OLED_ENABLE = yes +WPM_ENABLE = yes diff --git a/keyboards/mino_plus/mino_plus.c b/keyboards/mino_plus/mino_plus.c index 62434016f72..cd651b6d171 100644 --- a/keyboards/mino_plus/mino_plus.c +++ b/keyboards/mino_plus/mino_plus.c @@ -1,4 +1,4 @@ -// Copyright 2022 ShandonCodes (@ShandonCodes) +// Copyright 2023 ShandonCodes (@ShandonCodes) // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" diff --git a/keyboards/mino_plus/readme.md b/keyboards/mino_plus/readme.md index 0730e30d63a..0a85b6dc580 100644 --- a/keyboards/mino_plus/readme.md +++ b/keyboards/mino_plus/readme.md @@ -11,10 +11,12 @@ A 65% keyboard, inspried by tetrominos. Make example for this keyboard (after setting up your build environment): make mino_plus/soldered:default + make mino_plus/hotswap:default Flashing example for this keyboard: make mino_plus/soldered:default:flash + make mino_plus/hotswap: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/mino_plus/keymaps/default/keymap.c b/keyboards/mino_plus/soldered/keymaps/default/keymap.c similarity index 100% rename from keyboards/mino_plus/keymaps/default/keymap.c rename to keyboards/mino_plus/soldered/keymaps/default/keymap.c diff --git a/keyboards/mino_plus/keymaps/via/keymap.c b/keyboards/mino_plus/soldered/keymaps/via/keymap.c similarity index 100% rename from keyboards/mino_plus/keymaps/via/keymap.c rename to keyboards/mino_plus/soldered/keymaps/via/keymap.c diff --git a/keyboards/mino_plus/soldered/keymaps/via/rules.mk b/keyboards/mino_plus/soldered/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/mino_plus/soldered/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mino_plus/soldered/rules.mk b/keyboards/mino_plus/soldered/rules.mk index 842350f40ea..76e55c05f48 100644 --- a/keyboards/mino_plus/soldered/rules.mk +++ b/keyboards/mino_plus/soldered/rules.mk @@ -1,3 +1,2 @@ OLED_ENABLE = yes WPM_ENABLE = yes -OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h index 41c0f7e8ebf..a93b381c85b 100644 --- a/keyboards/mint60/config.h +++ b/keyboards/mint60/config.h @@ -22,23 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 8 -#define RGBLIGHT_SPLIT - -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - -#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 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/mint60/info.json b/keyboards/mint60/info.json index bd51052853f..4f2f658a205 100644 --- a/keyboards/mint60/info.json +++ b/keyboards/mint60/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "hue_steps": 10, + "led_count": 8, + "split": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/misonoworks/chocolatebar/config.h b/keyboards/misonoworks/chocolatebar/config.h deleted file mode 100644 index 55e57fb8728..00000000000 --- a/keyboards/misonoworks/chocolatebar/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2021 MisonoWorks - -This 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 RGBLED_NUM 12 -#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/misonoworks/chocolatebar/info.json b/keyboards/misonoworks/chocolatebar/info.json index 65087ac4818..51ce82d1bac 100644 --- a/keyboards/misonoworks/chocolatebar/info.json +++ b/keyboards/misonoworks/chocolatebar/info.json @@ -9,6 +9,18 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "static_gradient": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/misonoworks/chocolatebar/rules.mk b/keyboards/misonoworks/chocolatebar/rules.mk index de4cbe598cf..e61a4270e14 100644 --- a/keyboards/misonoworks/chocolatebar/rules.mk +++ b/keyboards/misonoworks/chocolatebar/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/misonoworks/karina/config.h b/keyboards/misonoworks/karina/config.h index eba5475d833..d36739d42b3 100644 --- a/keyboards/misonoworks/karina/config.h +++ b/keyboards/misonoworks/karina/config.h @@ -22,15 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGBLED_NUM 19 -#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/misonoworks/karina/info.json b/keyboards/misonoworks/karina/info.json index 2fc140cba61..d7bfaf11f02 100644 --- a/keyboards/misonoworks/karina/info.json +++ b/keyboards/misonoworks/karina/info.json @@ -9,6 +9,21 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "led_count": 19, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/misterknife/knife66/config.h b/keyboards/misterknife/knife66/config.h index 167cffb9144..7f7e1173032 100644 --- a/keyboards/misterknife/knife66/config.h +++ b/keyboards/misterknife/knife66/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#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_SLEEP -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - #define WS2812_PWM_DRIVER PWMD1 // default: PWMD1 #define WS2812_PWM_CHANNEL 2 // default: 2 #define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 diff --git a/keyboards/misterknife/knife66/info.json b/keyboards/misterknife/knife66/info.json index d0ecc011bfe..aa196e14821 100644 --- a/keyboards/misterknife/knife66/info.json +++ b/keyboards/misterknife/knife66/info.json @@ -13,7 +13,23 @@ "driver": "pwm" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B2", "B1", "B0", "A7", "A6", "A5", "A4", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15"], diff --git a/keyboards/misterknife/knife66/rules.mk b/keyboards/misterknife/knife66/rules.mk index 0f15f10b208..0098dc473ac 100644 --- a/keyboards/misterknife/knife66/rules.mk +++ b/keyboards/misterknife/knife66/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/misterknife/knife66_iso/config.h b/keyboards/misterknife/knife66_iso/config.h index bbe55dcc48f..cb847450baa 100644 --- a/keyboards/misterknife/knife66_iso/config.h +++ b/keyboards/misterknife/knife66_iso/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#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_SLEEP -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - #define WS2812_PWM_DRIVER PWMD1 // default: PWMD1 #define WS2812_PWM_CHANNEL 2 // default: 2 #define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 diff --git a/keyboards/misterknife/knife66_iso/info.json b/keyboards/misterknife/knife66_iso/info.json index 18d66368b57..98fb591a40c 100644 --- a/keyboards/misterknife/knife66_iso/info.json +++ b/keyboards/misterknife/knife66_iso/info.json @@ -13,7 +13,23 @@ "driver": "pwm" }, "rgblight": { - "max_brightness": 160 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 160, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B2", "B1", "B0", "A7", "A6", "A5", "A4", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15"], diff --git a/keyboards/misterknife/knife66_iso/rules.mk b/keyboards/misterknife/knife66_iso/rules.mk index 0f15f10b208..0098dc473ac 100644 --- a/keyboards/misterknife/knife66_iso/rules.mk +++ b/keyboards/misterknife/knife66_iso/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/miuni32/config.h b/keyboards/miuni32/config.h index 76fa3df3f42..b9449c4714b 100644 --- a/keyboards/miuni32/config.h +++ b/keyboards/miuni32/config.h @@ -37,18 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define RGBLED_NUM 17 // Number of LEDs -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/miuni32/info.json b/keyboards/miuni32/info.json index 0c1c5d7c44e..f9c9b5b7275 100644 --- a/keyboards/miuni32/info.json +++ b/keyboards/miuni32/info.json @@ -8,6 +8,22 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "led_count": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/miuni32/keymaps/kifinnsson/keymap.c b/keyboards/miuni32/keymaps/kifinnsson/keymap.c index 3ce4e145757..51a0b6fefa1 100644 --- a/keyboards/miuni32/keymaps/kifinnsson/keymap.c +++ b/keyboards/miuni32/keymaps/kifinnsson/keymap.c @@ -74,12 +74,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - //planck like tri layer bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -112,37 +106,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} diff --git a/keyboards/mixi/config.h b/keyboards/mixi/config.h index ad57ad01d6d..b24301443d2 100644 --- a/keyboards/mixi/config.h +++ b/keyboards/mixi/config.h @@ -6,20 +6,5 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 5 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYER_BLINK diff --git a/keyboards/mixi/info.json b/keyboards/mixi/info.json index aa31b758e9a..44b1d0aad90 100644 --- a/keyboards/mixi/info.json +++ b/keyboards/mixi/info.json @@ -8,6 +8,24 @@ "pid": "0x4D49", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/mk65/config.h b/keyboards/mk65/config.h deleted file mode 100644 index 7fa60c79f83..00000000000 --- a/keyboards/mk65/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2022 DeskDaily - * - * This 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 TAP_CODE_DELAY 10 \ No newline at end of file diff --git a/keyboards/mk65/info.json b/keyboards/mk65/info.json index 0ad14764191..44a8e15f153 100644 --- a/keyboards/mk65/info.json +++ b/keyboards/mk65/info.json @@ -13,6 +13,9 @@ {"pin_a": "B1", "pin_b": "B2"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "matrix_pins": { diff --git a/keyboards/mkh_studio/bully/rules.mk b/keyboards/mkh_studio/bully/rules.mk index 10a3d3bfb41..84467251b04 100644 --- a/keyboards/mkh_studio/bully/rules.mk +++ b/keyboards/mkh_studio/bully/rules.mk @@ -1,2 +1 @@ DFU_SUFFIX_ARGS = -p FFFF -v FFFF # allow for APM32 MCU -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ml/gas75/info.json b/keyboards/ml/gas75/info.json index 990b45f1cec..9831c7beb60 100644 --- a/keyboards/ml/gas75/info.json +++ b/keyboards/ml/gas75/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D1", "D2", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "E6", "B0", "B1", "B2", "B3"], @@ -49,9 +49,7 @@ {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [5, 4], "x": 15, "y": 0, "w": 0.5}, {"matrix": [0, 14], "x": 15.5, "y": 0}, - {"matrix": [5, 3], "x": 16.5, "y": 0, "w": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1.25}, {"matrix": [1, 1], "x": 1, "y": 1.25}, diff --git a/keyboards/ml/gas75/keymaps/default/keymap.c b/keyboards/ml/gas75/keymaps/default/keymap.c index aa72a3c8531..7fe790e6015 100644 --- a/keyboards/ml/gas75/keymaps/default/keymap.c +++ b/keyboards/ml/gas75/keymaps/default/keymap.c @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, KC_MUTE, _______, + 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_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, @@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_FN] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -158,25 +158,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (layer_state_is(_BASE)) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (layer_state_is(_FN)) { - if (clockwise) { - rgb_matrix_step(); - } else { - rgb_matrix_step_reverse(); - } - } - } - return true; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, +}; #endif bool rgb_matrix_indicators_user(void) { diff --git a/keyboards/ml/gas75/keymaps/via/keymap.c b/keyboards/ml/gas75/keymaps/via/keymap.c index 615e36557a8..a533571bebe 100644 --- a/keyboards/ml/gas75/keymaps/via/keymap.c +++ b/keyboards/ml/gas75/keymaps/via/keymap.c @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLD, KC_MUTE, KC_VOLU, + 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_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, @@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_FN] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -158,45 +158,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -#ifdef ENCODER_ENABLE -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = {{3, 5}}; -static keypos_t encoder_ccw[NUM_ENCODERS] = {{4, 5}}; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -void matrix_scan_user(void) { - encoder_action_unregister(); -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return false; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, +}; #endif bool rgb_matrix_indicators_user(void) { diff --git a/keyboards/ml/gas75/keymaps/via/rules.mk b/keyboards/ml/gas75/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/ml/gas75/keymaps/via/rules.mk +++ b/keyboards/ml/gas75/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mlego/m48/rev1/config.h b/keyboards/mlego/m48/rev1/config.h index 303b7ae5b54..ed9619f3e54 100644 --- a/keyboards/mlego/m48/rev1/config.h +++ b/keyboards/mlego/m48/rev1/config.h @@ -15,19 +15,4 @@ */ #pragma once -#ifdef RGBLIGHT_ENABLE #define RGBLIGHT_LAYERS - -#define RGBLED_NUM 20 -#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 - -#endif diff --git a/keyboards/mlego/m48/rev1/info.json b/keyboards/mlego/m48/rev1/info.json index 4ccf9ede92b..a1f42260a24 100644 --- a/keyboards/mlego/m48/rev1/info.json +++ b/keyboards/mlego/m48/rev1/info.json @@ -18,6 +18,21 @@ "num_lock": "B12", "scroll_lock": "B13" }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mlego/m60/rev1/config.h b/keyboards/mlego/m60/rev1/config.h index dc6c4c225da..ed9619f3e54 100644 --- a/keyboards/mlego/m60/rev1/config.h +++ b/keyboards/mlego/m60/rev1/config.h @@ -15,19 +15,4 @@ */ #pragma once -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_LAYERS - -#define RGBLED_NUM 20 -#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 -#endif diff --git a/keyboards/mlego/m60/rev1/info.json b/keyboards/mlego/m60/rev1/info.json index bbe9f861129..293041db82f 100644 --- a/keyboards/mlego/m60/rev1/info.json +++ b/keyboards/mlego/m60/rev1/info.json @@ -18,6 +18,21 @@ "num_lock": "B12", "scroll_lock": "B13" }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mlego/m60_split/rev1/config.h b/keyboards/mlego/m60_split/rev1/config.h index f6f86beed1c..b351e66d2c4 100644 --- a/keyboards/mlego/m60_split/rev1/config.h +++ b/keyboards/mlego/m60_split/rev1/config.h @@ -23,24 +23,5 @@ #define SERIAL_USART_TX_PIN B6 #define SERIAL_USART_SPEED 921600 -#ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_SPLIT #define RGBLIGHT_LAYERS - #define RGBLIGHT_DEFAULT_HUE 213 - -#define RGBLED_NUM 16 -#define RGBLED_SPLIT \ - { 8, 8 } - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/mlego/m60_split/rev1/info.json b/keyboards/mlego/m60_split/rev1/info.json index 6fe572fcf1a..3d66633ac96 100644 --- a/keyboards/mlego/m60_split/rev1/info.json +++ b/keyboards/mlego/m60_split/rev1/info.json @@ -22,7 +22,21 @@ "pin": "B15" }, "rgblight": { - "max_brightness": 128 + "led_count": 16, + "max_brightness": 128, + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "split": { "bootmagic": { diff --git a/keyboards/mlego/m60_split/rev2/config.h b/keyboards/mlego/m60_split/rev2/config.h index cfcb26edc10..bf60a6966c0 100644 --- a/keyboards/mlego/m60_split/rev2/config.h +++ b/keyboards/mlego/m60_split/rev2/config.h @@ -24,21 +24,4 @@ #define SERIAL_USART_SPEED 921600 - -#ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_SPLIT #define RGBLIGHT_LAYERS -#define RGBLED_NUM 16 -#define RGBLED_SPLIT \ - { 8, 8 } -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/mlego/m60_split/rev2/info.json b/keyboards/mlego/m60_split/rev2/info.json index 40718aa6479..1ba28e0a52c 100644 --- a/keyboards/mlego/m60_split/rev2/info.json +++ b/keyboards/mlego/m60_split/rev2/info.json @@ -18,6 +18,22 @@ "num_lock": "B12", "scroll_lock": "B13" }, + "rgblight": { + "led_count": 16, + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mlego/m65/keymaps/uk/keymap.c b/keyboards/mlego/m65/keymaps/uk/keymap.c index 8a711234b52..ee488724331 100644 --- a/keyboards/mlego/m65/keymaps/uk/keymap.c +++ b/keyboards/mlego/m65/keymaps/uk/keymap.c @@ -190,9 +190,9 @@ MS - mouse directions */ [_LWR] = LAYOUT_ortho_5x13( KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL, UK_EQL, - KC_BTN3,XP(lq,lQ),XP(lw,lW),XP(le,lE),XP(lr,lR),XP(lt,lT),XP(ly,lY),XP(lu,lU),XP(li,lI), XP(lo,lO), XP(lp,lP), _______, _______, - KC_BTN2,XP(la,lA),XP(ls,lS),XP(ld,lD),XP(lf,lF),XP(lg,lG),XP(lh,lH),XP(lj,lJ),XP(lk,lK), XP(ll,lL),XP(ll1,lL1), XP(lk1,lK1), _______, - _______, KC_BTN1,XP(lz,lZ),XP(lx,lX),XP(lc,lC),XP(lv,lV),XP(lb,lB),XP(ln,lN),XP(lm,lM),XP(lc1,lC1),XP(lp1,lP1), KC_MS_U, XP(lq1,lQ1), + KC_BTN3,UP(lq,lQ),UP(lw,lW),UP(le,lE),UP(lr,lR),UP(lt,lT),UP(ly,lY),UP(lu,lU),UP(li,lI), UP(lo,lO), UP(lp,lP), _______, _______, + KC_BTN2,UP(la,lA),UP(ls,lS),UP(ld,lD),UP(lf,lF),UP(lg,lG),UP(lh,lH),UP(lj,lJ),UP(lk,lK), UP(ll,lL),UP(ll1,lL1), UP(lk1,lK1), _______, + _______, KC_BTN1,UP(lz,lZ),UP(lx,lX),UP(lc,lC),UP(lv,lV),UP(lb,lB),UP(ln,lN),UP(lm,lM),UP(lc1,lC1),UP(lp1,lP1), KC_MS_U, UP(lq1,lQ1), _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R), /* @@ -224,9 +224,9 @@ raise layer shifted */ [_RSE] = LAYOUT_ortho_5x13( 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 , - _______,XP(ra1,rA1), _______, _______, _______,XP(rt,rT), _______, _______,XP(ri,rI), _______, _______, _______, _______ , - KC_CAPS, XP(ra,rA), XP(rs,rS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, KC_F20 , _______, _______,XP(rc,rC), _______, _______, _______, _______, _______, _______, KC_WH_U, _______ , + _______,UP(ra1,rA1), _______, _______, _______,UP(rt,rT), _______, _______,UP(ri,rI), _______, _______, _______, _______ , + KC_CAPS, UP(ra,rA), UP(rs,rS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, KC_F20 , _______, _______,UP(rc,rC), _______, _______, _______, _______, _______, _______, KC_WH_U, _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R), /* adj layer diff --git a/keyboards/mlego/m65/rev1/config.h b/keyboards/mlego/m65/rev1/config.h index 2ed846b1708..847dd118233 100644 --- a/keyboards/mlego/m65/rev1/config.h +++ b/keyboards/mlego/m65/rev1/config.h @@ -18,18 +18,3 @@ along with this program. If not, see . #pragma once #define RGBLIGHT_LAYERS - -#undef RGBLED_NUM -#define RGBLED_NUM 20 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/mlego/m65/rev1/info.json b/keyboards/mlego/m65/rev1/info.json index 3c939ef4c28..960b9325c8c 100644 --- a/keyboards/mlego/m65/rev1/info.json +++ b/keyboards/mlego/m65/rev1/info.json @@ -18,6 +18,22 @@ "num_lock": "B12", "scroll_lock": "B13" }, + "rgblight": { + "saturation_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mlego/m65/rev2/config.h b/keyboards/mlego/m65/rev2/config.h index 791b73e2f6f..666d296ede5 100644 --- a/keyboards/mlego/m65/rev2/config.h +++ b/keyboards/mlego/m65/rev2/config.h @@ -19,21 +19,6 @@ along with this program. If not, see . #define RGBLIGHT_LAYERS -#undef RGBLED_NUM -#define RGBLED_NUM 20 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 - #define EEPROM_PAGE_SIZE #define FEE_PAGE_SIZE 0x800 #define FEE_PAGE_COUNT 4 diff --git a/keyboards/mlego/m65/rev2/info.json b/keyboards/mlego/m65/rev2/info.json index 64df0a2ba6f..8d822ae4e74 100644 --- a/keyboards/mlego/m65/rev2/info.json +++ b/keyboards/mlego/m65/rev2/info.json @@ -18,6 +18,22 @@ "num_lock": "B12", "scroll_lock": "B13" }, + "rgblight": { + "saturation_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mlego/m65/rev3/config.h b/keyboards/mlego/m65/rev3/config.h index 81f02bc4111..847dd118233 100644 --- a/keyboards/mlego/m65/rev3/config.h +++ b/keyboards/mlego/m65/rev3/config.h @@ -17,21 +17,4 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_LAYERS -#undef RGBLED_NUM -#define RGBLED_NUM 20 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#endif diff --git a/keyboards/mlego/m65/rev3/info.json b/keyboards/mlego/m65/rev3/info.json index b72b7065877..4f9b8665657 100644 --- a/keyboards/mlego/m65/rev3/info.json +++ b/keyboards/mlego/m65/rev3/info.json @@ -18,6 +18,22 @@ "num_lock": "B12", "scroll_lock": "B13" }, + "rgblight": { + "saturation_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mlego/m65/rev4/config.h b/keyboards/mlego/m65/rev4/config.h index 942f3606883..d0475aabafe 100644 --- a/keyboards/mlego/m65/rev4/config.h +++ b/keyboards/mlego/m65/rev4/config.h @@ -17,25 +17,7 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_LAYERS -#undef RGBLED_NUM -#define RGBLED_NUM 20 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 - -#endif #ifdef OLED_ENABLE # define OLED_DISPLAY_128X32 diff --git a/keyboards/mlego/m65/rev4/info.json b/keyboards/mlego/m65/rev4/info.json index d671845e626..a97c734ff8b 100644 --- a/keyboards/mlego/m65/rev4/info.json +++ b/keyboards/mlego/m65/rev4/info.json @@ -18,6 +18,22 @@ "num_lock": "B12", "scroll_lock": "B13" }, + "rgblight": { + "saturation_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/mlego/m65/rev4/rules.mk b/keyboards/mlego/m65/rev4/rules.mk index bf9405e1d19..3e44c80fe0a 100644 --- a/keyboards/mlego/m65/rev4/rules.mk +++ b/keyboards/mlego/m65/rev4/rules.mk @@ -12,5 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable encoder OLED_ENABLE = yes # Enable OLED -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C WPM_ENABLE = yes # Enable WPM Counter diff --git a/keyboards/mmkzoo65/config.h b/keyboards/mmkzoo65/config.h deleted file mode 100644 index 99f9e80b3ed..00000000000 --- a/keyboards/mmkzoo65/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2021 TW59420 - * - * This 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 - -/* 将USB 轮询速率更改为 1000hz 并为精英游戏每次扫描使用更大的密钥*/ -#define USB_POLLING_INTERVAL_MS 2 diff --git a/keyboards/mmkzoo65/info.json b/keyboards/mmkzoo65/info.json index 558d1fa0dc7..504e7b10612 100644 --- a/keyboards/mmkzoo65/info.json +++ b/keyboards/mmkzoo65/info.json @@ -7,7 +7,8 @@ "vid": "0x7BA1", "pid": "0x6505", "device_version": "0.0.1", - "force_nkro": true + "force_nkro": true, + "polling_interval": 2 }, "matrix_pins": { "cols": ["B1", "F0", "F1", "F4", "F5", "F6", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/mnk1800s/rules.mk b/keyboards/mnk1800s/rules.mk old mode 100755 new mode 100644 index 7000bb65710..7c0709f41e6 --- a/keyboards/mnk1800s/rules.mk +++ b/keyboards/mnk1800s/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/mnk50/rules.mk b/keyboards/mnk50/rules.mk old mode 100755 new mode 100644 index 7000bb65710..7c0709f41e6 --- a/keyboards/mnk50/rules.mk +++ b/keyboards/mnk50/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/mnk75/rules.mk b/keyboards/mnk75/rules.mk old mode 100755 new mode 100644 index ae3dafb3deb..50f3a3d1511 --- a/keyboards/mnk75/rules.mk +++ b/keyboards/mnk75/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/mntre/config.h b/keyboards/mntre/config.h index 55a7a8457e4..c12ca236724 100644 --- a/keyboards/mntre/config.h +++ b/keyboards/mntre/config.h @@ -3,7 +3,7 @@ #pragma once -#define BACKLIGHT_CUSTOM_RESOLUTION 0x400 +#define BACKLIGHT_RESOLUTION 0x400 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/mode/m256wh/config.h b/keyboards/mode/m256wh/config.h new file mode 100644 index 00000000000..c976b6bcc5b --- /dev/null +++ b/keyboards/mode/m256wh/config.h @@ -0,0 +1,27 @@ +/* +Copyright 2022 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +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_PWM_COMPLEMENTARY_OUTPUT +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 + +#define EECONFIG_KB_DATA_SIZE (1) diff --git a/keyboards/mode/m256wh/halconf.h b/keyboards/mode/m256wh/halconf.h new file mode 100644 index 00000000000..485d48ef306 --- /dev/null +++ b/keyboards/mode/m256wh/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/mode/m256wh/info.json b/keyboards/mode/m256wh/info.json new file mode 100644 index 00000000000..3e2d0eb2764 --- /dev/null +++ b/keyboards/mode/m256wh/info.json @@ -0,0 +1,116 @@ +{ + "manufacturer": "Mode Designs", + "keyboard_name": "M256W-H", + "maintainer": "Gondolindrim", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "extrakey": true, + "lto": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["C9", "B1", "B0", "A10", "A15", "C10", "C11", "D2", "B3", "B4", "B8", "B9", "C0", "C1", "C2", "C4"], + "rows": ["C6", "C7", "C8", "C12", "A7", "C5"] + }, + "processor": "STM32F401", + "rgblight": { + "led_count": 30, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "url": "https://modedesigns.com/pages/envoy", + "usb": { + "device_version": "0.0.1", + "pid": "0x5754", + "vid": "0x00DE" + }, + "ws2812": { + "pin": "B15" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Del", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [5, 15], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/mode/m256wh/keymaps/default/keymap.c b/keyboards/mode/m256wh/keymaps/default/keymap.c new file mode 100644 index 00000000000..fcf35032304 --- /dev/null +++ b/keyboards/mode/m256wh/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * 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_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_DEL , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_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_LEFT, KC_DOWN, KC_RGHT +), +[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_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_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_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/mode/m256wh/keymaps/via/keymap.c b/keyboards/mode/m256wh/keymaps/via/keymap.c new file mode 100644 index 00000000000..fcf35032304 --- /dev/null +++ b/keyboards/mode/m256wh/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * 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_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_DEL , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_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_LEFT, KC_DOWN, KC_RGHT +), +[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_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_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_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/mode/m256wh/keymaps/via/rules.mk b/keyboards/mode/m256wh/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/mode/m256wh/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mode/m256wh/m256wh.c b/keyboards/mode/m256wh/m256wh.c new file mode 100644 index 00000000000..cec427f329c --- /dev/null +++ b/keyboards/mode/m256wh/m256wh.c @@ -0,0 +1,154 @@ +/* Copyright 2022 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * 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 VIA_ENABLE +bool is_second_rgb_row_active; +enum via_secondrow_enable { + id_is_second_rgb_row_active = 0 +}; + +// Sets the second RGB row on or off; done by setting effect range. +void set_second_rgb_row(bool is_active) { + rgblight_disable_noeeprom(); + switch (is_active) + { + case true: + { + rgblight_set_effect_range(0,30); + break; + } + case false: + { + rgblight_set_effect_range(0,15); + break; + } + } + rgblight_enable_noeeprom(); +} + +// At the keyboard start, retrieves PMEM stored configs +void keyboard_post_init_kb(void) { + rgblight_disable_noeeprom(); + wait_ms(20); + eeconfig_read_kb_datablock(&is_second_rgb_row_active); + set_second_rgb_row(is_second_rgb_row_active); + rgblight_reload_from_eeprom(); + rgblight_set(); +} + +void eeconfig_init_kb(void) { // EEPROM is getting reset! + // rgblight_disable(); // Enable RGB by default + // Define the defualt value and write it to EEPROM + is_second_rgb_row_active = true; + set_second_rgb_row(is_second_rgb_row_active); + eeconfig_update_kb_datablock(&is_second_rgb_row_active); + + // Disable rgblight by default on EEPROM initialization + rgblight_disable(); + + // Run user code if any + eeconfig_init_user(); +} + +void secondrow_config_set_value( uint8_t *data ) +{ + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch ( *value_id ) + { + case id_is_second_rgb_row_active: + { + is_second_rgb_row_active = (bool) *value_data; + break; + } + default: + { + is_second_rgb_row_active = true; + } + } + set_second_rgb_row(is_second_rgb_row_active); +} + +void secondrow_config_get_value( uint8_t *data ) +{ + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch ( *value_id ) + { + case id_is_second_rgb_row_active: + { + *value_data = is_second_rgb_row_active; + break; + } + default: + { + *value_data = false; + } + } +} + +void secondrow_config_save(void) +{ + + eeconfig_update_kb_datablock(&is_second_rgb_row_active); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + // data = [ command_id, channel_id, value_id, value_data ] + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if ( *channel_id == id_custom_channel ) { + switch ( *command_id ) + { + case id_custom_set_value: + { + secondrow_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: + { + secondrow_config_get_value(value_id_and_data); + break; + } + case id_custom_save: + { + secondrow_config_save(); + break; + } + default: + { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + + // Return the unhandled state + *command_id = id_unhandled; + + // DO NOT call raw_hid_send(data,length) here, let caller do this +} +#endif diff --git a/keyboards/mode/m256wh/mcuconf.h b/keyboards/mode/m256wh/mcuconf.h new file mode 100644 index 00000000000..3d1d05c307c --- /dev/null +++ b/keyboards/mode/m256wh/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/mode/m256wh/readme.md b/keyboards/mode/m256wh/readme.md new file mode 100644 index 00000000000..8b253f427e1 --- /dev/null +++ b/keyboards/mode/m256wh/readme.md @@ -0,0 +1,25 @@ +# Mode M256-WH PCB QMK Firmware + +![m256wh](https://imgur.com/97KRZCrh.jpg) + +The M256-WH is the hotswap version PCB support for the Mode Envoy. + +* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) +* Hardware Supported: proprietary PCBs using the STM32F401 microcontroller; +* Hardware Availability: as of april 18, these PCBs are on the verge of being sold with the first kits of the Mode Envoy. + +## How to flash + +In order to flash this PCB, first build the default layout (after setting up your build environment): + + make mode/m256wh: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**: press the button on the back of the PCB for at least five seconds +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (escape key, layer 1 of the default keymap) diff --git a/keyboards/mode/m256wh/rules.mk b/keyboards/mode/m256wh/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/mode/m256ws/config.h b/keyboards/mode/m256ws/config.h new file mode 100644 index 00000000000..c976b6bcc5b --- /dev/null +++ b/keyboards/mode/m256ws/config.h @@ -0,0 +1,27 @@ +/* +Copyright 2022 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +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_PWM_COMPLEMENTARY_OUTPUT +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 + +#define EECONFIG_KB_DATA_SIZE (1) diff --git a/keyboards/mode/m256ws/halconf.h b/keyboards/mode/m256ws/halconf.h new file mode 100644 index 00000000000..485d48ef306 --- /dev/null +++ b/keyboards/mode/m256ws/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/mode/m256ws/info.json b/keyboards/mode/m256ws/info.json new file mode 100644 index 00000000000..8f837e316c2 --- /dev/null +++ b/keyboards/mode/m256ws/info.json @@ -0,0 +1,122 @@ +{ + "manufacturer": "Mode Designs", + "keyboard_name": "M256W-S", + "maintainer": "Gondolindrim", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "lto": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["A4", "C6", "B8", "C7", "C8", "C9", "A8", "A10", "B4", "B3", "D2", "C12", "C11", "A15", "C10"], + "rows": ["B10", "B12", "B9", "C0", "C1", "A3"] + }, + "processor": "STM32F401", + "rgblight": { + "led_count": 30, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x5753", + "vid": "0x00DE" + }, + "ws2812": { + "pin": "B15" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "#~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75} + ] + } + } +} diff --git a/keyboards/mode/m256ws/keymaps/default/keymap.c b/keyboards/mode/m256ws/keymaps/default/keymap.c new file mode 100644 index 00000000000..03b49aac222 --- /dev/null +++ b/keyboards/mode/m256ws/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * 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_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_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_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, KC_CAPS +), +[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, + KC_TRNS, KC_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_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS +) +}; diff --git a/keyboards/mode/m256ws/keymaps/via/keymap.c b/keyboards/mode/m256ws/keymaps/via/keymap.c new file mode 100644 index 00000000000..03b49aac222 --- /dev/null +++ b/keyboards/mode/m256ws/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * 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_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_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_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, KC_CAPS +), +[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, + KC_TRNS, KC_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_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS +) +}; diff --git a/keyboards/mode/m256ws/keymaps/via/rules.mk b/keyboards/mode/m256ws/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/mode/m256ws/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mode/m256ws/m256ws.c b/keyboards/mode/m256ws/m256ws.c new file mode 100644 index 00000000000..5603de7b01b --- /dev/null +++ b/keyboards/mode/m256ws/m256ws.c @@ -0,0 +1,153 @@ +/* Copyright 2022 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * 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 VIA_ENABLE +bool is_second_rgb_row_active; +enum via_secondrow_enable { + id_is_second_rgb_row_active = 0 +}; + +// Sets the second RGB row on or off; done by setting effect range. +void set_second_rgb_row(bool is_active) { + rgblight_disable_noeeprom(); + switch (is_active) + { + case true: + { + rgblight_set_effect_range(0,30); + break; + } + case false: + { + rgblight_set_effect_range(0,15); + break; + } + } + rgblight_enable_noeeprom(); +} + +// At the keyboard start, retrieves PMEM stored configs +void keyboard_post_init_kb(void) { + rgblight_disable_noeeprom(); + wait_ms(20); + eeconfig_read_kb_datablock(&is_second_rgb_row_active); + set_second_rgb_row(is_second_rgb_row_active); + rgblight_reload_from_eeprom(); + rgblight_set(); +} + +void eeconfig_init_kb(void) { // EEPROM is getting reset! + // rgblight_disable(); // Enable RGB by default + // Define the defualt value and write it to EEPROM + is_second_rgb_row_active = true; + set_second_rgb_row(is_second_rgb_row_active); + eeconfig_update_kb_datablock(&is_second_rgb_row_active); + + // Disable rgblight by default on EEPROM initialization + rgblight_disable(); + + // Run user code, if any + eeconfig_init_user(); +} + +void secondrow_config_set_value( uint8_t *data ) +{ + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch ( *value_id ) + { + case id_is_second_rgb_row_active: + { + is_second_rgb_row_active = (bool) *value_data; + break; + } + default: + { + is_second_rgb_row_active = true; + } + } + set_second_rgb_row(is_second_rgb_row_active); +} + +void secondrow_config_get_value( uint8_t *data ) +{ + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch ( *value_id ) + { + case id_is_second_rgb_row_active: + { + *value_data = is_second_rgb_row_active; + break; + } + default: + { + *value_data = false; + } + } +} + +void secondrow_config_save(void) +{ + + eeconfig_update_kb_datablock(&is_second_rgb_row_active); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + // data = [ command_id, channel_id, value_id, value_data ] + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if ( *channel_id == id_custom_channel ) { + switch ( *command_id ) + { + case id_custom_set_value: + { + secondrow_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: + { + secondrow_config_get_value(value_id_and_data); + break; + } + case id_custom_save: + { + secondrow_config_save(); + break; + } + default: + { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + + // Return the unhandled state + *command_id = id_unhandled; + +} +#endif // VIA ENABLE diff --git a/keyboards/mode/m256ws/mcuconf.h b/keyboards/mode/m256ws/mcuconf.h new file mode 100644 index 00000000000..3d1d05c307c --- /dev/null +++ b/keyboards/mode/m256ws/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/mode/m256ws/readme.md b/keyboards/mode/m256ws/readme.md new file mode 100644 index 00000000000..dee23c9a8ca --- /dev/null +++ b/keyboards/mode/m256ws/readme.md @@ -0,0 +1,25 @@ +# Mode M256-WS PCB QMK Firmware + +![m256wh](https://imgur.com/97KRZCrh.jpg) + +The M256-WS is the hotswap version PCB support for the Mode Envoy. + +* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) +* Hardware Supported: proprietary PCBs using the STM32F401 microcontroller +* Hardware Availability: as of april 18, these PCBs are on the verge of being sold with the first kits of the Mode Envoy. + +## How to flash + +In order to flash this PCB, first build the default layout (after setting up your build environment): + + make mode/m256ws: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**: press the button on the back of the PCB for at least five seconds +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (escape key, layer 1 of the default keymap) diff --git a/keyboards/mode/m256ws/rules.mk b/keyboards/mode/m256ws/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/mode/m65ha_alpha/m65ha_alpha.c b/keyboards/mode/m65ha_alpha/m65ha_alpha.c index 60a9a89927e..afb093058f7 100644 --- a/keyboards/mode/m65ha_alpha/m65ha_alpha.c +++ b/keyboards/mode/m65ha_alpha/m65ha_alpha.c @@ -21,7 +21,6 @@ void board_init(void) { setPinInput(B10); } -#define LED_PIN_ON_STATE 1 void led_init_ports(void) { /** If the OPENDRAIN_INDICATORS option is not defined in config.h, the indicator diff --git a/keyboards/mode/m65ha_alpha/rules.mk b/keyboards/mode/m65ha_alpha/rules.mk index 71de5b0a9fd..da4b493847f 100644 --- a/keyboards/mode/m65ha_alpha/rules.mk +++ b/keyboards/mode/m65ha_alpha/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/mode/m65hi_alpha/m65hi_alpha.c b/keyboards/mode/m65hi_alpha/m65hi_alpha.c index 60a9a89927e..afb093058f7 100644 --- a/keyboards/mode/m65hi_alpha/m65hi_alpha.c +++ b/keyboards/mode/m65hi_alpha/m65hi_alpha.c @@ -21,7 +21,6 @@ void board_init(void) { setPinInput(B10); } -#define LED_PIN_ON_STATE 1 void led_init_ports(void) { /** If the OPENDRAIN_INDICATORS option is not defined in config.h, the indicator diff --git a/keyboards/mode/m65hi_alpha/rules.mk b/keyboards/mode/m65hi_alpha/rules.mk index 71de5b0a9fd..da4b493847f 100644 --- a/keyboards/mode/m65hi_alpha/rules.mk +++ b/keyboards/mode/m65hi_alpha/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/mode/m65s/config.h b/keyboards/mode/m65s/config.h index ed3faacae0c..80d31d8d756 100644 --- a/keyboards/mode/m65s/config.h +++ b/keyboards/mode/m65s/config.h @@ -45,5 +45,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define TAP_CODE_DELAY 50 diff --git a/keyboards/mode/m65s/info.json b/keyboards/mode/m65s/info.json index 06e49f7667a..0a0c93f3f89 100644 --- a/keyboards/mode/m65s/info.json +++ b/keyboards/mode/m65s/info.json @@ -8,6 +8,9 @@ "pid": "0x6583", "device_version": "0.0.1" }, + "qmk": { + "tap_keycode_delay": 50 + }, "matrix_pins": { "cols": ["C7", "A8", "A10", "A4", "A5", "A6", "C10", "A7", "C4", "C5", "A15", "B0", "B1", "B12", "B10", "B13"], "rows": ["A3", "B14", "B15", "C9", "C6", "C11"] diff --git a/keyboards/mode/m65s/m65s.c b/keyboards/mode/m65s/m65s.c index 70aa52c4614..954644310be 100644 --- a/keyboards/mode/m65s/m65s.c +++ b/keyboards/mode/m65s/m65s.c @@ -21,7 +21,6 @@ void board_init(void) { setPinInput(B10); } -#define LED_PIN_ON_STATE 1 void led_init_ports(void) { /** If the OPENDRAIN_INDICATORS option is not defined in config.h, the indicator diff --git a/keyboards/mode/m65s/rules.mk b/keyboards/mode/m65s/rules.mk index 91bc99f944d..5dd8d547ab7 100644 --- a/keyboards/mode/m65s/rules.mk +++ b/keyboards/mode/m65s/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/mode/m75h/config.h b/keyboards/mode/m75h/config.h index 640cc43a5ac..c6d7d037ec8 100644 --- a/keyboards/mode/m75h/config.h +++ b/keyboards/mode/m75h/config.h @@ -17,33 +17,5 @@ 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 EEPROM_I2C_24LC256 -//#define I2C1_CLOCK_SPEED 400000 -//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 - -#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE - -/* - * 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 TAP_CODE_DELAY 50 - -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 16383 // Overriding to use more EEPROM +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE 4096 diff --git a/keyboards/mode/m75h/halconf.h b/keyboards/mode/m75h/halconf.h index 6c53f594c76..d4831df0d73 100644 --- a/keyboards/mode/m75h/halconf.h +++ b/keyboards/mode/m75h/halconf.h @@ -21,6 +21,4 @@ #pragma once -#define HAL_USE_I2C TRUE - #include_next diff --git a/keyboards/mode/m75h/info.json b/keyboards/mode/m75h/info.json index 1ebbb8f29fa..f57aac383ef 100644 --- a/keyboards/mode/m75h/info.json +++ b/keyboards/mode/m75h/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "75H", + "keyboard_name": "M75H", "manufacturer": "Mode", "url": "", "maintainer": "Gondolindrim", diff --git a/keyboards/mode/m75h/m75h.c b/keyboards/mode/m75h/m75h.c deleted file mode 100644 index 2f2bfbfa4bf..00000000000 --- a/keyboards/mode/m75h/m75h.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright 2020 Álvaro "Gondolindrim" Volpato - -This 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" - -void board_init(void) { - setPinInput(B10); -} diff --git a/keyboards/mode/m75h/rules.mk b/keyboards/mode/m75h/rules.mk index ee752a964b3..328eece1f91 100644 --- a/keyboards/mode/m75h/rules.mk +++ b/keyboards/mode/m75h/rules.mk @@ -1,17 +1,14 @@ # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +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 -EEPROM_DRIVER = i2c +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h index b8307f43960..7fdb18d26ab 100644 --- a/keyboards/mode/m75s/config.h +++ b/keyboards/mode/m75s/config.h @@ -17,15 +17,9 @@ 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 BACKLIGHT_DEFAULT_LEVEL 20 #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 2 #define WEAR_LEVELING_LOGICAL_SIZE 2048 #define WEAR_LEVELING_BACKING_SIZE 4096 diff --git a/keyboards/mode/m75s/rules.mk b/keyboards/mode/m75s/rules.mk index bd7d6a84c5f..760b9cb9e61 100644 --- a/keyboards/mode/m75s/rules.mk +++ b/keyboards/mode/m75s/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/mode/m80v1/m80h/rules.mk b/keyboards/mode/m80v1/m80h/rules.mk index 8c9d2aea969..5742215e0a0 100644 --- a/keyboards/mode/m80v1/m80h/rules.mk +++ b/keyboards/mode/m80v1/m80h/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/mode/m80v1/m80s/rules.mk b/keyboards/mode/m80v1/m80s/rules.mk index 8c9d2aea969..5742215e0a0 100644 --- a/keyboards/mode/m80v1/m80s/rules.mk +++ b/keyboards/mode/m80v1/m80s/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/mode/m80v2/m80v2h/rules.mk b/keyboards/mode/m80v2/m80v2h/rules.mk index 113eb5ade88..475d3a239cf 100644 --- a/keyboards/mode/m80v2/m80v2h/rules.mk +++ b/keyboards/mode/m80v2/m80v2h/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/mode/m80v2/m80v2s/rules.mk b/keyboards/mode/m80v2/m80v2s/rules.mk index 113eb5ade88..475d3a239cf 100644 --- a/keyboards/mode/m80v2/m80v2s/rules.mk +++ b/keyboards/mode/m80v2/m80v2s/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/mokey/mokey12x2/info.json b/keyboards/mokey/mokey12x2/info.json new file mode 100644 index 00000000000..6f22429e72c --- /dev/null +++ b/keyboards/mokey/mokey12x2/info.json @@ -0,0 +1,47 @@ +{ + "keyboard_name": "Mokey12x2", + "manufacturer": "Mokey", + "url": "", + "maintainer": "Mokey", + "development_board": "bluepill", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["A6", "A5", "A4", "A3", "B9"], + "rows": ["A2", "A1", "A0", "A7"] + }, + "usb": { + "device_version": "0.0.1", + "vid": "0x6653", + "pid": "0x012A" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0,0], "x":0.25, "y":2.75}, + {"matrix": [0,1], "x":1.25, "y":2.75}, + {"matrix": [0,2], "x":2.25, "y":2.75}, + {"matrix": [0,3], "x":3.25, "y":2.75}, + {"matrix": [0,4], "x":0.25, "y":0, "w":1.5, "h":1.5}, + {"matrix": [1,0], "x":0.25, "y":3.75}, + {"matrix": [1,1], "x":1.25, "y":3.75}, + {"matrix": [1,2], "x":2.25, "y":3.75}, + {"matrix": [1,3], "x":3.25, "y":3.75}, + {"matrix": [1,4], "x":2.75, "y":0, "w":1.5, "h":1.5}, + {"matrix": [2,0], "x":0.25, "y":4.75}, + {"matrix": [2,1], "x":1.25, "y":4.75}, + {"matrix": [2,2], "x":2.25, "y":4.75}, + {"matrix": [2,3], "x":3.25, "y":4.75}, + {"matrix": [3,0], "x":0, "y":1.5}, + {"matrix": [3,1], "x":1, "y":1.5}, + {"matrix": [3,2], "x":2.5, "y":1.5}, + {"matrix": [3,3], "x":3.5, "y":1.5} + ] + } + } +} diff --git a/keyboards/mokey/mokey12x2/keymaps/default/keymap.c b/keyboards/mokey/mokey12x2/keymaps/default/keymap.c new file mode 100644 index 00000000000..74fbf1e9479 --- /dev/null +++ b/keyboards/mokey/mokey12x2/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +/* + * Copyright 2023 Mokey12×2 + * + * This 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_A, KC_B, KC_C, KC_D, KC_1, + KC_E, KC_F, KC_G, KC_H, KC_2, + KC_I, KC_J, KC_K, KC_L, + KC_I, KC_J, KC_K, KC_L) +}; diff --git a/keyboards/mokey/mokey12x2/keymaps/via/keymap.c b/keyboards/mokey/mokey12x2/keymaps/via/keymap.c new file mode 100644 index 00000000000..74fbf1e9479 --- /dev/null +++ b/keyboards/mokey/mokey12x2/keymaps/via/keymap.c @@ -0,0 +1,26 @@ +/* + * Copyright 2023 Mokey12×2 + * + * This 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_A, KC_B, KC_C, KC_D, KC_1, + KC_E, KC_F, KC_G, KC_H, KC_2, + KC_I, KC_J, KC_K, KC_L, + KC_I, KC_J, KC_K, KC_L) +}; diff --git a/keyboards/mokey/mokey12x2/keymaps/via/rules.mk b/keyboards/mokey/mokey12x2/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/mokey/mokey12x2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mokey/mokey12x2/readme.md b/keyboards/mokey/mokey12x2/readme.md new file mode 100644 index 00000000000..75a87062c98 --- /dev/null +++ b/keyboards/mokey/mokey12x2/readme.md @@ -0,0 +1,23 @@ +# mokey12x2 + +A Blue Pill STM32F103C8T6-based keyboard. + +* Keyboard Maintainer: [rhmokey](https://github.com/rhmokey) +* Hardware Supported: [rhmokey](https://github.com/rhmokey) + +Make example for this keyboard (after setting up your build environment): + + make mokey/mokey12x2:default + +Flashing example for this keyboard: + + make mokey/mokey12x2: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: + +* **Physical reset button**: Briefly press the button: [boot] first, then press button: [reset] on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/mokey/mokey12x2/rules.mk b/keyboards/mokey/mokey12x2/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/mokey/mokey12x2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/momoka_ergo/config.h b/keyboards/momoka_ergo/config.h index 014b1f93a5f..54d60e9963f 100644 --- a/keyboards/momoka_ergo/config.h +++ b/keyboards/momoka_ergo/config.h @@ -19,18 +19,6 @@ along with this program. If not, see . #define SELECT_SOFT_SERIAL_SPEED 5 -#define RGBLED_NUM 22 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_SPLIT { 11, 11 } -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/momoka_ergo/info.json b/keyboards/momoka_ergo/info.json index fa116fd1c0c..d45bb124b06 100644 --- a/keyboards/momoka_ergo/info.json +++ b/keyboards/momoka_ergo/info.json @@ -16,6 +16,20 @@ "split": { "soft_serial_pin": "D1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "split_count": [11, 11], + "animations": { + "breathing": true, + "rainbow_swirl": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/momokai/tap_duo/info.json b/keyboards/momokai/tap_duo/info.json index 96f600b3aae..262576b31a3 100644 --- a/keyboards/momokai/tap_duo/info.json +++ b/keyboards/momokai/tap_duo/info.json @@ -12,7 +12,7 @@ "pin": "F0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["E6", "B2", "D1", "D2", "D3"], diff --git a/keyboards/momokai/tap_trio/info.json b/keyboards/momokai/tap_trio/info.json index e3f2f2965eb..afc5aa20158 100644 --- a/keyboards/momokai/tap_trio/info.json +++ b/keyboards/momokai/tap_trio/info.json @@ -12,7 +12,7 @@ "pin": "F0" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["E6", "B2", "B7", "D1", "D2", "D3"], diff --git a/keyboards/monarch/info.json b/keyboards/monarch/info.json index 95daea5cdbe..ff47a1be3e1 100644 --- a/keyboards/monarch/info.json +++ b/keyboards/monarch/info.json @@ -262,10 +262,7 @@ {"matrix": [4, 13], "x": 13.25, "y": 4.25}, {"matrix": [4, 14], "x": 14.25, "y": 4.25}, - {"matrix": [4, 15], "x": 15.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5}, - {"matrix": [5, 1], "x": 1, "y": 5} + {"matrix": [4, 15], "x": 15.25, "y": 4.25} ] } } diff --git a/keyboards/monarch/keymaps/default/keymap.c b/keyboards/monarch/keymaps/default/keymap.c index a9f67ee904a..76d64c35635 100644 --- a/keyboards/monarch/keymaps/default/keymap.c +++ b/keyboards/monarch/keymaps/default/keymap.c @@ -33,12 +33,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP ) }; - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return true; -} diff --git a/keyboards/monarch/keymaps/iso/keymap.c b/keyboards/monarch/keymaps/iso/keymap.c index e707b2104b5..5df9e560d0c 100644 --- a/keyboards/monarch/keymaps/iso/keymap.c +++ b/keyboards/monarch/keymaps/iso/keymap.c @@ -33,12 +33,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP ) }; - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return true; -} diff --git a/keyboards/monarch/keymaps/via/keymap.c b/keyboards/monarch/keymaps/via/keymap.c index c70f9c213b9..39ad94fb8eb 100644 --- a/keyboards/monarch/keymaps/via/keymap.c +++ b/keyboards/monarch/keymaps/via/keymap.c @@ -23,70 +23,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, - KC_VOLD, KC_VOLU + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_ON, - _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP, - _______, _______ + _______, _______, _______, BL_TOGG, _______, BL_DOWN, BL_OFF, BL_UP ), [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______ ) }; - -keyevent_t encoder_ccw = { - .key = (keypos_t){.row = 5, .col = 0}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder_cw = { - .key = (keypos_t){.row = 5, .col = 1}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, }; - -void matrix_scan_user(void) { - if (encoder_ccw.pressed) { - encoder_ccw.pressed = false; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - - if (encoder_cw.pressed) { - encoder_cw.pressed = false; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - encoder_cw.pressed = true; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } else { - encoder_ccw.pressed = true; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - return true; -} +#endif diff --git a/keyboards/monarch/keymaps/via/rules.mk b/keyboards/monarch/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/monarch/keymaps/via/rules.mk +++ b/keyboards/monarch/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/monarch/rules.mk b/keyboards/monarch/rules.mk index 5a2c15a821f..195a2958ce7 100644 --- a/keyboards/monarch/rules.mk +++ b/keyboards/monarch/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes ENCODER_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/monoflex60/info.json b/keyboards/monoflex60/info.json index f7ed4b0938d..39c2546bba9 100644 --- a/keyboards/monoflex60/info.json +++ b/keyboards/monoflex60/info.json @@ -191,21 +191,21 @@ {"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, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [2, 12], "x": 11.75, "y": 2}, - {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"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, 12], "x": 12.75, "y": 2}, + {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h new file mode 100644 index 00000000000..3e44e815fa0 --- /dev/null +++ b/keyboards/monsgeek/m1/config.h @@ -0,0 +1,54 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 + +/* Use 6 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* 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 ENCODER_DEFAULT_POS 0x3 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define DRIVER_1_LED_TOTAL 63 +#define DRIVER_2_LED_TOTAL 21 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + 22) + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/monsgeek/m1/halconf.h b/keyboards/monsgeek/m1/halconf.h new file mode 100644 index 00000000000..2f64e65393a --- /dev/null +++ b/keyboards/monsgeek/m1/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json new file mode 100644 index 00000000000..5e772f81f63 --- /dev/null +++ b/keyboards/monsgeek/m1/info.json @@ -0,0 +1,439 @@ +{ + "keyboard_name": "M1", + "manufacturer": "MonsGeek", + "maintainer": "jonylee@hfd", + "usb": { + "force_nkro": true, + "vid": "0xFFFE", + "pid": "0x0005", + "device_version": "1.1.0", + "suspend_wakeup_delay": 400 + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "encoder": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + {"pin_a": "B14", "pin_b": "B13"} + ] + }, + "rgb_matrix": { + "driver": "is31fl3733", + "max_brightness": 200, + "val_steps": 20, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 14, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 29, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 44, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 59, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 74, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 89, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x":104, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x":119, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x":134, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x":149, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x":164, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x":179, "y": 0 }, + { "flags": 4, "matrix": [0, 13], "x":196, "y": 0 }, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 12}, + { "flags": 4, "matrix": [1, 1], "x": 14, "y": 12}, + { "flags": 4, "matrix": [1, 2], "x": 28, "y": 12}, + { "flags": 4, "matrix": [1, 3], "x": 42, "y": 12}, + { "flags": 4, "matrix": [1, 4], "x": 56, "y": 12}, + { "flags": 4, "matrix": [1, 5], "x": 70, "y": 12}, + { "flags": 4, "matrix": [1, 6], "x": 84, "y": 12}, + { "flags": 4, "matrix": [1, 7], "x": 98, "y": 12}, + { "flags": 4, "matrix": [1, 8], "x":112, "y": 12}, + { "flags": 4, "matrix": [1, 9], "x":126, "y": 12}, + { "flags": 4, "matrix": [1, 10], "x":140, "y": 12}, + { "flags": 4, "matrix": [1, 11], "x":154, "y": 12}, + { "flags": 4, "matrix": [1, 12], "x":168, "y": 12}, + { "flags": 4, "matrix": [1, 13], "x":182, "y": 12}, + { "flags": 4, "matrix": [1, 15], "x":224, "y": 12}, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 25}, + { "flags": 4, "matrix": [2, 1], "x": 14, "y": 25}, + { "flags": 4, "matrix": [2, 2], "x": 28, "y": 25}, + { "flags": 4, "matrix": [2, 3], "x": 42, "y": 25}, + { "flags": 4, "matrix": [2, 4], "x": 56, "y": 25}, + { "flags": 4, "matrix": [2, 5], "x": 70, "y": 25}, + { "flags": 4, "matrix": [2, 6], "x": 84, "y": 25}, + { "flags": 4, "matrix": [2, 7], "x": 98, "y": 25}, + { "flags": 4, "matrix": [2, 8], "x":112, "y": 25}, + { "flags": 4, "matrix": [2, 9], "x":126, "y": 25}, + { "flags": 4, "matrix": [2, 10], "x":140, "y": 25}, + { "flags": 4, "matrix": [2, 11], "x":154, "y": 25}, + { "flags": 4, "matrix": [2, 12], "x":168, "y": 25}, + { "flags": 4, "matrix": [2, 13], "x":182, "y": 25}, + { "flags": 4, "matrix": [2, 15], "x":224, "y": 25}, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38}, + { "flags": 4, "matrix": [3, 1], "x": 28, "y": 38}, + { "flags": 4, "matrix": [3, 2], "x": 42, "y": 38}, + { "flags": 4, "matrix": [3, 3], "x": 56, "y": 38}, + { "flags": 4, "matrix": [3, 4], "x": 70, "y": 38}, + { "flags": 4, "matrix": [3, 5], "x": 84, "y": 38}, + { "flags": 4, "matrix": [3, 6], "x": 98, "y": 38}, + { "flags": 4, "matrix": [3, 7], "x":112, "y": 38}, + { "flags": 4, "matrix": [3, 8], "x":126, "y": 38}, + { "flags": 4, "matrix": [3, 9], "x":140, "y": 38}, + { "flags": 4, "matrix": [3, 10], "x":154, "y": 38}, + { "flags": 4, "matrix": [3, 11], "x":168, "y": 38}, + { "flags": 4, "matrix": [3, 12], "x":182, "y": 38}, + { "flags": 4, "matrix": [3, 13], "x":196, "y": 38}, + { "flags": 4, "matrix": [3, 15], "x":224, "y": 38}, + + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 51}, + { "flags": 4, "matrix": [4, 11], "x": 14, "y": 51}, + { "flags": 4, "matrix": [4, 1], "x": 28, "y": 51}, + { "flags": 4, "matrix": [4, 2], "x": 37, "y": 51}, + { "flags": 4, "matrix": [4, 3], "x": 56, "y": 51}, + { "flags": 4, "matrix": [4, 4], "x": 74, "y": 51}, + { "flags": 4, "matrix": [4, 5], "x": 93, "y": 51}, + { "flags": 4, "matrix": [4, 6], "x":112, "y": 51}, + { "flags": 4, "matrix": [4, 7], "x":130, "y": 51}, + { "flags": 4, "matrix": [4, 8], "x":149, "y": 51}, + { "flags": 4, "matrix": [4, 9], "x":168, "y": 51}, + { "flags": 4, "matrix": [4, 10], "x":186, "y": 51}, + { "flags": 4, "matrix": [4, 13], "x":200, "y": 51}, + { "flags": 4, "matrix": [4, 14], "x":214, "y": 51}, + { "flags": 4, "matrix": [4, 15], "x":224, "y": 51}, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64}, + { "flags": 4, "matrix": [5, 1], "x": 18, "y": 64}, + { "flags": 4, "matrix": [5, 2], "x": 37, "y": 64}, + { "flags": 4, "matrix": [5, 5], "x": 92, "y": 64}, + { "flags": 4, "matrix": [5, 9], "x":140, "y": 64}, + { "flags": 4, "matrix": [5, 10], "x":154, "y": 64}, + { "flags": 4, "matrix": [5, 11], "x":168, "y": 64}, + { "flags": 4, "matrix": [5, 13], "x":196, "y": 64}, + { "flags": 4, "matrix": [5, 14], "x":210, "y": 64}, + { "flags": 4, "matrix": [5, 15], "x":224, "y": 64}, + + { "flags": 2, "x":0, "y":0}, + { "flags": 2, "x":0, "y":6}, + { "flags": 2, "x":0, "y":13}, + { "flags": 2, "x":0, "y":19}, + { "flags": 2, "x":0, "y":25}, + { "flags": 2, "x":0, "y":32}, + { "flags": 2, "x":0, "y":38}, + { "flags": 2, "x":0, "y":45}, + { "flags": 2, "x":0, "y":51}, + { "flags": 2, "x":0, "y":57}, + { "flags": 2, "x":0, "y":64}, + + { "flags": 2, "x":224, "y":0}, + { "flags": 2, "x":224, "y":6}, + { "flags": 2, "x":224, "y":13}, + { "flags": 2, "x":224, "y":19}, + { "flags": 2, "x":224, "y":25}, + { "flags": 2, "x":224, "y":32}, + { "flags": 2, "x":224, "y":38}, + { "flags": 2, "x":224, "y":45}, + { "flags": 2, "x":224, "y":51}, + { "flags": 2, "x":224, "y":57}, + { "flags": 2, "x":224, "y":64} + ] + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "label": "Del", "matrix": [0, 13], "x": 14, "y": 0 }, + { "label": "Mute", "matrix": [0, 15], "x": 15.5, "y": 0 }, + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Bksp", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 15.5, "y": 1.25 }, + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "label": "PageUp", "matrix": [2, 15], "x": 15.5, "y": 2.25 }, + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 12], "x": 12.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "w": 1.25, "x": 13.75, "y": 3.25 }, + { "label": "PageDn", "matrix": [3, 15], "x": 15.5, "y": 3.25 }, + { "label": "Shift", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "label": ":", "matrix": [4, 11], "x": 1.25, "y": 4.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.25 }, + { "label": "End", "matrix": [4, 15], "x": 15.5, "y": 4.25 }, + { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "label": "Space", "matrix": [5, 5], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25 }, + { "label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25 }, + { "label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25 }, + { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.25 } + ] + }, + "LAYOUT_ansi": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "label": "Del", "matrix": [0, 13], "x": 14, "y": 0 }, + { "label": "Mute", "matrix": [0, 15], "x": 15.5, "y": 0 }, + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Bksp", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 15.5, "y": 1.25 }, + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "label": "PageUp", "matrix": [2, 15], "x": 15.5, "y": 2.25 }, + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "label": "PageDn", "matrix": [3, 15], "x": 15.5, "y": 3.25 }, + { "label": "Shift", "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.25 }, + { "label": "End", "matrix": [4, 15], "x": 15.5, "y": 4.25 }, + { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "label": "Space", "matrix": [5, 5], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25 }, + { "label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25 }, + { "label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25 }, + { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.25 } + ] + }, + "LAYOUT_iso": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "label": "Del", "matrix": [0, 13], "x": 14, "y": 0 }, + { "label": "Mute", "matrix": [0, 15], "x": 15.5, "y": 0 }, + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Bksp", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 15.5, "y": 1.25 }, + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "PageUp", "matrix": [2, 15], "x": 15.5, "y": 2.25 }, + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 12], "x": 12.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "w": 1.25, "h": 2, "x": 13.75, "y": 2.25 }, + { "label": "PageDn", "matrix": [3, 15], "x": 15.5, "y": 3.25 }, + { "label": "Shift", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "label": ":", "matrix": [4, 11], "x": 1.25, "y": 4.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.25 }, + { "label": "End", "matrix": [4, 15], "x": 15.5, "y": 4.25 }, + { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "label": "Space", "matrix": [5, 5], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25 }, + { "label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25 }, + { "label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25 }, + { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/monsgeek/m1/keymaps/default/keymap.c b/keyboards/monsgeek/m1/keymaps/default/keymap.c new file mode 100644 index 00000000000..a0929d083ff --- /dev/null +++ b/keyboards/monsgeek/m1/keymaps/default/keymap.c @@ -0,0 +1,95 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_all( /* Base */ + 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_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT_all( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, + _______, _______, _______, _______, _______,MO(WIN_FN),_______, KC_A, KC_S, KC_D), + + [WIN_FN] = LAYOUT_all( /* WASD/↑←↓→ */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, DF(MAC_B),KC_PSCR,_______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_MOD, RGB_HUI, _______, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT_all( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT_all( /* WASD/↑←↓→ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, + _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + + [MAC_FN] = LAYOUT_all( /* FN */ + _______, 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_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, DF(WIN_B),KC_PSCR,_______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_MOD, RGB_HUI, _______, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; + + +// clang-format off +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) } +}; +#endif + diff --git a/keyboards/monsgeek/m1/keymaps/default/rules.mk b/keyboards/monsgeek/m1/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/monsgeek/m1/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/monsgeek/m1/keymaps/via/keymap.c b/keyboards/monsgeek/m1/keymaps/via/keymap.c new file mode 100644 index 00000000000..a0929d083ff --- /dev/null +++ b/keyboards/monsgeek/m1/keymaps/via/keymap.c @@ -0,0 +1,95 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_all( /* Base */ + 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_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT_all( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, + _______, _______, _______, _______, _______,MO(WIN_FN),_______, KC_A, KC_S, KC_D), + + [WIN_FN] = LAYOUT_all( /* WASD/↑←↓→ */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, DF(MAC_B),KC_PSCR,_______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_MOD, RGB_HUI, _______, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT_all( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT_all( /* WASD/↑←↓→ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, + _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + + [MAC_FN] = LAYOUT_all( /* FN */ + _______, 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_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, DF(WIN_B),KC_PSCR,_______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_MOD, RGB_HUI, _______, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; + + +// clang-format off +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) } +}; +#endif + diff --git a/keyboards/monsgeek/m1/keymaps/via/rules.mk b/keyboards/monsgeek/m1/keymaps/via/rules.mk new file mode 100644 index 00000000000..f1adcab005e --- /dev/null +++ b/keyboards/monsgeek/m1/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/monsgeek/m1/keymaps/vial/config.h b/keyboards/monsgeek/m1/keymaps/vial/config.h new file mode 100644 index 00000000000..f8eaa32c1e3 --- /dev/null +++ b/keyboards/monsgeek/m1/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x19, 0x4B, 0xFE, 0x6B, 0x4D, 0x0B, 0xB2, 0xA9} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } \ No newline at end of file diff --git a/keyboards/monsgeek/m1/keymaps/vial/keymap.c b/keyboards/monsgeek/m1/keymaps/vial/keymap.c new file mode 100644 index 00000000000..a0929d083ff --- /dev/null +++ b/keyboards/monsgeek/m1/keymaps/vial/keymap.c @@ -0,0 +1,95 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_all( /* Base */ + 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_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT_all( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, + _______, _______, _______, _______, _______,MO(WIN_FN),_______, KC_A, KC_S, KC_D), + + [WIN_FN] = LAYOUT_all( /* WASD/↑←↓→ */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, _______, _______, _______, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, DF(MAC_B),KC_PSCR,_______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_MOD, RGB_HUI, _______, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT_all( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT_all( /* WASD/↑←↓→ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, + _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + + [MAC_FN] = LAYOUT_all( /* FN */ + _______, 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_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, DF(WIN_B),KC_PSCR,_______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_MOD, RGB_HUI, _______, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; + + +// clang-format off +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_W] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) } +}; +#endif + diff --git a/keyboards/monsgeek/m1/keymaps/vial/rules.mk b/keyboards/monsgeek/m1/keymaps/vial/rules.mk new file mode 100644 index 00000000000..c6bf6798de5 --- /dev/null +++ b/keyboards/monsgeek/m1/keymaps/vial/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/monsgeek/m1/keymaps/vial/vial.json b/keyboards/monsgeek/m1/keymaps/vial/vial.json new file mode 100644 index 00000000000..815efb05ec0 --- /dev/null +++ b/keyboards/monsgeek/m1/keymaps/vial/vial.json @@ -0,0 +1,241 @@ +{ + "name": "MonsGeek M1", + "vendorId": "0xFFFE", + "productId": "0x0005", + "lighting": "vialrgb", + "matrix": { "rows": 6, "cols": 16 }, + "layouts": { + "labels": [ + "ISO Enter", + "Split Left Shift" + ], + "keymap":[ + [ + { + "x": 15, + "c": "#AAAAAA" + }, + "0,0\n\n\n\n\n\n\n\n\ne", + "0,1\n\n\n\n\n\n\n\n\ne" + ], + [ + { + "c": "#777777" + }, + "0,0", + { + "x": 0.25, + "c": "#AAAAAA" + }, + "0,1", + "0,2", + "0,3", + "0,4", + { + "x": 0.25 + }, + "0,5", + "0,6", + "0,7", + "0,8", + { + "x": 0.25 + }, + "0,9", + "0,10", + "0,11", + "0,12", + { + "x": 0.25 + }, + "0,13", + { + "x": 0.5 + }, + "0,15" + ], + [ + { + "y": 0.25 + }, + "1,0\n`", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "c": "#AAAAAA", + "w": 2 + }, + "1,13", + { + "x": 0.5 + }, + "1,15" + ], + [ + { + "w": 1.5 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "c": "#AAAAAA", + "w": 1.5 + }, + "2,13\n\n\n0,0", + { + "x": 0.5 + }, + "2,15", + { + "x": 1.25, + "c": "#777777", + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "3,13\n\n\n0,1" + ], + [ + { + "c": "#AAAAAA", + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#777777", + "w": 2.25 + }, + "3,13\n\n\n0,0", + { + "x": 0.5, + "c": "#AAAAAA" + }, + "3,15", + { + "x": 0.25 + }, + "3,12\n\n\n0,1" + ], + [ + { + "w": 2.25 + }, + "4,0\n\n\n1,0", + { + "c": "#cccccc" + }, + "4,1", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + { + "c": "#AAAAAA", + "w": 1.75 + }, + "4,13", + { + "x": 1.5 + }, + "4,15" + ], + [ + { + "y": -0.75, + "x": 14.25, + "c": "#777777" + }, + "4,14" + ], + [ + { + "y": -0.25, + "c": "#AAAAAA", + "w": 1.25 + }, + "5,0", + { + "w": 1.25 + }, + "5,1", + { + "w": 1.25 + }, + "5,2", + { + "w": 6.25 + }, + "5,5", + "5,9", + "5,10", + "5,11" + ], + [ + { + "y": -0.75, + "x": 13.25, + "c": "#777777" + }, + "5,13", + "5,14", + "5,15" + ], + [ + { + "c": "#AAAAAA", + "w": 1.25 + }, + "4,0\n\n\n1,1", + "4,11\n\n\n1,1" + ] + ] + } + } diff --git a/keyboards/monsgeek/m1/m1.c b/keyboards/monsgeek/m1/m1.c new file mode 100644 index 00000000000..ac00bb4e2bd --- /dev/null +++ b/keyboards/monsgeek/m1/m1.c @@ -0,0 +1,216 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, D_2, E_2, F_2}, + + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, A_15, B_15, C_15}, + {0, G_13, H_13, I_13}, + {1, D_3, E_3, F_3}, + + {0, J_1, K_1, L_1}, + {0, A_16, B_16, C_16}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, D_7, E_7, F_7}, + {1, D_4, E_4, F_4}, + + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + + {0, D_15, E_15, F_15}, + {1, D_6, E_6, F_6}, + {1, D_5, E_5, F_5}, + + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + {1, G_4, H_4, I_4}, + {1, G_5, H_5, I_5}, + {1, G_6, H_6, I_6}, + {1, G_7, H_7, I_7}, + {1, G_8, H_8, I_8}, + {1, G_9, H_9, I_9}, + {1, G_10, H_10, I_10}, + {1, G_11, H_11, I_11}, + + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + {1, J_4, K_4, L_4}, + {1, J_5, K_5, L_5}, + {1, J_6, K_6, L_6}, + {1, J_7, K_7, L_7}, + {1, J_8, K_8, L_8}, + {1, J_9, K_9, L_9}, + {1, J_10, K_10, L_10}, + {1, J_11, K_11, L_11}, +}; + +// clang-format on +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(44, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(44, 0, 0, 0); + } + } + if (keymap_config.no_gui) { + RGB_MATRIX_INDICATOR_SET_COLOR(75, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(75, 0, 0, 0); + } + } + return true; +} +#endif + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case DF(WIN_B): + if (record->event.pressed) { + set_single_persistent_default_layer(WIN_B); + layer_state_set(1<event.pressed) { + set_single_persistent_default_layer(MAC_B); + layer_state_set(1<event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + default: + return true; + } +} diff --git a/keyboards/monsgeek/m1/mcuconf.h b/keyboards/monsgeek/m1/mcuconf.h new file mode 100644 index 00000000000..e2884f3828f --- /dev/null +++ b/keyboards/monsgeek/m1/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/monsgeek/m1/readme.md b/keyboards/monsgeek/m1/readme.md new file mode 100644 index 00000000000..72af4c4382b --- /dev/null +++ b/keyboards/monsgeek/m1/readme.md @@ -0,0 +1,19 @@ +# monsgeek m1 keyboard + +A customizable 75% encoder keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: m1 +* Hardware Availability: [monsgeek](https://www.monsgeek.com/) + +Make example for this keyboard (after setting up your build environment): + + make monsgeek/m1:default + +Flashing example for this keyboard: + + make monsgeek/m1:default:flash + +**Reset Key**: Hold down the key located at *K00*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/monsgeek/m1/rules.mk b/keyboards/monsgeek/m1/rules.mk new file mode 100644 index 00000000000..b753f0682e5 --- /dev/null +++ b/keyboards/monsgeek/m1/rules.mk @@ -0,0 +1,6 @@ +# Build Options +# change yes to no to disable +# +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash + diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h new file mode 100644 index 00000000000..6d43bd4f267 --- /dev/null +++ b/keyboards/monsgeek/m5/config.h @@ -0,0 +1,54 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 + +/* Use 5 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* LED Indicators */ +#define LED_WIN_LOCK_PIN C11 + +/* 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ +#define I2C1_SCL_PAL_MODE 4 + +#define RGB_MATRIX_LED_COUNT 108 + +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/monsgeek/m5/halconf.h b/keyboards/monsgeek/m5/halconf.h new file mode 100644 index 00000000000..2f64e65393a --- /dev/null +++ b/keyboards/monsgeek/m5/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/monsgeek/m5/info.json b/keyboards/monsgeek/m5/info.json new file mode 100644 index 00000000000..4e504b86631 --- /dev/null +++ b/keyboards/monsgeek/m5/info.json @@ -0,0 +1,290 @@ +{ + "keyboard_name": "M5", + "manufacturer": "MonsGeek", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x000A", + "device_version": "1.0.4", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4","C5","B0","B1","B2","B10","B11","B12","B13","B14"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "indicators": { + "num_lock":"A15", + "caps_lock": "C10" + }, + "rgb_matrix": { + "driver": "is31fl3733", + "max_brightness": 180, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 30, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 50, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 70, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 80, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 90, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 100, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 110, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 120, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x": 130, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x": 140, "y": 0 }, + { "flags": 4, "matrix": [0, 14], "x": 156, "y": 0 }, + { "flags": 4, "matrix": [0, 15], "x": 166, "y": 0 }, + { "flags": 4, "matrix": [0, 16], "x": 176, "y": 0 }, + { "flags": 4, "matrix": [0, 17], "x": 194, "y": 0 }, + { "flags": 4, "matrix": [0, 18], "x": 204, "y": 0 }, + { "flags": 4, "matrix": [0, 19], "x": 214, "y": 0 }, + { "flags": 4, "matrix": [0, 20], "x": 224, "y": 0 }, + + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 13 }, + { "flags": 4, "matrix": [1, 1], "x": 10, "y": 13 }, + { "flags": 4, "matrix": [1, 2], "x": 20, "y": 13 }, + { "flags": 4, "matrix": [1, 3], "x": 30, "y": 13 }, + { "flags": 4, "matrix": [1, 4], "x": 40, "y": 13 }, + { "flags": 4, "matrix": [1, 5], "x": 50, "y": 13 }, + { "flags": 4, "matrix": [1, 6], "x": 60, "y": 13 }, + { "flags": 4, "matrix": [1, 7], "x": 70, "y": 13 }, + { "flags": 4, "matrix": [1, 8], "x": 80, "y": 13 }, + { "flags": 4, "matrix": [1, 9], "x": 90, "y": 13 }, + { "flags": 4, "matrix": [1, 10], "x": 100, "y": 13 }, + { "flags": 4, "matrix": [1, 11], "x": 110, "y": 13 }, + { "flags": 4, "matrix": [1, 12], "x": 120, "y": 13 }, + { "flags": 4, "matrix": [1, 13], "x": 140, "y": 13 }, + { "flags": 4, "matrix": [1, 14], "x": 156, "y": 13 }, + { "flags": 4, "matrix": [1, 15], "x": 166, "y": 13 }, + { "flags": 4, "matrix": [1, 16], "x": 176, "y": 13 }, + { "flags": 4, "matrix": [1, 17], "x": 194, "y": 13 }, + { "flags": 4, "matrix": [1, 18], "x": 204, "y": 13 }, + { "flags": 4, "matrix": [1, 19], "x": 214, "y": 13 }, + { "flags": 4, "matrix": [1, 20], "x": 224, "y": 13 }, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 26 }, + { "flags": 4, "matrix": [2, 1], "x": 10, "y": 26 }, + { "flags": 4, "matrix": [2, 2], "x": 20, "y": 26 }, + { "flags": 4, "matrix": [2, 3], "x": 30, "y": 26 }, + { "flags": 4, "matrix": [2, 4], "x": 40, "y": 26 }, + { "flags": 4, "matrix": [2, 5], "x": 50, "y": 26 }, + { "flags": 4, "matrix": [2, 6], "x": 60, "y": 26 }, + { "flags": 4, "matrix": [2, 7], "x": 70, "y": 26 }, + { "flags": 4, "matrix": [2, 8], "x": 80, "y": 26 }, + { "flags": 4, "matrix": [2, 9], "x": 90, "y": 26 }, + { "flags": 4, "matrix": [2, 10], "x": 100, "y": 26 }, + { "flags": 4, "matrix": [2, 11], "x": 110, "y": 26 }, + { "flags": 4, "matrix": [2, 12], "x": 128, "y": 26 }, + { "flags": 4, "matrix": [2, 13], "x": 140, "y": 26 }, + { "flags": 4, "matrix": [2, 14], "x": 156, "y": 26 }, + { "flags": 4, "matrix": [2, 15], "x": 166, "y": 26 }, + { "flags": 4, "matrix": [2, 16], "x": 176, "y": 26 }, + { "flags": 4, "matrix": [2, 17], "x": 194, "y": 26 }, + { "flags": 4, "matrix": [2, 18], "x": 204, "y": 26 }, + { "flags": 4, "matrix": [2, 19], "x": 214, "y": 26 }, + { "flags": 4, "matrix": [2, 20], "x": 224, "y": 26 }, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38 }, + { "flags": 4, "matrix": [3, 1], "x": 10, "y": 38 }, + { "flags": 4, "matrix": [3, 2], "x": 20, "y": 38 }, + { "flags": 4, "matrix": [3, 3], "x": 30, "y": 38 }, + { "flags": 4, "matrix": [3, 4], "x": 40, "y": 38 }, + { "flags": 4, "matrix": [3, 5], "x": 50, "y": 38 }, + { "flags": 4, "matrix": [3, 6], "x": 60, "y": 38 }, + { "flags": 4, "matrix": [3, 7], "x": 70, "y": 38 }, + { "flags": 4, "matrix": [3, 8], "x": 80, "y": 38 }, + { "flags": 4, "matrix": [3, 9], "x": 90, "y": 38 }, + { "flags": 4, "matrix": [3, 10], "x": 100, "y": 38 }, + { "flags": 4, "matrix": [3, 11], "x": 110, "y": 38 }, + { "flags": 4, "matrix": [3, 13], "x": 135, "y": 38 }, + { "flags": 4, "matrix": [3, 17], "x": 194, "y": 38 }, + { "flags": 4, "matrix": [3, 18], "x": 204, "y": 38 }, + { "flags": 4, "matrix": [3, 19], "x": 214, "y": 38 }, + + { "flags": 4, "matrix": [4, 0], "x": 5, "y": 51 }, + { "flags": 4, "matrix": [4, 1], "x": 20, "y": 51 }, + { "flags": 4, "matrix": [4, 2], "x": 30, "y": 51 }, + { "flags": 4, "matrix": [4, 3], "x": 40, "y": 51 }, + { "flags": 4, "matrix": [4, 4], "x": 50, "y": 51 }, + { "flags": 4, "matrix": [4, 5], "x": 60, "y": 51 }, + { "flags": 4, "matrix": [4, 6], "x": 70, "y": 51 }, + { "flags": 4, "matrix": [4, 7], "x": 80, "y": 51 }, + { "flags": 4, "matrix": [4, 8], "x": 90, "y": 51 }, + { "flags": 4, "matrix": [4, 9], "x": 100, "y": 51 }, + { "flags": 4, "matrix": [4, 10], "x": 110, "y": 51 }, + { "flags": 4, "matrix": [4, 13], "x": 135, "y": 51 }, + { "flags": 4, "matrix": [4, 15], "x": 166, "y": 51 }, + { "flags": 4, "matrix": [4, 17], "x": 194, "y": 51 }, + { "flags": 4, "matrix": [4, 18], "x": 204, "y": 51 }, + { "flags": 4, "matrix": [4, 19], "x": 214, "y": 51 }, + { "flags": 4, "matrix": [4, 20], "x": 224, "y": 51 }, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [5, 1], "x": 10, "y": 64 }, + { "flags": 4, "matrix": [5, 2], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [5, 5], "x": 60, "y": 64 }, + { "flags": 4, "matrix": [5, 9], "x": 100, "y": 64 }, + { "flags": 4, "matrix": [5, 10], "x": 110, "y": 64 }, + { "flags": 4, "matrix": [5, 11], "x": 130, "y": 64 }, + { "flags": 4, "matrix": [5, 13], "x": 140, "y": 64 }, + { "flags": 4, "matrix": [5, 14], "x": 156, "y": 64 }, + { "flags": 4, "matrix": [5, 15], "x": 166, "y": 64 }, + { "flags": 4, "matrix": [5, 16], "x": 176, "y": 64 }, + { "flags": 4, "matrix": [5, 18], "x": 199, "y": 64 }, + { "flags": 4, "matrix": [5, 19], "x": 214, "y": 64 } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 }, + { "label": "Cal", "matrix": [0, 17], "x": 18.5, "y": 0 }, + { "label": "Mute", "matrix": [0, 18], "x": 19.5, "y": 0 }, + { "label": "Vold", "matrix": [0, 19], "x": 20.5, "y": 0 }, + { "label": "Volu", "matrix": [0, 20], "x": 21.5, "y": 0 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 }, + { "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "label": "Num", "matrix": [1, 17], "x": 18.5, "y": 1.25 }, + { "label": "/", "matrix": [1, 18], "x": 19.5, "y": 1.25 }, + { "label": "*", "matrix": [1, 19], "x": 20.5, "y": 1.25 }, + { "label": "-", "matrix": [1, 20], "x": 21.5, "y": 1.25 }, + + { "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "label": "7", "matrix": [2, 17], "x": 18.5, "y": 2.25 }, + { "label": "8", "matrix": [2, 18], "x": 19.5, "y": 2.25 }, + { "label": "9", "matrix": [2, 19], "x": 20.5, "y": 2.25 }, + { "label": "+", "matrix": [2, 20], "x": 21.5, "y": 2.25, "h": 2 }, + + { "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "4", "matrix": [3, 17], "x": 18.5, "y": 3.25 }, + { "label": "5", "matrix": [3, 18], "x": 19.5, "y": 3.25 }, + { "label": "6", "matrix": [3, 19], "x": 20.5, "y": 3.25 }, + + { "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "label": "1", "matrix": [4, 17], "x": 18.5, "y": 4.25 }, + { "label": "2", "matrix": [4, 18], "x": 19.5, "y": 4.25 }, + { "label": "3", "matrix": [4, 19], "x": 20.5, "y": 4.25 }, + { "label": "Enter", "matrix": [4, 20], "x": 21.5, "y": 4.25, "h": 2 }, + + { "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 }, + { "label": "0", "matrix": [5, 18], "x": 18.5, "y": 5.25, "w": 2 }, + { "label": ".", "matrix": [5, 19], "x": 20.5, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/monsgeek/m5/keymaps/default/keymap.c b/keyboards/monsgeek/m5/keymaps/default/keymap.c new file mode 100644 index 00000000000..28c433736cc --- /dev/null +++ b/keyboards/monsgeek/m5/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_WASD, + WIN_FN, + MAC_B, + MAC_WASD, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [WIN_WASD] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_WASD),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GUI_TOG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [MAC_WASD] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_WASD),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) +}; +// clang-format on diff --git a/keyboards/monsgeek/m5/keymaps/via/keymap.c b/keyboards/monsgeek/m5/keymaps/via/keymap.c new file mode 100644 index 00000000000..12c20087058 --- /dev/null +++ b/keyboards/monsgeek/m5/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) +}; +// clang-format on diff --git a/keyboards/monsgeek/m5/keymaps/via/rules.mk b/keyboards/monsgeek/m5/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/monsgeek/m5/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/monsgeek/m5/keymaps/vial/config.h b/keyboards/monsgeek/m5/keymaps/vial/config.h new file mode 100644 index 00000000000..878798a7ffb --- /dev/null +++ b/keyboards/monsgeek/m5/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x45, 0x07, 0xB8, 0x95, 0x60, 0x53, 0x1C, 0x90} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } \ No newline at end of file diff --git a/keyboards/monsgeek/m5/keymaps/vial/keymap.c b/keyboards/monsgeek/m5/keymaps/vial/keymap.c new file mode 100644 index 00000000000..12c20087058 --- /dev/null +++ b/keyboards/monsgeek/m5/keymaps/vial/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, 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_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) +}; +// clang-format on diff --git a/keyboards/monsgeek/m5/keymaps/vial/rules.mk b/keyboards/monsgeek/m5/keymaps/vial/rules.mk new file mode 100644 index 00000000000..6bc7063adc2 --- /dev/null +++ b/keyboards/monsgeek/m5/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/monsgeek/m5/keymaps/vial/vial.json b/keyboards/monsgeek/m5/keymaps/vial/vial.json new file mode 100644 index 00000000000..cc4e000905c --- /dev/null +++ b/keyboards/monsgeek/m5/keymaps/vial/vial.json @@ -0,0 +1,259 @@ +{ + "name": "M5", + "vendorId": "0xFFFE", + "productId": "0x000A", + "lighting": "vialrgb", + "matrix": { "rows": 6, "cols": 21 }, + "layouts": { + "keymap":[ + [ + { + "c": "#777777" + }, + "0,0", + { + "x": 1, + "c": "#aaaaaa" + }, + "0,1", + "0,2", + "0,3", + "0,4", + { + "x": 0.5 + }, + "0,5", + "0,6", + "0,7", + "0,8", + { + "x": 0.5 + }, + "0,9", + "0,10", + "0,11", + "0,12", + { + "x": 0.25 + }, + "0,14", + "0,15", + "0,16", + { + "x": 0.25 + }, + "0,17", + "0,18", + "0,19", + "0,20" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "c": "#aaaaaa", + "w": 2 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16", + { + "x": 0.25 + }, + "1,17", + "1,18", + "1,19", + "1,20" + ], + [ + { + "w": 1.5 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "w": 1.5 + }, + "2,13", + { + "x": 0.25, + "c": "#aaaaaa" + }, + "2,14", + "2,15", + "2,16", + { + "x": 0.25, + "c": "#cccccc" + }, + "2,17", + "2,18", + "2,19", + { + "c": "#aaaaaa", + "h": 2 + }, + "2,20" + ], + [ + { + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#777777", + "w": 2.25 + }, + "3,13", + { + "x": 3.5, + "c": "#cccccc" + }, + "3,17", + "3,18", + "3,19" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "4,0", + { + "c": "#cccccc" + }, + "4,1", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "4,13", + { + "x": 1.25, + "c": "#777777" + }, + "4,15", + { + "x": 1.25, + "c": "#cccccc" + }, + "4,17", + "4,18", + "4,19", + { + "c": "#777777", + "h": 2 + }, + "4,20" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,0", + { + "w": 1.25 + }, + "5,1", + { + "w": 1.25 + }, + "5,2", + { + "c": "#777777", + "w": 6.25 + }, + "5,5", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,9", + { + "w": 1.25 + }, + "5,10", + { + "w": 1.25 + }, + "5,11", + { + "w": 1.25 + }, + "5,13", + { + "x": 0.25, + "c": "#777777" + }, + "5,14", + "5,15", + "5,16", + { + "x": 0.25, + "c": "#cccccc", + "w": 2 + }, + "5,18", + "5,19" + ] + ] + } + } + diff --git a/keyboards/monsgeek/m5/m5.c b/keyboards/monsgeek/m5/m5.c new file mode 100644 index 00000000000..7dbc3111bf0 --- /dev/null +++ b/keyboards/monsgeek/m5/m5.c @@ -0,0 +1,163 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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" +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + /*row0*/ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + {1, A_15, B_15, C_15}, + {1, A_16, B_16, C_16}, + {1, D_11, E_11, F_11}, + {1, D_12, E_12, F_12}, + {1, D_13, E_13, F_13}, + {1, D_14, E_14, F_14}, + + /*row1*/ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1 }, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + {1, D_4, E_4, F_4}, + {1, D_5, E_5, F_5}, + {1, D_6, E_6, F_6}, + {1, D_7, E_7, F_7}, + + /*row2*/ + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + {1, D_8, E_8, F_8}, + {1, D_9, E_9, F_9}, + {1, D_10, E_10, F_10}, + {1, G_7, H_7, I_7}, + + /*row3*/ + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + {1, G_4, H_4, I_4}, + {1, G_5, H_5, I_5}, + {1, G_6, H_6, I_6}, + + + /*row4*/ + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, J_4, K_4, L_4}, + {1, J_7, K_7, L_7}, + {1, J_8, K_8, L_8}, + {1, J_9, K_9, L_9}, + {1, J_10, K_10, L_10}, + + /*row5*/ + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + {0, D_15, E_15, F_15}, + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + {1, J_5, K_5, L_5}, + {1, J_6, K_6, L_6}, + +}; +#endif + +void keyboard_pre_init_kb(void) { + setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock + writePinLow(LED_WIN_LOCK_PIN); + keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui); + } + return res; +} diff --git a/keyboards/monsgeek/m5/mcuconf.h b/keyboards/monsgeek/m5/mcuconf.h new file mode 100644 index 00000000000..0d16f4f04e4 --- /dev/null +++ b/keyboards/monsgeek/m5/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/monsgeek/m5/readme.md b/keyboards/monsgeek/m5/readme.md new file mode 100644 index 00000000000..6574b3d6631 --- /dev/null +++ b/keyboards/monsgeek/m5/readme.md @@ -0,0 +1,20 @@ +# m5 + +A customizable 100% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: m5 +* Hardware Availability: [monsgeek](https://www.monsgeek.com/) + +Make example for this keyboard (after setting up your build environment): + + make monsgeek/m5:default + +Flashing example for this keyboard: + + make monsgeek/m5:default:flash + +## Bootloader +**Reset Key**: Hold down the key located at *K000*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/monsgeek/m5/rules.mk b/keyboards/monsgeek/m5/rules.mk new file mode 100644 index 00000000000..24d5f6f52ec --- /dev/null +++ b/keyboards/monsgeek/m5/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h new file mode 100644 index 00000000000..5fcd897429a --- /dev/null +++ b/keyboards/monsgeek/m6/config.h @@ -0,0 +1,51 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 + +/* Use 6 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 92 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/monsgeek/m6/halconf.h b/keyboards/monsgeek/m6/halconf.h new file mode 100644 index 00000000000..2f64e65393a --- /dev/null +++ b/keyboards/monsgeek/m6/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This 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 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/monsgeek/m6/info.json b/keyboards/monsgeek/m6/info.json new file mode 100644 index 00000000000..d23d2f83222 --- /dev/null +++ b/keyboards/monsgeek/m6/info.json @@ -0,0 +1,232 @@ +{ + "keyboard_name": "M6", + "manufacturer": "MonsGeek", + "maintainer": "jonylee@hfd", + "usb": { + "force_nkro": true, + "vid": "0xFFFE", + "pid": "0x0011", + "device_version": "1.0.0", + "suspend_wakeup_delay": 400 + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2"], + "rows": ["C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "rgb_matrix": { + "driver": "is31fl3733", + "max_brightness": 200, + "val_steps": 20, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + { "flags": 4, "matrix": [0, 1], "x": 13, "y": 0}, + { "flags": 4, "matrix": [0, 2], "x": 26, "y": 0}, + { "flags": 4, "matrix": [0, 3], "x": 39, "y": 0}, + { "flags": 4, "matrix": [0, 4], "x": 52, "y": 0}, + { "flags": 4, "matrix": [0, 5], "x": 65, "y": 0}, + { "flags": 4, "matrix": [0, 6], "x": 78, "y": 0}, + { "flags": 4, "matrix": [0, 7], "x":115, "y": 0}, + { "flags": 4, "matrix": [0, 8], "x":128, "y": 0}, + { "flags": 4, "matrix": [0, 9], "x":141, "y": 0}, + { "flags": 4, "matrix": [0, 10], "x":154, "y": 0}, + { "flags": 4, "matrix": [0, 11], "x":167, "y": 0}, + { "flags": 4, "matrix": [0, 12], "x":180, "y": 0}, + { "flags": 4, "matrix": [0, 13], "x":193, "y": 0}, + { "flags": 4, "matrix": [0, 15], "x":224, "y": 0}, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, + { "flags": 4, "matrix": [1, 1], "x": 19, "y": 16}, + { "flags": 4, "matrix": [1, 2], "x": 33, "y": 16}, + { "flags": 4, "matrix": [1, 3], "x": 46, "y": 16}, + { "flags": 4, "matrix": [1, 4], "x": 59, "y": 16}, + { "flags": 4, "matrix": [1, 5], "x": 72, "y": 16}, + { "flags": 4, "matrix": [1, 6], "x":108, "y": 16}, + { "flags": 4, "matrix": [1, 7], "x":122, "y": 16}, + { "flags": 4, "matrix": [1, 8], "x":135, "y": 16}, + { "flags": 4, "matrix": [1, 9], "x":148, "y": 16}, + { "flags": 4, "matrix": [1, 10], "x":161, "y": 16}, + { "flags": 4, "matrix": [1, 11], "x":174, "y": 16}, + { "flags": 4, "matrix": [1, 12], "x":187, "y": 16}, + { "flags": 4, "matrix": [1, 13], "x":200, "y": 16}, + { "flags": 4, "matrix": [1, 15], "x":224, "y": 16}, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 32}, + { "flags": 4, "matrix": [2, 1], "x": 23, "y": 32}, + { "flags": 4, "matrix": [2, 2], "x": 36, "y": 32}, + { "flags": 4, "matrix": [2, 3], "x": 49, "y": 32}, + { "flags": 4, "matrix": [2, 4], "x": 62, "y": 32}, + { "flags": 4, "matrix": [2, 5], "x": 75, "y": 32}, + { "flags": 4, "matrix": [2, 6], "x":112, "y": 32}, + { "flags": 4, "matrix": [2, 7], "x":125, "y": 32}, + { "flags": 4, "matrix": [2, 8], "x":138, "y": 32}, + { "flags": 4, "matrix": [2, 9], "x":151, "y": 32}, + { "flags": 4, "matrix": [2, 10], "x":164, "y": 32}, + { "flags": 4, "matrix": [2, 11], "x":177, "y": 32}, + { "flags": 4, "matrix": [2, 12], "x":190, "y": 32}, + { "flags": 4, "matrix": [2, 13], "x":203, "y": 32}, + { "flags": 4, "matrix": [2, 15], "x":224, "y": 32}, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 48}, + { "flags": 4, "matrix": [3, 11], "x": 16, "y": 48}, + { "flags": 4, "matrix": [3, 1], "x": 29, "y": 48}, + { "flags": 4, "matrix": [3, 2], "x": 42, "y": 48}, + { "flags": 4, "matrix": [3, 3], "x": 65, "y": 48}, + { "flags": 4, "matrix": [3, 4], "x": 78, "y": 48}, + { "flags": 4, "matrix": [3, 5], "x": 91, "y": 48}, + { "flags": 4, "matrix": [3, 6], "x":105, "y": 48}, + { "flags": 4, "matrix": [3, 7], "x":118, "y": 48}, + { "flags": 4, "matrix": [3, 8], "x":131, "y": 48}, + { "flags": 4, "matrix": [3, 9], "x":144, "y": 48}, + { "flags": 4, "matrix": [3, 10], "x":158, "y": 48}, + { "flags": 4, "matrix": [3, 13], "x":171, "y": 48}, + { "flags": 4, "matrix": [3, 14], "x":184, "y": 48}, + { "flags": 4, "matrix": [3, 15], "x":210, "y": 48}, + + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 64}, + { "flags": 4, "matrix": [4, 1], "x": 37, "y": 64}, + { "flags": 4, "matrix": [4, 2], "x": 59, "y": 64}, + { "flags": 4, "matrix": [4, 5], "x": 85, "y": 64}, + { "flags": 4, "matrix": [4, 9], "x":105, "y": 64}, + { "flags": 4, "matrix": [4, 10], "x":138, "y": 64}, + { "flags": 4, "matrix": [4, 11], "x":158, "y": 64}, + { "flags": 4, "matrix": [4, 13], "x":196, "y": 64}, + { "flags": 4, "matrix": [4, 14], "x":210, "y": 64}, + { "flags": 4, "matrix": [4, 15], "x":224, "y": 64}, + + { "flags": 2, "x":0, "y":0}, + { "flags": 2, "x":0, "y":6}, + { "flags": 2, "x":0, "y":13}, + { "flags": 2, "x":0, "y":19}, + { "flags": 2, "x":0, "y":25}, + { "flags": 2, "x":0, "y":32}, + { "flags": 2, "x":0, "y":38}, + { "flags": 2, "x":0, "y":45}, + { "flags": 2, "x":0, "y":51}, + { "flags": 2, "x":0, "y":57}, + { "flags": 2, "x":0, "y":64}, + + { "flags": 2, "x":224, "y":0}, + { "flags": 2, "x":224, "y":6}, + { "flags": 2, "x":224, "y":13}, + { "flags": 2, "x":224, "y":19}, + { "flags": 2, "x":224, "y":25}, + { "flags": 2, "x":224, "y":32}, + { "flags": 2, "x":224, "y":38}, + { "flags": 2, "x":224, "y":45}, + { "flags": 2, "x":224, "y":51}, + { "flags": 2, "x":224, "y":57}, + { "flags": 2, "x":224, "y":64} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y":0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 8.75, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "Bksp", "matrix": [0, 13], "w": 2, "x": 14.75, "y": 0 }, + { "label": "Del", "matrix": [0, 15], "x": 17, "y": 0 }, + + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1.25 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1.25 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1.25 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1.25 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1.25 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1.25 }, + { "label": "Y", "matrix": [1, 6], "x": 8.25, "y": 1.25 }, + { "label": "U", "matrix": [1, 7], "x": 9.25, "y": 1.25 }, + { "label": "I", "matrix": [1, 8], "x": 10.25, "y": 1.25 }, + { "label": "O", "matrix": [1, 9], "x": 11.25, "y": 1.25 }, + { "label": "P", "matrix": [1, 10], "x": 12.25, "y": 1.25 }, + { "label": "{", "matrix": [1, 11], "x": 13.25, "y": 1.25 }, + { "label": "}", "matrix": [1, 12], "x": 14.25, "y": 1.25 }, + { "label": "|", "matrix": [1, 13], "w": 1.5, "x": 15.25, "y": 1.25 }, + { "label": "PageUp", "matrix": [1, 15], "x": 17, "y": 1.25 }, + + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2.25 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2.25 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2.25 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2.25 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2.25 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2.25 }, + { "label": "H", "matrix": [2, 6], "x": 8.5, "y": 2.25 }, + { "label": "J", "matrix": [2, 7], "x": 9.5, "y": 2.25 }, + { "label": "K", "matrix": [2, 8], "x": 10.5, "y": 2.25 }, + { "label": "L", "matrix": [2, 9], "x": 11.5, "y": 2.25 }, + { "label": ":", "matrix": [2, 10], "x": 12.5, "y": 2.25 }, + { "label": "'", "matrix": [2, 11], "x": 13.5, "y": 2.25 }, + { "label": ":", "matrix": [2, 12], "x": 14.5, "y": 2.25 }, + { "label": "Enter", "matrix": [2, 13], "w": 2.25, "x": 14.5, "y": 2.25 }, + { "label": "PageDn", "matrix": [2, 15], "x": 17, "y": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3.25 }, + { "label": ":", "matrix": [3, 11], "x": 1.25, "y": 3.25 }, + { "label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3.25 }, + { "label": "X", "matrix": [3, 2], "x": 3.25, "y": 3.25 }, + { "label": "C", "matrix": [3, 3], "x": 4.25, "y": 3.25 }, + { "label": "V", "matrix": [3, 4], "x": 5.25, "y": 3.25 }, + { "label": "B", "matrix": [3, 5], "x": 6.25, "y": 3.25 }, + { "label": "B", "matrix": [3, 6], "x": 8, "y": 3.25 }, + { "label": "N", "matrix": [3, 7], "x": 9, "y": 3.25 }, + { "label": "M", "matrix": [3, 8], "x": 10, "y": 3.25 }, + { "label": "<", "matrix": [3, 9], "x": 11, "y": 3.25 }, + { "label": ">", "matrix": [3, 10], "x": 12, "y": 3.25 }, + { "label": "?", "matrix": [3, 13], "x": 13, "y": 3.25 }, + { "label": "Shift", "matrix": [3, 14], "w": 1.75, "x": 14, "y": 3.25 }, + { "label": "Up", "matrix": [3, 15], "x": 16, "y": 3.25 }, + + { "label": "Ctrl", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4.25 }, + { "label": "Alt", "matrix": [4, 1], "w": 1.5, "x": 3, "y": 4.25 }, + { "label": "Space", "matrix": [4, 2], "w": 2, "x": 4.5, "y": 4.25 }, + { "label": "Win", "matrix": [4, 5], "w": 1.25, "x": 6.5, "y": 4.25 }, + { "label": "Space", "matrix": [4, 9], "w": 2.5, "x": 8, "y": 4.25 }, + { "label": "Alt", "matrix": [4, 10], "w":1.5, "x": 10.5, "y": 4.25 }, + { "label": "Fn", "matrix": [4, 11], "w":1.5, "x": 12, "y": 4.25 }, + { "label": "Left", "matrix": [4, 13], "x": 15, "y": 4.25 }, + { "label": "Down", "matrix": [4, 14], "x": 16, "y": 4.25 }, + { "label": "Right", "matrix": [4, 15], "x": 17, "y": 4.25 } + ] + } + } +} diff --git a/keyboards/monsgeek/m6/keymaps/default/keymap.c b/keyboards/monsgeek/m6/keymaps/default/keymap.c new file mode 100644 index 00000000000..8a03db1790b --- /dev/null +++ b/keyboards/monsgeek/m6/keymaps/default/keymap.c @@ -0,0 +1,76 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, MO(WIN_FN), KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, _______, KC_A, KC_S, KC_D), + + [WIN_FN] = 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, _______, RGB_MOD, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, DF(MAC_B),KC_PSCR,_______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPD, RGB_SPI, _______, RGB_HUI, KC_END, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, GU_TOGG, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT( /* 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_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_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, 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_LCTL, KC_LGUI, KC_SPC, KC_LALT, KC_SPC, KC_RGUI, MO(WIN_FN), KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, _______, KC_A, KC_S, KC_D), + + [MAC_FN] = LAYOUT( /* FN */ + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, _______, RGB_MOD, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, DF(WIN_B),KC_PSCR,_______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPD, RGB_SPI, _______, RGB_HUI, KC_END, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), +}; + diff --git a/keyboards/monsgeek/m6/keymaps/via/keymap.c b/keyboards/monsgeek/m6/keymaps/via/keymap.c new file mode 100644 index 00000000000..b7e8cecd71d --- /dev/null +++ b/keyboards/monsgeek/m6/keymaps/via/keymap.c @@ -0,0 +1,76 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) +#define KC_SIRI LCMD(KC_SPC) +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, MO(WIN_FN), KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, _______, KC_A, KC_S, KC_D), + + [WIN_FN] = 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, _______, RGB_MOD, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, DF(MAC_B),KC_PSCR,_______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPD, RGB_SPI, _______, RGB_HUI, KC_END, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, GU_TOGG, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT( /* 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_SPC, KC_LALT, KC_SPC, KC_RGUI, MO(MAC_FN), KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, _______, KC_A, KC_S, KC_D), + + [MAC_FN] = LAYOUT( /* FN */ + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, _______, RGB_MOD, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, DF(WIN_B),KC_PSCR,_______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPD, RGB_SPI, _______, RGB_HUI, KC_END, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), +}; + diff --git a/keyboards/monsgeek/m6/keymaps/via/rules.mk b/keyboards/monsgeek/m6/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/monsgeek/m6/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/monsgeek/m6/keymaps/vial/config.h b/keyboards/monsgeek/m6/keymaps/vial/config.h new file mode 100644 index 00000000000..6ded7422791 --- /dev/null +++ b/keyboards/monsgeek/m6/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x4C, 0x18, 0xFC, 0x92, 0x2C, 0x74, 0x6D, 0xF7} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } \ No newline at end of file diff --git a/keyboards/monsgeek/m6/keymaps/vial/keymap.c b/keyboards/monsgeek/m6/keymaps/vial/keymap.c new file mode 100644 index 00000000000..b7e8cecd71d --- /dev/null +++ b/keyboards/monsgeek/m6/keymaps/vial/keymap.c @@ -0,0 +1,76 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) +#define KC_SIRI LCMD(KC_SPC) +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, MO(WIN_FN), KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, _______, KC_A, KC_S, KC_D), + + [WIN_FN] = 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, _______, RGB_MOD, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, KC_INS, DF(MAC_B),KC_PSCR,_______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPD, RGB_SPI, _______, RGB_HUI, KC_END, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, GU_TOGG, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT( /* 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_SPC, KC_LALT, KC_SPC, KC_RGUI, MO(MAC_FN), KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, _______, KC_A, KC_S, KC_D), + + [MAC_FN] = LAYOUT( /* FN */ + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD,KC_VOLU, _______, RGB_MOD, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, KC_INS, DF(WIN_B),KC_PSCR,_______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPD, RGB_SPI, _______, RGB_HUI, KC_END, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), +}; + diff --git a/keyboards/monsgeek/m6/keymaps/vial/rules.mk b/keyboards/monsgeek/m6/keymaps/vial/rules.mk new file mode 100644 index 00000000000..6bc7063adc2 --- /dev/null +++ b/keyboards/monsgeek/m6/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/monsgeek/m6/keymaps/vial/vial.json b/keyboards/monsgeek/m6/keymaps/vial/vial.json new file mode 100644 index 00000000000..586ff20e761 --- /dev/null +++ b/keyboards/monsgeek/m6/keymaps/vial/vial.json @@ -0,0 +1,256 @@ +{ + "name": "M6", + "vendorId": "0xFFFE", + "productId": "0x0011", + "lighting": "vialrgb", + "matrix": { "rows": 5, "cols": 16 }, + "layouts": { + "keymap":[ + [ + { + "y": 0.25, + "x": 2.75 + }, + "0,2", + { + "x": 9 + }, + "0,11" + ], + [ + { + "y": -0.75, + "x": 0.75, + "c": "#aaaaaa" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + { + "x": 11 + }, + "0,12", + { + "c": "#777777", + "w": 2 + }, + "0,13", + { + "x": 1.25 + }, + "0,15" + ], + [ + { + "x": 0.75, + "w": 1.5 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + { + "x": 9.25 + }, + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "1,13", + { + "x": 1, + "c": "#777777" + }, + "1,15" + ], + [ + { + "x": 0.5, + "w": 2 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + { + "x": 9.5 + }, + "2,10", + "2,11", + { + "c": "#aaaaaa", + "w": 2.25 + }, + "2,13", + { + "x": 0.75, + "c": "#777777" + }, + "2,15" + ], + [ + { + "x": 0.25, + "w": 2.5 + }, + "3,0", + { + "x": 10, + "c": "#cccccc" + }, + "3,10", + "3,13", + { + "c": "#777777", + "w": 2 + }, + "3,14", + { + "x": 0.25 + }, + "3,15" + ], + [ + { + "x": 0.25, + "w": 1.5 + }, + "4,0", + { + "x": 11.25, + "w": 1.25 + }, + "4,11", + { + "x": 1.75 + }, + "4,13", + "4,14", + "4,15" + ], + [ + { + "rx": 1, + "y": 3.5, + "x": 1.75, + "c": "#cccccc" + }, + "3,1" + ], + [ + { + "r": 10, + "rx": 1.5, + "x": 2.5 + }, + "0,3", + "0,4", + "0,5", + "0,6" + ], + [ + { + "x": 2.25 + }, + "1,2", + "1,3", + "1,4", + "1,5" + ], + [ + { + "x": 2.75 + }, + "2,2", + "2,3", + "2,4", + "2,5" + ], + [ + { + "x": 3.25 + }, + "3,2", + "3,3", + "3,4", + "3,5" + ], + [ + { + "x": 3, + "c": "#777777", + "w": 1.25 + }, + "4,1", + { + "c": "#cccccc", + "w": 2 + }, + "4,2", + { + "c": "#777777", + "w": 1.25 + }, + "4,5" + ], + [ + { + "r": -10, + "rx": 1, + "y": 2.5, + "x": 7.25, + "c": "#cccccc" + }, + "0,7", + "0,8", + "0,9", + "0,10" + ], + [ + { + "x": 6.75 + }, + "1,6", + "1,7", + "1,8", + "1,9" + ], + [ + { + "x": 7 + }, + "2,6", + "2,7", + "2,8", + "2,9" + ], + [ + { + "x": 6.5 + }, + "3,6", + "3,7", + "3,8", + "3,9" + ], + [ + { + "x": 6.5, + "w": 2.5 + }, + "4,9", + { + "c": "#777777", + "w": 1.75 + }, + "4,10" + ] + ] + } + } diff --git a/keyboards/monsgeek/m6/m6.c b/keyboards/monsgeek/m6/m6.c new file mode 100644 index 00000000000..1823d865cce --- /dev/null +++ b/keyboards/monsgeek/m6/m6.c @@ -0,0 +1,197 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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" +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, D_2, E_2, F_2}, + + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, A_15, B_15, C_15}, + {0, G_13, H_13, I_13}, + {1, D_3, E_3, F_3}, + + {0, J_1, K_1, L_1}, + {0, A_16, B_16, C_16}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, D_7, E_7, F_7}, + {1, D_4, E_4, F_4}, + + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + {0, D_15, E_15, F_15}, + {1, D_6, E_6, F_6}, + {1, D_5, E_5, F_5}, + + + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + {1, G_4, H_4, I_4}, + {1, G_5, H_5, I_5}, + {1, G_6, H_6, I_6}, + {1, G_7, H_7, I_7}, + {1, G_8, H_8, I_8}, + {1, G_9, H_9, I_9}, + {1, G_10, H_10, I_10}, + {1, G_11, H_11, I_11}, + + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + {1, J_4, K_4, L_4}, + {1, J_5, K_5, L_5}, + {1, J_6, K_6, L_6}, + {1, J_7, K_7, L_7}, + {1, J_8, K_8, L_8}, + {1, J_9, K_9, L_9}, + {1, J_10, K_10, L_10}, + {1, J_11, K_11, L_11}, +}; + +// clang-format on +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(30, 255, 255, 255); + } + else + { + if (!rgb_matrix_get_flags()) + { + RGB_MATRIX_INDICATOR_SET_COLOR(30, 0, 0, 0); + } + } + if (keymap_config.no_gui) + { + RGB_MATRIX_INDICATOR_SET_COLOR(63, 255, 255, 255); + } + else + { + if (!rgb_matrix_get_flags()) + { + RGB_MATRIX_INDICATOR_SET_COLOR(63, 0, 0, 0); + } + } + return true; +} + +#endif +bool process_record_kb(uint16_t keycode, keyrecord_t *record) +{ + if (!process_record_user(keycode, record)) + { + return false; + } + switch (keycode) + { + case RGB_TOG: + if (record->event.pressed) + { + switch (rgb_matrix_get_flags()) + { + case LED_FLAG_ALL: + { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: + { + rgb_matrix_set_flags(LED_FLAG_ALL); + } + break; + } + } + if (!rgb_matrix_is_enabled()) + { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + default: + return true; + } +} \ No newline at end of file diff --git a/keyboards/monsgeek/m6/mcuconf.h b/keyboards/monsgeek/m6/mcuconf.h new file mode 100644 index 00000000000..e2884f3828f --- /dev/null +++ b/keyboards/monsgeek/m6/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This 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 WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/monsgeek/m6/readme.md b/keyboards/monsgeek/m6/readme.md new file mode 100644 index 00000000000..ca30e5da204 --- /dev/null +++ b/keyboards/monsgeek/m6/readme.md @@ -0,0 +1,19 @@ +# monsgeek m6 keyboard + +A customizable 60% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: m6 +* Hardware Availability: [monsgeek](https://www.monsgeek.com/) + +Make example for this keyboard (after setting up your build environment): + + make monsgeek/m6:default + +Flashing example for this keyboard: + + make monsgeek/m6:default:flash + +**Reset Key**: Hold down the key located at *K00*, which programmed as *Esc* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/monsgeek/m6/rules.mk b/keyboards/monsgeek/m6/rules.mk new file mode 100644 index 00000000000..24d5f6f52ec --- /dev/null +++ b/keyboards/monsgeek/m6/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/monstargear/xo87/rgb/config.h b/keyboards/monstargear/xo87/rgb/config.h index 34d301311b9..770c20f0194 100644 --- a/keyboards/monstargear/xo87/rgb/config.h +++ b/keyboards/monstargear/xo87/rgb/config.h @@ -22,7 +22,6 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 // limits maximum brightness of LEDs to 100 out of 255. #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGBLED_NUM 110 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/monstargear/xo87/rgb/info.json b/keyboards/monstargear/xo87/rgb/info.json index ebbfa848c18..96b0319945c 100644 --- a/keyboards/monstargear/xo87/rgb/info.json +++ b/keyboards/monstargear/xo87/rgb/info.json @@ -12,7 +12,7 @@ "pin": "D7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { "max_brightness": 100 diff --git a/keyboards/monstargear/xo87/solderable/config.h b/keyboards/monstargear/xo87/solderable/config.h index f8e73dccb85..088e09dc81a 100644 --- a/keyboards/monstargear/xo87/solderable/config.h +++ b/keyboards/monstargear/xo87/solderable/config.h @@ -24,19 +24,5 @@ #define KEYLED_ROW_PINS { E5,B4,B5,F0,C6,D5 } #define KEYLED_COL_PINS { C4,C2,C0,E0,D4,E4,B6,B2,F4,A0,F2,A4,F1,A7,D3,A3 } -#define RGB_MATRIX_LED_COUNT 21 -#define DRIVER_COUNT 2 -#define RGBLED_NUM 21 -#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 LOCKING_SUPPORT_ENABLE #define LOCKING_RESYNC_ENABLE diff --git a/keyboards/monstargear/xo87/solderable/info.json b/keyboards/monstargear/xo87/solderable/info.json index 9a389686180..7013ce903db 100644 --- a/keyboards/monstargear/xo87/solderable/info.json +++ b/keyboards/monstargear/xo87/solderable/info.json @@ -17,6 +17,21 @@ "driver": "custom", "pin": "F0" }, + "rgblight": { + "led_count": 21, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D7" }, diff --git a/keyboards/montsinger/rebound/rev4/config.h b/keyboards/montsinger/rebound/rev4/config.h index b0b9bb6c179..274c715a937 100644 --- a/keyboards/montsinger/rebound/rev4/config.h +++ b/keyboards/montsinger/rebound/rev4/config.h @@ -18,6 +18,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 17 diff --git a/keyboards/montsinger/rebound/rev4/info.json b/keyboards/montsinger/rebound/rev4/info.json index 9f4e89497e0..565e56701f9 100644 --- a/keyboards/montsinger/rebound/rev4/info.json +++ b/keyboards/montsinger/rebound/rev4/info.json @@ -18,6 +18,9 @@ {"pin_a": "D2", "pin_b": "D3"} ] }, + "rgblight": { + "led_count": 17 + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/moondrop/dash75/keymaps/default/keymap.json b/keyboards/moondrop/dash75/keymaps/default/keymap.json index 67811c18a37..8e2797ebf51 100644 --- a/keyboards/moondrop/dash75/keymaps/default/keymap.json +++ b/keyboards/moondrop/dash75/keymaps/default/keymap.json @@ -1,7 +1,7 @@ { "version": 1, "notes": "This file is a keymap.json file for moondrop/dash75", - "keyboard": "moondrop/dash75", + "keyboard": "moondrop/dash75/r1", "keymap": "default", "layout": "LAYOUT", "author": "vinorodrigues", diff --git a/keyboards/moondrop/dash75/keymaps/via/keymap.json b/keyboards/moondrop/dash75/keymaps/via/keymap.json index 6d43ee82c80..d811aaa7803 100644 --- a/keyboards/moondrop/dash75/keymaps/via/keymap.json +++ b/keyboards/moondrop/dash75/keymaps/via/keymap.json @@ -1,7 +1,7 @@ { "version": 1, "notes": "This file is a keymap.json file for moondrop/dash75", - "keyboard": "moondrop/dash75", + "keyboard": "moondrop/dash75/r1", "keymap": "via", "layout": "LAYOUT", "author": "vinorodrigues", diff --git a/keyboards/moonlander/info.json b/keyboards/moonlander/info.json index fc09859f826..acbb278a332 100644 --- a/keyboards/moonlander/info.json +++ b/keyboards/moonlander/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "processor": "STM32F303", "bootloader": "stm32-dfu", diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h index f68b60379c2..0e5282c511a 100644 --- a/keyboards/moonlander/moonlander.h +++ b/keyboards/moonlander/moonlander.h @@ -34,37 +34,6 @@ extern bool mcp23018_leds[]; #define ML_LED_5(status) mcp23018_leds[1] = (bool)status #define ML_LED_6(status) mcp23018_leds[2] = (bool)status - -// clang-format off -#define LED_LAYOUT_moonlander( \ - l00, l01, l02, l03, l04, l05, l06, l60, l61, l62, l63, l64, l65, l66, \ - l10, l11, l12, l13, l14, l15, l16, l70, l71, l72, l73, l74, l75, l76, \ - l20, l21, l22, l23, l24, l25, l26, l80, l81, l82, l83, l84, l85, l86, \ - l30, l31, l32, l33, l34, l35, l91, l92, l93, l94, l95, l96, \ - l40, l41, l42, l43, l44, l53, lb3, la2, la3, la4, la5, la6, \ - l50, l51, l52, lb4, lb5, lb6 \ -) \ -{ \ - l00, l10, l20, l30, l40, \ - l01, l11, l21, l31, l41, \ - l02, l12, l22, l32, l42, \ - l03, l13, l23, l33, l43, \ - l04, l14, l24, l34, l44, \ - l05, l15, l25, l35, \ - l06, l16, l26, \ - l50, l51, l52, l53, \ -\ - l66, l76, l86, l96, la6, \ - l65, l75, l85, l95, la5, \ - l64, l74, l84, l94, la4, \ - l63, l73, l83, l93, la3, \ - l62, l72, l82, l92, la2, \ - l61, l71, l81, l91, \ - l60, l70, l80, \ - lb6, lb5, lb4, lb3 \ -} -// clang-format on - enum planck_ez_keycodes { TOGGLE_LAYER_COLOR = QK_KB_0, LED_LEVEL, diff --git a/keyboards/mothwing/info.json b/keyboards/mothwing/info.json new file mode 100644 index 00000000000..350c52c72e4 --- /dev/null +++ b/keyboards/mothwing/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "mothwing", + "manufacturer": "Luana co.ltd.", + "url": "", + "maintainer": "tan-t", + "usb": { + "vid": "0x4D77", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], + "rows": ["D4", "C6", "D7", "E6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 1.18}, + {"matrix": [0, 1], "x": 1, "y": 1.03}, + {"matrix": [0, 2], "x": 2, "y": 0.35}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.05}, + {"matrix": [0, 5], "x": 5, "y": 0.1}, + + {"matrix": [4, 5], "x": 11.5, "y": 0.1}, + {"matrix": [4, 4], "x": 12.5, "y": 0.05}, + {"matrix": [4, 3], "x": 13.5, "y": 0}, + {"matrix": [4, 2], "x": 14.5, "y": 0.35}, + {"matrix": [4, 1], "x": 15.5, "y": 1.08}, + {"matrix": [4, 0], "x": 16.5, "y": 1.18}, + + {"matrix": [1, 0], "x": 0, "y": 2.18}, + {"matrix": [1, 1], "x": 1, "y": 2.03}, + {"matrix": [1, 2], "x": 2, "y": 1.35}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.05}, + {"matrix": [1, 5], "x": 5, "y": 1.1}, + + {"matrix": [5, 5], "x": 11.5, "y": 1.1}, + {"matrix": [5, 4], "x": 12.5, "y": 1.05}, + {"matrix": [5, 3], "x": 13.5, "y": 1}, + {"matrix": [5, 2], "x": 14.5, "y": 1.35}, + {"matrix": [5, 1], "x": 15.5, "y": 2.03}, + {"matrix": [5, 0], "x": 16.5, "y": 2.18}, + + {"matrix": [2, 0], "x": 0, "y": 3.18}, + {"matrix": [2, 1], "x": 1, "y": 3.03}, + {"matrix": [2, 2], "x": 2, "y": 2.35}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.05}, + {"matrix": [2, 5], "x": 5, "y": 2.1}, + + {"matrix": [6, 5], "x": 11.5, "y": 2.1}, + {"matrix": [6, 4], "x": 12.5, "y": 2.05}, + {"matrix": [6, 3], "x": 13.5, "y": 2}, + {"matrix": [6, 2], "x": 14.5, "y": 2.35}, + {"matrix": [6, 1], "x": 15.5, "y": 3.03}, + {"matrix": [6, 0], "x": 16.5, "y": 3.18}, + + {"matrix": [3, 2], "x": 4, "y": 3.05}, + {"matrix": [3, 3], "x": 5, "y": 3.1}, + {"matrix": [3, 4], "x": 6, "y": 3.2, "w": 1.25}, + {"matrix": [3, 5], "x": 7.25, "y": 3.5}, + + {"matrix": [7, 5], "x": 9.25, "y": 3.5}, + {"matrix": [7, 4], "x": 10.25, "y": 3.2, "w": 1.25}, + {"matrix": [7, 3], "x": 11.5, "y": 3.1}, + {"matrix": [7, 2], "x": 12.5, "y": 3.05} + ] + } + } +} diff --git a/keyboards/mothwing/keymaps/default/keymap.c b/keyboards/mothwing/keymaps/default/keymap.c new file mode 100644 index 00000000000..0c6923403dd --- /dev/null +++ b/keyboards/mothwing/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +// 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 layer_number { + _QWERTY, + _RAISE, + _LOWER, +}; + +#define KC_L_SPC LT(_LOWER, KC_SPC) // lower +#define KC_R_ENT LT(_RAISE, KC_ENT) // raise +#define KC_G_JA LGUI_T(KC_LNG1) // cmd or win +#define KC_G_EN LGUI_T(KC_LNG2) // cmd or win +#define KC_C_BS LCTL_T(KC_BSPC) // ctrl +#define KC_A_DEL ALT_T(KC_DEL) // alt + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + //,--------+--------+---------+--------+---------+--------. ,--------+---------+--------+---------+--------+--------. + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+---------+--------+---------+--------/ \--------+---------+--------+---------+--------+--------' + KC_A_DEL, KC_G_EN, KC_L_SPC, KC_C_BS, KC_C_BS, KC_R_ENT, KC_G_JA, KC_A_DEL + // `----------+--------+---------+--------' `--------+---------+--------+---------' + ), + + [_RAISE] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + _______, _______, _______, _______, _______, _______, _______, QK_BOOT + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + + [_LOWER] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + QK_BOOT , _______, _______, _______, _______, _______, _______, _______ + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), +}; diff --git a/keyboards/mothwing/keymaps/via/keymap.c b/keyboards/mothwing/keymaps/via/keymap.c new file mode 100644 index 00000000000..ba3f5353d97 --- /dev/null +++ b/keyboards/mothwing/keymaps/via/keymap.c @@ -0,0 +1,72 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +// 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 layer_number { + _QWERTY, + _RAISE, + _LOWER +}; + +#define KC_L_SPC LT(_LOWER, KC_SPC) // lower +#define KC_R_ENT LT(_RAISE, KC_ENT) // raise +#define KC_G_JA LGUI_T(KC_LNG1) // cmd or win +#define KC_G_EN LGUI_T(KC_LNG2) // cmd or win +#define KC_C_BS LCTL_T(KC_BSPC) // ctrl +#define KC_A_DEL ALT_T(KC_DEL) // alt + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + //,--------+--------+---------+--------+---------+--------. ,--------+---------+--------+---------+--------+--------. + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+---------+--------+---------+--------/ \--------+---------+--------+---------+--------+--------' + KC_A_DEL, KC_G_EN, KC_L_SPC, KC_C_BS, KC_C_BS, KC_R_ENT, KC_G_JA, KC_A_DEL + // `----------+--------+---------+--------' `--------+---------+--------+---------' + ), + + [_RAISE] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + _______, _______, _______, _______, _______, _______, _______, QK_BOOT + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + + [_LOWER] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + QK_BOOT , _______, _______, _______, _______, _______, _______, _______ + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ) +}; diff --git a/keyboards/mothwing/keymaps/via/rules.mk b/keyboards/mothwing/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/mothwing/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mothwing/readme.md b/keyboards/mothwing/readme.md new file mode 100644 index 00000000000..184f608c5d5 --- /dev/null +++ b/keyboards/mothwing/readme.md @@ -0,0 +1,23 @@ +# MOTHWING + +A split keyboard with 3x6 vertically staggered keys and 4 thumb keys. + +* Keyboard Maintainer: [tan-t](https://github.com/tan-t) +* Hardware Supported: MOTHWING PCB +* Hardware Availability: currently unavailable. merch will be open around August 2023. + +Make example for this keyboard (after setting up your build environment): + + make mothwing:default + +Flashing example for this keyboard: + + make mothwing: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 by: + +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mothwing/rules.mk b/keyboards/mothwing/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/ms_sculpt/info.json b/keyboards/ms_sculpt/info.json index 7afd13d96df..3536d4501f1 100644 --- a/keyboards/ms_sculpt/info.json +++ b/keyboards/ms_sculpt/info.json @@ -12,12 +12,16 @@ "mousekey": false, "nkro": false }, + "build": { + "debounce_type": "sym_eager_pk" + }, "matrix_pins": { "rows": ["B10", "B1", "B0", "A7", "A6", "A5", "A4", "A3"], "cols": ["A2", "B8", "A0", "C15", "C14", "A14", "A13", "B7", "B6", "B5", "B4", "B3", "A15", "A10", "A8", "B15", "B14", "B12"], "ghost": true, "io_delay": 5 }, + "debounce": 3, "processor": "STM32F401", "url": "", "usb": { diff --git a/keyboards/ms_sculpt/rules.mk b/keyboards/ms_sculpt/rules.mk index d64abe822d7..6e7633bfe01 100644 --- a/keyboards/ms_sculpt/rules.mk +++ b/keyboards/ms_sculpt/rules.mk @@ -1,3 +1 @@ # This file intentionally left blank -DEBOUNCE_TYPE = sym_eager_pk -DEBOUNCE = 3 diff --git a/keyboards/mss_studio/m63_rgb/info.json b/keyboards/mss_studio/m63_rgb/info.json index 16577a21e88..197a78a9245 100644 --- a/keyboards/mss_studio/m63_rgb/info.json +++ b/keyboards/mss_studio/m63_rgb/info.json @@ -13,7 +13,7 @@ "pin": "B15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B10", "A7", "A6", "A5", "A4", "B5", "B6", "A1", "B7", "B8", "B9"], diff --git a/keyboards/mss_studio/m64_rgb/info.json b/keyboards/mss_studio/m64_rgb/info.json index 6f300fbbb23..c1850d1191b 100644 --- a/keyboards/mss_studio/m64_rgb/info.json +++ b/keyboards/mss_studio/m64_rgb/info.json @@ -13,7 +13,7 @@ "pin": "B15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B10", "A7", "A6", "A5", "A4", "B5", "B6", "A1", "B7", "B8", "B9"], diff --git a/keyboards/mt/blocked65/config.h b/keyboards/mt/blocked65/config.h index b61be3ea8f5..28be4f1a5b4 100644 --- a/keyboards/mt/blocked65/config.h +++ b/keyboards/mt/blocked65/config.h @@ -21,17 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* Backlight configuration - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 diff --git a/keyboards/mt/blocked65/info.json b/keyboards/mt/blocked65/info.json index db328f8dadc..d260a51b607 100644 --- a/keyboards/mt/blocked65/info.json +++ b/keyboards/mt/blocked65/info.json @@ -8,6 +8,21 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/mt/mt40/config.h b/keyboards/mt/mt40/config.h deleted file mode 100644 index bb901374362..00000000000 --- a/keyboards/mt/mt40/config.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright 2017 REPLACE_WITH_YOUR_NAME - -This 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 RGBLED_NUM 12 -#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 - -/* 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 */ - -/* - * 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/mt/mt40/info.json b/keyboards/mt/mt40/info.json index 4d3cab4ebab..83980bf7943 100644 --- a/keyboards/mt/mt40/info.json +++ b/keyboards/mt/mt40/info.json @@ -14,8 +14,24 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D2" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/mt/mt64rgb/config.h b/keyboards/mt/mt64rgb/config.h index afcb90c5d27..0d877306e31 100644 --- a/keyboards/mt/mt64rgb/config.h +++ b/keyboards/mt/mt64rgb/config.h @@ -80,22 +80,6 @@ #endif -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -// #define RGBLIGHT_EFFECT_RGB_TEST -// #define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 5 -#define RGBLIGHT_SAT_STEP 5 -#define RGBLIGHT_VAL_STEP 5 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mt/mt64rgb/info.json b/keyboards/mt/mt64rgb/info.json index 58ded7742c1..f2723823ee9 100644 --- a/keyboards/mt/mt64rgb/info.json +++ b/keyboards/mt/mt64rgb/info.json @@ -8,11 +8,28 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 5, + "saturation_steps": 5, + "brightness_steps": 5, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "B1", "B2", "B3", "B7"], diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h index 1a2d49d7344..67aae9a1fd5 100644 --- a/keyboards/mt/mt84/config.h +++ b/keyboards/mt/mt84/config.h @@ -83,15 +83,6 @@ #endif -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLED_NUM 18 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mt/mt84/info.json b/keyboards/mt/mt84/info.json index e7a7507d7ee..74343e35839 100644 --- a/keyboards/mt/mt84/info.json +++ b/keyboards/mt/mt84/info.json @@ -8,11 +8,22 @@ "pid": "0x0002", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "B0" }, "rgb_matrix": { - "driver": "IS31FL3737" + "driver": "is31fl3737" }, "matrix_pins": { "cols": ["B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "B1", "B2", "B3", "B7", "E6"], diff --git a/keyboards/mt/mt980/config.h b/keyboards/mt/mt980/config.h index eff34dc5217..5f360813239 100644 --- a/keyboards/mt/mt980/config.h +++ b/keyboards/mt/mt980/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mt/mt980/info.json b/keyboards/mt/mt980/info.json index 809474914fe..b27bf8aae81 100644 --- a/keyboards/mt/mt980/info.json +++ b/keyboards/mt/mt980/info.json @@ -26,7 +26,22 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 185 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "max_brightness": 185, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "bootmagic": { "matrix": [5, 0] diff --git a/keyboards/mt/mt980/keymaps/walker/keymap.c b/keyboards/mt/mt980/keymaps/walker/keymap.c index e98a1d71de4..f0817dd33d5 100644 --- a/keyboards/mt/mt980/keymaps/walker/keymap.c +++ b/keyboards/mt/mt980/keymaps/walker/keymap.c @@ -89,8 +89,8 @@ tap_dance_action_t tap_dance_actions[] = { [ALT_L1] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,alt_finished, alt_reset) }; -void led_set_keymap(uint8_t usb_led) { - if (usb_led & (1<. - */ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 81 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mt/ncr80/hotswap/info.json b/keyboards/mt/ncr80/hotswap/info.json index f02a2f74055..b79a30709f3 100644 --- a/keyboards/mt/ncr80/hotswap/info.json +++ b/keyboards/mt/ncr80/hotswap/info.json @@ -23,7 +23,22 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 81, + "max_brightness": 180, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/mt/split75/config.h b/keyboards/mt/split75/config.h index f954d5fd956..1a2fa71644b 100644 --- a/keyboards/mt/split75/config.h +++ b/keyboards/mt/split75/config.h @@ -7,17 +7,4 @@ #define MATRIX_ROWS 8 #define MATRIX_COLS 14 -#define RGBLED_NUM 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLIGHT_SLEEP - #define I2C_START_RETRY_COUNT 1 diff --git a/keyboards/mt/split75/info.json b/keyboards/mt/split75/info.json index dc20f93dbcb..e03d528a2a4 100644 --- a/keyboards/mt/split75/info.json +++ b/keyboards/mt/split75/info.json @@ -11,6 +11,22 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/mt/split75/keymaps/vial/rules.mk b/keyboards/mt/split75/keymaps/vial/rules.mk index f4a97e31c9e..b18ec7691c2 100644 --- a/keyboards/mt/split75/keymaps/vial/rules.mk +++ b/keyboards/mt/split75/keymaps/vial/rules.mk @@ -7,4 +7,4 @@ LTO_ENABLE = yes BACKLIGHT_ENABLE = no RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 diff --git a/keyboards/mtbkeys/mtb60/hotswap/config.h b/keyboards/mtbkeys/mtb60/hotswap/config.h index 8d174123138..56a9edf0aab 100644 --- a/keyboards/mtbkeys/mtb60/hotswap/config.h +++ b/keyboards/mtbkeys/mtb60/hotswap/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* Turn RGB light off when the host goes to sleep */ -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_TWINKLE # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL /* Set default RGB */ /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/mtbkeys/mtb60/hotswap/info.json b/keyboards/mtbkeys/mtb60/hotswap/info.json index c1acbc3b86a..deb6f6a0fe8 100644 --- a/keyboards/mtbkeys/mtb60/hotswap/info.json +++ b/keyboards/mtbkeys/mtb60/hotswap/info.json @@ -8,6 +8,24 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/mtbkeys/mtb60/solder/config.h b/keyboards/mtbkeys/mtb60/solder/config.h index 8d174123138..56a9edf0aab 100644 --- a/keyboards/mtbkeys/mtb60/solder/config.h +++ b/keyboards/mtbkeys/mtb60/solder/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* Turn RGB light off when the host goes to sleep */ -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_TWINKLE # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL /* Set default RGB */ /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/mtbkeys/mtb60/solder/info.json b/keyboards/mtbkeys/mtb60/solder/info.json index 5cf3a327a1b..9fdca32a3e4 100644 --- a/keyboards/mtbkeys/mtb60/solder/info.json +++ b/keyboards/mtbkeys/mtb60/solder/info.json @@ -8,6 +8,24 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/mwstudio/alicekk/config.h b/keyboards/mwstudio/alicekk/config.h index 2e8b3f3bec2..654ec7e363f 100644 --- a/keyboards/mwstudio/alicekk/config.h +++ b/keyboards/mwstudio/alicekk/config.h @@ -18,19 +18,3 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -#define RGBLED_NUM 87 - -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mwstudio/alicekk/info.json b/keyboards/mwstudio/alicekk/info.json index b77bbd8bdfe..75b65279d64 100644 --- a/keyboards/mwstudio/alicekk/info.json +++ b/keyboards/mwstudio/alicekk/info.json @@ -21,7 +21,22 @@ "pin": "B1" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 87, + "max_brightness": 200, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F103", "bootloader": "stm32duino", diff --git a/keyboards/mwstudio/alicekk/keymaps/via/keymap.c b/keyboards/mwstudio/alicekk/keymaps/via/keymap.c index 92e893d5c52..5c3ae235b14 100644 --- a/keyboards/mwstudio/alicekk/keymaps/via/keymap.c +++ b/keyboards/mwstudio/alicekk/keymaps/via/keymap.c @@ -51,44 +51,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; - -#ifdef ENCODER_ENABLE -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = {{6, 4}}; -static keypos_t encoder_ccw[NUM_ENCODERS] = {{7, 4}}; - -void encoder_action_unregister(void) { - for (uint8_t index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -void matrix_scan_user(void) { - encoder_action_unregister(); -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return false; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, }; #endif diff --git a/keyboards/mwstudio/alicekk/keymaps/via/rules.mk b/keyboards/mwstudio/alicekk/keymaps/via/rules.mk index 541a15608ae..f1adcab005e 100644 --- a/keyboards/mwstudio/alicekk/keymaps/via/rules.mk +++ b/keyboards/mwstudio/alicekk/keymaps/via/rules.mk @@ -1,2 +1,2 @@ VIA_ENABLE = yes -LTO_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mwstudio/mw65_black/config.h b/keyboards/mwstudio/mw65_black/config.h deleted file mode 100644 index f987360d4a4..00000000000 --- a/keyboards/mwstudio/mw65_black/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2021 TW59420 - * - * This 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 RGBLED_NUM 21 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mwstudio/mw65_black/info.json b/keyboards/mwstudio/mw65_black/info.json index baa73a6e3bf..26463406587 100644 --- a/keyboards/mwstudio/mw65_black/info.json +++ b/keyboards/mwstudio/mw65_black/info.json @@ -8,6 +8,11 @@ "pid": "0x6500", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 21 + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/mwstudio/mw65_rgb/info.json b/keyboards/mwstudio/mw65_rgb/info.json index c2a8a6c1882..73e3c0ea247 100644 --- a/keyboards/mwstudio/mw65_rgb/info.json +++ b/keyboards/mwstudio/mw65_rgb/info.json @@ -12,7 +12,7 @@ "pin": "B3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C6", "B6", "B5", "B4", "D7", "D6", "D4", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "E6"], @@ -43,10 +43,7 @@ {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [4, 4], "x": 15, "y": 0, "w": 0.5}, {"matrix": [0, 14], "x": 15.5, "y": 0}, - {"matrix": [4, 3], "x": 16.5, "y": 0, "w": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c index 8153790b143..77750b51743 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c @@ -18,7 +18,7 @@ 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_VOLD, KC_DEL, KC_VOLU, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, RGB_TOG, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [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, _______, _______, RGB_HUI, _______, + 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, _______, RGB_HUI, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c index ef5ea90b611..6179d4cdc1c 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_BASE] = 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_VOLD, KC_HOME, KC_VOLU, + 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, @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_FN] = 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_HOME, _______, _______, _______, + 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_HOME, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUSE, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h index 7fadbdc39c8..bd979e9c818 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h +++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h @@ -273,19 +273,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 3)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 4)); - } - } - return true; -} -#endif - bool rgb_matrix_indicators_user(void) { switch (biton32(layer_state)) { case _FN: diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c index f4625bf7a7c..e51a5e3ab8a 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c @@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_BASE] = 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_VOLD, KC_HOME, KC_VOLU, + 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, @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ [_FN] = 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_HOME, _______, _______, _______, + 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_HOME, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, KC_PAUSE, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, KC_PSCR, KC_DEL, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, RGB_VAI, RGB_TOG, @@ -168,19 +168,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 3)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 4)); - } - } - return true; -} -#endif - bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c index a1b54a8411c..827cd0db382 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c @@ -34,7 +34,7 @@ enum custom_keycodes { 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_VOLD, KC_DEL, KC_VOLU, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, RGB_TOG, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [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, _______, _______, RGB_HUI, _______, + 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, _______, RGB_HUI, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, USER00, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, USER01, RGB_VAI, RGB_SAD, @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -96,17 +96,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(get_highest_layer(layer_state), 4, 3)); - } else { - tap_code(dynamic_keymap_get_keycode(get_highest_layer(layer_state), 4, 4)); - } - } - return true; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; #endif bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk b/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk +++ b/keyboards/mwstudio/mw65_rgb/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mwstudio/mw660/config.h b/keyboards/mwstudio/mw660/config.h index 8c5cad9beff..87659c1f67c 100644 --- a/keyboards/mwstudio/mw660/config.h +++ b/keyboards/mwstudio/mw660/config.h @@ -16,9 +16,6 @@ #pragma once -#define DRIVER_LED_TOTAL 34 -#define RGBLED_NUM 34 - #define WS2812_PWM_DRIVER PWMD4 // default: PWMD2 #define WS2812_PWM_CHANNEL 3 // default: 2 //#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). diff --git a/keyboards/mwstudio/mw660/info.json b/keyboards/mwstudio/mw660/info.json index 5d1edb296f5..fdbd7564a7b 100644 --- a/keyboards/mwstudio/mw660/info.json +++ b/keyboards/mwstudio/mw660/info.json @@ -12,6 +12,9 @@ "nkro": true, "rgblight": true }, + "rgblight": { + "led_count": 34 + }, "ws2812": { "pin": "B8" }, diff --git a/keyboards/mwstudio/mw75/config.h b/keyboards/mwstudio/mw75/config.h index 0a9b073ce18..e5dd4fd03c6 100644 --- a/keyboards/mwstudio/mw75/config.h +++ b/keyboards/mwstudio/mw75/config.h @@ -16,12 +16,9 @@ #pragma once -#define RGBLIGHT_SLEEP - #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_LED_COUNT 97 -#define RGBLED_NUM 97 #define RGB_MATRIX_KEYPRESSES #define ENABLE_RGB_MATRIX_ALPHAS_MODS @@ -68,7 +65,3 @@ #define ENABLE_RGB_MATRIX_MULTISPLASH #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mwstudio/mw75/info.json b/keyboards/mwstudio/mw75/info.json index cc2e3dc4081..197a58d7ab9 100644 --- a/keyboards/mwstudio/mw75/info.json +++ b/keyboards/mwstudio/mw75/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "E6"], @@ -24,6 +24,12 @@ "bootmagic": { "matrix": [0, 1] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 97, + "sleep": true + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/mwstudio/mw75r2/config.h b/keyboards/mwstudio/mw75r2/config.h index ded31181aa6..863a090d47e 100644 --- a/keyboards/mwstudio/mw75r2/config.h +++ b/keyboards/mwstudio/mw75r2/config.h @@ -16,12 +16,9 @@ #pragma once -#define RGBLIGHT_SLEEP - #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_LED_COUNT 21 -#define RGBLED_NUM 21 #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_BREATHING @@ -43,7 +40,3 @@ #define ENABLE_RGB_MATRIX_HUE_WAVE #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL #define ENABLE_RGB_MATRIX_PIXEL_RAIN - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mwstudio/mw75r2/info.json b/keyboards/mwstudio/mw75r2/info.json index f86df57fe5a..8f9d19e016d 100644 --- a/keyboards/mwstudio/mw75r2/info.json +++ b/keyboards/mwstudio/mw75r2/info.json @@ -8,11 +8,17 @@ "pid": "0x7502", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 21, + "sleep": true + }, "ws2812": { "pin": "B3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C7", "C6", "B6", "B5", "B4", "D7", "D4", "D6", "F7", "F6", "E6", "F0", "F1", "F4", "F5"], diff --git a/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c b/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c index 633629abc79..777a0dd6f47 100644 --- a/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c +++ b/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c @@ -104,48 +104,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } -#ifdef ENCODER_ENABLE -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = {{3, 5}}; -static keypos_t encoder_ccw[NUM_ENCODERS] = {{4, 5}}; - -void encoder_action_unregister(void) { - for (uint8_t index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -void matrix_scan_user(void) { - encoder_action_unregister(); -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return true; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, }; #endif - bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (user_config.top_rgb_change) diff --git a/keyboards/mwstudio/mw75r2/keymaps/via/rules.mk b/keyboards/mwstudio/mw75r2/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/mwstudio/mw75r2/keymaps/via/rules.mk +++ b/keyboards/mwstudio/mw75r2/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mxss/config.h b/keyboards/mxss/config.h index d33ee88ce81..bfa2338678c 100644 --- a/keyboards/mxss/config.h +++ b/keyboards/mxss/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* Basic RGB configuration */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mxss/info.json b/keyboards/mxss/info.json index 7828803ae18..7b24c467179 100644 --- a/keyboards/mxss/info.json +++ b/keyboards/mxss/info.json @@ -8,6 +8,23 @@ "pid": "0x5353", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/nack/config.h b/keyboards/nack/config.h index 7240672afe7..adb2cf5d877 100644 --- a/keyboards/nack/config.h +++ b/keyboards/nack/config.h @@ -17,18 +17,12 @@ along with this program. If not, see . #pragma once -#define TAPPING_TOGGLE 2 - #ifdef RGB_MATRIX_ENABLE #define WS2812_SPI SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 - #define RGBLED_NUM 52 - #define RGB_MATRIX_LED_COUNT RGBLED_NUM + #define RGB_MATRIX_LED_COUNT 52 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128 // Max brightness of LEDs #define RGB_MATRIX_DEFAULT_VAL 64 - #define RGB_MATRIX_HUE_STEP 10 - #define RGB_MATRIX_SAT_STEP 10 - #define RGB_MATRIX_VAL_STEP 10 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/nack/info.json b/keyboards/nack/info.json index 827e0fec0e7..4fd99811452 100644 --- a/keyboards/nack/info.json +++ b/keyboards/nack/info.json @@ -13,7 +13,10 @@ "driver": "spi" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "hue_steps": 10, + "sat_steps": 10, + "val_steps": 10 }, "matrix_pins": { "cols": ["A6", "A7", "A8", "A9", "A10", "B0", "B1", "B2", "B6", "B7", "C13", "C14", "C15"], @@ -23,6 +26,9 @@ "processor": "STM32F303", "bootloader": "stm32-dfu", "board": "QMK_PROTON_C", + "tapping": { + "toggle": 2 + }, "layout_aliases": { "LAYOUT": "LAYOUT_ortho_4x13" }, diff --git a/keyboards/nacly/bigsmoothknob/config.h b/keyboards/nacly/bigsmoothknob/config.h new file mode 100644 index 00000000000..a6e9a6c480f --- /dev/null +++ b/keyboards/nacly/bigsmoothknob/config.h @@ -0,0 +1,19 @@ +/* Copyright 2023 nacly (https://github.com/Na-Cly) + * + * This 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 RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/nacly/bigsmoothknob/info.json b/keyboards/nacly/bigsmoothknob/info.json new file mode 100644 index 00000000000..85f1431b29d --- /dev/null +++ b/keyboards/nacly/bigsmoothknob/info.json @@ -0,0 +1,44 @@ +{ + "keyboard_name": "bigsmoothknob", + "name":"bigsmoothknob", + "url": "https://nacly.net", + "maintainer": "na-cly", + "manufacturer": "na-cly", + "usb": { + "pid": "0x6273", + "vid": "0x6B70", + "device_version": "1.0.0" + }, + "encoder": { + "rotary": [ + { "pin_a": "GP26", "pin_b": "GP27" } + ] + }, + "matrix_pins": { + "cols":["GP18","GP15","GP14","GP13"], + "rows":["GP12","GP11"] + }, + "diode_direction": "COL2ROW", + "processor": "RP2040", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "encoder": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "1", "x": 0, "y": 0, "matrix": [0, 0]}, + {"label": "2", "x": 1, "y": 0, "matrix": [0, 1]}, + {"label": "3", "x": 2, "y": 0, "matrix": [0, 2]}, + {"label": "4", "x": 3, "y": 0, "matrix": [0, 3]}, + {"label": "5", "x": 0, "y": 1, "matrix": [1, 0]}, + {"label": "6", "x": 1, "y": 1, "matrix": [1, 1]}, + {"label": "7", "x": 2, "y": 1, "matrix": [1, 2]}, + {"label": "8", "x": 3, "y": 1, "matrix": [1, 3]} + ] + } + } +} diff --git a/keyboards/nacly/bigsmoothknob/keymaps/default/keymap.c b/keyboards/nacly/bigsmoothknob/keymaps/default/keymap.c new file mode 100644 index 00000000000..dab8a50c458 --- /dev/null +++ b/keyboards/nacly/bigsmoothknob/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2023 nacly (https://github.com/Na-Cly) + * + * This 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_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/nacly/bigsmoothknob/keymaps/default/rules.mk b/keyboards/nacly/bigsmoothknob/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/nacly/bigsmoothknob/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nacly/bigsmoothknob/keymaps/via/keymap.c b/keyboards/nacly/bigsmoothknob/keymaps/via/keymap.c new file mode 100644 index 00000000000..dab8a50c458 --- /dev/null +++ b/keyboards/nacly/bigsmoothknob/keymaps/via/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2023 nacly (https://github.com/Na-Cly) + * + * This 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_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/nacly/bigsmoothknob/keymaps/via/rules.mk b/keyboards/nacly/bigsmoothknob/keymaps/via/rules.mk new file mode 100644 index 00000000000..1189f4ad192 --- /dev/null +++ b/keyboards/nacly/bigsmoothknob/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nacly/bigsmoothknob/readme.md b/keyboards/nacly/bigsmoothknob/readme.md new file mode 100644 index 00000000000..0a928205c72 --- /dev/null +++ b/keyboards/nacly/bigsmoothknob/readme.md @@ -0,0 +1,22 @@ +# Big Smooth Knob +8 key macro pad with a gigantic knob. + + +* Keyboard Maintainer: [na-cly](https://github.com/na-cly) +* Hardware Supported: Big Smooth Knob + +Make example for this keyboard (after setting up your build environment): + + make nacly/bigsmoothknob:default + +Flashing example for this keyboard: + + make nacly/bigsmoothknob: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: + +* **boot button**: Hold the BOOT button on the back of the PCB while plug in usb cable diff --git a/keyboards/nacly/bigsmoothknob/rules.mk b/keyboards/nacly/bigsmoothknob/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/nacly/bigsmoothknob/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/nacly/splitreus62/config.h b/keyboards/nacly/splitreus62/config.h index 9c6773547e8..fe1acecf248 100644 --- a/keyboards/nacly/splitreus62/config.h +++ b/keyboards/nacly/splitreus62/config.h @@ -25,9 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 12 // Number of LEDs - -#define RGBLED_SPLIT { 6, 6 } /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/nacly/splitreus62/info.json b/keyboards/nacly/splitreus62/info.json index 5c61b6f5fe4..c4992778890 100644 --- a/keyboards/nacly/splitreus62/info.json +++ b/keyboards/nacly/splitreus62/info.json @@ -16,6 +16,10 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6] + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/nacly/ua62/config.h b/keyboards/nacly/ua62/config.h index 0391f174c95..643a3b52db9 100644 --- a/keyboards/nacly/ua62/config.h +++ b/keyboards/nacly/ua62/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAPPING_TERM 200 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/nasu/rules.mk b/keyboards/nasu/rules.mk index 7000bb65710..7c0709f41e6 100644 --- a/keyboards/nasu/rules.mk +++ b/keyboards/nasu/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/ncc1701kb/config.h b/keyboards/ncc1701kb/config.h deleted file mode 100644 index bd03d32227f..00000000000 --- a/keyboards/ncc1701kb/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -#define TAPPING_TERM 200 diff --git a/keyboards/neito/config.h b/keyboards/neito/config.h index ef9b5189200..606ac53b7c8 100644 --- a/keyboards/neito/config.h +++ b/keyboards/neito/config.h @@ -16,25 +16,3 @@ #pragma once #define GRAVE_ESC_CTRL_OVERRIDE - -/* RGB Light Configuration */ - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 11 -#define RGBLIGHT_LED_MAP { 4, 3, 2, 1, 0, 10, 9, 8, 7, 6, 5 } -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -/* Handle volume control issue with rotary encoder */ - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/neito/info.json b/keyboards/neito/info.json index a226d236c31..fcf24c68c8e 100644 --- a/keyboards/neito/info.json +++ b/keyboards/neito/info.json @@ -18,6 +18,9 @@ {"pin_a": "B7", "pin_b": "B0"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "backlight": { "pin": "B5", "levels": 5, @@ -30,7 +33,23 @@ "pin": "D5" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 11, + "max_brightness": 200, + "led_map": [4, 3, 2, 1, 0, 10, 9, 8, 7, 6, 5], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/nek_type_a/info.json b/keyboards/nek_type_a/info.json index b81bb4b2ce7..6cb972b17f6 100644 --- a/keyboards/nek_type_a/info.json +++ b/keyboards/nek_type_a/info.json @@ -8,6 +8,9 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/nek_type_a/rules.mk b/keyboards/nek_type_a/rules.mk index ca61554f78e..f79051ebceb 100644 --- a/keyboards/nek_type_a/rules.mk +++ b/keyboards/nek_type_a/rules.mk @@ -16,6 +16,5 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes DEBUG_ENABLE = yes BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE SRC += matrix.c mcp23017.c diff --git a/keyboards/nemui/rules.mk b/keyboards/nemui/rules.mk index 0aeca0dd9f3..7f4f202a1b7 100644 --- a/keyboards/nemui/rules.mk +++ b/keyboards/nemui/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/neokeys/g67/element_hs/config.h b/keyboards/neokeys/g67/element_hs/config.h deleted file mode 100644 index e71dda27815..00000000000 --- a/keyboards/neokeys/g67/element_hs/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2021 MechMerlin - * - * This 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 - -#if defined(RGBLIGHT_ENABLE) - #define RGBLED_NUM 77 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 -#endif diff --git a/keyboards/neokeys/g67/element_hs/info.json b/keyboards/neokeys/g67/element_hs/info.json index b744c334b58..707993d4a3c 100644 --- a/keyboards/neokeys/g67/element_hs/info.json +++ b/keyboards/neokeys/g67/element_hs/info.json @@ -17,7 +17,23 @@ "pin": "F0" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 77, + "max_brightness": 150, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/neokeys/g67/hotswap/config.h b/keyboards/neokeys/g67/hotswap/config.h deleted file mode 100644 index 3165d58b2f3..00000000000 --- a/keyboards/neokeys/g67/hotswap/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 James Young (@noroadsleft) - * - * This 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 - -#if defined(RGBLIGHT_ENABLE) - #define RGBLED_NUM 77 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/neokeys/g67/hotswap/info.json b/keyboards/neokeys/g67/hotswap/info.json index 1ae8869ee9f..526da4ba06d 100644 --- a/keyboards/neokeys/g67/hotswap/info.json +++ b/keyboards/neokeys/g67/hotswap/info.json @@ -17,7 +17,23 @@ "pin": "F0" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 77, + "max_brightness": 150, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/neokeys/g67/soldered/config.h b/keyboards/neokeys/g67/soldered/config.h deleted file mode 100644 index 1dfb4e03acf..00000000000 --- a/keyboards/neokeys/g67/soldered/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 James Young (@noroadsleft) - * - * This 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 - -#if defined(RGBLIGHT_ENABLE) - #define RGBLED_NUM 18 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/neokeys/g67/soldered/info.json b/keyboards/neokeys/g67/soldered/info.json index 87c4d0c03f9..567a56d9268 100644 --- a/keyboards/neokeys/g67/soldered/info.json +++ b/keyboards/neokeys/g67/soldered/info.json @@ -22,7 +22,23 @@ "pin": "F0" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "max_brightness": 150, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/neopad/config.h b/keyboards/neopad/config.h deleted file mode 100755 index 6200d5a594a..00000000000 --- a/keyboards/neopad/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 rookiebwoy - -This 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 - -/* Reduce tapdance required taps from 5 to 2 */ -#define TAPPING_TOGGLE 2 diff --git a/keyboards/neopad/rev1/info.json b/keyboards/neopad/rev1/info.json index 8a8f357c96f..0a0340c06df 100755 --- a/keyboards/neopad/rev1/info.json +++ b/keyboards/neopad/rev1/info.json @@ -21,6 +21,9 @@ }, "processor": "atmega32u4", "bootloader": "caterina", + "tapping": { + "toggle": 2 + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index a5a5ad9120f..cf31b6b72b3 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -107,12 +107,12 @@ static void self_testing(void) switch(rgb_state.testing) { case ST_STAGE_1: if (rgb_state.index !=0 ) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); } if (rgb_state.index >= ST_LEFT_END) { for (int i = rgb_state.index - 1; i < RGB_MATRIX_LED_COUNT - rgb_state.index + 1; i++) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } if (rgb_state.index == ST_LEFT_END) { rgb_state.index = ST_LEFT_BEGIN; @@ -131,20 +131,20 @@ static void self_testing(void) break; case ST_STAGE_2: { // clear all - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); int i = 0; // light left and right for (i = 0; i < ST_LEFT_SIZE; i++) { - IS31FL3731_set_color(ST_LEFT_BEGIN+i, led.r, led.g, led.b); + is31fl3731_set_color(ST_LEFT_BEGIN+i, led.r, led.g, led.b); } for (i = 0; i < ST_RIGHT_SIZE; i++) { - IS31FL3731_set_color(ST_RIGHT_BEGIN+i, led.r, led.g, led.b); + is31fl3731_set_color(ST_RIGHT_BEGIN+i, led.r, led.g, led.b); } if (rgb_state.dir) { // left to right for (int i = rgb_state.index; i < rgb_state.index+ST_LEFT_SIZE+ST_RIGHT_SIZE; i++) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } rgb_state.index += ST_LEFT_SIZE+ST_RIGHT_SIZE; if (rgb_state.index == ST_RIGHT_BEGIN) { @@ -154,7 +154,7 @@ static void self_testing(void) } else { // right to left for (int i = rgb_state.index - ST_RIGHT_SIZE; i < rgb_state.index; i++) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } rgb_state.index -= ST_LEFT_SIZE + ST_RIGHT_SIZE; if (rgb_state.index == ST_LEFT_BEGIN+ST_LEFT_SIZE) { @@ -174,7 +174,7 @@ static void self_testing(void) break; case ST_STAGE_3: if (rgb_state.index != RGB_MATRIX_LED_COUNT/2) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); } // light left and right @@ -193,11 +193,11 @@ static void self_testing(void) } else { // left for (int i = 0; i < rgb_state.index+1; i++) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } // right for (int i = ST_RIGHT_END; i > ST_RIGHT_END - rgb_state.index - 1; i--) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } rgb_state.index ++; } @@ -295,16 +295,16 @@ void matrix_init_kb(void) writePinLow(LED_CAPS_LOCK_PIN); i2c_init(); - IS31FL3731_init(DRIVER_ADDR_1); + is31fl3731_init(DRIVER_ADDR_1); #ifdef DRIVER_ADDR_2 - IS31FL3731_init(DRIVER_ADDR_2); + is31fl3731_init(DRIVER_ADDR_2); #endif for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { - IS31FL3731_set_led_control_register(index, true, true, true); + is31fl3731_set_led_control_register(index, true, true, true); } - IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); #ifdef DRIVER_ADDR_2 - IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); #endif update_ticks(); matrix_init_user(); @@ -321,7 +321,7 @@ void housekeeping_task_kb(void) self_testing(); } else if (rgb_state.state == CAPS_ALERT) { if (rgb_state.alert) { - IS31FL3731_set_color_all(ALERM_LED_R, ALERM_LED_G, ALERM_LED_B); + is31fl3731_set_color_all(ALERM_LED_R, ALERM_LED_G, ALERM_LED_B); LED_TYPE leds[4]; for (int i = 0; i < 4; i++) { leds[i].r = ALERM_LED_G; @@ -330,7 +330,7 @@ void housekeeping_task_kb(void) } ws2812_setleds(leds, 4); } else { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); LED_TYPE leds[4] = {0}; ws2812_setleds(leds, 4); } @@ -341,9 +341,9 @@ void housekeeping_task_kb(void) } } - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); #ifdef DRIVER_ADDR_2 - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); #endif housekeeping_task_user(); @@ -354,7 +354,7 @@ void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) if (rgb_state.state != NORMAL) return; for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - IS31FL3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); + is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); } LED_TYPE leds[4]; for (int i = 0; i < 4; i++) { diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index e35f0c4d0a4..cf89616aa87 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -37,19 +37,4 @@ #define DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) -//rgb light setting -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - #define USB_SUSPEND_WAKEUP_DELAY 1000 diff --git a/keyboards/neson_design/700e/info.json b/keyboards/neson_design/700e/info.json index 3f339ad5548..12a979ab117 100644 --- a/keyboards/neson_design/700e/info.json +++ b/keyboards/neson_design/700e/info.json @@ -16,6 +16,22 @@ "indicators": { "caps_lock": "F5" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 68, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index 9a4c8240c06..91d96c6a4d1 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -36,19 +36,3 @@ #define DRIVER_ADDR_2 0b1110111 #define DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) - -//rgb light setting -#define RGBLED_NUM 65 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/neson_design/n6/info.json b/keyboards/neson_design/n6/info.json index 770748fa29d..3f383b4f8fe 100644 --- a/keyboards/neson_design/n6/info.json +++ b/keyboards/neson_design/n6/info.json @@ -20,7 +20,22 @@ "pin": "B3" }, "rgblight": { - "max_brightness": 192 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 65, + "max_brightness": 192, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index 5727ab655f2..cf99404641f 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -111,12 +111,12 @@ static void self_testing(void) switch(rgb_state.testing) { case ST_STAGE_1: if (rgb_state.index !=0 ) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); } if (rgb_state.index >= ST_LEFT_END) { for (int i = rgb_state.index - 1; i < RGB_MATRIX_LED_COUNT - rgb_state.index + 1; i++) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } if (rgb_state.index == ST_LEFT_END) { rgb_state.index = ST_LEFT_BEGIN; @@ -135,20 +135,20 @@ static void self_testing(void) break; case ST_STAGE_2: { // clear all - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); int i = 0; // light left and right for (i = 0; i < ST_LEFT_SIZE; i++) { - IS31FL3731_set_color(ST_LEFT_BEGIN+i, led.r, led.g, led.b); + is31fl3731_set_color(ST_LEFT_BEGIN+i, led.r, led.g, led.b); } for (i = 0; i < ST_RIGHT_SIZE; i++) { - IS31FL3731_set_color(ST_RIGHT_BEGIN+i, led.r, led.g, led.b); + is31fl3731_set_color(ST_RIGHT_BEGIN+i, led.r, led.g, led.b); } if (rgb_state.dir) { // left to right for (int i = rgb_state.index; i < rgb_state.index+ST_LEFT_SIZE+ST_RIGHT_SIZE; i++) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } rgb_state.index += ST_LEFT_SIZE+ST_RIGHT_SIZE; if (rgb_state.index == ST_RIGHT_BEGIN) { @@ -158,7 +158,7 @@ static void self_testing(void) } else { // right to left for (int i = rgb_state.index - ST_RIGHT_SIZE; i < rgb_state.index; i++) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } rgb_state.index -= ST_LEFT_SIZE + ST_RIGHT_SIZE; if (rgb_state.index == ST_LEFT_BEGIN+ST_LEFT_SIZE) { @@ -178,7 +178,7 @@ static void self_testing(void) break; case ST_STAGE_3: if (rgb_state.index != RGB_MATRIX_LED_COUNT/2) { - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); } // light left and right @@ -197,11 +197,11 @@ static void self_testing(void) } else { // left for (int i = 0; i < rgb_state.index+1; i++) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } // right for (int i = ST_RIGHT_END; i > ST_RIGHT_END - rgb_state.index - 1; i--) { - IS31FL3731_set_color(i, led.r, led.g, led.b); + is31fl3731_set_color(i, led.r, led.g, led.b); } rgb_state.index ++; } @@ -299,16 +299,16 @@ void matrix_init_kb(void) writePinLow(LED_CAPS_LOCK_PIN); i2c_init(); - IS31FL3731_init(DRIVER_ADDR_1); + is31fl3731_init(DRIVER_ADDR_1); #ifdef DRIVER_ADDR_2 - IS31FL3731_init(DRIVER_ADDR_2); + is31fl3731_init(DRIVER_ADDR_2); #endif for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { - IS31FL3731_set_led_control_register(index, true, true, true); + is31fl3731_set_led_control_register(index, true, true, true); } - IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); #ifdef DRIVER_ADDR_2 - IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); #endif update_ticks(); matrix_init_user(); @@ -327,13 +327,13 @@ void housekeeping_task_kb(void) .b = 0x00, }; if (rgb_state.alert) { - IS31FL3731_set_color_all(led.r, led.g, led.b); + is31fl3731_set_color_all(led.r, led.g, led.b); ws2812_setleds(&led, 1); } else { led.r = 0; led.g = 0; led.b = 0; - IS31FL3731_set_color_all(0, 0, 0); + is31fl3731_set_color_all(0, 0, 0); ws2812_setleds(&led, 1); } @@ -343,9 +343,9 @@ void housekeeping_task_kb(void) } } - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); #ifdef DRIVER_ADDR_2 - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); #endif housekeeping_task_user(); @@ -356,7 +356,7 @@ void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) if (rgb_state.state != NORMAL) return; for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - IS31FL3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); + is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); } ws2812_setleds(start_led+RGB_MATRIX_LED_COUNT, 1); } diff --git a/keyboards/neson_design/nico/info.json b/keyboards/neson_design/nico/info.json new file mode 100644 index 00000000000..f21b644f569 --- /dev/null +++ b/keyboards/neson_design/nico/info.json @@ -0,0 +1,121 @@ +{ + "manufacturer": "Neson Design", + "keyboard_name": "Nico", + "maintainer": "yulei", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "E2" + }, + "matrix_pins": { + "cols": ["C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "B7", "B3", "B2", "B1", "F6", "F7"], + "rows": ["F0", "E6", "F5", "F4", "F1"] + }, + "processor": "atmega32u4", + "ws2812": { + "pin": "B0" + }, + "rgblight": { + "led_count": 5 + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "no_startup_check": true, + "pid": "0x6E65", + "vid": "0x4E65" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "K017", "matrix": [0, 15], "x": 0, "y": 0 }, + { "label": "K018", "matrix": [0, 16], "x": 1, "y": 0 }, + { "label": "K00", "matrix": [0, 0], "x": 2.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 3.5, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 4.5, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 5.5, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 6.5, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 7.5, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 8.5, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 9.5, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 10.5, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 11.5, "y": 0 }, + { "label": "K0A", "matrix": [0, 10], "x": 12.5, "y": 0 }, + { "label": "K0B", "matrix": [0, 11], "x": 13.5, "y": 0 }, + { "label": "K0C", "matrix": [0, 12], "x": 14.5, "y": 0 }, + { "label": "K0D", "matrix": [0, 13], "x": 15.5, "y": 0 }, + { "label": "K0E", "matrix": [0, 14], "x": 16.5, "y": 0 }, + { "label": "K4E", "matrix": [4, 14], "x": 17.5, "y": 0 }, + { "label": "K116", "matrix": [1, 15], "x": 0, "y": 1 }, + { "label": "K117", "matrix": [1, 16], "x": 1, "y": 1 }, + { "label": "K10", "matrix": [1, 0], "w": 1.5, "x": 2.5, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "x": 4, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 5, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 6, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 7, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 8, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 9, "y": 1 }, + { "label": "K17", "matrix": [1, 7], "x": 10, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 11, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 12, "y": 1 }, + { "label": "K1A", "matrix": [1, 10], "x": 13, "y": 1 }, + { "label": "K1B", "matrix": [1, 11], "x": 14, "y": 1 }, + { "label": "K1C", "matrix": [1, 12], "x": 15, "y": 1 }, + { "label": "K1D", "matrix": [1, 13], "w": 1.5, "x": 16, "y": 1 }, + { "label": "K1E", "matrix": [1, 14], "x": 17.5, "y": 1 }, + { "label": "K216", "matrix": [2, 15], "x": 0, "y": 2 }, + { "label": "K217", "matrix": [2, 16], "x": 1, "y": 2 }, + { "label": "K20", "matrix": [2, 0], "w": 1.75, "x": 2.5, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "x": 4.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 5.25, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 6.25, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 7.25, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 8.25, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 9.25, "y": 2 }, + { "label": "K27", "matrix": [2, 7], "x": 10.25, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 11.25, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 12.25, "y": 2 }, + { "label": "K2A", "matrix": [2, 10], "x": 13.25, "y": 2 }, + { "label": "K2B", "matrix": [2, 11], "x": 14.25, "y": 2 }, + { "label": "K2D", "matrix": [2, 13], "w": 2.25, "x": 15.25, "y": 2 }, + { "label": "K2E", "matrix": [2, 14], "x": 17.5, "y": 2 }, + { "label": "K316", "matrix": [3, 15], "x": 0, "y": 3 }, + { "label": "K317", "matrix": [3, 16], "x": 1, "y": 3 }, + { "label": "K30", "matrix": [3, 0], "w": 2.25, "x": 2.5, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 4.75, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 5.75, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 6.75, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 7.75, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 8.75, "y": 3 }, + { "label": "K37", "matrix": [3, 7], "x": 9.75, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 10.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 11.75, "y": 3 }, + { "label": "K3A", "matrix": [3, 10], "x": 12.75, "y": 3 }, + { "label": "K3B", "matrix": [3, 11], "x": 13.75, "y": 3 }, + { "label": "K3C", "matrix": [3, 12], "w": 1.75, "x": 14.75, "y": 3 }, + { "label": "K3D", "matrix": [3, 13], "x": 16.5, "y": 3 }, + { "label": "K3E", "matrix": [3, 14], "x": 17.5, "y": 3 }, + { "label": "K416", "matrix": [4, 15], "x": 0, "y": 4 }, + { "label": "K417", "matrix": [4, 16], "x": 1, "y": 4 }, + { "label": "K40", "matrix": [4, 0], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "K41", "matrix": [4, 1], "w": 1.25, "x": 3.75, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.25, "x": 5, "y": 4 }, + { "label": "K48", "matrix": [4, 8], "w": 6.25, "x": 6.25, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "K4A", "matrix": [4, 10], "w": 1.25, "x": 13.75, "y": 4 }, + { "label": "K4B", "matrix": [4, 11], "x": 15.5, "y": 4 }, + { "label": "K4C", "matrix": [4, 12], "x": 16.5, "y": 4 }, + { "label": "K4D", "matrix": [4, 13], "x": 17.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/neson_design/nico/keymaps/default/keymap.c b/keyboards/neson_design/nico/keymaps/default/keymap.c new file mode 100644 index 00000000000..d481379e210 --- /dev/null +++ b/keyboards/neson_design/nico/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/** + Copyright 2023 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( + KC_F1, KC_F2, 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_PSCR, + 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_HOME, + KC_F5, KC_F6, 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_END, + KC_F7, KC_F8, 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_F9,KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI, 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_PSCR,_______, + _______, _______, QK_BOOT, RGB_TOG,RGB_MOD,_______, KC_F16, KC_F17,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,_______, + _______, _______, _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END, _______,_______, + _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, + _______, _______, _______,_______,_______, _______, _______,_______, _______,_______,_______), +}; diff --git a/keyboards/neson_design/nico/keymaps/via/keymap.c b/keyboards/neson_design/nico/keymaps/via/keymap.c new file mode 100644 index 00000000000..9de688505e4 --- /dev/null +++ b/keyboards/neson_design/nico/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +/** + Copyright 2023 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( + KC_F1, KC_F2, 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_PSCR, + 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_HOME, + KC_F5, KC_F6, 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_END, + KC_F7, KC_F8, 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_F9,KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_LEFT,KC_DOWN, KC_RIGHT), + + [1] = LAYOUT( + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______, QK_BOOT, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, + _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, + _______, _______, _______,_______,_______, _______, _______,_______, _______,_______,_______) +}; diff --git a/keyboards/neson_design/nico/keymaps/via/rules.mk b/keyboards/neson_design/nico/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/neson_design/nico/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/neson_design/nico/nico.c b/keyboards/neson_design/nico/nico.c new file mode 100644 index 00000000000..63f08b8639f --- /dev/null +++ b/keyboards/neson_design/nico/nico.c @@ -0,0 +1,85 @@ +/** + * @file nico.c + * + Copyright 2023 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 "quantum.h" +#ifdef RGBLIGHT_ENABLE + +static bool alert = false; +static bool backup = false; +static LED_TYPE caps_led; +static uint16_t last_ticks = 0; + +#define ALERT_INTERVAL 500 +#define ALERM_LED_R 0xFF +#define ALERM_LED_G 0xA5 +#define ALERM_LED_B 0x00 +//golden 0xFF, 0xD9, 0x00 + +void housekeeping_task_kb(void) +{ + if (host_keyboard_led_state().caps_lock) { + if (!backup) { + caps_led.r = led[4].r; + caps_led.g = led[4].g; + caps_led.b = led[4].b; + backup = true; + } + if(alert) { + led[4].r = ALERM_LED_G; + led[4].g = ALERM_LED_R; + led[4].b = ALERM_LED_B; + } else { + led[4].r = 0; + led[4].g = 0; + led[4].b = 0; + } + if (timer_elapsed(last_ticks) > ALERT_INTERVAL) { + alert = !alert; + last_ticks = timer_read(); + } + ws2812_setleds(led, RGBLED_NUM); + } else { + if (backup) { + led[4].r = caps_led.r; + led[4].g = caps_led.g; + led[4].b = caps_led.b; + backup = false; + ws2812_setleds(led, RGBLED_NUM); + } + } + housekeeping_task_user(); +} + +void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +{ + start_led[2].r = start_led[0].r; + start_led[2].g = start_led[0].g; + start_led[2].b = start_led[0].b; + + start_led[3].r = start_led[1].r; + start_led[3].g = start_led[1].g; + start_led[3].b = start_led[1].b; + + uint8_t tmp = start_led[4].g; + start_led[4].g = start_led[4].r; + start_led[4].r = tmp; + ws2812_setleds(start_led, RGBLED_NUM); +} + +#endif \ No newline at end of file diff --git a/keyboards/neson_design/nico/readme.md b/keyboards/neson_design/nico/readme.md new file mode 100644 index 00000000000..9b821c16d02 --- /dev/null +++ b/keyboards/neson_design/nico/readme.md @@ -0,0 +1,21 @@ +# Neson Design (formerly iNETT Studio) Nico + +A 65% keyboard with F area from the Neson Design's N series. + +* Keyboard Maintainer: [astro](https://github.com/yulei) +* Hardware Supported: Nico keyboard +* Hardware Availability: Limited gb + +Make example for this keyboard (after setting up your build environment): + + make neson_design/nico: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 *RST* button on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file diff --git a/keyboards/neson_design/nico/rules.mk b/keyboards/neson_design/nico/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/neson_design/nico/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/newgame40/config.h b/keyboards/newgame40/config.h index 18c605eb622..13a39197459 100644 --- a/keyboards/newgame40/config.h +++ b/keyboards/newgame40/config.h @@ -17,39 +17,6 @@ along with this program. If not, see . #pragma once -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 25 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - -#ifndef IOS_DEVICE_ENABLE - #if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 255 - #else - #define RGBLIGHT_LIMIT_VAL 130 - #endif - #define RGBLIGHT_VAL_STEP 17 -#else - #if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 90 - #else - #define RGBLIGHT_LIMIT_VAL 45 - #endif - #define RGBLIGHT_VAL_STEP 4 -#endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 #else @@ -57,5 +24,3 @@ along with this program. If not, see . // iOS device need lessthan 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif - -#define TAPPING_TERM 200 diff --git a/keyboards/newgame40/info.json b/keyboards/newgame40/info.json index 2cbb4c117d1..809d685ed1f 100644 --- a/keyboards/newgame40/info.json +++ b/keyboards/newgame40/info.json @@ -13,6 +13,22 @@ "rows": ["F7", "B1", "B3", "B2"] }, "diode_direction": "COL2ROW", + "rgblight": { + "hue_steps": 10, + "led_count": 25, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/newgame40/post_config.h b/keyboards/newgame40/post_config.h new file mode 100644 index 00000000000..247178beec9 --- /dev/null +++ b/keyboards/newgame40/post_config.h @@ -0,0 +1,17 @@ +#pragma once + +#ifndef IOS_DEVICE_ENABLE +# if RGBLED_NUM <= 6 +# define RGBLIGHT_LIMIT_VAL 255 +# else +# define RGBLIGHT_LIMIT_VAL 130 +# endif +# define RGBLIGHT_VAL_STEP 17 +#else +# if RGBLED_NUM <= 6 +# define RGBLIGHT_LIMIT_VAL 90 +# else +# define RGBLIGHT_LIMIT_VAL 45 +# endif +# define RGBLIGHT_VAL_STEP 4 +#endif diff --git a/keyboards/nibiria/stream15/rules.mk b/keyboards/nibiria/stream15/rules.mk index 9e42693cb69..c3b8e77d77a 100644 --- a/keyboards/nibiria/stream15/rules.mk +++ b/keyboards/nibiria/stream15/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/nightly_boards/adellein/adellein.c b/keyboards/nightly_boards/adellein/adellein.c deleted file mode 100644 index 8ae826d49ec..00000000000 --- a/keyboards/nightly_boards/adellein/adellein.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 "adellein.h" - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { -// if (!encoder_update_user(index, clockwise)) return false; - encoder_action_register(index, clockwise); - return true; -}; diff --git a/keyboards/nightly_boards/adellein/adellein.h b/keyboards/nightly_boards/adellein/adellein.h deleted file mode 100644 index 33cf8e0b689..00000000000 --- a/keyboards/nightly_boards/adellein/adellein.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 "encoder_action.h" diff --git a/keyboards/nightly_boards/adellein/config.h b/keyboards/nightly_boards/adellein/config.h index d1703c1c80f..549b82fe0d8 100644 --- a/keyboards/nightly_boards/adellein/config.h +++ b/keyboards/nightly_boards/adellein/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 14 -#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 - -/* Encoders */ -#define ENCODERS_CW_KEY { { 3, 3 } } -#define ENCODERS_CCW_KEY { { 1, 3 } } - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nightly_boards/adellein/encoder_action.c b/keyboards/nightly_boards/adellein/encoder_action.c deleted file mode 100644 index 522fb58d5a0..00000000000 --- a/keyboards/nightly_boards/adellein/encoder_action.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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 "encoder_action.h" - -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} diff --git a/keyboards/nightly_boards/adellein/encoder_action.h b/keyboards/nightly_boards/adellein/encoder_action.h deleted file mode 100644 index fb226326324..00000000000 --- a/keyboards/nightly_boards/adellein/encoder_action.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file diff --git a/keyboards/nightly_boards/adellein/info.json b/keyboards/nightly_boards/adellein/info.json index 81e21e93771..192f8005c3c 100644 --- a/keyboards/nightly_boards/adellein/info.json +++ b/keyboards/nightly_boards/adellein/info.json @@ -18,6 +18,21 @@ {"pin_a": "C7", "pin_b": "C6"} ] }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D5" }, @@ -80,66 +95,6 @@ {"matrix": [3, 9], "x": 10.75, "y": 3, "w": 1.25}, {"matrix": [3, 12], "x": 14.75, "y": 3, "w": 1.25} ] - }, - "LAYOUT_40ergo_split_ent_encoder": { - "layout": [ - {"matrix": [0, 0], "x": 0.5, "y": 0}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "y": 0}, - {"matrix": [0, 4], "x": 4.5, "y": 0}, - {"matrix": [0, 5], "x": 5.5, "y": 0}, - - {"matrix": [0, 6], "x": 8.25, "y": 0}, - {"matrix": [0, 7], "x": 9.25, "y": 0}, - {"matrix": [0, 8], "x": 10.25, "y": 0}, - {"matrix": [0, 9], "x": 11.25, "y": 0}, - {"matrix": [0, 10], "x": 12.25, "y": 0}, - {"matrix": [0, 11], "x": 13.25, "y": 0}, - {"matrix": [0, 12], "x": 14.25, "y": 0, "w": 1.5}, - - {"matrix": [1, 0], "x": 0.25, "y": 1, "w": 1.25}, - {"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": 8.75, "y": 1}, - {"matrix": [1, 7], "x": 9.75, "y": 1}, - {"matrix": [1, 8], "x": 10.75, "y": 1}, - {"matrix": [1, 9], "x": 11.75, "y": 1}, - {"matrix": [1, 10], "x": 12.75, "y": 1}, - {"matrix": [1, 11], "x": 13.75, "y": 1}, - {"matrix": [1, 12], "x": 14.75, "y": 1, "w": 1.25}, - - {"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": 8.5, "y": 2}, - {"matrix": [2, 7], "x": 9.5, "y": 2}, - {"matrix": [2, 8], "x": 10.5, "y": 2}, - {"matrix": [2, 9], "x": 11.5, "y": 2}, - {"matrix": [2, 10], "x": 12.5, "y": 2}, - {"matrix": [2, 11], "x": 13.5, "y": 2}, - {"matrix": [2, 12], "x": 14.5, "y": 2, "w": 1.75}, - - {"matrix": [3, 0], "x": 0.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 4, "y": 3, "w": 2.25}, - {"matrix": [3, 5], "x": 6.25, "y": 3}, - - {"matrix": [3, 7], "x": 8, "y": 3, "w": 2.75}, - {"matrix": [3, 9], "x": 10.75, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 14.75, "y": 3, "w": 1.25}, - - {"matrix": [3, 1], "x": 5.75, "y": 4}, - {"matrix": [3, 3], "x": 6.75, "y": 4} - ] } } } diff --git a/keyboards/nightly_boards/adellein/keymaps/via/keymap.c b/keyboards/nightly_boards/adellein/keymaps/via/keymap.c index c4c0adffe35..acfac215a4a 100644 --- a/keyboards/nightly_boards/adellein/keymaps/via/keymap.c +++ b/keyboards/nightly_boards/adellein/keymaps/via/keymap.c @@ -15,35 +15,39 @@ */ #include QMK_KEYBOARD_H - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_40ergo_split_ent_encoder( + [0] = LAYOUT_40ergo_split_ent( KC_ESC, 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_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, - KC_VOLD, KC_VOLU + KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL ), - [1] = LAYOUT_40ergo_split_ent_encoder( + [1] = LAYOUT_40ergo_split_ent( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_40ergo_split_ent_encoder( + [2] = LAYOUT_40ergo_split_ent( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_40ergo_split_ent_encoder( + [3] = LAYOUT_40ergo_split_ent( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/nightly_boards/adellein/keymaps/via/rules.mk b/keyboards/nightly_boards/adellein/keymaps/via/rules.mk index 43061db1dd4..1189f4ad192 100644 --- a/keyboards/nightly_boards/adellein/keymaps/via/rules.mk +++ b/keyboards/nightly_boards/adellein/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nightly_boards/adellein/rules.mk b/keyboards/nightly_boards/adellein/rules.mk index 8daf6a353a6..aa619121b98 100644 --- a/keyboards/nightly_boards/adellein/rules.mk +++ b/keyboards/nightly_boards/adellein/rules.mk @@ -11,6 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow ENCODER_ENABLE = yes # Enable Rotary Encoders LTO_ENABLE = yes - -# Added encoder Action -SRC += encoder_action.c \ No newline at end of file diff --git a/keyboards/nightly_boards/alter/rev1/config.h b/keyboards/nightly_boards/alter/rev1/config.h index 65886338905..3223a5a19be 100644 --- a/keyboards/nightly_boards/alter/rev1/config.h +++ b/keyboards/nightly_boards/alter/rev1/config.h @@ -14,22 +14,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nightly_boards/alter/rev1/info.json b/keyboards/nightly_boards/alter/rev1/info.json index e0ea3294e9b..48e8da0c9ae 100644 --- a/keyboards/nightly_boards/alter/rev1/info.json +++ b/keyboards/nightly_boards/alter/rev1/info.json @@ -18,6 +18,24 @@ "num_lock": "D7", "scroll_lock": "B4" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F1" }, diff --git a/keyboards/nightly_boards/conde60/config.h b/keyboards/nightly_boards/conde60/config.h index 541d2e289e3..3d0b7f438c8 100644 --- a/keyboards/nightly_boards/conde60/config.h +++ b/keyboards/nightly_boards/conde60/config.h @@ -17,18 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 12 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nightly_boards/conde60/info.json b/keyboards/nightly_boards/conde60/info.json index e318151c8c8..acc375ea358 100644 --- a/keyboards/nightly_boards/conde60/info.json +++ b/keyboards/nightly_boards/conde60/info.json @@ -13,6 +13,21 @@ "rows": ["B1", "B2", "F0", "F1", "F4"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/nightly_boards/n2/config.h b/keyboards/nightly_boards/n2/config.h index 0fec21c752d..3223a5a19be 100644 --- a/keyboards/nightly_boards/n2/config.h +++ b/keyboards/nightly_boards/n2/config.h @@ -14,22 +14,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 2 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nightly_boards/n2/info.json b/keyboards/nightly_boards/n2/info.json index f925eba5774..2a068e1a2e9 100644 --- a/keyboards/nightly_boards/n2/info.json +++ b/keyboards/nightly_boards/n2/info.json @@ -13,6 +13,24 @@ "rows": ["F1", "C7"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/nightly_boards/n40_o/config.h b/keyboards/nightly_boards/n40_o/config.h index 474742b6af1..27a82c8acda 100644 --- a/keyboards/nightly_boards/n40_o/config.h +++ b/keyboards/nightly_boards/n40_o/config.h @@ -17,26 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 12 -#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 - -/* Encoders */ -#define ENCODERS_CW_KEY { { 2, 4 },{ 4, 4 },{ 6, 4 } } -#define ENCODERS_CCW_KEY { { 1, 4 },{ 3, 4 },{ 5, 4 } } - -/* Audio */ - -#define AUDIO_PIN B7 - #define AUDIO_CLICKY /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/nightly_boards/n40_o/encoder_action.c b/keyboards/nightly_boards/n40_o/encoder_action.c deleted file mode 100644 index 522fb58d5a0..00000000000 --- a/keyboards/nightly_boards/n40_o/encoder_action.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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 "encoder_action.h" - -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} diff --git a/keyboards/nightly_boards/n40_o/encoder_action.h b/keyboards/nightly_boards/n40_o/encoder_action.h deleted file mode 100644 index fb226326324..00000000000 --- a/keyboards/nightly_boards/n40_o/encoder_action.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file diff --git a/keyboards/nightly_boards/n40_o/info.json b/keyboards/nightly_boards/n40_o/info.json index ec403fb6470..1f341441a4e 100644 --- a/keyboards/nightly_boards/n40_o/info.json +++ b/keyboards/nightly_boards/n40_o/info.json @@ -3,6 +3,16 @@ "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgblight": true, + "encoder": true + }, + "build": { + "lto": true + }, "usb": { "vid": "0xD812", "pid": "0x0009", @@ -10,7 +20,7 @@ }, "matrix_pins": { "cols": ["B5", "C7", "D6", "D4", "B3", "B2", "B1", "B0", "D5", "D3", "D2", "D1", "D0"], - "rows": ["E6", "F0", "F1", "D7", null] + "rows": ["E6", "F0", "F1", "D7"] }, "diode_direction": "COL2ROW", "encoder": { @@ -20,77 +30,30 @@ {"pin_a": "B6", "pin_b": "C6"} ] }, + "rgblight": { + "led_count": 12, + "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 + } + }, "ws2812": { "pin": "B4" }, + "audio": { + "pins": ["B7"] + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { - "LAYOUT_ortho_4x13_encoders": { - "layout": [ - {"matrix": [4, 1], "x": 0, "y": 0}, - {"matrix": [4, 2], "x": 1, "y": 0}, - {"matrix": [0, 0], "x": 2.25, "y": 0}, - {"matrix": [0, 1], "x": 3.5, "y": 0}, - {"matrix": [0, 2], "x": 4.5, "y": 0}, - {"matrix": [0, 3], "x": 5.5, "y": 0}, - {"matrix": [0, 4], "x": 6.5, "y": 0}, - {"matrix": [0, 5], "x": 7.5, "y": 0}, - {"matrix": [0, 6], "x": 8.5, "y": 0}, - {"matrix": [0, 7], "x": 9.5, "y": 0}, - {"matrix": [0, 8], "x": 10.5, "y": 0}, - {"matrix": [0, 9], "x": 11.5, "y": 0}, - {"matrix": [0, 10], "x": 12.5, "y": 0}, - {"matrix": [0, 11], "x": 13.5, "y": 0}, - {"matrix": [0, 12], "x": 14.5, "y": 0}, - - {"matrix": [4, 3], "x": 0, "y": 1}, - {"matrix": [4, 4], "x": 1, "y": 1}, - {"matrix": [1, 0], "x": 2.25, "y": 1}, - {"matrix": [1, 1], "x": 3.5, "y": 1}, - {"matrix": [1, 2], "x": 4.5, "y": 1}, - {"matrix": [1, 3], "x": 5.5, "y": 1}, - {"matrix": [1, 4], "x": 6.5, "y": 1}, - {"matrix": [1, 5], "x": 7.5, "y": 1}, - {"matrix": [1, 6], "x": 8.5, "y": 1}, - {"matrix": [1, 7], "x": 9.5, "y": 1}, - {"matrix": [1, 8], "x": 10.5, "y": 1}, - {"matrix": [1, 9], "x": 11.5, "y": 1}, - {"matrix": [1, 10], "x": 12.5, "y": 1}, - {"matrix": [1, 11], "x": 13.5, "y": 1}, - {"matrix": [1, 12], "x": 14.5, "y": 1}, - - {"matrix": [4, 5], "x": 0, "y": 2}, - {"matrix": [4, 6], "x": 1, "y": 2}, - {"matrix": [2, 0], "x": 2.25, "y": 2}, - {"matrix": [2, 1], "x": 3.5, "y": 2}, - {"matrix": [2, 2], "x": 4.5, "y": 2}, - {"matrix": [2, 3], "x": 5.5, "y": 2}, - {"matrix": [2, 4], "x": 6.5, "y": 2}, - {"matrix": [2, 5], "x": 7.5, "y": 2}, - {"matrix": [2, 6], "x": 8.5, "y": 2}, - {"matrix": [2, 7], "x": 9.5, "y": 2}, - {"matrix": [2, 8], "x": 10.5, "y": 2}, - {"matrix": [2, 9], "x": 11.5, "y": 2}, - {"matrix": [2, 10], "x": 12.5, "y": 2}, - {"matrix": [2, 11], "x": 13.5, "y": 2}, - {"matrix": [2, 12], "x": 14.5, "y": 2}, - - {"matrix": [3, 0], "x": 2.25, "y": 3}, - {"matrix": [3, 1], "x": 3.5, "y": 3}, - {"matrix": [3, 2], "x": 4.5, "y": 3}, - {"matrix": [3, 3], "x": 5.5, "y": 3}, - {"matrix": [3, 4], "x": 6.5, "y": 3}, - {"matrix": [3, 5], "x": 7.5, "y": 3}, - {"matrix": [3, 6], "x": 8.5, "y": 3}, - {"matrix": [3, 7], "x": 9.5, "y": 3}, - {"matrix": [3, 8], "x": 10.5, "y": 3}, - {"matrix": [3, 9], "x": 11.5, "y": 3}, - {"matrix": [3, 10], "x": 12.5, "y": 3}, - {"matrix": [3, 11], "x": 13.5, "y": 3}, - {"matrix": [3, 12], "x": 14.5, "y": 3} - ] - }, "LAYOUT_ortho_4x13": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/nightly_boards/n40_o/keymaps/default/keymap.c b/keyboards/nightly_boards/n40_o/keymaps/default/keymap.c index 658b43689a2..bd57f61055c 100644 --- a/keyboards/nightly_boards/n40_o/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/n40_o/keymaps/default/keymap.c @@ -15,12 +15,11 @@ */ #include QMK_KEYBOARD_H - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_4x13( KC_SPC, 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_SPC, 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_SPC, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), + KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ) }; diff --git a/keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_1x2u_c/keymap.c b/keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_1x2u_c/keymap.c index 55f22cdc498..cda2bb60508 100644 --- a/keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_1x2u_c/keymap.c +++ b/keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_1x2u_c/keymap.c @@ -15,12 +15,11 @@ */ #include QMK_KEYBOARD_H - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_4x13_1x2u_c( KC_SPC, 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_SPC, 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_SPC, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), + KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ) }; diff --git a/keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_encoders/keymap.c b/keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_encoders/keymap.c deleted file mode 100644 index f6e0dc23ee2..00000000000 --- a/keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_encoders/keymap.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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_4x13_encoders( - KC_SPC, KC_SPC, KC_SPC, 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_SPC, KC_SPC, KC_SPC, 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_SPC, KC_SPC, KC_SPC, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), -}; diff --git a/keyboards/nightly_boards/n40_o/keymaps/via/config.h b/keyboards/nightly_boards/n40_o/keymaps/via/config.h deleted file mode 100644 index 1208e2769f0..00000000000 --- a/keyboards/nightly_boards/n40_o/keymaps/via/config.h +++ /dev/null @@ -1 +0,0 @@ -#define LAYER_STATE_8BIT \ No newline at end of file diff --git a/keyboards/nightly_boards/n40_o/keymaps/via/keymap.c b/keyboards/nightly_boards/n40_o/keymaps/via/keymap.c index 830d8d87826..e9ddb714017 100644 --- a/keyboards/nightly_boards/n40_o/keymaps/via/keymap.c +++ b/keyboards/nightly_boards/n40_o/keymaps/via/keymap.c @@ -15,34 +15,24 @@ */ #include QMK_KEYBOARD_H - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_4x13_encoders( - KC_SPC, KC_SPC, KC_SPC, 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_SPC, KC_SPC, KC_SPC, 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_SPC, KC_SPC, KC_SPC, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - - ), - [1] = LAYOUT_ortho_4x13_encoders( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, 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_ortho_4x13_encoders( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, 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_4x13_encoders( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - - ), + [0] = LAYOUT_ortho_4x13( + KC_SPC, 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_SPC, 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_SPC, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_SPC, KC_SPC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [1] = LAYOUT_ortho_4x13( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } }; +#endif diff --git a/keyboards/nightly_boards/n40_o/keymaps/via/rules.mk b/keyboards/nightly_boards/n40_o/keymaps/via/rules.mk index 43061db1dd4..f1adcab005e 100644 --- a/keyboards/nightly_boards/n40_o/keymaps/via/rules.mk +++ b/keyboards/nightly_boards/n40_o/keymaps/via/rules.mk @@ -1,2 +1,2 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nightly_boards/n40_o/n40_o.c b/keyboards/nightly_boards/n40_o/n40_o.c deleted file mode 100644 index 643803f9034..00000000000 --- a/keyboards/nightly_boards/n40_o/n40_o.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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" -#include "encoder_action.h" - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { -// if (!encoder_update_user(index, clockwise)) return false; - encoder_action_register(index, clockwise); - return true; -}; diff --git a/keyboards/nightly_boards/n40_o/rules.mk b/keyboards/nightly_boards/n40_o/rules.mk index f1189a87d2d..6e7633bfe01 100644 --- a/keyboards/nightly_boards/n40_o/rules.mk +++ b/keyboards/nightly_boards/n40_o/rules.mk @@ -1,17 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = yes # Audio output -ENCODER_ENABLE = yes # Enable Rotary Encoders -LTO_ENABLE = yes - -# Added encoder Action -SRC += encoder_action.c \ No newline at end of file +# This file intentionally left blank diff --git a/keyboards/nightly_boards/n60_s/config.h b/keyboards/nightly_boards/n60_s/config.h index 75f803f5487..519ac7b82a9 100644 --- a/keyboards/nightly_boards/n60_s/config.h +++ b/keyboards/nightly_boards/n60_s/config.h @@ -17,32 +17,11 @@ along with this program. If not, see . #pragma once -/* Encoders */ -#define ENCODERS_CW_KEY { { 1, 5 } } -#define ENCODERS_CCW_KEY { { 0, 5 } } - /* Audio */ #define B7_AUDIO #define AUDIO_CLICKY -/* Underglow */ - -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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_ALTERNATING - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nightly_boards/n60_s/encoder_action.c b/keyboards/nightly_boards/n60_s/encoder_action.c deleted file mode 100644 index 522fb58d5a0..00000000000 --- a/keyboards/nightly_boards/n60_s/encoder_action.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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 "encoder_action.h" - -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} diff --git a/keyboards/nightly_boards/n60_s/encoder_action.h b/keyboards/nightly_boards/n60_s/encoder_action.h deleted file mode 100644 index fb226326324..00000000000 --- a/keyboards/nightly_boards/n60_s/encoder_action.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file diff --git a/keyboards/nightly_boards/n60_s/info.json b/keyboards/nightly_boards/n60_s/info.json index 2e491343005..46da18996b4 100644 --- a/keyboards/nightly_boards/n60_s/info.json +++ b/keyboards/nightly_boards/n60_s/info.json @@ -10,7 +10,7 @@ }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "B0", "B1", "B2", "B3", "B5", "B6", "C6", "C7"], - "rows": ["B4", "D7", "D6", "D0", "E6", null] + "rows": ["B4", "D7", "D6", "D0", "E6"] }, "diode_direction": "COL2ROW", "encoder": { @@ -18,6 +18,22 @@ {"pin_a": "D3", "pin_b": "D5"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true + } + }, "ws2812": { "pin": "D1" }, @@ -95,80 +111,6 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT_60_ansi_split_bs_rshift_encoder": { - "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": [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, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"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, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"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": [5, 0], "x": 15.25, "y": 3}, - {"matrix": [5, 1], "x": 16.25, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.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, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, "LAYOUT_60_ansi_split_bs_rshift_tsangan": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -230,79 +172,6 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [4, 2], "x": 1.5, "y": 4}, - {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 12.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift_tsangan_encoder": { - "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": [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, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"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, 12], "x": 12.75, "y": 2, "w": 2.25}, - - {"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": [5, 0], "x": 15.25, "y": 3}, - {"matrix": [5, 1], "x": 16.25, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, {"matrix": [4, 2], "x": 1.5, "y": 4}, {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, diff --git a/keyboards/nightly_boards/n60_s/keymaps/ansi_encoder/keymap.c b/keyboards/nightly_boards/n60_s/keymaps/ansi_encoder/keymap.c deleted file mode 100644 index 9316b20c75f..00000000000 --- a/keyboards/nightly_boards/n60_s/keymaps/ansi_encoder/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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] = { - /* Base */ - [0] = LAYOUT_60_ansi_split_bs_rshift_encoder( - 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_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_RSFT, KC_VOLD, KC_VOLU, - KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_RCTL - ), - [1] = LAYOUT_60_ansi_split_bs_rshift_encoder( - 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_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_PGUP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, 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 - ) -}; diff --git a/keyboards/nightly_boards/n60_s/keymaps/tsangan_encoder/keymap.c b/keyboards/nightly_boards/n60_s/keymaps/tsangan_encoder/keymap.c deleted file mode 100644 index cc25ac42e73..00000000000 --- a/keyboards/nightly_boards/n60_s/keymaps/tsangan_encoder/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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] = { - /* Base */ - [0] = LAYOUT_60_ansi_split_bs_rshift_tsangan_encoder( - 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_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_RSFT, KC_VOLD, KC_VOLU, - KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL - ), - [1] = LAYOUT_60_ansi_split_bs_rshift_tsangan_encoder( - 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_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_PGUP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, 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/nightly_boards/n60_s/keymaps/via/keymap.c b/keyboards/nightly_boards/n60_s/keymaps/via/keymap.c index d76c7347826..04078c784ef 100644 --- a/keyboards/nightly_boards/n60_s/keymaps/via/keymap.c +++ b/keyboards/nightly_boards/n60_s/keymaps/via/keymap.c @@ -17,32 +17,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_60_ansi_split_bs_rshift_encoder( + [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_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_LSFT, KC_LSFT, KC_VOLD, KC_VOLU, + 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_LSFT, KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_LALT, KC_APP, KC_RGUI, KC_LCTL ), - [1] = LAYOUT_60_ansi_split_bs_rshift_encoder( + [1] = LAYOUT_60_ansi_split_bs_rshift( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, KC_F12, KC_DEL, 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_PGUP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, 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, KC_HOME, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_60_ansi_split_bs_rshift_encoder( + ), + [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_60_ansi_split_bs_rshift_encoder( + [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/nightly_boards/n60_s/keymaps/via/rules.mk b/keyboards/nightly_boards/n60_s/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/nightly_boards/n60_s/keymaps/via/rules.mk +++ b/keyboards/nightly_boards/n60_s/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nightly_boards/n60_s/n60_s.c b/keyboards/nightly_boards/n60_s/n60_s.c deleted file mode 100644 index dd0d23425bf..00000000000 --- a/keyboards/nightly_boards/n60_s/n60_s.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 "n60_s.h" - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { -// if (!encoder_update_user(index, clockwise)) return false; - encoder_action_register(index, clockwise); - return true; -}; diff --git a/keyboards/nightly_boards/n60_s/n60_s.h b/keyboards/nightly_boards/n60_s/n60_s.h deleted file mode 100644 index 33cf8e0b689..00000000000 --- a/keyboards/nightly_boards/n60_s/n60_s.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 "encoder_action.h" diff --git a/keyboards/nightly_boards/n60_s/rules.mk b/keyboards/nightly_boards/n60_s/rules.mk index a37378959e0..f404ad01632 100644 --- a/keyboards/nightly_boards/n60_s/rules.mk +++ b/keyboards/nightly_boards/n60_s/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes # Enable Rotary Encoders LTO_ENABLE = yes - -# Added encoder Action -SRC += encoder_action.c \ No newline at end of file diff --git a/keyboards/nightly_boards/n87/config.h b/keyboards/nightly_boards/n87/config.h index 3ba7c40ea64..04056f78716 100644 --- a/keyboards/nightly_boards/n87/config.h +++ b/keyboards/nightly_boards/n87/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - #define AUDIO_PIN B7 #define AUDIO_CLICKY diff --git a/keyboards/nightly_boards/n87/info.json b/keyboards/nightly_boards/n87/info.json index 1be9d83f1c9..71f78c1f3ac 100644 --- a/keyboards/nightly_boards/n87/info.json +++ b/keyboards/nightly_boards/n87/info.json @@ -13,6 +13,24 @@ "rows": ["B0", "B1", "B2", "B3", "F1", "F0", "D7", "B4", "D1", "D2", "D3", "D5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/nightly_boards/n9/config.h b/keyboards/nightly_boards/n9/config.h index 30f781e6008..3223a5a19be 100644 --- a/keyboards/nightly_boards/n9/config.h +++ b/keyboards/nightly_boards/n9/config.h @@ -14,22 +14,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nightly_boards/n9/info.json b/keyboards/nightly_boards/n9/info.json index 1dfd4f6fda9..e3fd75c9609 100644 --- a/keyboards/nightly_boards/n9/info.json +++ b/keyboards/nightly_boards/n9/info.json @@ -13,6 +13,24 @@ "rows": ["F4", "B1", "B3"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F5" }, diff --git a/keyboards/nightly_boards/octopad/config.h b/keyboards/nightly_boards/octopad/config.h index 27c3d4bd024..a0ee1a92af8 100644 --- a/keyboards/nightly_boards/octopad/config.h +++ b/keyboards/nightly_boards/octopad/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - -/* Encoders */ -#define ENCODERS_CW_KEY { { 3, 2 },{ 1, 2 } } -#define ENCODERS_CCW_KEY { { 2, 2 },{ 0, 2 } } - /* Audio */ #define AUDIO_PIN B5 diff --git a/keyboards/nightly_boards/octopad/encoder_action.c b/keyboards/nightly_boards/octopad/encoder_action.c deleted file mode 100644 index 522fb58d5a0..00000000000 --- a/keyboards/nightly_boards/octopad/encoder_action.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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 "encoder_action.h" - -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} diff --git a/keyboards/nightly_boards/octopad/encoder_action.h b/keyboards/nightly_boards/octopad/encoder_action.h deleted file mode 100644 index fb226326324..00000000000 --- a/keyboards/nightly_boards/octopad/encoder_action.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file diff --git a/keyboards/nightly_boards/octopad/info.json b/keyboards/nightly_boards/octopad/info.json index c78a58937d8..4e7affe4dd4 100644 --- a/keyboards/nightly_boards/octopad/info.json +++ b/keyboards/nightly_boards/octopad/info.json @@ -10,7 +10,7 @@ }, "matrix_pins": { "cols": ["F1", "F0", "D0", "D1", "B1"], - "rows": ["B2", "B3", null] + "rows": ["B2", "B3"] }, "diode_direction": "COL2ROW", "encoder": { @@ -19,6 +19,21 @@ {"pin_a": "F4", "pin_b": "F5"} ] }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, @@ -27,23 +42,19 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [2, 0], "x": 0, "y": 0}, - {"matrix": [0, 4], "x": 1, "y": 0}, - {"matrix": [2, 1], "x": 2, "y": 0}, + {"matrix": [0, 4], "x": 0, "y": 0}, - {"matrix": [2, 2], "x": 3.5, "y": 0}, - {"matrix": [1, 4], "x": 4.5, "y": 0}, - {"matrix": [2, 3], "x": 5.5, "y": 0}, + {"matrix": [1, 4], "x": 3.5, "y": 0}, - {"matrix": [0, 0], "x": 1.25, "y": 1.25}, - {"matrix": [0, 1], "x": 2.25, "y": 1.25}, - {"matrix": [0, 2], "x": 3.25, "y": 1.25}, - {"matrix": [0, 3], "x": 4.25, "y": 1.25}, + {"matrix": [0, 0], "x": 0.25, "y": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, - {"matrix": [1, 0], "x": 1.25, "y": 2.25}, - {"matrix": [1, 1], "x": 2.25, "y": 2.25}, - {"matrix": [1, 2], "x": 3.25, "y": 2.25}, - {"matrix": [1, 3], "x": 4.25, "y": 2.25} + {"matrix": [1, 0], "x": 0.25, "y": 2.25}, + {"matrix": [1, 1], "x": 1.25, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25}, + {"matrix": [1, 3], "x": 3.25, "y": 2.25} ] } } diff --git a/keyboards/nightly_boards/octopad/keymaps/default/keymap.c b/keyboards/nightly_boards/octopad/keymaps/default/keymap.c index 7025c893756..94d8dc34f43 100644 --- a/keyboards/nightly_boards/octopad/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/octopad/keymaps/default/keymap.c @@ -17,16 +17,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base */ - /* ENC1_CCW, ENC1_P, ENC1_CW, ENC2_CCW, ENC2_P, ENC2_CW, - MACRO1, MACRO2, MACRO3, MACRO4, - MACRO5, MACRO6, MACRO7, MACRO8 - */ [0] = LAYOUT( - KC_VOLD, KC_ESC, KC_VOLU, KC_BRID, QK_BOOT, KC_BRIU, + KC_ESC, QK_BOOT, KC_Q, KC_W, KC_E, KC_R, KC_A, KC_S, KC_D, KC_F - - ), + ) }; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/nightly_boards/octopad/keymaps/default/rules.mk b/keyboards/nightly_boards/octopad/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/nightly_boards/octopad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nightly_boards/octopad/keymaps/via/keymap.c b/keyboards/nightly_boards/octopad/keymaps/via/keymap.c index 44c2d63cc75..2f831466fcd 100644 --- a/keyboards/nightly_boards/octopad/keymaps/via/keymap.c +++ b/keyboards/nightly_boards/octopad/keymaps/via/keymap.c @@ -17,57 +17,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base */ - /* ENC1_CCW, ENC1_P, ENC1_CW, ENC2_CCW, ENC2_P, ENC2_CW, - MACRO1, MACRO2, MACRO3, MACRO4, - MACRO5, MACRO6, MACRO7, MACRO8 - */ [0] = LAYOUT( - KC_VOLD, KC_ESC, KC_VOLU, KC_BRID, QK_BOOT, KC_BRIU, + KC_ESC, QK_BOOT, KC_Q, KC_W, KC_E, KC_R, KC_A, KC_S, KC_D, KC_F - - ), - [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 - - ), - [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 - - ), - [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 - - ), - [4] = 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 - - ), - [5] = 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 - - ), - [6] = 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 - - ), - [7] = 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 - ), + [1 ... 7] = LAYOUT( + _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, + [1 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } }; +#endif diff --git a/keyboards/nightly_boards/octopad/keymaps/via/rules.mk b/keyboards/nightly_boards/octopad/keymaps/via/rules.mk index 43061db1dd4..1189f4ad192 100644 --- a/keyboards/nightly_boards/octopad/keymaps/via/rules.mk +++ b/keyboards/nightly_boards/octopad/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nightly_boards/octopad/octopad.c b/keyboards/nightly_boards/octopad/octopad.c deleted file mode 100644 index e05782677e6..00000000000 --- a/keyboards/nightly_boards/octopad/octopad.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 "octopad.h" - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { -// if (!encoder_update_user(index, clockwise)) return false; - encoder_action_register(index, clockwise); - return true; -}; diff --git a/keyboards/nightly_boards/octopad/octopad.h b/keyboards/nightly_boards/octopad/octopad.h deleted file mode 100644 index 33cf8e0b689..00000000000 --- a/keyboards/nightly_boards/octopad/octopad.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 "encoder_action.h" diff --git a/keyboards/nightly_boards/octopad/rules.mk b/keyboards/nightly_boards/octopad/rules.mk index d36fbdc8600..660f9344997 100644 --- a/keyboards/nightly_boards/octopad/rules.mk +++ b/keyboards/nightly_boards/octopad/rules.mk @@ -12,6 +12,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes # Enable Rotary Encoders - -# Added encoder Action -SRC += encoder_action.c diff --git a/keyboards/nightly_boards/octopadplus/config.h b/keyboards/nightly_boards/octopadplus/config.h index 7547d5a97bb..3d0b7f438c8 100644 --- a/keyboards/nightly_boards/octopadplus/config.h +++ b/keyboards/nightly_boards/octopadplus/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nightly_boards/octopadplus/info.json b/keyboards/nightly_boards/octopadplus/info.json index 533cefc3c1b..7a27cef0208 100644 --- a/keyboards/nightly_boards/octopadplus/info.json +++ b/keyboards/nightly_boards/octopadplus/info.json @@ -19,6 +19,9 @@ {"pin_a": "D1", "pin_b": "D0", "resolution": 5} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "rgblight": { diff --git a/keyboards/ning/tiny_board/tb16_rgb/info.json b/keyboards/ning/tiny_board/tb16_rgb/info.json index 3a6cfe3f77a..337c61fabe9 100644 --- a/keyboards/ning/tiny_board/tb16_rgb/info.json +++ b/keyboards/ning/tiny_board/tb16_rgb/info.json @@ -13,7 +13,7 @@ "rgb_matrix": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B6", "B1", "B3", "B2"], diff --git a/keyboards/nix_studio/lilith/config.h b/keyboards/nix_studio/lilith/config.h new file mode 100644 index 00000000000..225e6ac51b2 --- /dev/null +++ b/keyboards/nix_studio/lilith/config.h @@ -0,0 +1,7 @@ +// Copyright 2022 Martin Arnstad (@arnstadm) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Set HSE clock since it differs from F411 default */ +#define STM32_HSECLK 16000000 diff --git a/keyboards/nix_studio/lilith/info.json b/keyboards/nix_studio/lilith/info.json new file mode 100644 index 00000000000..e648cf98fbe --- /dev/null +++ b/keyboards/nix_studio/lilith/info.json @@ -0,0 +1,388 @@ +{ + "manufacturer": "Nix Studio", + "keyboard_name": "lilith", + "maintainer": "arnstadm", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B13", "B7", "B6", "B5", "B4", "B3", "A15", "A14", "B1", "B0", "A7", "A6", "A5", "A4", "A2", "A3"], + "rows": ["A8", "A1", "B12", "B14", "B15"] + }, + "processor": "STM32F411", + "url": "https://www.antipode.no/", + "usb": { + "device_version": "1.0.0", + "pid": "0x4C49", + "vid": "0x6E78" + }, + "community_layouts": [ "65_ansi_blocker", "65_iso_blocker", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker_tsangan" ], + "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": [0, 14], "x": 14, "y": 0 }, + { "matrix": [0, 15], "x": 15, "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": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 15], "x": 15, "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], "x": 12.75, "y": 2 }, + { "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2 }, + { "matrix": [2, 15], "x": 15, "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, 15], "x": 15, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "x": 13, "y": 4 }, + { "matrix": [4, 13], "x": 14, "y": 4 }, + { "matrix": [4, 15], "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_blocker": { + "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], "w": 2, "x": 13, "y": 0 }, + { "matrix": [0, 15], "x": 15, "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": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 15], "x": 15, "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, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [2, 15], "x": 15, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "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, 15], "x": 15, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "x": 13, "y": 4 }, + { "matrix": [4, 13], "x": 14, "y": 4 }, + { "matrix": [4, 15], "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_iso_blocker": { + "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], "w": 2, "x": 13, "y": 0 }, + { "matrix": [0, 15], "x": 15, "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": [1, 15], "x": 15, "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], "x": 12.75, "y": 2 }, + { "matrix": [2, 13], "w": 1.25, "h": 2, "x": 13.75, "y": 1 }, + { "matrix": [2, 15], "x": 15, "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, 15], "x": 15, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "x": 13, "y": 4 }, + { "matrix": [4, 13], "x": 14, "y": 4 }, + { "matrix": [4, 15], "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "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": [0, 15], "x": 15, "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": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 15], "x": 15, "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, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [2, 15], "x": 15, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "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, 15], "x": 15, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1, "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 13, "y": 4 }, + { "matrix": [4, 13], "x": 14, "y": 4 }, + { "matrix": [4, 15], "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "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], "w": 2, "x": 13, "y": 0 }, + { "matrix": [0, 15], "x": 15, "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": [1, 15], "x": 15, "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], "x": 12.75, "y": 2 }, + { "matrix": [2, 13], "w": 1.25, "h": 2, "x": 13.75, "y": 1 }, + { "matrix": [2, 15], "x": 15, "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, 15], "x": 15, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1, "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 13, "y": 4 }, + { "matrix": [4, 13], "x": 14, "y": 4 }, + { "matrix": [4, 15], "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/nix_studio/lilith/keymaps/65_ansi_blocker/keymap.c b/keyboards/nix_studio/lilith/keymaps/65_ansi_blocker/keymap.c new file mode 100644 index 00000000000..3afe91ac88a --- /dev/null +++ b/keyboards/nix_studio/lilith/keymaps/65_ansi_blocker/keymap.c @@ -0,0 +1,50 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │Ctrl│GUI │Alt │ │Alt│ Fn│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Delete│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│Pause│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_DEL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/nix_studio/lilith/keymaps/65_ansi_blocker_tsangan_split_bs/keymap.c b/keyboards/nix_studio/lilith/keymaps/65_ansi_blocker_tsangan_split_bs/keymap.c new file mode 100644 index 00000000000..b13fd083883 --- /dev/null +++ b/keyboards/nix_studio/lilith/keymaps/65_ansi_blocker_tsangan_split_bs/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [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_DEL, 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_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_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker_tsangan_split_bs( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_DEL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/nix_studio/lilith/keymaps/65_iso_blocker/keymap.c b/keyboards/nix_studio/lilith/keymaps/65_iso_blocker/keymap.c new file mode 100644 index 00000000000..83ac675d043 --- /dev/null +++ b/keyboards/nix_studio/lilith/keymaps/65_iso_blocker/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + [0] = LAYOUT_65_iso_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_iso_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_DEL, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/nix_studio/lilith/keymaps/65_iso_blocker_tsangan/keymap.c b/keyboards/nix_studio/lilith/keymaps/65_iso_blocker_tsangan/keymap.c new file mode 100644 index 00000000000..900a7af04bf --- /dev/null +++ b/keyboards/nix_studio/lilith/keymaps/65_iso_blocker_tsangan/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + [0] = LAYOUT_65_iso_blocker_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_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_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_iso_blocker_tsangan( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_DEL, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/nix_studio/lilith/keymaps/default/keymap.c b/keyboards/nix_studio/lilith/keymaps/default/keymap.c new file mode 100644 index 00000000000..217eab037bc --- /dev/null +++ b/keyboards/nix_studio/lilith/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_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_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_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, _______, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_DEL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/nix_studio/lilith/keymaps/via/keymap.c b/keyboards/nix_studio/lilith/keymaps/via/keymap.c new file mode 100644 index 00000000000..217eab037bc --- /dev/null +++ b/keyboards/nix_studio/lilith/keymaps/via/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_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_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_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, _______, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_DEL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/nix_studio/lilith/keymaps/via/rules.mk b/keyboards/nix_studio/lilith/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/nix_studio/lilith/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/nix_studio/lilith/mcuconf.h b/keyboards/nix_studio/lilith/mcuconf.h new file mode 100644 index 00000000000..e93fdc1d236 --- /dev/null +++ b/keyboards/nix_studio/lilith/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next +/* Set PLL M divider from 4 (F411 GENERIC default) to 8, because of 16 MHz crystal on board */ +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 diff --git a/keyboards/nix_studio/lilith/readme.md b/keyboards/nix_studio/lilith/readme.md new file mode 100644 index 00000000000..b5c9adce097 --- /dev/null +++ b/keyboards/nix_studio/lilith/readme.md @@ -0,0 +1,27 @@ +# lilith + +![lilith](https://i.imgur.com/aHr3Iiah.jpg) + +Lilith by nix studio. 65% keyboard with gasket mount + +* Keyboard Maintainer: [Martin Arnstad](https://github.com/arnstadm) +* Hardware Supported: Lilith PCB +* Hardware Availability: https://www.antipode.no/products/nix-lilith + +Make example for this keyboard (after setting up your build environment): + + qmk compile nix_studio/lilith -km default + +Flashing example for this keyboard: + + qmk flash nix_studio/lilith -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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear emulated EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: Briefly press the button on the back of the PCB, located on the top right +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. diff --git a/keyboards/nix_studio/lilith/rules.mk b/keyboards/nix_studio/lilith/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/nix_studio/lilith/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/nix_studio/oxalys80/config.h b/keyboards/nix_studio/oxalys80/config.h index 52b5d011d98..0e5dd8a043c 100644 --- a/keyboards/nix_studio/oxalys80/config.h +++ b/keyboards/nix_studio/oxalys80/config.h @@ -20,19 +20,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep diff --git a/keyboards/nix_studio/oxalys80/info.json b/keyboards/nix_studio/oxalys80/info.json index 5c804d7182b..fdbabe4991e 100644 --- a/keyboards/nix_studio/oxalys80/info.json +++ b/keyboards/nix_studio/oxalys80/info.json @@ -20,7 +20,23 @@ "pin": "B3" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "indicators": { "caps_lock": "E6", diff --git a/keyboards/nopunin10did/jabberwocky/v2/info.json b/keyboards/nopunin10did/jabberwocky/v2/info.json index 71d6d94542b..64848c05520 100644 --- a/keyboards/nopunin10did/jabberwocky/v2/info.json +++ b/keyboards/nopunin10did/jabberwocky/v2/info.json @@ -14,8 +14,8 @@ }, "diode_direction": "COL2ROW", "backlight": { - "driver": "software", - "pins": ["D6"], + "driver": "timer", + "pin": "D6", "levels": 6 }, "indicators": { diff --git a/keyboards/novelkeys/nk1/config.h b/keyboards/novelkeys/nk1/config.h index c4cc79e6240..1bcd22e6e58 100644 --- a/keyboards/novelkeys/nk1/config.h +++ b/keyboards/novelkeys/nk1/config.h @@ -17,21 +17,5 @@ #pragma once - #define RGBLED_NUM 9 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - #define RGBLIGHT_EFFECT_TWINKLE - /* There is only 1 Button so limiting VIA to 1 layer */ #define DYNAMIC_KEYMAP_LAYER_COUNT 1 diff --git a/keyboards/novelkeys/nk1/info.json b/keyboards/novelkeys/nk1/info.json index b72492a6aa7..480bc968c2f 100755 --- a/keyboards/novelkeys/nk1/info.json +++ b/keyboards/novelkeys/nk1/info.json @@ -8,6 +8,24 @@ "pid": "0x4E4D", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 9, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/novelkeys/nk20/config.h b/keyboards/novelkeys/nk20/config.h index 23b8d2915a1..55d8b53e83b 100644 --- a/keyboards/novelkeys/nk20/config.h +++ b/keyboards/novelkeys/nk20/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 #define WS2812_DMA_CHANNEL 3 -#define RGBLED_NUM 20 #define RGB_MATRIX_LED_COUNT 20 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 210 #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/novelkeys/nk20/info.json b/keyboards/novelkeys/nk20/info.json index 2befadb5d01..3ad31f8a33e 100644 --- a/keyboards/novelkeys/nk20/info.json +++ b/keyboards/novelkeys/nk20/info.json @@ -13,7 +13,7 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B13", "B14", "B15", "A4"], diff --git a/keyboards/novelkeys/nk20/rules.mk b/keyboards/novelkeys/nk20/rules.mk index 131bc94a443..9470fce1ba2 100644 --- a/keyboards/novelkeys/nk20/rules.mk +++ b/keyboards/novelkeys/nk20/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/novelkeys/nk65/nk65.c b/keyboards/novelkeys/nk65/nk65.c index 0e6fe08b5c4..2c325e453a4 100755 --- a/keyboards/novelkeys/nk65/nk65.c +++ b/keyboards/novelkeys/nk65/nk65.c @@ -27,9 +27,9 @@ */ void led_update_ports(led_t led_state) { if (led_state.caps_lock) { - IS31FL3733_set_color( 7+64-1, 0, 255, 0 ); + is31fl3733_set_color( 7+64-1, 0, 255, 0 ); } else { - IS31FL3733_set_color( 7+64-1, 0, 0, 0 ); + is31fl3733_set_color( 7+64-1, 0, 0, 0 ); } } @@ -45,6 +45,6 @@ __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { G = 255; } - IS31FL3733_set_color( 6+64-1, R, G, B ); + is31fl3733_set_color( 6+64-1, R, G, B ); return state; } diff --git a/keyboards/novelkeys/nk65b/config.h b/keyboards/novelkeys/nk65b/config.h index a22f9b16854..e236351344f 100755 --- a/keyboards/novelkeys/nk65b/config.h +++ b/keyboards/novelkeys/nk65b/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 #define WS2812_DMA_CHANNEL 3 -#define RGBLED_NUM 68 #define RGB_MATRIX_LED_COUNT 68 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 130 #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/novelkeys/nk65b/info.json b/keyboards/novelkeys/nk65b/info.json index 93700e6851b..eb6565aea6d 100755 --- a/keyboards/novelkeys/nk65b/info.json +++ b/keyboards/novelkeys/nk65b/info.json @@ -13,7 +13,7 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B12", "B13", "B14", "B15", "A8", "A9"], diff --git a/keyboards/novelkeys/nk65b/rules.mk b/keyboards/novelkeys/nk65b/rules.mk old mode 100755 new mode 100644 index 131bc94a443..9470fce1ba2 --- a/keyboards/novelkeys/nk65b/rules.mk +++ b/keyboards/novelkeys/nk65b/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/novelkeys/nk87/nk87.c b/keyboards/novelkeys/nk87/nk87.c index c90ba02ea4f..c75fff450b3 100755 --- a/keyboards/novelkeys/nk87/nk87.c +++ b/keyboards/novelkeys/nk87/nk87.c @@ -38,8 +38,8 @@ bool led_update_kb(led_t led_state) { CAPS = 0; } } - IS31FL3733_set_color( 63+64-1, FN1, FN1, CAPS ); - IS31FL3733_set_color( 48+64-1, 0, 0, FN2 ); + is31fl3733_set_color( 63+64-1, FN1, FN1, CAPS ); + is31fl3733_set_color( 48+64-1, 0, 0, FN2 ); return res; } diff --git a/keyboards/novelkeys/nk87b/config.h b/keyboards/novelkeys/nk87b/config.h index 49d3104c454..a0bbb315d40 100644 --- a/keyboards/novelkeys/nk87b/config.h +++ b/keyboards/novelkeys/nk87b/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 #define WS2812_DMA_CHANNEL 3 -#define RGBLED_NUM 87 #define RGB_MATRIX_LED_COUNT 87 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 114 #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/novelkeys/nk87b/info.json b/keyboards/novelkeys/nk87b/info.json index 965c2f8b047..269db89ed3b 100755 --- a/keyboards/novelkeys/nk87b/info.json +++ b/keyboards/novelkeys/nk87b/info.json @@ -13,7 +13,7 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B12", "B13", "B14", "B15", "A8", "A10", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "A0", "A1"], diff --git a/keyboards/novelkeys/nk87b/rules.mk b/keyboards/novelkeys/nk87b/rules.mk index 131bc94a443..9470fce1ba2 100644 --- a/keyboards/novelkeys/nk87b/rules.mk +++ b/keyboards/novelkeys/nk87b/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/novelkeys/nk_plus/info.json b/keyboards/novelkeys/nk_plus/info.json index 6444b82d37d..f6fad60b010 100755 --- a/keyboards/novelkeys/nk_plus/info.json +++ b/keyboards/novelkeys/nk_plus/info.json @@ -27,7 +27,7 @@ "processor": "STM32F072", "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 1, "matrix": [0, 1], "x": 13, "y": 0}, @@ -111,8 +111,11 @@ "ws2812": { "pin": "B4" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_xt_ansi_blocker_tsangan" + }, "layouts": { - "LAYOUT": { + "LAYOUT_65_xt_ansi_blocker_tsangan": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -129,11 +132,12 @@ {"matrix": [0, 12], "x": 12.5, "y": 0}, {"matrix": [0, 13], "x": 13.5, "y": 0}, {"matrix": [0, 14], "x": 14.5, "y": 0}, - {"matrix": [0, 15], "x": 15.5, "y": 0}, + {"matrix": [0, 15], "x": 15.5, "y": 0, "w": 2}, {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1, "w": 1.5}, {"matrix": [1, 3], "x": 4, "y": 1}, {"matrix": [1, 4], "x": 5, "y": 1}, {"matrix": [1, 5], "x": 6, "y": 1}, @@ -146,11 +150,12 @@ {"matrix": [1, 12], "x": 13, "y": 1}, {"matrix": [1, 13], "x": 14, "y": 1}, {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [1, 15], "x": 16, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1, "w": 1.5}, {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2, "w": 1.75}, {"matrix": [2, 3], "x": 4.25, "y": 2}, {"matrix": [2, 4], "x": 5.25, "y": 2}, {"matrix": [2, 5], "x": 6.25, "y": 2}, @@ -162,11 +167,12 @@ {"matrix": [2, 11], "x": 12.25, "y": 2}, {"matrix": [2, 12], "x": 13.25, "y": 2}, {"matrix": [2, 13], "x": 14.25, "y": 2}, - {"matrix": [2, 15], "x": 15.25, "y": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2, "w": 2.25}, {"matrix": [2, 16], "x": 17.5, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2.5, "y": 3}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 2.25}, {"matrix": [3, 4], "x": 4.75, "y": 3}, {"matrix": [3, 5], "x": 5.75, "y": 3}, {"matrix": [3, 6], "x": 6.75, "y": 3}, @@ -177,16 +183,17 @@ {"matrix": [3, 11], "x": 11.75, "y": 3}, {"matrix": [3, 12], "x": 12.75, "y": 3}, {"matrix": [3, 13], "x": 13.75, "y": 3}, - {"matrix": [3, 14], "x": 14.75, "y": 3}, + {"matrix": [3, 14], "x": 14.75, "y": 3, "w": 1.75}, {"matrix": [3, 15], "x": 16.5, "y": 3}, {"matrix": [3, 16], "x": 17.5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, {"matrix": [4, 3], "x": 4, "y": 4}, - {"matrix": [4, 4], "x": 5, "y": 4}, - {"matrix": [4, 8], "x": 6.5, "y": 4}, - {"matrix": [4, 13], "x": 13.5, "y": 4}, + {"matrix": [4, 4], "x": 5, "y": 4, "w": 1.5}, + {"matrix": [4, 8], "x": 6.5, "y": 4, "w": 7}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, {"matrix": [4, 14], "x": 15.5, "y": 4}, {"matrix": [4, 15], "x": 16.5, "y": 4}, {"matrix": [4, 16], "x": 17.5, "y": 4} diff --git a/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c b/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c index b5697a731d9..358ea8b18ba 100644 --- a/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ +[0] = LAYOUT_65_xt_ansi_blocker_tsangan( /* Base */ KC_F1, KC_F2, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, 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_PGUP, KC_F5, KC_F6, 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_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), -[1] = LAYOUT( /* FN */ +[1] = LAYOUT_65_xt_ansi_blocker_tsangan( /* FN */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/novelkeys/nk_plus/keymaps/via/keymap.c b/keyboards/novelkeys/nk_plus/keymaps/via/keymap.c index 9e877b98048..0d29c5da822 100644 --- a/keyboards/novelkeys/nk_plus/keymaps/via/keymap.c +++ b/keyboards/novelkeys/nk_plus/keymaps/via/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ +[0] = LAYOUT_65_xt_ansi_blocker_tsangan( /* Base */ KC_F1, KC_F2, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, 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_PGUP, KC_F5, KC_F6, 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_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), -[1] = LAYOUT( /* FN */ +[1] = LAYOUT_65_xt_ansi_blocker_tsangan( /* FN */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/novelkeys/nk_plus/rules.mk b/keyboards/novelkeys/nk_plus/rules.mk index a68122281ad..928a45cfaec 100644 --- a/keyboards/novelkeys/nk_plus/rules.mk +++ b/keyboards/novelkeys/nk_plus/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/novelkeys/novelpad/config.h b/keyboards/novelkeys/novelpad/config.h index 413efb67b0b..5c82c9a7ca3 100755 --- a/keyboards/novelkeys/novelpad/config.h +++ b/keyboards/novelkeys/novelpad/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 4 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/novelkeys/novelpad/info.json b/keyboards/novelkeys/novelpad/info.json index e98746ab299..1e5f6b4f73c 100644 --- a/keyboards/novelkeys/novelpad/info.json +++ b/keyboards/novelkeys/novelpad/info.json @@ -17,6 +17,21 @@ "pin": "B7", "levels": 10 }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/novelkeys/novelpad/keymaps/0xdec/keymap.c b/keyboards/novelkeys/novelpad/keymaps/0xdec/keymap.c index 5380de9648d..79a3e2fdbfb 100755 --- a/keyboards/novelkeys/novelpad/keymaps/0xdec/keymap.c +++ b/keyboards/novelkeys/novelpad/keymaps/0xdec/keymap.c @@ -36,11 +36,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_NUM_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { // Illuminate the LED under the Num Lock key rgblight_sethsv_at(0, 0, 127, 1); } else { rgblight_sethsv_at(0, 0, 0, 1); } + return false; } diff --git a/keyboards/noxary/268/keymaps/ansi/keymap.c b/keyboards/noxary/268/keymaps/ansi/keymap.c index dac8e6c0ddb..860d17177c7 100644 --- a/keyboards/noxary/268/keymaps/ansi/keymap.c +++ b/keyboards/noxary/268/keymaps/ansi/keymap.c @@ -52,12 +52,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(B6); writePinHigh(B6); } else { setPinInput(B6); writePinLow(B6); } + return false; } diff --git a/keyboards/noxary/268/keymaps/default/keymap.c b/keyboards/noxary/268/keymaps/default/keymap.c index 571396f21d1..9023c6f81fd 100644 --- a/keyboards/noxary/268/keymaps/default/keymap.c +++ b/keyboards/noxary/268/keymaps/default/keymap.c @@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(B6); writePinHigh(B6); } @@ -79,4 +79,5 @@ void led_set_user(uint8_t usb_led) { setPinInput(B6); writePinLow(B6); } + return false; } diff --git a/keyboards/noxary/268/keymaps/iso/keymap.c b/keyboards/noxary/268/keymaps/iso/keymap.c index 410883dd54f..76462bf7fe8 100644 --- a/keyboards/noxary/268/keymaps/iso/keymap.c +++ b/keyboards/noxary/268/keymaps/iso/keymap.c @@ -52,12 +52,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(B6); writePinHigh(B6); } else { setPinInput(B6); writePinLow(B6); } + return false; } diff --git a/keyboards/noxary/268/keymaps/sixtyeight/keymap.c b/keyboards/noxary/268/keymaps/sixtyeight/keymap.c index 2502667d304..3527cf7ccca 100644 --- a/keyboards/noxary/268/keymaps/sixtyeight/keymap.c +++ b/keyboards/noxary/268/keymaps/sixtyeight/keymap.c @@ -70,52 +70,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } - else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { DDRB |= (1 << 6); PORTB |= (1 << 6); } else { DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } - else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } - else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } - else { - - } - + return false; } diff --git a/keyboards/noxary/268_2/info.json b/keyboards/noxary/268_2/info.json index b96500aa312..a652276c6d1 100644 --- a/keyboards/noxary/268_2/info.json +++ b/keyboards/noxary/268_2/info.json @@ -19,6 +19,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/noxary/268_2_rgb/config.h b/keyboards/noxary/268_2_rgb/config.h index 051782f1461..7d8bba5f4b7 100644 --- a/keyboards/noxary/268_2_rgb/config.h +++ b/keyboards/noxary/268_2_rgb/config.h @@ -14,22 +14,6 @@ along with this program. If not, see . #pragma once -/* ws2812b options */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 16 -#define RGBLIGHT_SAT_STEP 16 -#define RGBLIGHT_VAL_STEP 16 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/noxary/268_2_rgb/info.json b/keyboards/noxary/268_2_rgb/info.json index d1f57bc5fc9..f742581e0fb 100644 --- a/keyboards/noxary/268_2_rgb/info.json +++ b/keyboards/noxary/268_2_rgb/info.json @@ -16,6 +16,24 @@ "backlight": { "pin": "B7" }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/noxary/378/rules.mk b/keyboards/noxary/378/rules.mk index 3c9c278b519..93e50cd795b 100644 --- a/keyboards/noxary/378/rules.mk +++ b/keyboards/noxary/378/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/noxary/valhalla/rules.mk b/keyboards/noxary/valhalla/rules.mk index 3c9c278b519..93e50cd795b 100644 --- a/keyboards/noxary/valhalla/rules.mk +++ b/keyboards/noxary/valhalla/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/noxary/x268/config.h b/keyboards/noxary/x268/config.h index 0f7486408c4..98d8ea885ec 100644 --- a/keyboards/noxary/x268/config.h +++ b/keyboards/noxary/x268/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* ws2812b options */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 16 -#define RGBLIGHT_SAT_STEP 16 -#define RGBLIGHT_VAL_STEP 16 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/noxary/x268/info.json b/keyboards/noxary/x268/info.json index 1bfcf109f44..cd94a8cdd5a 100644 --- a/keyboards/noxary/x268/info.json +++ b/keyboards/noxary/x268/info.json @@ -16,6 +16,24 @@ "backlight": { "pin": "B7" }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/nullbitsco/nibble/config.h b/keyboards/nullbitsco/nibble/config.h index 5ef3783b87d..d521e647cdf 100644 --- a/keyboards/nullbitsco/nibble/config.h +++ b/keyboards/nullbitsco/nibble/config.h @@ -37,17 +37,3 @@ #define MATRIX_ROW_PINS { B1, B3, B2, B6, D4 } #define MATRIX_COL_MUX_PINS { F4, F5, F6, F7 } #define MATRIX_COL_PINS { } - -/* Optional SMT LED pins */ -#define RGBLED_NUM 10 -#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_SLEEP diff --git a/keyboards/nullbitsco/nibble/info.json b/keyboards/nullbitsco/nibble/info.json index 7f24d368132..159e5012185 100644 --- a/keyboards/nullbitsco/nibble/info.json +++ b/keyboards/nullbitsco/nibble/info.json @@ -12,6 +12,22 @@ {"pin_a": "B5", "pin_b": "B4"} ] }, + "rgblight": { + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/nullbitsco/nibble/keymaps/oled/rules.mk b/keyboards/nullbitsco/nibble/keymaps/oled/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/nullbitsco/nibble/keymaps/oled/rules.mk +++ b/keyboards/nullbitsco/nibble/keymaps/oled/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk index db6a98385a2..1909c7ef9a3 100644 --- a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk +++ b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes VIA_ENABLE = yes diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_status/rules.mk b/keyboards/nullbitsco/nibble/keymaps/oled_status/rules.mk index 0e39ada47b5..d665c5ec5a4 100644 --- a/keyboards/nullbitsco/nibble/keymaps/oled_status/rules.mk +++ b/keyboards/nullbitsco/nibble/keymaps/oled_status/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes VIA_ENABLE = yes diff --git a/keyboards/nullbitsco/scramble/keymaps/oled/rules.mk b/keyboards/nullbitsco/scramble/keymaps/oled/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/nullbitsco/scramble/keymaps/oled/rules.mk +++ b/keyboards/nullbitsco/scramble/keymaps/oled/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/nullbitsco/scramble/v1/config.h b/keyboards/nullbitsco/scramble/v1/config.h deleted file mode 100644 index bb0ee7d7854..00000000000 --- a/keyboards/nullbitsco/scramble/v1/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2021 Jay Greco - -This 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 . -*/ - -/* NOTE: This config file is specific to AVR builds. */ - -#pragma once - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/nullbitsco/scramble/v1/info.json b/keyboards/nullbitsco/scramble/v1/info.json index 77a00d91f4b..5a9aeef64be 100644 --- a/keyboards/nullbitsco/scramble/v1/info.json +++ b/keyboards/nullbitsco/scramble/v1/info.json @@ -4,6 +4,9 @@ {"pin_a": "D6", "pin_b": "D7"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega328p", "bootloader": "usbasploader", "matrix_pins": { diff --git a/keyboards/nullbitsco/scramble/v2/config.h b/keyboards/nullbitsco/scramble/v2/config.h index 945a4da9dec..419a028c9f7 100644 --- a/keyboards/nullbitsco/scramble/v2/config.h +++ b/keyboards/nullbitsco/scramble/v2/config.h @@ -19,8 +19,6 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 - /* RP2040-specific defines*/ #define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 #define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/nullbitsco/scramble/v2/info.json b/keyboards/nullbitsco/scramble/v2/info.json index 5255c32205e..2a89a1063b2 100644 --- a/keyboards/nullbitsco/scramble/v2/info.json +++ b/keyboards/nullbitsco/scramble/v2/info.json @@ -4,6 +4,9 @@ {"pin_a": "GP24", "pin_b": "GP25"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "RP2040", "bootloader": "rp2040", "matrix_pins": { diff --git a/keyboards/nullbitsco/snap/config.h b/keyboards/nullbitsco/snap/config.h index 24e9340c0e3..d9fe16e2858 100644 --- a/keyboards/nullbitsco/snap/config.h +++ b/keyboards/nullbitsco/snap/config.h @@ -57,28 +57,6 @@ #define MATRIX_COL_MUX_PINS_RIGHT { D7, C6, D4 } #define MATRIX_EXT_PIN_RIGHT B6 -/* Optional SMT LED pins */ -#define RGBLED_NUM 10 -#define RGBLED_SPLIT { 5, 5 } -#define RGBLIGHT_LED_MAP { 8, 9, 0, 1, 2, 6, 7, 3, 4, 5 } -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - -/* Optional encoder pins */ -#define ENCODERS_PAD_A { B3 } -#define ENCODERS_PAD_B { B1 } -#define ENCODERS_PAD_A_RIGHT { B4 } -#define ENCODERS_PAD_B_RIGHT { B5 } - /* Optional speaker pin */ #define AUDIO_PIN B6 diff --git a/keyboards/nullbitsco/snap/info.json b/keyboards/nullbitsco/snap/info.json index 560389a11fd..f235fce5117 100644 --- a/keyboards/nullbitsco/snap/info.json +++ b/keyboards/nullbitsco/snap/info.json @@ -7,6 +7,38 @@ "pid": "0x6063", "device_version": "0.0.1" }, + "encoder": { + "rotary": [ + {"pin_a": "B3", "pin_b": "B1"} + ] + }, + "rgblight": { + "led_count": 10, + "sleep": true, + "led_map": [8, 9, 0, 1, 2, 6, 7, 3, 4, 5], + "split_count": [5, 5], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "split": { + "encoder": { + "right": { + "rotary": [ + {"pin_a": "B4", "pin_b": "B5"} + ] + } + } + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/nullbitsco/snap/keymaps/bongo_reactive/keymap.c b/keyboards/nullbitsco/snap/keymaps/bongo_reactive/keymap.c index 31e58c24a6f..44744970231 100644 --- a/keyboards/nullbitsco/snap/keymaps/bongo_reactive/keymap.c +++ b/keyboards/nullbitsco/snap/keymaps/bongo_reactive/keymap.c @@ -87,27 +87,27 @@ static void render_status(void) { // Host Keyboard LED Status oled_set_cursor(0, 1); - static uint8_t persistent_led_state = 0; - uint8_t led_usb_state = host_keyboard_leds(); + static led_t persistent_led_state = {0}; + led_t led_state = host_keyboard_led_state(); // Only update if the LED state has changed // Otherwise, the OLED will not turn off if an LED is on. - if (persistent_led_state != led_usb_state) { - persistent_led_state = led_usb_state; + if (persistent_led_state.raw != led_state.raw) { + persistent_led_state = led_state; oled_write_ln_P(PSTR(""), false); - if (IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { oled_set_cursor(0, 1); oled_write_P(PSTR("CAPS"), false); } - if (IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { oled_set_cursor(5, 1); oled_write_P(PSTR("NUM"), true); } - if (IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { oled_set_cursor(9, 1); oled_write_P(PSTR("SCR"), false); } diff --git a/keyboards/nullbitsco/snap/keymaps/bongo_reactive/rules.mk b/keyboards/nullbitsco/snap/keymaps/bongo_reactive/rules.mk index 7e580bfd749..5706b9bf2a0 100644 --- a/keyboards/nullbitsco/snap/keymaps/bongo_reactive/rules.mk +++ b/keyboards/nullbitsco/snap/keymaps/bongo_reactive/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 VIA_ENABLE = yes ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nullbitsco/snap/keymaps/bongo_reactive_single_oled/rules.mk b/keyboards/nullbitsco/snap/keymaps/bongo_reactive_single_oled/rules.mk index d0a184e961f..506f77c16d6 100644 --- a/keyboards/nullbitsco/snap/keymaps/bongo_reactive_single_oled/rules.mk +++ b/keyboards/nullbitsco/snap/keymaps/bongo_reactive_single_oled/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes VIA_ENABLE = yes ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nullbitsco/snap/keymaps/oled/keymap.c b/keyboards/nullbitsco/snap/keymaps/oled/keymap.c index 3a48e90134b..07145ed6def 100644 --- a/keyboards/nullbitsco/snap/keymaps/oled/keymap.c +++ b/keyboards/nullbitsco/snap/keymaps/oled/keymap.c @@ -114,27 +114,27 @@ static void render_status(void) { // Host Keyboard LED Status oled_set_cursor(0, 1); - static uint8_t persistent_led_state = 0; - uint8_t led_usb_state = host_keyboard_leds(); + static led_t persistent_led_state = {0}; + led_t led_state = host_keyboard_led_state(); // Only update if the LED state has changed // Otherwise, the OLED will not turn off if an LED is on. - if (persistent_led_state != led_usb_state) { - persistent_led_state = led_usb_state; + if (persistent_led_state.raw != led_state.raw) { + persistent_led_state = led_state; oled_write_ln_P(PSTR(""), false); - if (IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { oled_set_cursor(0, 1); oled_write_P(PSTR("CAPS"), false); } - if (IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { oled_set_cursor(5, 1); oled_write_P(PSTR("NUM"), true); } - if (IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { oled_set_cursor(9, 1); oled_write_P(PSTR("SCR"), false); } diff --git a/keyboards/nullbitsco/snap/keymaps/oled/rules.mk b/keyboards/nullbitsco/snap/keymaps/oled/rules.mk index d0a184e961f..506f77c16d6 100644 --- a/keyboards/nullbitsco/snap/keymaps/oled/rules.mk +++ b/keyboards/nullbitsco/snap/keymaps/oled/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes VIA_ENABLE = yes ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nullbitsco/snap/keymaps/typehud/keymap.c b/keyboards/nullbitsco/snap/keymaps/typehud/keymap.c index 50e164f4086..231c9d85452 100644 --- a/keyboards/nullbitsco/snap/keymaps/typehud/keymap.c +++ b/keyboards/nullbitsco/snap/keymaps/typehud/keymap.c @@ -94,27 +94,27 @@ static void render_status(void) { // Host Keyboard LED Status oled_set_cursor(0, 1); - static uint8_t persistent_led_state = 0; - uint8_t led_usb_state = host_keyboard_leds(); + static led_t persistent_led_state = {0}; + led_t led_state = host_keyboard_led_state(); // Only update if the LED state has changed // Otherwise, the OLED will not turn off if an LED is on. - if (persistent_led_state != led_usb_state) { - persistent_led_state = led_usb_state; + if (persistent_led_state.raw != led_state.raw) { + persistent_led_state = led_state; oled_write_ln_P(PSTR(" "), false); - if (IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { oled_set_cursor(0, 1); oled_write_P(PSTR("CAPS"), false); } - if (IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { oled_set_cursor(5, 1); oled_write_P(PSTR("NUM"), true); } - if (IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { oled_set_cursor(9, 1); oled_write_P(PSTR("SCR"), false); } diff --git a/keyboards/nullbitsco/snap/keymaps/typehud/rules.mk b/keyboards/nullbitsco/snap/keymaps/typehud/rules.mk index 151e44f4aac..16bd6085c05 100644 --- a/keyboards/nullbitsco/snap/keymaps/typehud/rules.mk +++ b/keyboards/nullbitsco/snap/keymaps/typehud/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes VIA_ENABLE = yes ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nullbitsco/tidbit/config.h b/keyboards/nullbitsco/tidbit/config.h index 346a8fb8a85..48eecde3f60 100644 --- a/keyboards/nullbitsco/tidbit/config.h +++ b/keyboards/nullbitsco/tidbit/config.h @@ -21,16 +21,3 @@ // Workaround for freezing after MacOS sleep #define USB_SUSPEND_WAKEUP_DELAY 200 - -/* Optional SMT LED pins */ -#define RGBLED_NUM 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/nullbitsco/tidbit/info.json b/keyboards/nullbitsco/tidbit/info.json index 0ed0a5e7b85..b8eaf60d89e 100644 --- a/keyboards/nullbitsco/tidbit/info.json +++ b/keyboards/nullbitsco/tidbit/info.json @@ -7,6 +7,21 @@ "pid": "0x6064", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, @@ -28,41 +43,29 @@ "layouts": { "LAYOUT": { "layout": [ - {"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": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - - {"matrix": [1, 2], "x": 2.25, "y": 1}, - {"matrix": [1, 3], "x": 3.25, "y": 1}, - {"matrix": [1, 4], "x": 4.25, "y": 1}, - {"matrix": [1, 5], "x": 5.25, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - - {"matrix": [2, 2], "x": 2.25, "y": 2}, - {"matrix": [2, 3], "x": 3.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [0, 3], "x": 1, "y": 0}, + {"matrix": [0, 4], "x": 2, "y": 0}, + {"matrix": [0, 5], "x": 3, "y": 0}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [1, 2], "x": 0, "y": 1}, + {"matrix": [1, 3], "x": 1, "y": 1}, + {"matrix": [1, 4], "x": 2, "y": 1}, + {"matrix": [1, 5], "x": 3, "y": 1}, - {"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": [2, 2], "x": 0, "y": 2}, + {"matrix": [2, 3], "x": 1, "y": 2}, + {"matrix": [2, 4], "x": 2, "y": 2}, + {"matrix": [2, 5], "x": 3, "y": 2}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [3, 2], "x": 0, "y": 3}, + {"matrix": [3, 3], "x": 1, "y": 3}, + {"matrix": [3, 4], "x": 2, "y": 3}, + {"matrix": [3, 5], "x": 3, "y": 3}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4} + {"matrix": [4, 2], "x": 0, "y": 4}, + {"matrix": [4, 3], "x": 1, "y": 4}, + {"matrix": [4, 4], "x": 2, "y": 4}, + {"matrix": [4, 5], "x": 3, "y": 4} ] } } diff --git a/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c index 6cd9f48c94d..8f552d30c19 100644 --- a/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c +++ b/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c @@ -22,19 +22,26 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_PSLS, KC_PAST, KC_PMNS, - KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_MPRV, KC_MNXT, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LEFT, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT - ), + [_BASE] = LAYOUT( + KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT + ), [_FUNC] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, +}; +#endif diff --git a/keyboards/nullbitsco/tidbit/keymaps/default/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/nullbitsco/tidbit/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c index 25550265341..642870640e5 100644 --- a/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c +++ b/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c @@ -25,34 +25,40 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( - KC_PSLS, KC_PAST, KC_PMNS, - KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT + KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT ), - [_VIA1] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ ), - [_VIA2] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ ), - [_VIA3] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, }; +#endif diff --git a/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk index ef531564fcd..ba3a7b1701f 100644 --- a/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk +++ b/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk @@ -1,3 +1,3 @@ VIA_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c index 32306ef9d6c..d14723df034 100644 --- a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c +++ b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c @@ -25,38 +25,44 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY0] = LAYOUT( - KC_PSLS, KC_PAST, KC_PMNS, - KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT + KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT ), - [_LAY1] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ ), - [_LAY2] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ ), - [_LAY3] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) }; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, +}; +#endif + #ifdef OLED_ENABLE /*=========================================== OLED CONFIGURATION ===========================================*/ #define OLED_ROTATE true // OLED rotation (flip 180* from default orientation) @@ -112,18 +118,18 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { // Draw static background image to OLED (keyboard with no bottom row) static void render_background(void) { static const char PROGMEM nullbits_n_oled[] = { - 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x20, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, - 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, - 0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, - 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00, + 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x20, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, + 0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00, }; oled_write_raw_P(nullbits_n_oled, sizeof(nullbits_n_oled)); } @@ -173,13 +179,13 @@ static void render_wpm_counters(uint8_t current_wpm) { static void render_led_status(void) { // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); oled_set_cursor(0, 8); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR(CAPLCK_STR) : PSTR(EMPTY_STR), false); + oled_write_P(led_state.caps_lock ? PSTR(CAPLCK_STR) : PSTR(EMPTY_STR), false); oled_set_cursor(0, 9); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR(NUMLCK_STR) : PSTR(EMPTY_STR), false); + oled_write_P(led_state.num_lock ? PSTR(NUMLCK_STR) : PSTR(EMPTY_STR), false); oled_set_cursor(0, 10); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR(SCRLK_STR) : PSTR(EMPTY_STR), false); + oled_write_P(led_state.scroll_lock ? PSTR(SCRLK_STR) : PSTR(EMPTY_STR), false); } // Update WPM snail icon diff --git a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk index 1b72fd006a2..605f034e1df 100644 --- a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk +++ b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk @@ -4,3 +4,4 @@ VIA_ENABLE = yes SPACE_CADET_ENABLE = no GRAVE_ESC_ENABLE = no MAGIC_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c index 895b02c2925..642870640e5 100644 --- a/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c +++ b/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c @@ -24,36 +24,41 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_PSLS, KC_PAST, KC_PMNS, - KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT - ), - - [_VIA1] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), - - [_VIA2] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), - - [_VIA3] = LAYOUT( - _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), + [_BASE] = LAYOUT( + KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT + ), + [_VIA1] = LAYOUT( + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [_VIA2] = LAYOUT( + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [_VIA3] = LAYOUT( + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) }; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), }, +}; +#endif diff --git a/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk index 036bd6d1c3e..f1adcab005e 100644 --- a/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk +++ b/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk @@ -1 +1,2 @@ -VIA_ENABLE = yes \ No newline at end of file +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nullbitsco/tidbit/tidbit.c b/keyboards/nullbitsco/tidbit/tidbit.c index eea5a5d54c0..15bc0f6a7ac 100644 --- a/keyboards/nullbitsco/tidbit/tidbit.c +++ b/keyboards/nullbitsco/tidbit/tidbit.c @@ -18,20 +18,6 @@ #include "common/remote_kb.h" #include "common/bitc_led.h" -typedef struct PACKED { - uint8_t r; - uint8_t c; -} encodermap_t; - -// Map encoders to their respective virtual matrix entry -// Allows for encoder control using VIA -const encodermap_t encoder_map[4][2] = { - {{1, 0}, {1, 1}}, // Encoder 1 matrix location - {{2, 0}, {2, 1}}, // Encoder 2 matrix location - {{3, 0}, {3, 1}}, // Encoder 3 matrix location - {{4, 0}, {4, 1}}, // Encoder 4 matrix location -}; - bool numlock_set = false; #ifdef OLED_ENABLE @@ -41,40 +27,40 @@ oled_rotation_t oled_init_kb(oled_rotation_t rotation) { static void render_logo(void) { static const char PROGMEM tidbit_oled[] = { - 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, - 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3e, 0x3e, 0x7e, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, - 0x1f, 0x1f, 0x3f, 0x7e, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfe, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, - 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0xf0, 0xf0, 0xf8, 0xff, 0xff, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x03, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x07, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x3f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, - 0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3e, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, - 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3f, 0x3f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7f, 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, + 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3e, 0x3e, 0x7e, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, + 0x1f, 0x1f, 0x3f, 0x7e, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, + 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xf0, 0xf0, 0xf8, 0xff, 0xff, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x07, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3e, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3f, 0x3f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - + oled_write_raw_P(tidbit_oled, sizeof(tidbit_oled)); }; @@ -86,20 +72,6 @@ bool oled_task_kb(void) { #endif -static void process_encoder_matrix(encodermap_t pos) { - action_exec(MAKE_KEYEVENT(pos.r, pos.c, true)); -#if TAP_CODE_DELAY > 0 - wait_ms(TAP_CODE_DELAY); -#endif - action_exec(MAKE_KEYEVENT(pos.r, pos.c, false)); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) return false; - process_encoder_matrix(encoder_map[index][clockwise ? 0 : 1]); - return false; -} - // Use Bit-C LED to show NUM LOCK status void led_update_ports(led_t led_state) { set_bitc_LED(led_state.num_lock ? LED_DIM : LED_OFF); diff --git a/keyboards/numatreus/config.h b/keyboards/numatreus/config.h index 774687565a1..46a94d10c09 100644 --- a/keyboards/numatreus/config.h +++ b/keyboards/numatreus/config.h @@ -19,15 +19,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -// keyboard RGB LED support -// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes -#define RGBLED_NUM 6 - -#define RGBLIGHT_VAL_STEP 17 - -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - #if defined(RGBLIGHT_ENABLE) // USB_MAX_POWER_CONSUMPTION value for stonehenge30 keyboard // 120 RGBoff, OLEDoff diff --git a/keyboards/numatreus/info.json b/keyboards/numatreus/info.json index 54f5bde1bd9..bdf4a574c68 100644 --- a/keyboards/numatreus/info.json +++ b/keyboards/numatreus/info.json @@ -17,6 +17,8 @@ "pin": "D3" }, "rgblight": { + "hue_steps": 10, + "led_count": 6, "max_brightness": 200 }, "processor": "atmega32u4", diff --git a/keyboards/obosob/arch_36/config.h b/keyboards/obosob/arch_36/config.h index 068a231f434..1b6189b42e0 100644 --- a/keyboards/obosob/arch_36/config.h +++ b/keyboards/obosob/arch_36/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE -#define RGBLED_SPLIT { 6, 6 } -#define RGBLED_NUM 12 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } -#endif - #define OLED_DISPLAY_128X64 #define EE_HANDS diff --git a/keyboards/obosob/arch_36/info.json b/keyboards/obosob/arch_36/info.json index d978080a2f7..464cd01be8f 100644 --- a/keyboards/obosob/arch_36/info.json +++ b/keyboards/obosob/arch_36/info.json @@ -16,6 +16,11 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 12, + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], + "split_count": [6, 6] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/obosob/arch_36/rules.mk b/keyboards/obosob/arch_36/rules.mk index e2392b12930..7d311cd4058 100644 --- a/keyboards/obosob/arch_36/rules.mk +++ b/keyboards/obosob/arch_36/rules.mk @@ -10,6 +10,5 @@ NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes # Split common diff --git a/keyboards/oddforge/vea/config.h b/keyboards/oddforge/vea/config.h index c2e9c2b6bb5..963f3ea3134 100644 --- a/keyboards/oddforge/vea/config.h +++ b/keyboards/oddforge/vea/config.h @@ -26,16 +26,4 @@ along with this program. If not, see . #define DYNAMIC_KEYMAP_LAYER_COUNT 3 -#define RGBLED_NUM 18 -#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_SLEEP #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 9 diff --git a/keyboards/oddforge/vea/info.json b/keyboards/oddforge/vea/info.json index d6586a09e8d..b5299b1f3e0 100644 --- a/keyboards/oddforge/vea/info.json +++ b/keyboards/oddforge/vea/info.json @@ -11,6 +11,22 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "custom" }, diff --git a/keyboards/ogre/ergo_single/config.h b/keyboards/ogre/ergo_single/config.h deleted file mode 100644 index c6739d7f665..00000000000 --- a/keyboards/ogre/ergo_single/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2020 ctrlshiftba - -This 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 RGBLED_NUM 14 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 13, 12,11, 10, 9, 8, 7} -#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/ogre/ergo_single/info.json b/keyboards/ogre/ergo_single/info.json index 4a5b96b8add..6c3feea0e05 100644 --- a/keyboards/ogre/ergo_single/info.json +++ b/keyboards/ogre/ergo_single/info.json @@ -13,6 +13,22 @@ "rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_count": 14, + "led_map": [0, 1, 2, 3, 4, 5, 6, 13, 12, 11, 10, 9, 8, 7], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/ogre/ergo_split/config.h b/keyboards/ogre/ergo_split/config.h index 92535947de1..9c0eb3b7a96 100644 --- a/keyboards/ogre/ergo_split/config.h +++ b/keyboards/ogre/ergo_split/config.h @@ -18,17 +18,3 @@ along with this program. If not, see . #pragma once #define SPLIT_HAND_PIN D1 - -#define RGBLED_SPLIT { 7, 7 } -#define RGBLED_NUM 14 -#define RGBLIGHT_LED_MAP { 6, 5, 4, 3, 2, 1, 0, 13, 12,11, 10, 9, 8, 7} -#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/ogre/ergo_split/info.json b/keyboards/ogre/ergo_split/info.json index 2a1bbbdcd65..7da3bb487a6 100644 --- a/keyboards/ogre/ergo_split/info.json +++ b/keyboards/ogre/ergo_split/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D3" }, + "rgblight": { + "led_count": 14, + "led_map": [6, 5, 4, 3, 2, 1, 0, 13, 12, 11, 10, 9, 8, 7], + "split_count": [7, 7], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/ok60/config.h b/keyboards/ok60/config.h index f11b35919e9..74f7ff51815 100644 --- a/keyboards/ok60/config.h +++ b/keyboards/ok60/config.h @@ -22,18 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/ok60/info.json b/keyboards/ok60/info.json index a9996397399..a8a345824ce 100644 --- a/keyboards/ok60/info.json +++ b/keyboards/ok60/info.json @@ -17,6 +17,23 @@ "pin": "B7", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/om60/config.h b/keyboards/om60/config.h index 16957f9a0a1..e5c8d9426ab 100644 --- a/keyboards/om60/config.h +++ b/keyboards/om60/config.h @@ -34,39 +34,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifndef RGBLED_NUM - #define RGBLED_NUM 69 - #define RGBLIGHT_LED_MAP { \ - 0, 1, 2, 3, \ - 8, 7, 6, 5, 4, \ - 9,10,11,12,13, \ - 18,17,16,15,14, \ - 19,20,21,22,23, \ - 28,27,26,25,24, \ - 29,30,31,32,33, \ - 38,37,36,35,34, \ - 39,40,41,42,43, \ - 48,47,46,45,44, \ - 49,50,51,52,53, \ - 58,57,56,55,54, \ - 59,60,61,62,63, \ - 68,67,66,65,64 \ - } - - #define RGBLIGHT_SLEEP -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 90 #define RGBLIGHT_VAL_STEP 17 @@ -74,8 +41,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 30 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard @@ -90,5 +55,3 @@ along with this program. If not, see . // iOS device need lessthan 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/om60/info.json b/keyboards/om60/info.json index 7efa8097d60..df718e7fa02 100644 --- a/keyboards/om60/info.json +++ b/keyboards/om60/info.json @@ -13,6 +13,27 @@ {"pin_a": "B4", "pin_b": "B5"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, + "rgblight": { + "hue_steps": 10, + "led_count": 69, + "sleep": true, + "led_map": [0, 1, 2, 3, 8, 7, 6, 5, 4, 9, 10, 11, 12, 13, 18, 17, 16, 15, 14, 19, 20, 21, 22, 23, 28, 27, 26, 25, 24, 29, 30, 31, 32, 33, 38, 37, 36, 35, 34, 39, 40, 41, 42, 43, 48, 47, 46, 45, 44, 49, 50, 51, 52, 53, 58, 57, 56, 55, 54, 59, 60, 61, 62, 63, 68, 67, 66, 65, 64], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/omkbd/ergodash/mini/config.h b/keyboards/omkbd/ergodash/mini/config.h index c66f9ef044b..26543ebb9df 100644 --- a/keyboards/omkbd/ergodash/mini/config.h +++ b/keyboards/omkbd/ergodash/mini/config.h @@ -18,9 +18,6 @@ along with this program. If not, see . #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - #define AUDIO_PIN C6 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ @@ -28,21 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 10, 10 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/ergodash/mini/info.json b/keyboards/omkbd/ergodash/mini/info.json index 0c62ef58fdf..4e4a13e93a4 100644 --- a/keyboards/omkbd/ergodash/mini/info.json +++ b/keyboards/omkbd/ergodash/mini/info.json @@ -20,6 +20,25 @@ "split": { "soft_serial_pin": "D0" }, + "tapping": { + "term": 120 + }, + "rgblight": { + "led_count": 20, + "split_count": [10, 10], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/omkbd/ergodash/rev1/config.h b/keyboards/omkbd/ergodash/rev1/config.h index 03eea39fd6e..26543ebb9df 100644 --- a/keyboards/omkbd/ergodash/rev1/config.h +++ b/keyboards/omkbd/ergodash/rev1/config.h @@ -18,9 +18,6 @@ along with this program. If not, see . #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - #define AUDIO_PIN C6 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ @@ -28,25 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 24 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 12, 12 } // Number of LEDs - -// The LEDs on the slave half go in reverse order -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, \ - 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12} - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/ergodash/rev1/info.json b/keyboards/omkbd/ergodash/rev1/info.json index 1ec059bd82b..b3ebe4648e0 100644 --- a/keyboards/omkbd/ergodash/rev1/info.json +++ b/keyboards/omkbd/ergodash/rev1/info.json @@ -20,6 +20,26 @@ "split": { "soft_serial_pin": "D0" }, + "tapping": { + "term": 120 + }, + "rgblight": { + "led_count": 24, + "led_map": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12], + "split_count": [12, 12], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/omkbd/runner3680/3x6/config.h b/keyboards/omkbd/runner3680/3x6/config.h index d2cd91cbc54..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/3x6/config.h +++ b/keyboards/omkbd/runner3680/3x6/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 36 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 18, 18 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/3x6/info.json b/keyboards/omkbd/runner3680/3x6/info.json index c197f04207c..f2a169d2288 100644 --- a/keyboards/omkbd/runner3680/3x6/info.json +++ b/keyboards/omkbd/runner3680/3x6/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 36, + "max_brightness": 100, + "split_count": [18, 18], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/3x7/config.h b/keyboards/omkbd/runner3680/3x7/config.h index b8c601b5642..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/3x7/config.h +++ b/keyboards/omkbd/runner3680/3x7/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 42 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 21, 21 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/3x7/info.json b/keyboards/omkbd/runner3680/3x7/info.json index 458fab653c0..e4b36983e73 100644 --- a/keyboards/omkbd/runner3680/3x7/info.json +++ b/keyboards/omkbd/runner3680/3x7/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 42, + "max_brightness": 100, + "split_count": [21, 21], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/3x8/config.h b/keyboards/omkbd/runner3680/3x8/config.h index 3a273e8bb95..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/3x8/config.h +++ b/keyboards/omkbd/runner3680/3x8/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 48 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 24, 24 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/3x8/info.json b/keyboards/omkbd/runner3680/3x8/info.json index 33fcc3228f9..e001332796c 100644 --- a/keyboards/omkbd/runner3680/3x8/info.json +++ b/keyboards/omkbd/runner3680/3x8/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 48, + "max_brightness": 100, + "split_count": [24, 24], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/4x6/config.h b/keyboards/omkbd/runner3680/4x6/config.h index 3a273e8bb95..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/4x6/config.h +++ b/keyboards/omkbd/runner3680/4x6/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 48 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 24, 24 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/4x6/info.json b/keyboards/omkbd/runner3680/4x6/info.json index 2e6eda2a2ee..6568a9e845e 100644 --- a/keyboards/omkbd/runner3680/4x6/info.json +++ b/keyboards/omkbd/runner3680/4x6/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 48, + "max_brightness": 100, + "split_count": [24, 24], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/4x7/config.h b/keyboards/omkbd/runner3680/4x7/config.h index f6b5dcf1450..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/4x7/config.h +++ b/keyboards/omkbd/runner3680/4x7/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 56 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 28, 28 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/4x7/info.json b/keyboards/omkbd/runner3680/4x7/info.json index af1a4375d63..88f3bdd18de 100644 --- a/keyboards/omkbd/runner3680/4x7/info.json +++ b/keyboards/omkbd/runner3680/4x7/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 56, + "max_brightness": 100, + "split_count": [28, 28], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/4x8/config.h b/keyboards/omkbd/runner3680/4x8/config.h index 9a53d196885..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/4x8/config.h +++ b/keyboards/omkbd/runner3680/4x8/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 64 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 32, 32 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/4x8/info.json b/keyboards/omkbd/runner3680/4x8/info.json index 88dc1455ce2..1ee1d482c92 100644 --- a/keyboards/omkbd/runner3680/4x8/info.json +++ b/keyboards/omkbd/runner3680/4x8/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 64, + "max_brightness": 100, + "split_count": [32, 32], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/5x6/config.h b/keyboards/omkbd/runner3680/5x6/config.h index 52626f1de34..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/5x6/config.h +++ b/keyboards/omkbd/runner3680/5x6/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 60 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 30, 30 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/5x6/info.json b/keyboards/omkbd/runner3680/5x6/info.json index 08c4950b807..28fddf18738 100644 --- a/keyboards/omkbd/runner3680/5x6/info.json +++ b/keyboards/omkbd/runner3680/5x6/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 60, + "max_brightness": 100, + "split_count": [30, 30], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/5x6_5x8/config.h b/keyboards/omkbd/runner3680/5x6_5x8/config.h index 33f41e5289c..99e7de0d87d 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/config.h +++ b/keyboards/omkbd/runner3680/5x6_5x8/config.h @@ -16,30 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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 */ -#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 RGBLED_NUM 70 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 30, 40 } // Number of LEDs -#endif #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 70 #define RGB_MATRIX_SPLIT { 30, 40 } // Number of LEDs diff --git a/keyboards/omkbd/runner3680/5x6_5x8/info.json b/keyboards/omkbd/runner3680/5x6_5x8/info.json index 8b1b7054a5e..ed687ddb3d7 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/info.json +++ b/keyboards/omkbd/runner3680/5x6_5x8/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.5" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"], @@ -19,11 +19,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 70, + "max_brightness": 100, + "split_count": [30, 40], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/5x7/config.h b/keyboards/omkbd/runner3680/5x7/config.h index 7b60494fcbc..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/5x7/config.h +++ b/keyboards/omkbd/runner3680/5x7/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 70 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 35, 35 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/5x7/info.json b/keyboards/omkbd/runner3680/5x7/info.json index 0c0c8670f2b..10a833a839e 100644 --- a/keyboards/omkbd/runner3680/5x7/info.json +++ b/keyboards/omkbd/runner3680/5x7/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 70, + "max_brightness": 100, + "split_count": [35, 35], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/omkbd/runner3680/5x8/config.h b/keyboards/omkbd/runner3680/5x8/config.h index 55d8ae5c97f..c0a755e251b 100644 --- a/keyboards/omkbd/runner3680/5x8/config.h +++ b/keyboards/omkbd/runner3680/5x8/config.h @@ -16,29 +16,11 @@ #pragma once -/* define tapping term */ -#define TAPPING_TERM 120 - /* 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_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 80 -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 40, 40 } // Number of LEDs - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/runner3680/5x8/info.json b/keyboards/omkbd/runner3680/5x8/info.json index 41e95e583a9..8b2ca0142ce 100644 --- a/keyboards/omkbd/runner3680/5x8/info.json +++ b/keyboards/omkbd/runner3680/5x8/info.json @@ -16,11 +16,28 @@ "split": { "soft_serial_pin": "D2" }, + "tapping": { + "term": 120 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "led_count": 80, + "max_brightness": 100, + "split_count": [40, 40], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/opendeck/32/rev1/info.json b/keyboards/opendeck/32/rev1/info.json index e2491c8ef14..2d72d9d0b40 100644 --- a/keyboards/opendeck/32/rev1/info.json +++ b/keyboards/opendeck/32/rev1/info.json @@ -4,7 +4,7 @@ "rows": ["C7", "C6", "B6", "B5"] }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "diode_direction": "COL2ROW", "processor": "atmega32u4", diff --git a/keyboards/orange75/keymaps/default/keymap.c b/keyboards/orange75/keymaps/default/keymap.c index c79fc918d0f..d6b585145db 100644 --- a/keyboards/orange75/keymaps/default/keymap.c +++ b/keyboards/orange75/keymaps/default/keymap.c @@ -52,9 +52,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { - if (usb_led & (1 << USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { setPinOutput(B0); writePinLow(B0); } else { @@ -62,7 +62,7 @@ void led_set_user(uint8_t usb_led) { writePinLow(B0); } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { setPinOutput(B1); writePinLow(B1); } else { @@ -70,11 +70,12 @@ void led_set_user(uint8_t usb_led) { writePinLow(B1); } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { setPinOutput(B2); writePinLow(B2); } else { setPinInput(B2); writePinLow(B2); } + return false; } diff --git a/keyboards/org60/config.h b/keyboards/org60/config.h index e2b275251dd..4e596948184 100644 --- a/keyboards/org60/config.h +++ b/keyboards/org60/config.h @@ -17,26 +17,7 @@ along with this program. If not, see . #pragma once -/* RGB Underglow - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* 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 TAPPING_TERM 200 diff --git a/keyboards/org60/info.json b/keyboards/org60/info.json index 7ceeef83124..2e459975249 100644 --- a/keyboards/org60/info.json +++ b/keyboards/org60/info.json @@ -14,9 +14,26 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F5", "levels": 6 }, + "rgblight": { + "hue_steps": 10, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/orthocode/config.h b/keyboards/orthocode/config.h index 38098991fed..3cc80db3764 100644 --- a/keyboards/orthocode/config.h +++ b/keyboards/orthocode/config.h @@ -16,23 +16,6 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 10 - - #define RGBLED_NUM 10 /*Change for the number of leds on the strip you attach*/ - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/orthocode/info.json b/keyboards/orthocode/info.json index 6b283da6cf1..b7fe9dab472 100644 --- a/keyboards/orthocode/info.json +++ b/keyboards/orthocode/info.json @@ -19,6 +19,20 @@ {"pin_a": "D1", "pin_b": "D0", "resolution": 1} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/owlab/jelly_epoch/hotswap/config.h b/keyboards/owlab/jelly_epoch/hotswap/config.h deleted file mode 100644 index b40244be73d..00000000000 --- a/keyboards/owlab/jelly_epoch/hotswap/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2021 owlab - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB Strip*/ -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 24 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 10 diff --git a/keyboards/owlab/jelly_epoch/hotswap/info.json b/keyboards/owlab/jelly_epoch/hotswap/info.json index c30c06fb670..0cf09660cab 100644 --- a/keyboards/owlab/jelly_epoch/hotswap/info.json +++ b/keyboards/owlab/jelly_epoch/hotswap/info.json @@ -14,6 +14,22 @@ "rows": ["B0", "B1", "B2", "B3", "A15", "B10"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 10, + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/owlab/jelly_epoch/soldered/config.h b/keyboards/owlab/jelly_epoch/soldered/config.h deleted file mode 100644 index b40244be73d..00000000000 --- a/keyboards/owlab/jelly_epoch/soldered/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2021 owlab - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB Strip*/ -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 24 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 10 diff --git a/keyboards/owlab/jelly_epoch/soldered/info.json b/keyboards/owlab/jelly_epoch/soldered/info.json index 4c66855d6b7..4337922ee05 100644 --- a/keyboards/owlab/jelly_epoch/soldered/info.json +++ b/keyboards/owlab/jelly_epoch/soldered/info.json @@ -14,6 +14,22 @@ "rows": ["B0", "B1", "B2", "B3", "A15", "B10"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 10, + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/owlab/jelly_evolv/config.h b/keyboards/owlab/jelly_evolv/config.h new file mode 100644 index 00000000000..95c5ca60483 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/config.h @@ -0,0 +1,23 @@ +/* + * Copyright 2023 owlab + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Strip*/ +# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 +# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.0 +# define RGBLIGHT_EFFECT_BREATHE_MAX 100 \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/info.json b/keyboards/owlab/jelly_evolv/hotswap/625u/info.json new file mode 100644 index 00000000000..ec25908b601 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/info.json @@ -0,0 +1,93 @@ +{ + "keyboard_name": "Jelly Evolv Hotswap_6.25U", + "usb": { + "pid": "0x3655", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":6, "y":0}, + {"matrix": [0, 6], "x":7, "y":0}, + {"matrix": [0, 7], "x":8, "y":0}, + {"matrix": [0, 8], "x":9, "y":0}, + {"matrix": [0, 9], "x":10.5, "y":0}, + {"matrix": [0, 10], "x":11.5, "y":0}, + {"matrix": [0, 11], "x":12.5, "y":0}, + {"matrix": [0, 12], "x":13.5, "y":0}, + {"matrix": [0, 14], "x":15, "y":0}, + {"matrix": [1, 0], "x":0, "y":1.5}, + {"matrix": [1, 1], "x":1, "y":1.5}, + {"matrix": [1, 2], "x":2, "y":1.5}, + {"matrix": [1, 3], "x":3, "y":1.5}, + {"matrix": [1, 4], "x":4, "y":1.5}, + {"matrix": [1, 5], "x":5, "y":1.5}, + {"matrix": [1, 6], "x":6, "y":1.5}, + {"matrix": [1, 7], "x":7, "y":1.5}, + {"matrix": [1, 8], "x":8, "y":1.5}, + {"matrix": [1, 9], "x":9, "y":1.5}, + {"matrix": [1, 10], "x":10, "y":1.5}, + {"matrix": [1, 11], "x":11, "y":1.5}, + {"matrix": [1, 12], "x":12, "y":1.5}, + {"matrix": [1, 13], "x":13, "y":1.5, "w":2}, + {"matrix": [1, 14], "x":15, "y":1.5}, + {"matrix": [2, 0], "x":0, "y":2.5, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.5}, + {"matrix": [2, 2], "x":2.5, "y":2.5}, + {"matrix": [2, 3], "x":3.5, "y":2.5}, + {"matrix": [2, 4], "x":4.5, "y":2.5}, + {"matrix": [2, 5], "x":5.5, "y":2.5}, + {"matrix": [2, 6], "x":6.5, "y":2.5}, + {"matrix": [2, 7], "x":7.5, "y":2.5}, + {"matrix": [2, 8], "x":8.5, "y":2.5}, + {"matrix": [2, 9], "x":9.5, "y":2.5}, + {"matrix": [2, 10], "x":10.5, "y":2.5}, + {"matrix": [2, 11], "x":11.5, "y":2.5}, + {"matrix": [2, 12], "x":12.5, "y":2.5}, + {"matrix": [2, 13], "x":13.5, "y":2.5, "w":1.5}, + {"matrix": [2, 14], "x":15, "y":2.5}, + {"matrix": [3, 0], "x":0, "y":3.5, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.5}, + {"matrix": [3, 2], "x":2.75, "y":3.5}, + {"matrix": [3, 3], "x":3.75, "y":3.5}, + {"matrix": [3, 4], "x":4.75, "y":3.5}, + {"matrix": [3, 5], "x":5.75, "y":3.5}, + {"matrix": [3, 6], "x":6.75, "y":3.5}, + {"matrix": [3, 7], "x":7.75, "y":3.5}, + {"matrix": [3, 8], "x":8.75, "y":3.5}, + {"matrix": [3, 9], "x":9.75, "y":3.5}, + {"matrix": [3, 10], "x":10.75, "y":3.5}, + {"matrix": [3, 11], "x":11.75, "y":3.5}, + {"matrix": [3, 13], "x":12.75, "y":3.5, "w":2.25}, + {"matrix": [3, 14], "x":15, "y":3.5}, + {"matrix": [4, 0], "x":0, "y":4.5, "w":2.25}, + {"matrix": [4, 1], "x":2.25, "y":4.5}, + {"matrix": [4, 2], "x":3.25, "y":4.5}, + {"matrix": [4, 3], "x":4.25, "y":4.5}, + {"matrix": [4, 4], "x":5.25, "y":4.5}, + {"matrix": [4, 5], "x":6.25, "y":4.5}, + {"matrix": [4, 6], "x":7.25, "y":4.5}, + {"matrix": [4, 7], "x":8.25, "y":4.5}, + {"matrix": [4, 8], "x":9.25, "y":4.5}, + {"matrix": [4, 9], "x":10.25, "y":4.5}, + {"matrix": [4, 10], "x":11.25, "y":4.5}, + {"matrix": [4, 11], "x":12.25, "y":4.5, "w":1.75}, + {"matrix": [4, 13], "x":14, "y":4.5}, + {"matrix": [5, 0], "x":0, "y":5.5, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.5, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.5, "w":1.25}, + {"matrix": [5, 5], "x":3.75, "y":5.5, "w":6.25}, + {"matrix": [5, 9], "x":10, "y":5.5, "w":1.25}, + {"matrix": [5, 10], "x":11.25, "y":5.5, "w":1.25}, + {"matrix": [5, 12], "x":13, "y":5.5}, + {"matrix": [5, 13], "x":14, "y":5.5}, + {"matrix": [5, 14], "x":15, "y":5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c new file mode 100644 index 00000000000..27e63d44fc9 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 owlab + * + * This 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_PSCR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_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, RGB_TOG, RGB_MOD, RGB_RMOD,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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/owlab/jelly_evolv/hotswap/625u/keymaps/via/keymap.c b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/via/keymap.c new file mode 100644 index 00000000000..27e63d44fc9 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 owlab + * + * This 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_PSCR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_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, RGB_TOG, RGB_MOD, RGB_RMOD,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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/owlab/jelly_evolv/hotswap/625u/keymaps/via/rules.mk b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md b/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md new file mode 100644 index 00000000000..9bbd09d2cd9 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md @@ -0,0 +1,21 @@ +# Jelly Evolv - Hotswap 6.25U PCB + +![jelly evolv](https://i.imgur.com/vkHux8Fh.jpg) + +A 75% made by Owlab. + +* Keyboard Maintainer: [owlab](https://github.com/lizhenmingdirk) +* Hardware Supported: Jelly Evolv Hotswap 6.25U PCB +* Hardware Availability: Ended groupbuy: https://www.zfrontier.com/app/flow/W58MLYOGdVVQ + +Make example for this keyboard (after setting up your build environment): + + make owlab/jelly_evolv/hotswap/625u:default + +Flashing example for this keyboard: + + make owlab/jelly_evolv/hotswap/625u:default:flash + +**Bootloader:** Press the button B of the PCB while plugging in the board. + +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). \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk b/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk new file mode 100644 index 00000000000..dfd7b8e2084 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk @@ -0,0 +1,5 @@ +MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader +DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 +DFU_SUFFIX_ARGS = -v 1688 -p 2220 +BOOTLOADER_TYPE = stm32duino +OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/info.json b/keyboards/owlab/jelly_evolv/hotswap/7u/info.json new file mode 100644 index 00000000000..dc62266add2 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/info.json @@ -0,0 +1,92 @@ +{ + "keyboard_name": "Jelly Evolv Hotswap_7U", + "usb": { + "pid": "0x3755", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":6, "y":0}, + {"matrix": [0, 6], "x":7, "y":0}, + {"matrix": [0, 7], "x":8, "y":0}, + {"matrix": [0, 8], "x":9, "y":0}, + {"matrix": [0, 9], "x":10.5, "y":0}, + {"matrix": [0, 10], "x":11.5, "y":0}, + {"matrix": [0, 11], "x":12.5, "y":0}, + {"matrix": [0, 12], "x":13.5, "y":0}, + {"matrix": [0, 14], "x":15, "y":0}, + {"matrix": [1, 0], "x":0, "y":1.5}, + {"matrix": [1, 1], "x":1, "y":1.5}, + {"matrix": [1, 2], "x":2, "y":1.5}, + {"matrix": [1, 3], "x":3, "y":1.5}, + {"matrix": [1, 4], "x":4, "y":1.5}, + {"matrix": [1, 5], "x":5, "y":1.5}, + {"matrix": [1, 6], "x":6, "y":1.5}, + {"matrix": [1, 7], "x":7, "y":1.5}, + {"matrix": [1, 8], "x":8, "y":1.5}, + {"matrix": [1, 9], "x":9, "y":1.5}, + {"matrix": [1, 10], "x":10, "y":1.5}, + {"matrix": [1, 11], "x":11, "y":1.5}, + {"matrix": [1, 12], "x":12, "y":1.5}, + {"matrix": [1, 13], "x":13, "y":1.5, "w":2}, + {"matrix": [1, 14], "x":15, "y":1.5}, + {"matrix": [2, 0], "x":0, "y":2.5, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.5}, + {"matrix": [2, 2], "x":2.5, "y":2.5}, + {"matrix": [2, 3], "x":3.5, "y":2.5}, + {"matrix": [2, 4], "x":4.5, "y":2.5}, + {"matrix": [2, 5], "x":5.5, "y":2.5}, + {"matrix": [2, 6], "x":6.5, "y":2.5}, + {"matrix": [2, 7], "x":7.5, "y":2.5}, + {"matrix": [2, 8], "x":8.5, "y":2.5}, + {"matrix": [2, 9], "x":9.5, "y":2.5}, + {"matrix": [2, 10], "x":10.5, "y":2.5}, + {"matrix": [2, 11], "x":11.5, "y":2.5}, + {"matrix": [2, 12], "x":12.5, "y":2.5}, + {"matrix": [2, 13], "x":13.5, "y":2.5, "w":1.5}, + {"matrix": [2, 14], "x":15, "y":2.5}, + {"matrix": [3, 0], "x":0, "y":3.5, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.5}, + {"matrix": [3, 2], "x":2.75, "y":3.5}, + {"matrix": [3, 3], "x":3.75, "y":3.5}, + {"matrix": [3, 4], "x":4.75, "y":3.5}, + {"matrix": [3, 5], "x":5.75, "y":3.5}, + {"matrix": [3, 6], "x":6.75, "y":3.5}, + {"matrix": [3, 7], "x":7.75, "y":3.5}, + {"matrix": [3, 8], "x":8.75, "y":3.5}, + {"matrix": [3, 9], "x":9.75, "y":3.5}, + {"matrix": [3, 10], "x":10.75, "y":3.5}, + {"matrix": [3, 11], "x":11.75, "y":3.5}, + {"matrix": [3, 13], "x":12.75, "y":3.5, "w":2.25}, + {"matrix": [3, 14], "x":15, "y":3.5}, + {"matrix": [4, 0], "x":0, "y":4.5, "w":2.25}, + {"matrix": [4, 1], "x":2.25, "y":4.5}, + {"matrix": [4, 2], "x":3.25, "y":4.5}, + {"matrix": [4, 3], "x":4.25, "y":4.5}, + {"matrix": [4, 4], "x":5.25, "y":4.5}, + {"matrix": [4, 5], "x":6.25, "y":4.5}, + {"matrix": [4, 6], "x":7.25, "y":4.5}, + {"matrix": [4, 7], "x":8.25, "y":4.5}, + {"matrix": [4, 8], "x":9.25, "y":4.5}, + {"matrix": [4, 9], "x":10.25, "y":4.5}, + {"matrix": [4, 10], "x":11.25, "y":4.5}, + {"matrix": [4, 11], "x":12.25, "y":4.5, "w":1.75}, + {"matrix": [4, 13], "x":14, "y":4.5}, + {"matrix": [5, 0], "x":0, "y":5.5, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.5, "w":1.5}, + {"matrix": [5, 2], "x":3.5, "y":5.5}, + {"matrix": [5, 5], "x":4.5, "y":5.5, "w":7}, + {"matrix": [5, 10], "x":11.5, "y":5.5}, + {"matrix": [5, 12], "x":13, "y":5.5}, + {"matrix": [5, 13], "x":14, "y":5.5}, + {"matrix": [5, 14], "x":15, "y":5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c new file mode 100644 index 00000000000..1cf53b1fe50 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 owlab + * + * This 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_PSCR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, 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, RGB_TOG, RGB_MOD, RGB_RMOD,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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/owlab/jelly_evolv/hotswap/7u/keymaps/via/keymap.c b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/via/keymap.c new file mode 100644 index 00000000000..1cf53b1fe50 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 owlab + * + * This 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_PSCR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, 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, RGB_TOG, RGB_MOD, RGB_RMOD,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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/owlab/jelly_evolv/hotswap/7u/keymaps/via/rules.mk b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md b/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md new file mode 100644 index 00000000000..31615a8486c --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md @@ -0,0 +1,21 @@ +# Jelly Evolv - Hotswap 7U PCB + +![jelly evolv](https://i.imgur.com/yZ89zVkh.jpg) + +A 75% made by Owlab. + +* Keyboard Maintainer: [owlab](https://github.com/lizhenmingdirk) +* Hardware Supported: Jelly Evolv Hotswap 7U PCB +* Hardware Availability: Ended groupbuy: https://www.zfrontier.com/app/flow/W58MLYOGdVVQ + +Make example for this keyboard (after setting up your build environment): + + make owlab/jelly_evolv/hotswap/7u:default + +Flashing example for this keyboard: + + make owlab/jelly_evolv/hotswap/7u:default:flash + +**Bootloader:** Press the button B of the PCB while plugging in the board. + +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). \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk b/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk new file mode 100644 index 00000000000..dfd7b8e2084 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk @@ -0,0 +1,5 @@ +MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader +DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 +DFU_SUFFIX_ARGS = -v 1688 -p 2220 +BOOTLOADER_TYPE = stm32duino +OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/info.json b/keyboards/owlab/jelly_evolv/info.json new file mode 100644 index 00000000000..999bcca477d --- /dev/null +++ b/keyboards/owlab/jelly_evolv/info.json @@ -0,0 +1,44 @@ +{ + "manufacturer": "OwLab", + "url": "", + "maintainer": "Owlab", + "usb": { + "vid": "0x4F53" + }, + "matrix_pins": { + "cols": ["A7", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8", "A9", "A10", "A15", "B4"], + "rows": ["A1", "A2", "A3", "A5", "A4", "A6"] + }, + "diode_direction": "COL2ROW", + "ws2812": { + "pin": "B3" + }, + "indicators": { + "caps_lock": "A0", + "on_state": 0 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "processor": "STM32F103", + "board": "STM32_F103_STM32DUINO", + "rgblight": { + "animations": { + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true + }, + "brightness_steps": 10, + "led_count": 123, + "max_brightness": 100, + "saturation_steps": 8 + } +} \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld b/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld new file mode 100644 index 00000000000..a40e12668aa --- /dev/null +++ b/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld @@ -0,0 +1,89 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + 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 + + http://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. +*/ + +/* + * STM32F103x8 memory setup for use with the STM32Duino bootloader. + */ +f103_flash_size = 128k; + +MEMORY +{ + /*Here we give 22K flash to bootloader*/ + /*0x08005800 : the application bin start address*/ + flash0 : org = 0x08006000, len = f103_flash_size - 0x6000 + flash1 : org = 0x00000000, len = 0 + flash2 : org = 0x00000000, len = 0 + flash3 : org = 0x00000000, len = 0 + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x20000000, len = 20k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/solder/info.json b/keyboards/owlab/jelly_evolv/solder/info.json new file mode 100644 index 00000000000..1c31904ecf5 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/solder/info.json @@ -0,0 +1,95 @@ +{ + "keyboard_name": "Jelly Evolv Solder", + "usb": { + "pid": "0x4A56", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":6, "y":0}, + {"matrix": [0, 6], "x":7, "y":0}, + {"matrix": [0, 7], "x":8, "y":0}, + {"matrix": [0, 8], "x":9, "y":0}, + {"matrix": [0, 9], "x":10.5, "y":0}, + {"matrix": [0, 10], "x":11.5, "y":0}, + {"matrix": [0, 11], "x":12.5, "y":0}, + {"matrix": [0, 12], "x":13.5, "y":0}, + {"matrix": [0, 14], "x":15, "y":0}, + {"matrix": [1, 0], "x":0, "y":1.5}, + {"matrix": [1, 1], "x":1, "y":1.5}, + {"matrix": [1, 2], "x":2, "y":1.5}, + {"matrix": [1, 3], "x":3, "y":1.5}, + {"matrix": [1, 4], "x":4, "y":1.5}, + {"matrix": [1, 5], "x":5, "y":1.5}, + {"matrix": [1, 6], "x":6, "y":1.5}, + {"matrix": [1, 7], "x":7, "y":1.5}, + {"matrix": [1, 8], "x":8, "y":1.5}, + {"matrix": [1, 9], "x":9, "y":1.5}, + {"matrix": [1, 10], "x":10, "y":1.5}, + {"matrix": [1, 11], "x":11, "y":1.5}, + {"matrix": [1, 12], "x":12, "y":1.5}, + {"matrix": [2, 13], "x":13, "y":1.5}, + {"matrix": [1, 13], "x":14, "y":1.5}, + {"matrix": [1, 14], "x":15, "y":1.5}, + {"matrix": [2, 0], "x":0, "y":2.5, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.5}, + {"matrix": [2, 2], "x":2.5, "y":2.5}, + {"matrix": [2, 3], "x":3.5, "y":2.5}, + {"matrix": [2, 4], "x":4.5, "y":2.5}, + {"matrix": [2, 5], "x":5.5, "y":2.5}, + {"matrix": [2, 6], "x":6.5, "y":2.5}, + {"matrix": [2, 7], "x":7.5, "y":2.5}, + {"matrix": [2, 8], "x":8.5, "y":2.5}, + {"matrix": [2, 9], "x":9.5, "y":2.5}, + {"matrix": [2, 10], "x":10.5, "y":2.5}, + {"matrix": [2, 11], "x":11.5, "y":2.5}, + {"matrix": [2, 12], "x":12.5, "y":2.5}, + {"matrix": [3, 12], "x":13.5, "y":2.5, "w":1.5}, + {"matrix": [2, 14], "x":15, "y":2.5}, + {"matrix": [3, 0], "x":0, "y":3.5, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.5}, + {"matrix": [3, 2], "x":2.75, "y":3.5}, + {"matrix": [3, 3], "x":3.75, "y":3.5}, + {"matrix": [3, 4], "x":4.75, "y":3.5}, + {"matrix": [3, 5], "x":5.75, "y":3.5}, + {"matrix": [3, 6], "x":6.75, "y":3.5}, + {"matrix": [3, 7], "x":7.75, "y":3.5}, + {"matrix": [3, 8], "x":8.75, "y":3.5}, + {"matrix": [3, 9], "x":9.75, "y":3.5}, + {"matrix": [3, 10], "x":10.75, "y":3.5}, + {"matrix": [3, 11], "x":11.75, "y":3.5}, + {"matrix": [3, 13], "x":12.75, "y":3.5, "w":2.25}, + {"matrix": [3, 14], "x":15, "y":3.5}, + {"matrix": [4, 0], "x":0, "y":4.5, "w":1.25}, + {"matrix": [5, 3], "x":1.25, "y":4.5}, + {"matrix": [4, 1], "x":2.25, "y":4.5}, + {"matrix": [4, 2], "x":3.25, "y":4.5}, + {"matrix": [4, 3], "x":4.25, "y":4.5}, + {"matrix": [4, 4], "x":5.25, "y":4.5}, + {"matrix": [4, 5], "x":6.25, "y":4.5}, + {"matrix": [4, 6], "x":7.25, "y":4.5}, + {"matrix": [4, 7], "x":8.25, "y":4.5}, + {"matrix": [4, 8], "x":9.25, "y":4.5}, + {"matrix": [4, 9], "x":10.25, "y":4.5}, + {"matrix": [4, 10], "x":11.25, "y":4.5}, + {"matrix": [4, 11], "x":12.25, "y":4.5, "w":1.75}, + {"matrix": [4, 13], "x":14, "y":4.5}, + {"matrix": [5, 0], "x":0, "y":5.5, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.5, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.5, "w":1.25}, + {"matrix": [5, 5], "x":3.75, "y":5.5, "w":6.25}, + {"matrix": [5, 9], "x":10, "y":5.5, "w":1.25}, + {"matrix": [5, 10], "x":11.25, "y":5.5, "w":1.25}, + {"matrix": [5, 12], "x":13, "y":5.5}, + {"matrix": [5, 13], "x":14, "y":5.5}, + {"matrix": [5, 14], "x":15, "y":5.5} + ] + } + } +} diff --git a/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c new file mode 100644 index 00000000000..b45d40340a6 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 owlab + * + * This 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_PSCR, + 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_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_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_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, RGB_TOG, RGB_MOD, RGB_RMOD,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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/owlab/jelly_evolv/solder/keymaps/via/keymap.c b/keyboards/owlab/jelly_evolv/solder/keymaps/via/keymap.c new file mode 100644 index 00000000000..b45d40340a6 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/solder/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 owlab + * + * This 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_PSCR, + 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_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_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_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, RGB_TOG, RGB_MOD, RGB_RMOD,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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/owlab/jelly_evolv/solder/keymaps/via/rules.mk b/keyboards/owlab/jelly_evolv/solder/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/solder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/solder/readme.md b/keyboards/owlab/jelly_evolv/solder/readme.md new file mode 100644 index 00000000000..89843dac2dc --- /dev/null +++ b/keyboards/owlab/jelly_evolv/solder/readme.md @@ -0,0 +1,21 @@ +# Jelly Evolv - soldered PCB + +![jelly evolv](https://i.imgur.com/Kk49RUVh.jpg) + +A 75% made by Owlab. + +* Keyboard Maintainer: [owlab](https://github.com/lizhenmingdirk) +* Hardware Supported: Jelly Evolv solder PCB +* Hardware Availability: Ended groupbuy: https://www.zfrontier.com/app/flow/W58MLYOGdVVQ + +Make example for this keyboard (after setting up your build environment): + + make owlab/jelly_evolv/solder:default + +Flashing example for this keyboard: + + make owlab/jelly_evolv/solder:default:flash + +**Bootloader:** Press the button B of the PCB while plugging in the board. + +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). \ No newline at end of file diff --git a/keyboards/owlab/jelly_evolv/solder/rules.mk b/keyboards/owlab/jelly_evolv/solder/rules.mk new file mode 100644 index 00000000000..dfd7b8e2084 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/solder/rules.mk @@ -0,0 +1,5 @@ +MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader +DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 +DFU_SUFFIX_ARGS = -v 1688 -p 2220 +BOOTLOADER_TYPE = stm32duino +OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file diff --git a/keyboards/owlab/spring/config.h b/keyboards/owlab/spring/config.h index 15d1e18d0b3..461903ea2ee 100644 --- a/keyboards/owlab/spring/config.h +++ b/keyboards/owlab/spring/config.h @@ -17,20 +17,5 @@ along with this program. If not, see . #pragma once -/* RGB Strip*/ -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 8 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 10 # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL # define RGBLIGHT_DEFAULT_VAL 127 diff --git a/keyboards/owlab/spring/info.json b/keyboards/owlab/spring/info.json index cdf51430618..d5813e78c88 100644 --- a/keyboards/owlab/spring/info.json +++ b/keyboards/owlab/spring/info.json @@ -14,6 +14,23 @@ "rows": ["B0", "B7", "D0", "D1", "D2"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 10, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/owlab/spring/spring.c b/keyboards/owlab/spring/spring.c index 8088fb03c24..13280ff9b39 100644 --- a/keyboards/owlab/spring/spring.c +++ b/keyboards/owlab/spring/spring.c @@ -108,7 +108,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case KC_CAPS: - if(IS_LED_ON(host_keyboard_leds(), USB_LED_CAPS_LOCK)){ + if(host_keyboard_led_state().caps_lock){ caps_mode_index = CAPS_MODE_LOWER; } else{ caps_mode_index = CAPS_MODE_UPPER; diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index 17222658f31..04bd741d771 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -17,20 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB stripe */ -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 10 # define OWL_VOLUME_RANGE 50 /* RGB matrix */ @@ -95,5 +81,3 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c index 57a216f30a9..65c0ee7eed2 100644 --- a/keyboards/owlab/voice65/hotswap/hotswap.c +++ b/keyboards/owlab/voice65/hotswap/hotswap.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "hotswap.h" +#include "quantum.h" #ifdef RGB_MATRIX_ENABLE const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { @@ -122,329 +122,3 @@ bool rgb_matrix_indicators_kb(void) { } return true; } - -enum encoder_modes{ - ENCODER_MODE_ONE, - ENCODER_MODE_TWO, - ENCODER_MODE_THREE -}; - -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 dir_hue, dir_sat; - -bool encoder_in = false; -uint32_t encoder_timer; - -bool encoder_ani_start= false; -uint32_t encoder_ani_timer = 0; - -bool encoder_direction_start = false; -uint32_t encoder_direction_timer = 0; - - -bool lizm_restart_snake = false; -void rgblight_snake_restart(uint8_t hue, uint8_t sat, uint8_t val){ - lizm_restart_snake = true; // restart signal to local each effect - rgblight_config.hue = hue; - rgblight_config.sat = sat; - rgblight_config.val = val; -} - - -void keyboard_post_init_kb(void){ - keyboard_config.raw = eeconfig_read_kb(); - if( keyboard_config.encoder_mode_index > ENCODER_MODE_THREE ){ - keyboard_config.encoder_mode_index = ENCODER_MODE_ONE; - eeconfig_update_kb(keyboard_config.raw); - } -} - -void switch_encoder_mode(uint8_t mode){ - switch(mode){ - case ENCODER_MODE_ONE: - dir_hue = 88; - dir_sat = 255; - break; - - case ENCODER_MODE_TWO: - dir_hue = 0; - dir_sat = 240; - break; - - case ENCODER_MODE_THREE: - dir_hue = 176; - dir_sat = 255; - break; - } - rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val); -} - - -void init_encoder_mode(uint8_t mode){ - previous_rgb_mode = rgblight_get_mode(); - pre_hue = rgblight_get_hue(); - pre_sat = rgblight_get_sat(); - pre_val = rgblight_get_val(); - encoder_in = true; - - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - - switch_encoder_mode(mode); -} - - -void set_encoder_mode(uint8_t mode){ - if(encoder_in == false){ - init_encoder_mode(mode); - }else{ - switch_encoder_mode(mode); - } - eeconfig_update_kb(keyboard_config.raw); - encoder_timer = timer_read32(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case RGB_MOD: - case RGB_RMOD: - case RGB_HUI: - case RGB_HUD: - case RGB_SAI: - case RGB_SAD: - case RGB_VAI: - case RGB_VAD: - - if(encoder_in){ - return false; - } - break; - - case KC_F13: - rgb_matrix_toggle(); - break; - - case KC_F14: - rgb_matrix_step(); - break; - - case KC_F15: - rgb_matrix_step_reverse(); - break; - - case KC_F16: - rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs - break; - - case KC_F17: - rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs - break; - - case KC_F18: - rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs - break; - - case KC_F19: - rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs - break; - - case KC_F20: - rgb_matrix_increase_val(); //Increase the value for effect range LEDs - break; - - case KC_F21: - rgb_matrix_decrease_val();//Decrease the value for effect range LEDs - break; - - case KC_F22: //change encoder mode upward - if(!encoder_direction_start){ - if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){ - keyboard_config.encoder_mode_index++; - } - else{ - keyboard_config.encoder_mode_index = ENCODER_MODE_ONE; - } - set_encoder_mode(keyboard_config.encoder_mode_index); - } - return false; - case KC_F23: - if(!encoder_direction_start){ - if(keyboard_config.encoder_mode_index > ENCODER_MODE_ONE){ - keyboard_config.encoder_mode_index--; - } - else{ - keyboard_config.encoder_mode_index = ENCODER_MODE_THREE; - } - set_encoder_mode(keyboard_config.encoder_mode_index); - } - return false; - - default: - break; - } - } - return process_record_user(keycode, record); -} - - -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); - encoder_in = false; - } - } - - if(encoder_ani_start){ - if(timer_elapsed32(encoder_ani_timer) > VOLUME_ANIMATION_TIMER){ - encoder_ani_start = false; - rgblight_sethsv_noeeprom(0,0,0); - } - } - - 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); - encoder_direction_start = false; - } - } - matrix_scan_user(); -} - - -void set_volume_animation(bool increase){ - if(!encoder_ani_start){ - rgblight_snake_restart(dir_hue, dir_sat, pre_val); - } - - if(increase){ - 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; -} - - -bool encoder_update_kb(uint8_t index, bool clockwise) { - uint8_t layer_now = keyboard_config.encoder_mode_index +1; - uint16_t encoder_cw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=1 }); - uint16_t encoder_ccw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=2 }); - if (index == 0) { /* First encoder */ - if(encoder_in == false){ - init_encoder_mode(keyboard_config.encoder_mode_index); - } - - if (!clockwise) { - switch(encoder_cw_keycode) { - - case KC_F13: - rgb_matrix_toggle(); - break; - - case KC_F14: - rgb_matrix_step(); - break; - - case KC_F15: - rgb_matrix_step_reverse(); - break; - - case KC_F16: - rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs - break; - - case KC_F17: - rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs - break; - - case KC_F18: - rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs - break; - - case KC_F19: - rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs - break; - - case KC_F20: - rgb_matrix_increase_val(); //Increase the value for effect range LEDs - break; - - case KC_F21: - rgb_matrix_decrease_val();//Decrease the value for effect range LEDs - break; - - case KC_VOLU: - case KC_VOLD: - tap_code(encoder_cw_keycode); - break; - - default: - tap_code(encoder_cw_keycode); - break; - } - set_volume_animation(true); - } else { - switch(encoder_ccw_keycode) { - - case KC_F13: - rgb_matrix_toggle(); - break; - - case KC_F14: - rgb_matrix_step(); - break; - - case KC_F15: - rgb_matrix_step_reverse(); - break; - - case KC_F16: - rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs - break; - - case KC_F17: - rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs - break; - - case KC_F18: - rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs - break; - - case KC_F19: - rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs - break; - - case KC_F20: - rgb_matrix_increase_val(); //Increase the value for effect range LEDs - break; - - case KC_F21: - rgb_matrix_decrease_val();//Decrease the value for effect range LEDs - break; - - case KC_VOLU: - case KC_VOLD: - tap_code(encoder_ccw_keycode); - break; - - default: - tap_code(encoder_ccw_keycode); - break; - } - set_volume_animation(false); - } - encoder_timer = timer_read32(); - } - return true; -} diff --git a/keyboards/owlab/voice65/hotswap/hotswap.h b/keyboards/owlab/voice65/hotswap/hotswap.h deleted file mode 100644 index 6536af4c49e..00000000000 --- a/keyboards/owlab/voice65/hotswap/hotswap.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2021 kb-elmo - * - * This 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" - -typedef union { - uint32_t raw; - struct { - uint8_t encoder_mode_index :8; - }; -} keyboard_config_t; - -extern keyboard_config_t keyboard_config; - -#define VOLUME_ANIMATION_TIMER 580 diff --git a/keyboards/owlab/voice65/hotswap/info.json b/keyboards/owlab/voice65/hotswap/info.json index 6b6474ab68f..7b1ff47794a 100644 --- a/keyboards/owlab/voice65/hotswap/info.json +++ b/keyboards/owlab/voice65/hotswap/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A15", "B8", "B9", "B12", "B13"], @@ -22,11 +22,28 @@ {"pin_a": "B4", "pin_b": "B5"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "ws2812": { "pin": "B15" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 10, + "led_count": 20, + "max_brightness": 180, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F303", "bootloader": "stm32-dfu", diff --git a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c index 055f93e1880..5d640c162b2 100644 --- a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c +++ b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c @@ -16,35 +16,44 @@ #include QMK_KEYBOARD_H // How long (in ms) to wait between animation steps for the snake mode -const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, - KC_TRNS, KC_VOLU, KC_VOLD, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS ), [2] = LAYOUT_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/owlab/voice65/hotswap/keymaps/default/rules.mk b/keyboards/owlab/voice65/hotswap/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/owlab/voice65/hotswap/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c b/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c index 68801ff2f8b..5d640c162b2 100644 --- a/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c +++ b/keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c @@ -16,36 +16,44 @@ #include QMK_KEYBOARD_H // How long (in ms) to wait between animation steps for the snake mode -const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, - KC_TRNS, KC_VOLU, KC_VOLD, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS ), [2] = LAYOUT_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk b/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk +++ b/keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index 6f41edccd06..66e412effb6 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -17,20 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB stripe */ -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 10 # define OWL_VOLUME_RANGE 50 /* RGB matrix*/ @@ -96,5 +82,3 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/owlab/voice65/soldered/info.json b/keyboards/owlab/voice65/soldered/info.json index 3b38b45da4c..8e96d689283 100644 --- a/keyboards/owlab/voice65/soldered/info.json +++ b/keyboards/owlab/voice65/soldered/info.json @@ -10,7 +10,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A15", "B8", "B9", "B12", "B13"], @@ -22,11 +22,28 @@ {"pin_a": "B4", "pin_b": "B5"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "ws2812": { "pin": "B15" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 10, + "led_count": 20, + "max_brightness": 180, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F303", "bootloader": "stm32-dfu", diff --git a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c index 055f93e1880..5d640c162b2 100644 --- a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c +++ b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c @@ -16,35 +16,44 @@ #include QMK_KEYBOARD_H // How long (in ms) to wait between animation steps for the snake mode -const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, - KC_TRNS, KC_VOLU, KC_VOLD, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS ), [2] = LAYOUT_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/owlab/voice65/soldered/keymaps/default/rules.mk b/keyboards/owlab/voice65/soldered/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/owlab/voice65/soldered/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c b/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c index 055f93e1880..5d640c162b2 100644 --- a/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c +++ b/keyboards/owlab/voice65/soldered/keymaps/via/keymap.c @@ -16,35 +16,44 @@ #include QMK_KEYBOARD_H // How long (in ms) to wait between animation steps for the snake mode -const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 35, 20}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, - KC_TRNS, KC_VOLU, KC_VOLD, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, 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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS ), [2] = LAYOUT_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk b/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk +++ b/keyboards/owlab/voice65/soldered/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c index cfdaaad4ae2..1444b058640 100644 --- a/keyboards/owlab/voice65/soldered/soldered.c +++ b/keyboards/owlab/voice65/soldered/soldered.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "soldered.h" +#include "quantum.h" #ifdef RGB_MATRIX_ENABLE const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { @@ -126,330 +126,3 @@ bool rgb_matrix_indicators_kb(void) { } return true; } - -enum encoder_modes{ - ENCODER_MODE_ONE, - ENCODER_MODE_TWO, - ENCODER_MODE_THREE -}; - -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 dir_hue, dir_sat; - -bool encoder_in = false; -uint32_t encoder_timer; - -bool encoder_ani_start= false; -uint32_t encoder_ani_timer = 0; - -bool encoder_direction_start = false; -uint32_t encoder_direction_timer = 0; - - -bool lizm_restart_snake = false; -void rgblight_snake_restart(uint8_t hue, uint8_t sat, uint8_t val){ - lizm_restart_snake = true; // restart signal to local each effect - rgblight_config.hue = hue; - rgblight_config.sat = sat; - rgblight_config.val = val; -} - - -void keyboard_post_init_kb(void){ - keyboard_config.raw = eeconfig_read_kb(); - if( keyboard_config.encoder_mode_index > ENCODER_MODE_THREE ){ - keyboard_config.encoder_mode_index = ENCODER_MODE_ONE; - eeconfig_update_kb(keyboard_config.raw); - } -} - -void switch_encoder_mode(uint8_t mode){ - switch(mode){ - case ENCODER_MODE_ONE: - dir_hue = 88; - dir_sat = 255; - break; - - case ENCODER_MODE_TWO: - dir_hue = 0; - dir_sat = 240; - break; - - case ENCODER_MODE_THREE: - dir_hue = 176; - dir_sat = 255; - break; - } - rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val); -} - - -void init_encoder_mode(uint8_t mode){ - previous_rgb_mode = rgblight_get_mode(); - pre_hue = rgblight_get_hue(); - pre_sat = rgblight_get_sat(); - pre_val = rgblight_get_val(); - encoder_in = true; - - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - - switch_encoder_mode(mode); -} - - -void set_encoder_mode(uint8_t mode){ - if(encoder_in == false){ - init_encoder_mode(mode); - }else{ - switch_encoder_mode(mode); - } - eeconfig_update_kb(keyboard_config.raw); - encoder_timer = timer_read32(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case RGB_MOD: - case RGB_RMOD: - case RGB_HUI: - case RGB_HUD: - case RGB_SAI: - case RGB_SAD: - case RGB_VAI: - case RGB_VAD: - - if(encoder_in){ - return false; - } - break; - - case KC_F13: - rgb_matrix_toggle(); - break; - - case KC_F14: - rgb_matrix_step(); - break; - - case KC_F15: - rgb_matrix_step_reverse(); - break; - - case KC_F16: - rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs - break; - - case KC_F17: - rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs - break; - - case KC_F18: - rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs - break; - - case KC_F19: - rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs - break; - - case KC_F20: - rgb_matrix_increase_val(); //Increase the value for effect range LEDs - break; - - case KC_F21: - rgb_matrix_decrease_val();//Decrease the value for effect range LEDs - break; - - case KC_F22: //change encoder mode upward - if(!encoder_direction_start){ - if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){ - keyboard_config.encoder_mode_index++; - } - else{ - keyboard_config.encoder_mode_index = ENCODER_MODE_ONE; - } - set_encoder_mode(keyboard_config.encoder_mode_index); - } - return false; - - case KC_F23: - if(!encoder_direction_start){ - if(keyboard_config.encoder_mode_index > ENCODER_MODE_ONE){ - keyboard_config.encoder_mode_index--; - } - else{ - keyboard_config.encoder_mode_index = ENCODER_MODE_THREE; - } - set_encoder_mode(keyboard_config.encoder_mode_index); - } - return false; - - default: - break; - } - } - return process_record_user(keycode, record); -} - - -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); - encoder_in = false; - } - } - - if(encoder_ani_start){ - if(timer_elapsed32(encoder_ani_timer) > VOLUME_ANIMATION_TIMER){ - encoder_ani_start = false; - rgblight_sethsv_noeeprom(0,0,0); - } - } - - 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); - encoder_direction_start = false; - } - } - matrix_scan_user(); -} - - -void set_volume_animation(bool increase){ - if(!encoder_ani_start){ - rgblight_snake_restart(dir_hue, dir_sat, pre_val); - } - - if(increase){ - 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; -} - - -bool encoder_update_kb(uint8_t index, bool clockwise) { - uint8_t layer_now = keyboard_config.encoder_mode_index +1; - uint16_t encoder_cw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=1 }); - uint16_t encoder_ccw_keycode = keymap_key_to_keycode(layer_now, (keypos_t){.row=2, .col=2 }); - if (index == 0) { /* First encoder */ - if(encoder_in == false){ - init_encoder_mode(keyboard_config.encoder_mode_index); - } - - if (!clockwise) { - switch(encoder_cw_keycode) { - - case KC_F13: - rgb_matrix_toggle(); - break; - - case KC_F14: - rgb_matrix_step(); - break; - - case KC_F15: - rgb_matrix_step_reverse(); - break; - - case KC_F16: - rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs - break; - - case KC_F17: - rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs - break; - - case KC_F18: - rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs - break; - - case KC_F19: - rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs - break; - - case KC_F20: - rgb_matrix_increase_val(); //Increase the value for effect range LEDs - break; - - case KC_F21: - rgb_matrix_decrease_val();//Decrease the value for effect range LEDs - break; - - case KC_VOLU: - case KC_VOLD: - tap_code(encoder_cw_keycode); - break; - - default: - tap_code(encoder_cw_keycode); - break; - } - set_volume_animation(true); - } else { - switch(encoder_ccw_keycode) { - - case KC_F13: - rgb_matrix_toggle(); - break; - - case KC_F14: - rgb_matrix_step(); - break; - - case KC_F15: - rgb_matrix_step_reverse(); - break; - - case KC_F16: - rgb_matrix_increase_hue(); //Increase the hue for effect range LEDs - break; - - case KC_F17: - rgb_matrix_decrease_hue(); //Decrease the hue for effect range LEDs - break; - - case KC_F18: - rgb_matrix_increase_sat(); //Increase the saturation for effect range LEDs - break; - - case KC_F19: - rgb_matrix_decrease_sat(); //Decrease the saturation for effect range LEDs - break; - - case KC_F20: - rgb_matrix_increase_val(); //Increase the value for effect range LEDs - break; - - case KC_F21: - rgb_matrix_decrease_val();//Decrease the value for effect range LEDs - break; - - case KC_VOLU: - case KC_VOLD: - tap_code(encoder_ccw_keycode); - break; - - default: - tap_code(encoder_ccw_keycode); - break; - } - set_volume_animation(false); - } - encoder_timer = timer_read32(); - } - return true; -} diff --git a/keyboards/owlab/voice65/soldered/soldered.h b/keyboards/owlab/voice65/soldered/soldered.h deleted file mode 100644 index 2c10428cec2..00000000000 --- a/keyboards/owlab/voice65/soldered/soldered.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2021 kb-elmo - * - * This 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" - -typedef union { - uint32_t raw; - struct { - uint8_t encoder_mode_index :8; - }; -} keyboard_config_t; - -extern keyboard_config_t keyboard_config; - -#define VOLUME_ANIMATION_TIMER 580 diff --git a/keyboards/p3d/glitch/config.h b/keyboards/p3d/glitch/config.h index a7548280532..0fc3805ff7f 100644 --- a/keyboards/p3d/glitch/config.h +++ b/keyboards/p3d/glitch/config.h @@ -17,18 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 25 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/p3d/glitch/info.json b/keyboards/p3d/glitch/info.json index 4f323df4477..e7858124e2f 100644 --- a/keyboards/p3d/glitch/info.json +++ b/keyboards/p3d/glitch/info.json @@ -19,6 +19,21 @@ {"pin_a": "F6", "pin_b": "F7", "resolution": 2} ] }, + "rgblight": { + "led_count": 25, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/palette1202/rules.mk b/keyboards/palette1202/rules.mk index 1c07ca71f28..8876586f4ba 100644 --- a/keyboards/palette1202/rules.mk +++ b/keyboards/palette1202/rules.mk @@ -12,7 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable support for rotary encoders OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable support for OLED display # Additional code SRC += lib/oled_helper.c # Adding OLED diff --git a/keyboards/panc40/config.h b/keyboards/panc40/config.h index edc623d08fa..5f360813239 100644 --- a/keyboards/panc40/config.h +++ b/keyboards/panc40/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/panc40/info.json b/keyboards/panc40/info.json index 89c96391395..c5f50057b69 100644 --- a/keyboards/panc40/info.json +++ b/keyboards/panc40/info.json @@ -8,6 +8,23 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/panc60/config.h b/keyboards/panc60/config.h deleted file mode 100644 index d324ea3f813..00000000000 --- a/keyboards/panc60/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 12 - -#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/panc60/info.json b/keyboards/panc60/info.json index 077949cd095..1a967727cef 100644 --- a/keyboards/panc60/info.json +++ b/keyboards/panc60/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/pancake/rev2/config.h b/keyboards/pancake/rev2/config.h deleted file mode 100644 index 56e93cccf36..00000000000 --- a/keyboards/pancake/rev2/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 Spaceman - * - * This 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 - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5342 // SB -#define PRODUCT_ID 0x5032 // P2 -#define DEVICE_VER 0x0002 -#define MANUFACTURER "Spaceman" -#define PRODUCT "Pancake 2" - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -#define DIODE_DIRECTION COL2ROW - -#define MATRIX_ROW_PINS { C7, C6, B6, B5 } -#define MATRIX_COL_PINS { B7, B3, B2, B1 ,B0, E6, F0, F1, F4, F5, F6, F7 } -#define UNUSED_PINS diff --git a/keyboards/pangorin/tan67/config.h b/keyboards/pangorin/tan67/config.h new file mode 100644 index 00000000000..62ccc4f273f --- /dev/null +++ b/keyboards/pangorin/tan67/config.h @@ -0,0 +1,24 @@ +/* Copyright 2023 Pangorin + * + * This 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 + /* RGB Matrix config */ + #define RGB_MATRIX_LED_COUNT 84 + #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#endif diff --git a/keyboards/pangorin/tan67/info.json b/keyboards/pangorin/tan67/info.json new file mode 100644 index 00000000000..5b36fd7a400 --- /dev/null +++ b/keyboards/pangorin/tan67/info.json @@ -0,0 +1,246 @@ +{ + "keyboard_name": "Tan67", + "manufacturer": "Unknown", + "maintainer": "Pangorin", + "usb": { + "vid": "0x4D4B", + "pid": "0x6067", + "device_version": "0.0.1" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["A5", "B10", "A3", "A2", "B0", "A9", "B1", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15"], + "rows": ["B12", "B11", "B14", "A8", "A1"] + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "B15" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 200, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 209, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 95, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 151, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 170, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 194, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 209, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + + {"x": 220, "y": 56, "flags": 2}, + {"x": 202, "y": 56, "flags": 2}, + {"x": 179, "y": 56, "flags": 2}, + {"x": 161, "y": 56, "flags": 2}, + {"x": 131, "y": 56, "flags": 2}, + {"x": 105, "y": 56, "flags": 2}, + {"x": 82, "y": 56, "flags": 2}, + {"x": 52, "y": 56, "flags": 2}, + {"x": 30, "y": 56, "flags": 2}, + {"x": 4, "y": 56, "flags": 2}, + {"x": 19, "y": 8, "flags": 2}, + {"x": 52, "y": 8, "flags": 2}, + {"x": 90, "y": 8, "flags": 2}, + {"x": 127, "y": 8, "flags": 2}, + {"x": 164, "y": 8, "flags": 2}, + {"x": 205, "y": 8, "flags": 2} + ] + }, + "community_layouts": ["65_ansi_blocker"], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "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], "w": 2, "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 15, "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": [1, 13], "w": 1.5, "x": 13.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "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, "y": 2}, + + {"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "w": 1.75, "x": 12.25, "y": 3}, + {"matrix": [3, 12], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4}, + {"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4}, + {"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4}, + {"matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4}, + {"matrix": [4, 9], "w": 1.25, "x": 10, "y": 4}, + {"matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4}, + {"matrix": [4, 11], "x": 13, "y": 4}, + {"matrix": [4, 12], "x": 14, "y": 4}, + {"matrix": [4, 13], "x": 15, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/pangorin/tan67/keymaps/default/keymap.c b/keyboards/pangorin/tan67/keymaps/default/keymap.c new file mode 100644 index 00000000000..2b46433eeff --- /dev/null +++ b/keyboards/pangorin/tan67/keymaps/default/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2023 Pangorin + * + * This 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 + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* +┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────────┐┌────┐ +│` ││1 ││2 ││3 ││4 ││5 ││6 ││7 ││8 ││9 ││0 ││- ││= ││Bksp ││Home│ +└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────────┘└────┘ +┌──────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌──────┐┌────┐ +│Tab ││Q ││W ││E ││R ││T ││Y ││U ││I ││O ││P ││[ ││] │|\ ││PgUp │ +└──────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└──────┘└────┘ +┌───────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌───────────┐┌────┐ +│Caps ││A ││S ││D ││F ││G ││H ││J ││K ││L ││; ││' ││Enter ││PgDn│ +└───────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└───────────┘└────┘ +┌───────────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌───────┐┌────┐┌────┐ +│Shift ││Z ││X ││C ││V ││B ││N ││M ││, ││. ││/ ││RShift ││Up ││End │ +└───────────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└───────┘└────┘└────┘ +┌─────┐┌─────┐┌─────┐┌─────────────────────────────────────┐┌─────┐┌─────┐ ┌────┐┌────┐┌────┐ +│LCtrl││Win ││LAlt ││Space ││MO(1)││RCtrl│ │Left││Down││Righ│ +└─────┘└─────┘└─────┘└─────────────────────────────────────┘└─────┘└─────┘ └────┘└────┘└────┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_BASE] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), +/* +┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────────┐┌────┐ +│` ││F1 ││F2 ││F3 ││F4 ││F5 ││F6 ││F7 ││F8 ││F9 ││F10 ││F11 ││F12 ││Reset ││ │ +└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────────┘└────┘ +┌──────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌──────┐┌────┐ +│ ││ ││Togg││ ││ ││ ││ ││ ││ ││ ││ ││ ││ │| ││ │ +└──────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└──────┘└────┘ +┌───────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌───────────┐┌────┐ +│ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ │ +└───────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└───────────┘└────┘ +┌───────────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌───────┐┌────┐┌────┐ +│ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││Vai+││ │ +└───────────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└───────┘└────┘└────┘ +┌─────┐┌─────┐┌─────┐┌─────────────────────────────────────┐┌─────┐┌─────┐ ┌────┐┌────┐┌────┐ +│ ││ ││ ││ ││ ││ │ │ ││Vai-││ │ +└─────┘└─────┘└─────┘└─────────────────────────────────────┘└─────┘└─────┘ └────┘└────┘└────┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_FN1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, _______, + _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_VAD, _______ + ) +}; diff --git a/keyboards/pangorin/tan67/keymaps/via/keymap.c b/keyboards/pangorin/tan67/keymaps/via/keymap.c new file mode 100644 index 00000000000..2b46433eeff --- /dev/null +++ b/keyboards/pangorin/tan67/keymaps/via/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2023 Pangorin + * + * This 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 + +// 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 layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* +┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────────┐┌────┐ +│` ││1 ││2 ││3 ││4 ││5 ││6 ││7 ││8 ││9 ││0 ││- ││= ││Bksp ││Home│ +└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────────┘└────┘ +┌──────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌──────┐┌────┐ +│Tab ││Q ││W ││E ││R ││T ││Y ││U ││I ││O ││P ││[ ││] │|\ ││PgUp │ +└──────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└──────┘└────┘ +┌───────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌───────────┐┌────┐ +│Caps ││A ││S ││D ││F ││G ││H ││J ││K ││L ││; ││' ││Enter ││PgDn│ +└───────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└───────────┘└────┘ +┌───────────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌───────┐┌────┐┌────┐ +│Shift ││Z ││X ││C ││V ││B ││N ││M ││, ││. ││/ ││RShift ││Up ││End │ +└───────────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└───────┘└────┘└────┘ +┌─────┐┌─────┐┌─────┐┌─────────────────────────────────────┐┌─────┐┌─────┐ ┌────┐┌────┐┌────┐ +│LCtrl││Win ││LAlt ││Space ││MO(1)││RCtrl│ │Left││Down││Righ│ +└─────┘└─────┘└─────┘└─────────────────────────────────────┘└─────┘└─────┘ └────┘└────┘└────┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_BASE] = LAYOUT_65_ansi_blocker( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), +/* +┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────────┐┌────┐ +│` ││F1 ││F2 ││F3 ││F4 ││F5 ││F6 ││F7 ││F8 ││F9 ││F10 ││F11 ││F12 ││Reset ││ │ +└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────────┘└────┘ +┌──────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌──────┐┌────┐ +│ ││ ││Togg││ ││ ││ ││ ││ ││ ││ ││ ││ ││ │| ││ │ +└──────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└──────┘└────┘ +┌───────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌───────────┐┌────┐ +│ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ │ +└───────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└───────────┘└────┘ +┌───────────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌───────┐┌────┐┌────┐ +│ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││Vai+││ │ +└───────────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└───────┘└────┘└────┘ +┌─────┐┌─────┐┌─────┐┌─────────────────────────────────────┐┌─────┐┌─────┐ ┌────┐┌────┐┌────┐ +│ ││ ││ ││ ││ ││ │ │ ││Vai-││ │ +└─────┘└─────┘└─────┘└─────────────────────────────────────┘└─────┘└─────┘ └────┘└────┘└────┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_FN1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, _______, + _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_VAD, _______ + ) +}; diff --git a/keyboards/pangorin/tan67/keymaps/via/rules.mk b/keyboards/pangorin/tan67/keymaps/via/rules.mk new file mode 100644 index 00000000000..16d33cd89fe --- /dev/null +++ b/keyboards/pangorin/tan67/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes + diff --git a/keyboards/pangorin/tan67/readme.md b/keyboards/pangorin/tan67/readme.md new file mode 100644 index 00000000000..6fdb4effbd5 --- /dev/null +++ b/keyboards/pangorin/tan67/readme.md @@ -0,0 +1,23 @@ +# TAN67 PCB + +A 65% PCB, which controlled by an STM32F072 chipset. + +* Keyboard Maintainer: [Pangorin](https://github.com/pangorin) +* Hardware Supported: STM32F072 + +Make example for this keyboard (after setting up your build environment): + + make pangorin/tan67:default + +Flashing example for this keyboard: + + make pangorin/tan67: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 and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/pangorin/tan67/rules.mk b/keyboards/pangorin/tan67/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/pangorin/tan67/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/pangorin/tan67/tan67.c b/keyboards/pangorin/tan67/tan67.c new file mode 100644 index 00000000000..574624c1576 --- /dev/null +++ b/keyboards/pangorin/tan67/tan67.c @@ -0,0 +1,52 @@ +/* Copyright 2023 Pangorin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case (LED_FLAG_UNDERGLOW): { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + } + return process_record_user(keycode, record); +} +#endif + diff --git a/keyboards/paprikman/albacore/info.json b/keyboards/paprikman/albacore/info.json index 8d62d0a2472..5fad6237fac 100644 --- a/keyboards/paprikman/albacore/info.json +++ b/keyboards/paprikman/albacore/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C6", "B6", "B5", "B4"], diff --git a/keyboards/password/keymaps/default/vial.json b/keyboards/password/keymaps/default/vial.json deleted file mode 100644 index 0380e1b8b08..00000000000 --- a/keyboards/password/keymaps/default/vial.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "The PASSWORD", - "vendorId": "0xFEED", - "productId": "0x6060", - "lighting": "none", - "matrix": { - "rows": 1, - "cols": 8 - }, - "layouts": { - "keymap": [ - [ - { - "c": "#00589f" - }, - "0,0", - "0,1", - "0,2", - "0,3", - "0,4", - "0,5", - "0,6", - "0,7" - ] - ] - } - } \ No newline at end of file diff --git a/keyboards/pearl/config.h b/keyboards/pearl/config.h deleted file mode 100644 index 2a51abdab27..00000000000 --- a/keyboards/pearl/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 diff --git a/keyboards/pearl/info.json b/keyboards/pearl/info.json index 8ac8ef0a7e4..cf090b95872 100644 --- a/keyboards/pearl/info.json +++ b/keyboards/pearl/info.json @@ -15,6 +15,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/pearl/keymaps/cijanzen/rules.mk b/keyboards/pearl/keymaps/cijanzen/rules.mk index c800dc98f8e..900468e149c 100644 --- a/keyboards/pearl/keymaps/cijanzen/rules.mk +++ b/keyboards/pearl/keymaps/cijanzen/rules.mk @@ -6,6 +6,5 @@ CONSOLE_ENABLE = no COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes # TAP_DANCE_ENABLE = yes AUTO_SHIFT_ENABLE = yes diff --git a/keyboards/pearlboards/atlas/config.h b/keyboards/pearlboards/atlas/config.h index 009f810b0cc..6fbdda292b5 100644 --- a/keyboards/pearlboards/atlas/config.h +++ b/keyboards/pearlboards/atlas/config.h @@ -22,29 +22,12 @@ along with this program. If not, see . #define AUDIO_PIN C6 /* Haptic feedback */ -#define FB_ERM_LRA 0 -#define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 -#define FB_LOOPGAIN 3 // For Low:0, Medium:1, High:2, Very High:3 +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 +#define DRV2605L_FB_LOOPGAIN 3 // For Low:0, Medium:1, High:2, Very High:3 /* Motor settings */ -#define RATED_VOLTAGE 3 -#define V_PEAK 5 - -/*== all animations enabled ==*/ -/* If RGBLIGHT_SLEEP defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP +#define DRV2605L_RATED_VOLTAGE 3 +#define DRV2605L_V_PEAK 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/pearlboards/atlas/info.json b/keyboards/pearlboards/atlas/info.json index 6c944ff3293..5433eb3c75f 100644 --- a/keyboards/pearlboards/atlas/info.json +++ b/keyboards/pearlboards/atlas/info.json @@ -24,6 +24,23 @@ "scroll_lock": "F6", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/pearlboards/atlas/rules.mk b/keyboards/pearlboards/atlas/rules.mk index 15d4f79cde6..1dd174f4366 100644 --- a/keyboards/pearlboards/atlas/rules.mk +++ b/keyboards/pearlboards/atlas/rules.mk @@ -12,6 +12,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes HAPTIC_ENABLE = yes -HAPTIC_DRIVER = DRV2605L +HAPTIC_DRIVER = drv2605l LTO_ENABLE = yes diff --git a/keyboards/pearlboards/pandora/config.h b/keyboards/pearlboards/pandora/config.h index 02fc30db977..beaeec353d5 100644 --- a/keyboards/pearlboards/pandora/config.h +++ b/keyboards/pearlboards/pandora/config.h @@ -19,23 +19,6 @@ along with this program. If not, see . #define DIP_SWITCH_PINS { B2, B5 } -/*== all animations enabled ==*/ -/* If RGBLIGHT_SLEEP defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/pearlboards/pandora/info.json b/keyboards/pearlboards/pandora/info.json index 39f271d1b52..e0a28788ebf 100644 --- a/keyboards/pearlboards/pandora/info.json +++ b/keyboards/pearlboards/pandora/info.json @@ -22,6 +22,23 @@ "caps_lock": "E6", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/pearlboards/pearl/config.h b/keyboards/pearlboards/pearl/config.h index 361c3159291..e0ed66359a6 100644 --- a/keyboards/pearlboards/pearl/config.h +++ b/keyboards/pearlboards/pearl/config.h @@ -22,30 +22,12 @@ along with this program. If not, see . #define AUDIO_PIN C6 /* Haptic feedback */ -#define FB_ERM_LRA 0 -#define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 -#define FB_LOOPGAIN 1 // For Low:0, Medium:1, High:2, Very High:3 +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 +#define DRV2605L_FB_LOOPGAIN 1 // For Low:0, Medium:1, High:2, Very High:3 /* Motor settings */ -#define RATED_VOLTAGE 3 -#define V_PEAK 5 - -/*== all animations enabled ==*/ -/* If RGBLIGHT_SLEEP defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 10 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP +#define DRV2605L_RATED_VOLTAGE 3 +#define DRV2605L_V_PEAK 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/pearlboards/pearl/info.json b/keyboards/pearlboards/pearl/info.json index c14c6685b36..43dd3ad871d 100644 --- a/keyboards/pearlboards/pearl/info.json +++ b/keyboards/pearlboards/pearl/info.json @@ -19,6 +19,24 @@ "scroll_lock": "B2", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/pearlboards/pearl/rules.mk b/keyboards/pearlboards/pearl/rules.mk index 707e9c93126..83d6c3a33f5 100644 --- a/keyboards/pearlboards/pearl/rules.mk +++ b/keyboards/pearlboards/pearl/rules.mk @@ -11,6 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output HAPTIC_ENABLE = yes -HAPTIC_DRIVER = DRV2605L +HAPTIC_DRIVER = drv2605l LTO_ENABLE = yes diff --git a/keyboards/pearlboards/zeus/config.h b/keyboards/pearlboards/zeus/config.h index 102c43e1680..ae2ca44ab55 100644 --- a/keyboards/pearlboards/zeus/config.h +++ b/keyboards/pearlboards/zeus/config.h @@ -26,29 +26,12 @@ along with this program. If not, see . #endif /* Haptic feedback */ -#define FB_ERM_LRA 0 -#define FB_BRAKEFACTOR 1 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 -#define FB_LOOPGAIN 3 // For Low:0, Medium:1, High:2, Very High:3 +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_FB_BRAKEFACTOR 1 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 +#define DRV2605L_FB_LOOPGAIN 3 // For Low:0, Medium:1, High:2, Very High:3 /* Motor settings */ -#define RATED_VOLTAGE 2 -#define V_PEAK 5 - -/*== all animations enabled ==*/ -/* If RGBLIGHT_SLEEP defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 2 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP +#define DRV2605L_RATED_VOLTAGE 2 +#define DRV2605L_V_PEAK 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/pearlboards/zeus/info.json b/keyboards/pearlboards/zeus/info.json index 0fbfc75c217..3128b8c1d85 100644 --- a/keyboards/pearlboards/zeus/info.json +++ b/keyboards/pearlboards/zeus/info.json @@ -24,6 +24,23 @@ "scroll_lock": "C3", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/pearlboards/zeus/rules.mk b/keyboards/pearlboards/zeus/rules.mk index eeb36fee4ee..5cb2d9b6493 100644 --- a/keyboards/pearlboards/zeus/rules.mk +++ b/keyboards/pearlboards/zeus/rules.mk @@ -12,6 +12,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes # Rotary encoder HAPTIC_ENABLE = yes # Rumble feefback -HAPTIC_DRIVER = DRV2605L # Rumble motor +HAPTIC_DRIVER = drv2605l # Rumble motor LTO_ENABLE = yes # Link time optimization diff --git a/keyboards/pearlboards/zeuspad/config.h b/keyboards/pearlboards/zeuspad/config.h index 205cad6e32a..c012875d68c 100644 --- a/keyboards/pearlboards/zeuspad/config.h +++ b/keyboards/pearlboards/zeuspad/config.h @@ -24,23 +24,6 @@ along with this program. If not, see . #define AUDIO_CLICKY #define AUDIO_PIN C6 -/*== all animations enabled ==*/ -/* If RGBLIGHT_SLEEP defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 2 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/pearlboards/zeuspad/info.json b/keyboards/pearlboards/zeuspad/info.json index 9bd5a1a99ad..9d43e932bf7 100644 --- a/keyboards/pearlboards/zeuspad/info.json +++ b/keyboards/pearlboards/zeuspad/info.json @@ -18,6 +18,23 @@ {"pin_a": "D6", "pin_b": "D4", "resolution": 1} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/pearlboards/zeuspad/rules.mk b/keyboards/pearlboards/zeuspad/rules.mk index c6e9db406ab..a560cb2ea2c 100644 --- a/keyboards/pearlboards/zeuspad/rules.mk +++ b/keyboards/pearlboards/zeuspad/rules.mk @@ -12,6 +12,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Rotary encoder OLED_ENABLE = yes # Enable oled -OLED_DRIVER = SSD1306 # Oled type LTO_ENABLE = yes # Link time optimization diff --git a/keyboards/peej/tripel/left/info.json b/keyboards/peej/tripel/left/info.json index b938ef9b9a3..e9833e2464b 100644 --- a/keyboards/peej/tripel/left/info.json +++ b/keyboards/peej/tripel/left/info.json @@ -70,7 +70,7 @@ {"matrix": [5, 7], "x": 1, "y": 4}, {"matrix": [4, 6], "x": 2, "y": 4}, {"matrix": [4, 7], "x": 3, "y": 4}, - {"matrix": [7, 6], "x": 7, "y": 4, "w": 7}, + {"matrix": [7, 6], "x": 4, "y": 4, "w": 7}, {"matrix": [2, 7], "x": 11, "y": 4}, {"matrix": [1, 6], "x": 12, "y": 4}, {"matrix": [1, 7], "x": 13, "y": 4}, diff --git a/keyboards/peej/tripel/middle/info.json b/keyboards/peej/tripel/middle/info.json index b1bdf10f82e..98d854e4893 100644 --- a/keyboards/peej/tripel/middle/info.json +++ b/keyboards/peej/tripel/middle/info.json @@ -70,7 +70,7 @@ {"matrix": [2, 7], "x": 1, "y": 4}, {"matrix": [1, 6], "x": 2, "y": 4}, {"matrix": [1, 7], "x": 3, "y": 4}, - {"matrix": [4, 6], "x": 7, "y": 4, "w": 7}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, {"matrix": [8, 7], "x": 11, "y": 4}, {"matrix": [7, 6], "x": 12, "y": 4}, {"matrix": [7, 7], "x": 13, "y": 4}, diff --git a/keyboards/peej/tripel/right/info.json b/keyboards/peej/tripel/right/info.json index 9916d317f2f..c9f31f46797 100644 --- a/keyboards/peej/tripel/right/info.json +++ b/keyboards/peej/tripel/right/info.json @@ -70,7 +70,7 @@ {"matrix": [8, 7], "x": 1, "y": 4}, {"matrix": [7, 6], "x": 2, "y": 4}, {"matrix": [7, 7], "x": 3, "y": 4}, - {"matrix": [1, 6], "x": 7, "y": 4, "w": 7}, + {"matrix": [1, 6], "x": 4, "y": 4, "w": 7}, {"matrix": [5, 7], "x": 11, "y": 4}, {"matrix": [4, 6], "x": 12, "y": 4}, {"matrix": [4, 7], "x": 13, "y": 4}, diff --git a/keyboards/peranekofactory/tone/rev1/config.h b/keyboards/peranekofactory/tone/rev1/config.h index c97fab915a3..bbe3b73627f 100644 --- a/keyboards/peranekofactory/tone/rev1/config.h +++ b/keyboards/peranekofactory/tone/rev1/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 100 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/peranekofactory/tone/rev1/info.json b/keyboards/peranekofactory/tone/rev1/info.json index 5a19b72ffeb..67e08be6885 100644 --- a/keyboards/peranekofactory/tone/rev1/info.json +++ b/keyboards/peranekofactory/tone/rev1/info.json @@ -13,6 +13,9 @@ {"pin_a": "B5", "pin_b": "B4"} ] }, + "qmk": { + "tap_keycode_delay": 100 + }, "processor": "atmega32u4", "bootloader": "caterina", "matrix_pins": { diff --git a/keyboards/peranekofactory/tone/rev2/config.h b/keyboards/peranekofactory/tone/rev2/config.h index c97fab915a3..bbe3b73627f 100644 --- a/keyboards/peranekofactory/tone/rev2/config.h +++ b/keyboards/peranekofactory/tone/rev2/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define TAP_CODE_DELAY 100 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/peranekofactory/tone/rev2/info.json b/keyboards/peranekofactory/tone/rev2/info.json index 5a19b72ffeb..67e08be6885 100644 --- a/keyboards/peranekofactory/tone/rev2/info.json +++ b/keyboards/peranekofactory/tone/rev2/info.json @@ -13,6 +13,9 @@ {"pin_a": "B5", "pin_b": "B4"} ] }, + "qmk": { + "tap_keycode_delay": 100 + }, "processor": "atmega32u4", "bootloader": "caterina", "matrix_pins": { diff --git a/keyboards/percent/booster/config.h b/keyboards/percent/booster/config.h deleted file mode 100644 index d0537fd5d79..00000000000 --- a/keyboards/percent/booster/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2019 MechMerlin - -This 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 RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/percent/booster/info.json b/keyboards/percent/booster/info.json index ba8be4a6037..5718cb81c4f 100644 --- a/keyboards/percent/booster/info.json +++ b/keyboards/percent/booster/info.json @@ -16,6 +16,24 @@ "backlight": { "pin": "B7" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/percent/canoe/config.h b/keyboards/percent/canoe/config.h deleted file mode 100644 index b7aa6ca2e9c..00000000000 --- a/keyboards/percent/canoe/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 2 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/percent/canoe/info.json b/keyboards/percent/canoe/info.json index fcbdf6bac88..a1fc705561c 100644 --- a/keyboards/percent/canoe/info.json +++ b/keyboards/percent/canoe/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 2, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/percent/canoe/keymaps/boy_314/keymap.c b/keyboards/percent/canoe/keymaps/boy_314/keymap.c index e9c56ed1b10..cccfd448a0c 100644 --- a/keyboards/percent/canoe/keymaps/boy_314/keymap.c +++ b/keyboards/percent/canoe/keymaps/boy_314/keymap.c @@ -47,10 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1<. #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define 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/percent/canoe_gen2/info.json b/keyboards/percent/canoe_gen2/info.json index df0c3092662..0cdb8f98193 100644 --- a/keyboards/percent/canoe_gen2/info.json +++ b/keyboards/percent/canoe_gen2/info.json @@ -12,7 +12,7 @@ "pin": "B7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B0", "D0", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "F6", "F7"], diff --git a/keyboards/percent/skog/config.h b/keyboards/percent/skog/config.h deleted file mode 100644 index 6907429c391..00000000000 --- a/keyboards/percent/skog/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2018 Jumail Mundekkat / MxBlue - -This 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 RGBLED_NUM 2 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/percent/skog/info.json b/keyboards/percent/skog/info.json index 19e7f816036..4ba43d6c04c 100644 --- a/keyboards/percent/skog/info.json +++ b/keyboards/percent/skog/info.json @@ -17,6 +17,21 @@ "pin": "D4", "levels": 5 }, + "rgblight": { + "led_count": 2, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/percent/skog_lite/config.h b/keyboards/percent/skog_lite/config.h deleted file mode 100644 index 75b78de22de..00000000000 --- a/keyboards/percent/skog_lite/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 18 - -#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/percent/skog_lite/info.json b/keyboards/percent/skog_lite/info.json index 4133d5c81b8..ed75e8ae2b8 100644 --- a/keyboards/percent/skog_lite/info.json +++ b/keyboards/percent/skog_lite/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/phage_studio/pila87/info.json b/keyboards/phage_studio/pila87/info.json index 522cd9c5483..c7157bc5738 100644 --- a/keyboards/phage_studio/pila87/info.json +++ b/keyboards/phage_studio/pila87/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "processor": "STM32F103", "bootloader": "stm32duino", diff --git a/keyboards/phage_studio/pila87/rules.mk b/keyboards/phage_studio/pila87/rules.mk index 05f967d7a87..cd96ec2c2cd 100644 --- a/keyboards/phage_studio/pila87/rules.mk +++ b/keyboards/phage_studio/pila87/rules.mk @@ -14,9 +14,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # RGB Matrix enabled RGB_MATRIX_ENABLE = yes diff --git a/keyboards/phantom/config.h b/keyboards/phantom/config.h index 5a4961d3bb5..b9449c4714b 100644 --- a/keyboards/phantom/config.h +++ b/keyboards/phantom/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -//# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/phantom/info.json b/keyboards/phantom/info.json index bf858eaf06b..0d52fb38d06 100644 --- a/keyboards/phantom/info.json +++ b/keyboards/phantom/info.json @@ -17,6 +17,22 @@ "caps_lock": "B6", "scroll_lock": "B7" }, + "rgblight": { + "hue_steps": 10, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/phase_studio/titan65/hotswap/info.json b/keyboards/phase_studio/titan65/hotswap/info.json index 380c0c271a6..a4552351684 100644 --- a/keyboards/phase_studio/titan65/hotswap/info.json +++ b/keyboards/phase_studio/titan65/hotswap/info.json @@ -12,7 +12,7 @@ "pin": "E6" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "B7", "D0", "D1", "D2", "D3", "D5", "F0", "F1", "C7", "F4", "F5", "F6"], diff --git a/keyboards/phrygian/ph100/rules.mk b/keyboards/phrygian/ph100/rules.mk index 707adf67c4e..5fb302d01f1 100644 --- a/keyboards/phrygian/ph100/rules.mk +++ b/keyboards/phrygian/ph100/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/pica40/rev1/rules.mk b/keyboards/pica40/rev1/rules.mk index 2e3ef9fb844..e69de29bb2d 100644 --- a/keyboards/pica40/rev1/rules.mk +++ b/keyboards/pica40/rev1/rules.mk @@ -1 +0,0 @@ -OLED_DRIVER = SSD1306 diff --git a/keyboards/pico/65keys/config.h b/keyboards/pico/65keys/config.h index 7506090b1ed..04bc8cb2d21 100644 --- a/keyboards/pico/65keys/config.h +++ b/keyboards/pico/65keys/config.h @@ -21,22 +21,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 14 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/pico/65keys/info.json b/keyboards/pico/65keys/info.json index c9d61fc4342..260b2db1e90 100644 --- a/keyboards/pico/65keys/info.json +++ b/keyboards/pico/65keys/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/pico/70keys/config.h b/keyboards/pico/70keys/config.h index 7506090b1ed..04bc8cb2d21 100644 --- a/keyboards/pico/70keys/config.h +++ b/keyboards/pico/70keys/config.h @@ -21,22 +21,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#undef RGBLED_NUM -#define RGBLED_NUM 14 // Number of LEDs -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/pico/70keys/info.json b/keyboards/pico/70keys/info.json index 09c1cfa5b38..ed3c8163d13 100644 --- a/keyboards/pico/70keys/info.json +++ b/keyboards/pico/70keys/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/picolab/frusta_fundamental/config.h b/keyboards/picolab/frusta_fundamental/config.h index 1bd318c9ade..916ca10b460 100644 --- a/keyboards/picolab/frusta_fundamental/config.h +++ b/keyboards/picolab/frusta_fundamental/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 67 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/picolab/frusta_fundamental/info.json b/keyboards/picolab/frusta_fundamental/info.json index 91aadda6ff4..bd73d2b77fe 100644 --- a/keyboards/picolab/frusta_fundamental/info.json +++ b/keyboards/picolab/frusta_fundamental/info.json @@ -8,6 +8,23 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 67, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/pimentoso/touhoupad/config.h b/keyboards/pimentoso/touhoupad/config.h deleted file mode 100644 index c4b29301c37..00000000000 --- a/keyboards/pimentoso/touhoupad/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2021 Michele Ferri - * - * This 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 RGBLED_NUM 12 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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_STATIC_GRADIENT diff --git a/keyboards/pimentoso/touhoupad/info.json b/keyboards/pimentoso/touhoupad/info.json index 4e351917614..8baff8f78ed 100644 --- a/keyboards/pimentoso/touhoupad/info.json +++ b/keyboards/pimentoso/touhoupad/info.json @@ -8,6 +8,18 @@ "pid": "0x0031", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/pixelspace/capsule65i/config.h b/keyboards/pixelspace/capsule65i/config.h deleted file mode 100644 index c6dd26a46a9..00000000000 --- a/keyboards/pixelspace/capsule65i/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2022 PixelSpace 295033045@qq.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 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/pixelspace/capsule65i/info.json b/keyboards/pixelspace/capsule65i/info.json index b2ac8f85287..d38155349be 100644 --- a/keyboards/pixelspace/capsule65i/info.json +++ b/keyboards/pixelspace/capsule65i/info.json @@ -16,6 +16,23 @@ "indicators": { "caps_lock": "F6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index 3b10a2b753b..7cfc65d5094 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -42,7 +42,6 @@ //#define NO_ACTION_ONESHOT // #define WS2812_LED_N 2 -// #define RGBLED_NUM WS2812_LED_N // #define WS2812_TIM_N 2 // #define WS2812_TIM_CH 2 // #define PORT_WS2812 GPIOA @@ -111,8 +110,6 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define TAPPING_TOGGLE 1 - #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 #define MOUSEKEY_TIME_TO_MAX 60 diff --git a/keyboards/planck/ez/info.json b/keyboards/planck/ez/info.json index 370a19357f0..6848239279f 100644 --- a/keyboards/planck/ez/info.json +++ b/keyboards/planck/ez/info.json @@ -7,7 +7,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3737" + "driver": "is31fl3737" }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "A7", "B0"], @@ -21,6 +21,9 @@ }, "processor": "STM32F303", "bootloader": "stm32-dfu", + "tapping": { + "toggle": 1 + }, "community_layouts": ["ortho_4x12", "planck_mit"], "layout_aliases": { "LAYOUT_planck_grid": "LAYOUT_ortho_4x12", diff --git a/keyboards/planck/keymaps/altgr/common/init.h b/keyboards/planck/keymaps/altgr/common/init.h index 6366a19f65e..6d0b4392fb8 100644 --- a/keyboards/planck/keymaps/altgr/common/init.h +++ b/keyboards/planck/keymaps/altgr/common/init.h @@ -13,21 +13,22 @@ void matrix_init_user(void) #ifdef AUDIO_ENABLE #ifdef BACKLIGHT_ENABLE -void led_set_user(uint8_t usb_led) +bool led_update_user(led_t led_state) { - static uint8_t old_usb_led = 0; + static led_t old_led_state = {0}; _delay_ms(10); // gets rid of tick if (!is_playing_notes()) { - if ((usb_led & (1<. + */ + +#pragma once + +#ifdef AUDIO_ENABLE +# define STARTUP_SONG SONG(PLANCK_SOUND) +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(QWERTY_SOUND) } +#endif + +#define MIDI_BASIC + +// Configure the global tapping term (default: 200ms) +#define TAPPING_TERM 180 + +// Prevent normal rollover on alphas from accidentally triggering mods. +#define PERMISSIVE_HOLD + +#ifndef MOUSEKEY_INTERVAL +#define MOUSEKEY_INTERVAL 10 +#endif +#ifndef MOUSEKEY_MAX_SPEED +#define MOUSEKEY_MAX_SPEED 3 +#endif +#ifndef MOUSEKEY_TIME_TO_MAX +#define MOUSEKEY_TIME_TO_MAX 100 +#endif + +// Enable rapid switch from tap to hold, disables double tap hold auto-repeat. +#define QUICK_TAP_TERM 0 + +#define TRI_LAYER_LOWER_LAYER 3 +#define TRI_LAYER_UPPER_LAYER 4 +#define TRI_LAYER_ADJUST_LAYER 7 \ No newline at end of file diff --git a/keyboards/planck/keymaps/janat-t/keymap.c b/keyboards/planck/keymaps/janat-t/keymap.c new file mode 100644 index 00000000000..27166091d26 --- /dev/null +++ b/keyboards/planck/keymaps/janat-t/keymap.c @@ -0,0 +1,328 @@ +/* Copyright 2023 Taerakul Janat + * + * This 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 + +#ifdef AUDIO_ENABLE +# include "muse.h" +#endif + +enum planck_layers { + _QWERTY, + _COLEMAK, + _NOMOD, + _LOWER, + _RAISE, + _NAV, + _MOUSE, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + NOMOD +}; + +#define MOU_Z LT(_MOUSE, KC_Z) +#define MOU_SCLN LT(_MOUSE, KC_SCLN) +#define NAV_SLSH LT(_NAV, KC_SLSH) +#define NAV_Z LT(_NAV, KC_Z) + +// Left-hand home row mods QWERTY +#define CTL_A LCTL_T(KC_A) +#define ALT_S LALT_T(KC_S) +#define GUI_D LGUI_T(KC_D) +#define SFT_F LSFT_T(KC_F) + +// Right-hand home row mods QWERTY +#define SFT_J RSFT_T(KC_J) +#define GUI_K RGUI_T(KC_K) +#define ALT_L LALT_T(KC_L) +#define CTL_SCLN RCTL_T(KC_SCLN) + +// Left-hand home row mods COLEMAK +#define CTL_A LCTL_T(KC_A) +#define ALT_R LALT_T(KC_R) +#define GUI_S LGUI_T(KC_S) +#define SHFT_T LSFT_T(KC_T) + +// Right-hand home row mods COLEMAK +#define SFT_N RSFT_T(KC_N) +#define GUI_E RGUI_T(KC_E) +#define ALT_I LALT_T(KC_I) +#define CTL_O RCTL_T(KC_O) + +#define HYPER MEH(KC_LGUI) + +#define CT_ESC CTL_T(KC_ESC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | BS | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ESC |Ctl-A |Alt-S |GUI-D |Shft-F| G | H |Shft-J|GUI-K |Alt-L |Ctl-; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | CW |MOU-Z | X | C | V | B | N | M | , | . |NAV-/ |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | HYPER| 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, + CT_ESC, CTL_A, ALT_S, GUI_D, SFT_F, KC_G, KC_H, SFT_J, GUI_K, ALT_L, CTL_SCLN,KC_QUOT, + CW_TOGG, MOU_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, NAV_SLSH,KC_ENT, + HYPER, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | B | J | L | U | Y | ; | BS | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ESC |Ctl-A |Alt-R |GUI-S |Shft-T| G | M |Shft-N|GUI-E |Alt-I |Ctl-O | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | CW |MOU-Z | X | C | D | V | K | H | , | . |NAV-/ |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | HYPER| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CT_ESC, CTL_A, ALT_R, GUI_S, SHFT_T, KC_G, KC_M, SFT_N, GUI_E, ALT_I, CTL_O, KC_QUOT, + CW_TOGG, MOU_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, NAV_SLSH,KC_ENT, + HYPER, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), +/* Qwerty without home row mod + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | BS | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | HYPER| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_NOMOD] = 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, + CT_ESC, 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_ENT, + HYPER, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | BS | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F13 | F14 | F15 | F16 | F17 | F18 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F19 | F20 | F21 | F22 | F23 | F24 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | |Adjust| Prev | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_planck_grid( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BS | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | |Adjust| | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_planck_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Nav + * /-----------------------------------------------------------------------------------\ + * | | Home | PgUp | PgDn | End | | T1 | T← | T→ | T9 | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Ctrl | Alt | GUI |Shift | | ← | ↓ | ↑ | → | Del | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | |[Nav] | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | Shift | | | | | | + * \-----------------------------------------------------------------------------------/ + */ +[_NAV] = LAYOUT_planck_grid( + _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, _______, G(KC_1), SCMD(KC_LBRC), SCMD(KC_RBRC), G(KC_9), _______, _______, + _______, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_LSFT, KC_LSFT, _______, _______, _______, _______, _______ +), + +/* Mouse + * /-----------------------------------------------------------------------------------\ + * | | | S↓ | M↑ | S↑ | | S← | S↓ | S↑ | S→ | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | M← | M↓ | M→ | | M← | M↓ | M↑ | M→ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |[Mou] | | | | M3 | M3 | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | M2 | LeftClick | M2 | | | | | + * \-----------------------------------------------------------------------------------/ + */ +[_MOUSE] = LAYOUT_planck_grid( + _______, _______, KC_WH_D, KC_MS_U, KC_WH_U, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, + _______, _______, _______, _______, _______, KC_BTN3, KC_BTN3, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN1, KC_BTN2, _______, _______, _______, _______ +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | PWR | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|NoMod | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid( + KC_PWR, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, + _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, NOMOD, _______, _______, + _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case NOMOD: + if (record->event.pressed) { + set_single_persistent_default_layer(_NOMOD); + } + return false; + break; + + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } + return true; +} + +bool dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { + if (active) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + break; + } + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } + return true; +} + +void matrix_scan_user(void) { +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } else { + if (muse_counter) { + stop_all_notes(); + muse_counter = 0; + } + } +#endif +} diff --git a/keyboards/planck/keymaps/janat-t/readme.md b/keyboards/planck/keymaps/janat-t/readme.md new file mode 100644 index 00000000000..159558d2351 --- /dev/null +++ b/keyboards/planck/keymaps/janat-t/readme.md @@ -0,0 +1,112 @@ +# Janat's Planck Layout +- MIT Layout +- QWERTY and Colemak-DH with [Home Row Mods](https://precondition.github.io/home-row-mods) +- QWERTY w/o mods for muggles +- Lower + Uper + J/K/L: QWERTY/COLEMAK/NOMOD +- Left Shift: [Caps Word](https://docs.qmk.fm/#/feature_caps_word) +- Hold /: [Navigation Layer](#6-navigation-layer) +- Hold Z: [Mouse Layer](#7-mouse-layer) + +## 1. QWERTY Layer - Qwerty with Home Row Mods +``` +,-----------------------------------------------------------------------------------. +| Tab | Q | W | E | R | T | Y | U | I | O | P | BS | +|------+------+------+------+------+------+------+------+------+------+------+------| +| ESC |Ctl-A |Alt-S |GUI-D |Shft-F| G | H |Shft-J|GUI-K |Alt-L |Ctl-; | " | +|------+------+------+------+------+------+------+------+------+------+------+------| +| CW |MOU-Z | X | C | V | B | N | M | , | . |NAV-/ |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------| +| HYPER| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +## 2. COLEMAK Layer - Colemak-DH with Home Row Mods +``` +,-----------------------------------------------------------------------------------. +| Tab | Q | W | F | P | B | J | L | U | Y | ; | BS | +|------+------+------+------+------+------+------+------+------+------+------+------| +| ESC |Ctl-A |Alt-R |GUI-S |Shft-T| G | M |Shft-N|GUI-E |Alt-I |Ctl-O | " | +|------+------+------+------+------+------+------+------+------+------+------+------| +| CW |MOU-Z | X | C | D | V | K | H | , | . |NAV-/ |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------| +| HYPER| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +## 3. NOMOD Layer - QWERTY without Home Row Mods +``` +,-----------------------------------------------------------------------------------. +| Tab | Q | W | E | R | T | Y | U | I | O | P | BS | +|------+------+------+------+------+------+------+------+------+------+------+------| +| ESC | A | S | D | F | G | H | J | K | L | ; | " | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Shift| Z | X | C | V | B | N | M | , | . | / |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------| +| HYPER| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +## 4. Lower Layer +``` +,-----------------------------------------------------------------------------------. +| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | BS | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Del | F13 | F14 | F15 | F16 | F17 | F18 | _ | + | { | } | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | F19 | F20 | F21 | F22 | F23 | F24 |ISO ~ |ISO | | Home | End | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | |Adjust| Prev | Vol- | Vol+ | Play | +`-----------------------------------------------------------------------------------' +``` + +## 5. Raise Layer +``` +,-----------------------------------------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BS | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | |Adjust| | | Next | Vol- | Vol+ | Play | +`-----------------------------------------------------------------------------------' +``` +## 6. Navigation Layer +``` +/-----------------------------------------------------------------------------------\ +| | Home | PgUp | PgDn | End | | T1 | T← | T→ | T9 | | | +|------+------+------+------+------+-------------+------+------+------+------+------| +| | Ctrl | Alt | GUI |Shift | | ← | ↓ | ↑ | → | Del | | +|------+------+------+------+------+------|------+------+------+------+------+------| +| | | | | | | | | | |[Nav] | | +|------+------+------+------+------+-------------+------+------+------+------+------| +| | | | | | Shift | | | | | | +\-----------------------------------------------------------------------------------/ +``` + +## 7. Mouse Layer +``` +/-----------------------------------------------------------------------------------\ +| | | S↓ | M↑ | S↑ | | S← | S↓ | S↑ | S→ | | | +|------+------+------+------+------+-------------+------+------+------+------+------| +| | | M← | M↓ | M→ | | M← | M↓ | M↑ | M→ | | | +|------+------+------+------+------+------|------+------+------+------+------+------| +| |[Mou] | | | | M3 | M3 | | | | | | +|------+------+------+------+------+-------------+------+------+------+------+------| +| | | | | M2 | LeftClick | M2 | | | | | +\-----------------------------------------------------------------------------------/ +``` + +## 8. Adjust Layer (Lower + Raise) +``` + v------------------------RGB CONTROL--------------------v +,-----------------------------------------------------------------------------------. +| PWR | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|NoMod | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | | +`-----------------------------------------------------------------------------------' +``` diff --git a/keyboards/planck/keymaps/janat-t/rules.mk b/keyboards/planck/keymaps/janat-t/rules.mk new file mode 100644 index 00000000000..b0ed6ad9227 --- /dev/null +++ b/keyboards/planck/keymaps/janat-t/rules.mk @@ -0,0 +1,7 @@ +ifeq ($(strip $(AUDIO_ENABLE)), yes) + SRC += muse.c +endif + +MIDI_ENABLE = yes +CAPS_WORD_ENABLE = yes +TRI_LAYER_ENABLE = yes diff --git a/keyboards/planck/keymaps/lindgrenj6/config.h b/keyboards/planck/keymaps/lindgrenj6/config.h new file mode 100644 index 00000000000..4fcdb0fc7a7 --- /dev/null +++ b/keyboards/planck/keymaps/lindgrenj6/config.h @@ -0,0 +1,51 @@ +/* Copyright 2015-2021 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 + +#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 + +/* + * 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 + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 + +#define TAPPING_TERM 160 diff --git a/keyboards/planck/keymaps/lindgrenj6/keymap.c b/keyboards/planck/keymaps/lindgrenj6/keymap.c new file mode 100644 index 00000000000..94353e32483 --- /dev/null +++ b/keyboards/planck/keymaps/lindgrenj6/keymap.c @@ -0,0 +1,220 @@ +/* Copyright 2015-2021 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 . + */ + +#include QMK_KEYBOARD_H + +enum planck_layers { + _BASE, + _LOWER, + _RAISE, + _ADJUST, + _NUMPAD, + _EXTRA, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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, LT(_BASE, KC_MINUS), + MT(MOD_LCTL, KC_ESCAPE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, + KC_LSFT, MT(MOD_LCTL|MOD_LSFT ,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_INSERT, + LT(_EXTRA, KC_GRAVE), TG(_NUMPAD), KC_LGUI, KC_LALT, LT(_LOWER, KC_BSPC), KC_SPACE, KC_SPACE, LT(_RAISE, KC_ENTER), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + ), + + [_LOWER] = LAYOUT_planck_grid( + KC_TILDE, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, LT(KC_LBRC, KC_7), LT(KC_RBRC, KC_8), KC_MINUS, KC_UNDS, LT(KC_PGUP, KC_HOME), + _______, _______, _______, _______, _______, _______, KC_PIPE, KC_LCBR, KC_RCBR, KC_PLUS, KC_EQUAL, LT(KC_PGDN, KC_END), + _______, _______, _______, _______, _______, _______, _______, KC_LPRN, KC_RPRN, _______, KC_BSLS, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, _______, C(S(KC_LEFT)), C(KC_MINUS), C(S(KC_PLUS)), C(S(KC_RIGHT)) + ), + + [_RAISE] = LAYOUT_planck_grid( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_PGUP), + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, LGUI(KC_PGDN), + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, _______, _______, _______, KC_BSLS, _______, + _______, _______, _______, _______, _______, KC_PSCR, KC_PSCR, _______, _______, _______, _______, KC_MPLY + ), + + [_ADJUST] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, AU_ON, AU_OFF, AU_TOGG, RGB_SPI, _______, RGB_TOG, RGB_VAI, RGB_HUI, KC_BRIGHTNESS_UP, QK_BOOT, + _______, _______, MU_ON, MU_OFF, MU_TOGG, RGB_SPD, _______, RGB_MOD, RGB_VAD, RGB_HUD, KC_BRIGHTNESS_DOWN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_NUMPAD] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, KC_CALCULATOR, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_SLASH, + _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_KP_ASTERISK, + _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_0, _______, KC_KP_DOT, KC_KP_ENTER, _______ + ), + + [_EXTRA] = LAYOUT_planck_grid( + G(KC_L), KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + _______, _______, KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, LT(_EXTRA, KC_MPLY) + ), + +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case(LT(_BASE,KC_MINUS)): + if (record->tap.count && record->event.pressed) { + return true; + } else if(record->event.pressed) { + tap_code(KC_BSLS); + return false; + } + break; + + case(LT(KC_LBRC, KC_7)): + if (record->tap.count && record->event.pressed) { + tap_code(KC_LBRC); + return false; + } else if(record->event.pressed) { + tap_code16(KC_AMPERSAND); + return false; + } + break; + + case(LT(KC_RBRC, KC_8)): + if (record->tap.count && record->event.pressed) { + tap_code(KC_RBRC); + return false; + } else if(record->event.pressed) { + tap_code16(KC_ASTERISK); + return false; + } + break; + + case(LT(KC_PGUP, KC_HOME)): + if (record->tap.count && record->event.pressed) { + tap_code(KC_PGUP); + return false; + } else if(record->event.pressed) { + tap_code(KC_HOME); + return false; + } + break; + + case(LT(KC_PGDN, KC_END)): + if (record->tap.count && record->event.pressed) { + tap_code(KC_PGDN); + return false; + } else if(record->event.pressed) { + tap_code(KC_END); + return false; + } + break; + + case(LT(_EXTRA, KC_MPLY)): + if (record->tap.count == 2 && record->event.pressed) { + tap_code(KC_MNXT); + return false; + } else if(record->event.pressed) { + tap_code(KC_MPLY); + return false; + } + break; + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } + return true; +} + +bool dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { +#ifdef AUDIO_ENABLE + static bool play_sound = false; +#endif + if (active) { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_song); } +#endif + layer_on(_ADJUST); + } else { +#ifdef AUDIO_ENABLE + if (play_sound) { PLAY_SONG(plover_gb_song); } +#endif + layer_off(_ADJUST); + } +#ifdef AUDIO_ENABLE + play_sound = true; +#endif + break; + } + case 1: + muse_mode = false; + } + return true; +} + +void matrix_scan_user(void) { +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case LT(_RAISE, KC_ENTER): + case LT(_LOWER, KC_BSPC): + return false; + default: + return true; + } +} diff --git a/keyboards/planck/keymaps/lindgrenj6/rules.mk b/keyboards/planck/keymaps/lindgrenj6/rules.mk new file mode 100644 index 00000000000..7aa6b2130f0 --- /dev/null +++ b/keyboards/planck/keymaps/lindgrenj6/rules.mk @@ -0,0 +1,5 @@ +ifeq ($(strip $(AUDIO_ENABLE)), yes) + SRC += muse.c +endif + +TRI_LAYER_ENABLE = yes diff --git a/keyboards/planck/keymaps/mwpeterson/keymap.c b/keyboards/planck/keymaps/mwpeterson/keymap.c index 5871fe4bfe3..065750434f4 100644 --- a/keyboards/planck/keymaps/mwpeterson/keymap.c +++ b/keyboards/planck/keymaps/mwpeterson/keymap.c @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LOWER_LAYER] = LAYOUT_planck_grid( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_3), _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - _______, KC_MINS, KC_PLUS, KC_GRV, SFT_INS, KC_COLN, KC_PIPE, X(IBANG), KC_COMM, KC_DOT, KC_BSLS, _______, + _______, KC_MINS, KC_PLUS, KC_GRV, SFT_INS, KC_COLN, KC_PIPE, UM(IBANG), KC_COMM, KC_DOT, KC_BSLS, _______, _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______ ), diff --git a/keyboards/planck/keymaps/rootiest/keymap.c b/keyboards/planck/keymaps/rootiest/keymap.c index 7e3b8af3676..a8ff2dd8d92 100644 --- a/keyboards/planck/keymaps/rootiest/keymap.c +++ b/keyboards/planck/keymaps/rootiest/keymap.c @@ -1328,33 +1328,25 @@ void send_degree_symbol(tap_dance_state_t* state, void* user_data) { switch (state->count) { case 4: // ℃ - unicode_input_start(); - register_hex(0x2103); - unicode_input_finish(); + register_unicode(0x2103); print("You pressed the Degrees key 4 times!\n"); reset_tap_dance(state); break; case 3: //℉ - unicode_input_start(); - register_hex(0x2109); - unicode_input_finish(); + register_unicode(0x2109); print("You pressed the Degrees key 3 times!\n"); reset_tap_dance(state); break; case 2: // € - unicode_input_start(); - register_hex(0x20AC); - unicode_input_finish(); + register_unicode(0x20AC); print("You pressed the Degrees key 2 times!\n"); reset_tap_dance(state); break; case 1: // ° - unicode_input_start(); - register_hex(0x00B0); - unicode_input_finish(); + register_unicode(0x00B0); print("You pressed the Degrees key 1 time!\n"); reset_tap_dance(state); break; @@ -1527,7 +1519,7 @@ void scap_finished(tap_dance_state_t* state, void* user_data) { register_code(KC_LSFT); break; default: - if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { + if (host_keyboard_led_state().caps_lock) { tap_code(KC_CAPS); reset_tap_dance(state); break; diff --git a/keyboards/planck/keymaps/rootiest/rules.mk b/keyboards/planck/keymaps/rootiest/rules.mk index ca0f90b6e9a..d6f42b33ad5 100644 --- a/keyboards/planck/keymaps/rootiest/rules.mk +++ b/keyboards/planck/keymaps/rootiest/rules.mk @@ -1,7 +1,6 @@ SRC += muse.c ENCODER_ENABLE = yes # Enables basic encoder support OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables support for OLED displays # UNICODE_ENABLE = yes # Allow inputting basic unicode characters UNICODEMAP_ENABLE = yes # Enable use of Unicode mapping array # UCIS_ENABLE = yes # Another method for generating Unicode characters via maps diff --git a/keyboards/planck/keymaps/sdothum/common/init.h b/keyboards/planck/keymaps/sdothum/common/init.h index 6366a19f65e..6d0b4392fb8 100644 --- a/keyboards/planck/keymaps/sdothum/common/init.h +++ b/keyboards/planck/keymaps/sdothum/common/init.h @@ -13,21 +13,22 @@ void matrix_init_user(void) #ifdef AUDIO_ENABLE #ifdef BACKLIGHT_ENABLE -void led_set_user(uint8_t usb_led) +bool led_update_user(led_t led_state) { - static uint8_t old_usb_led = 0; + static led_t old_led_state = {0}; _delay_ms(10); // gets rid of tick if (!is_playing_notes()) { - if ((usb_led & (1<) +#ifdef UNICODEMAP_ENABLE enum Ext_Unicode{ PENGUIN = 0, BOAR, @@ -182,12 +182,12 @@ const uint32_t unicode_map[] PROGMEM = { [CHICK] = 0x1F425, [TUMBLER] = 0x1F943 }; -#define PENGY X(PENGUIN) -#define BOARY X(BOAR) -#define MNKY X(MONKEY) -#define DRGN X(DRAGON) -#define DUCK X(CHICK) -#define TMBL X(TUMBLER) +#define PENGY UM(PENGUIN) +#define BOARY UM(BOAR) +#define MNKY UM(MONKEY) +#define DRGN UM(DRAGON) +#define DUCK UM(CHICK) +#define TMBL UM(TUMBLER) #endif //#endif diff --git a/keyboards/planck/light/info.json b/keyboards/planck/light/info.json index 64d9fdcd851..b6f3df8fe64 100644 --- a/keyboards/planck/light/info.json +++ b/keyboards/planck/light/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["E6", "E3", "E4", "D3", "D4", "D5", "C0", "A7", "A6", "E1", "E0", "D7"], diff --git a/keyboards/planck/readme.md b/keyboards/planck/readme.md index 748c2514788..797774dc0a1 100644 --- a/keyboards/planck/readme.md +++ b/keyboards/planck/readme.md @@ -6,7 +6,7 @@ Planck A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/) Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) -Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, rev5, rev6; Planck Light, Planck EZ +Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, rev5, rev6, rev7; Planck Light, Planck EZ Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open), [Ergodox (Planck EZ)](https://ergodox-ez.com/pages/planck) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h index 1d029dae697..c0c8dc2c55e 100644 --- a/keyboards/planck/rev6/config.h +++ b/keyboards/planck/rev6/config.h @@ -45,8 +45,7 @@ /* * WS2812 Underglow Matrix options */ -#define RGBLED_NUM 9 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 9 #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 diff --git a/keyboards/planck/rev6/info.json b/keyboards/planck/rev6/info.json index c1e4e527cee..59e7ba6635d 100644 --- a/keyboards/planck/rev6/info.json +++ b/keyboards/planck/rev6/info.json @@ -8,12 +8,15 @@ "pid": "0xA4F9", "device_version": "0.0.6" }, + "rgblight": { + "led_count": 9 + }, "ws2812": { "pin": "A1", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "A7", "B0"], diff --git a/keyboards/planck/rev6_drop/config.h b/keyboards/planck/rev6_drop/config.h index b16b9151527..7050fa009c2 100644 --- a/keyboards/planck/rev6_drop/config.h +++ b/keyboards/planck/rev6_drop/config.h @@ -46,8 +46,7 @@ /* * WS2812 Underglow Matrix options */ -#define RGBLED_NUM 9 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 9 #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 @@ -55,33 +54,4 @@ #define WS2812_DMA_STREAM STM32_DMA1_STREAM2 #define WS2812_DMA_CHANNEL 2 -// RGB matrix effects -#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 RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended \ No newline at end of file +#define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/planck/rev6_drop/info.json b/keyboards/planck/rev6_drop/info.json index 00f1fab14ee..d04bb0d6aac 100644 --- a/keyboards/planck/rev6_drop/info.json +++ b/keyboards/planck/rev6_drop/info.json @@ -8,12 +8,15 @@ "pid": "0xA4F9", "device_version": "0.0.6" }, + "rgblight": { + "led_count": 9 + }, "ws2812": { "pin": "A1", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "A7", "B0"], diff --git a/keyboards/planck/rev6_drop/keymaps/vial/config.h b/keyboards/planck/rev6_drop/keymaps/vial/config.h index b48dc67fa52..ec8076e9d3e 100644 --- a/keyboards/planck/rev6_drop/keymaps/vial/config.h +++ b/keyboards/planck/rev6_drop/keymaps/vial/config.h @@ -2,6 +2,34 @@ #pragma once +#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 VIAL_KEYBOARD_UID {0x69, 0xAE, 0x4D, 0xB7, 0x4A, 0x77, 0x5C, 0x95} #define VIAL_UNLOCK_COMBO_ROWS {0, 4} #define VIAL_UNLOCK_COMBO_COLS {0, 5} diff --git a/keyboards/planck/rev6_drop/matrix.c b/keyboards/planck/rev6_drop/matrix.c index 6f7d6725a19..e31e473ae25 100644 --- a/keyboards/planck/rev6_drop/matrix.c +++ b/keyboards/planck/rev6_drop/matrix.c @@ -1,5 +1,5 @@ /* - * Copyright 2018 Jack Humbert + * Copyright 2018-2023 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 @@ -17,155 +17,59 @@ #include "quantum.h" -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif - -/* - * col: { B11, B10, B2, B1, A7, B0 } - * row: { A10, A9, A8, B15, C13, C14, C15, A2 } - */ /* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_COLS]; -static bool debouncing = false; -static uint16_t debouncing_time = 0; - -__attribute__((weak)) void matrix_init_user(void) {} +static pin_t matrix_row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static pin_t matrix_col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -__attribute__((weak)) void matrix_scan_user(void) {} +static matrix_row_t matrix_inverted[MATRIX_COLS]; -__attribute__((weak)) void matrix_init_kb(void) { - matrix_init_user(); -} +void matrix_init_custom(void) { + // actual matrix setup - cols + for (int i = 0; i < MATRIX_COLS; i++) { + setPinOutput(matrix_col_pins[i]); + writePinLow(matrix_col_pins[i]); + } -__attribute__((weak)) void matrix_scan_kb(void) { - matrix_scan_user(); + // rows + for (int i = 0; i < MATRIX_ROWS; i++) { + setPinInputLow(matrix_row_pins[i]); + } } -void matrix_init(void) { - dprintf("matrix init\n"); - // debug_matrix = true; +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool changed = false; - // actual matrix setup - palSetPadMode(GPIOB, 11, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 1, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOA, 7, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 0, PAL_MODE_OUTPUT_PUSHPULL); - - palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 9, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 8, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 15, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 13, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 14, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 15, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLDOWN); - - memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t)); - - matrix_init_kb(); -} - -uint8_t matrix_scan(void) { // actual matrix for (int col = 0; col < MATRIX_COLS; col++) { matrix_row_t data = 0; - // strobe col { B11, B10, B2, B1, A7, B0 } - switch (col) { - case 0: - palSetPad(GPIOB, 11); - break; - case 1: - palSetPad(GPIOB, 10); - break; - case 2: - palSetPad(GPIOB, 2); - break; - case 3: - palSetPad(GPIOB, 1); - break; - case 4: - palSetPad(GPIOA, 7); - break; - case 5: - palSetPad(GPIOB, 0); - break; - } + // strobe col + writePinHigh(matrix_col_pins[col]); // need wait to settle pin state wait_us(20); - // read row data { A10, A9, A8, B15, C13, C14, C15, A2 } - data = ((palReadPad(GPIOA, 10) << 0) | (palReadPad(GPIOA, 9) << 1) | (palReadPad(GPIOA, 8) << 2) | (palReadPad(GPIOB, 15) << 3) | (palReadPad(GPIOC, 13) << 4) | (palReadPad(GPIOC, 14) << 5) | (palReadPad(GPIOC, 15) << 6) | (palReadPad(GPIOA, 2) << 7)); - - // unstrobe col { B11, B10, B2, B1, A7, B0 } - switch (col) { - case 0: - palClearPad(GPIOB, 11); - break; - case 1: - palClearPad(GPIOB, 10); - break; - case 2: - palClearPad(GPIOB, 2); - break; - case 3: - palClearPad(GPIOB, 1); - break; - case 4: - palClearPad(GPIOA, 7); - break; - case 5: - palClearPad(GPIOB, 0); - break; + // read row data + for (int row = 0; row < MATRIX_ROWS; row++) { + data |= (readPin(matrix_row_pins[row]) << row); } - if (matrix_debouncing[col] != data) { - matrix_debouncing[col] = data; - debouncing = true; - debouncing_time = timer_read(); - } - } + // unstrobe col + writePinLow(matrix_col_pins[col]); - if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { - for (int row = 0; row < MATRIX_ROWS; row++) { - matrix[row] = 0; - for (int col = 0; col < MATRIX_COLS; col++) { - matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col); - } + if (matrix_inverted[col] != data) { + matrix_inverted[col] = data; } - debouncing = false; } - matrix_scan_kb(); - - return 1; -} - -bool matrix_is_on(uint8_t row, uint8_t col) { - return (matrix[row] & (1 << col)); -} - -matrix_row_t matrix_get_row(uint8_t row) { - return matrix[row]; -} - -void matrix_print(void) { - dprintf("\nr/c 01234567\n"); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - dprintf("%X0: ", row); - matrix_row_t data = matrix_get_row(row); + for (int row = 0; row < MATRIX_ROWS; row++) { + matrix_row_t old = current_matrix[row]; + current_matrix[row] = 0; for (int col = 0; col < MATRIX_COLS; col++) { - if (data & (1 << col)) - dprintf("1"); - else - dprintf("0"); + current_matrix[row] |= ((matrix_inverted[col] & (1 << row) ? 1 : 0) << col); } - dprintf("\n"); + changed |= old != current_matrix[row]; } + + return changed; } diff --git a/keyboards/planck/rev6_drop/rules.mk b/keyboards/planck/rev6_drop/rules.mk index e20d33831d0..3eb3eac7ebc 100644 --- a/keyboards/planck/rev6_drop/rules.mk +++ b/keyboards/planck/rev6_drop/rules.mk @@ -10,7 +10,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output -CUSTOM_MATRIX = yes +CUSTOM_MATRIX = lite # Do not enable RGB_MATRIX_ENABLE together with RGBLIGHT_ENABLE RGB_MATRIX_ENABLE = no ENCODER_ENABLE = yes diff --git a/keyboards/planck/rev7/chconf.h b/keyboards/planck/rev7/chconf.h new file mode 100644 index 00000000000..e1243f23eca --- /dev/null +++ b/keyboards/planck/rev7/chconf.h @@ -0,0 +1,29 @@ +/* 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/planck/rev6/chconf.h -r platforms/chibios/QMK_PROTON_C/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_RESOLUTION 16 + +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next + diff --git a/keyboards/planck/rev7/config.h b/keyboards/planck/rev7/config.h new file mode 100644 index 00000000000..3da5a4e6b9c --- /dev/null +++ b/keyboards/planck/rev7/config.h @@ -0,0 +1,53 @@ +/* + * Copyright 2023 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 DIP_SWITCH_PINS \ + { B14, A15, A0, B9 } + +#define MUSIC_MAP +#undef AUDIO_VOICES +#undef AUDIO_PIN +#define AUDIO_PIN A5 +#define AUDIO_PIN_ALT A4 +#define AUDIO_PIN_ALT_AS_NEGATIVE + +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* + * 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/planck/rev7/halconf.h b/keyboards/planck/rev7/halconf.h new file mode 100644 index 00000000000..6da795fada1 --- /dev/null +++ b/keyboards/planck/rev7/halconf.h @@ -0,0 +1,24 @@ +/* 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_GPT TRUE +#define HAL_USE_DAC TRUE +#define HAL_USE_I2C TRUE +#define HAL_USE_WDG TRUE + +#include_next diff --git a/keyboards/planck/rev7/info.json b/keyboards/planck/rev7/info.json new file mode 100644 index 00000000000..1d57732b4f6 --- /dev/null +++ b/keyboards/planck/rev7/info.json @@ -0,0 +1,322 @@ +{ + "keyboard_name": "Planck", + "manufacturer": "Drop", + "url": "https://olkb.com/planck", + "maintainer": "jackhumbert", + "usb": { + "vid": "0x03A8", + "pid": "0xA4F9", + "device_version": "0.0.7" + }, + "ws2812": { + "pin": "A1", + "driver": "pwm" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "A7", "B0"], + "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B12", "pin_b": "B13"} + ] + }, + "features": { + "audio": true, + "bootmagic": true, + "command": true, + "console": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "rgblight": { + "led_count": 9 + }, + "processor": "STM32F303", + "bootloader": "stm32-dfu", + "community_layouts": ["ortho_4x12", "planck_mit"], + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_4x12", + "LAYOUT_planck_grid": "LAYOUT_ortho_4x12", + "LAYOUT_planck_mit": "LAYOUT_planck_1x2uC" + }, + "layouts": { + "LAYOUT_ortho_4x12": { + "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": [4, 0], "x": 6, "y": 0 }, + { "matrix": [4, 1], "x": 7, "y": 0 }, + { "matrix": [4, 2], "x": 8, "y": 0 }, + { "matrix": [4, 3], "x": 9, "y": 0 }, + { "matrix": [4, 4], "x": 10, "y": 0 }, + { "matrix": [4, 5], "x": 11, "y": 0 }, + + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [5, 0], "x": 6, "y": 1 }, + { "matrix": [5, 1], "x": 7, "y": 1 }, + { "matrix": [5, 2], "x": 8, "y": 1 }, + { "matrix": [5, 3], "x": 9, "y": 1 }, + { "matrix": [5, 4], "x": 10, "y": 1 }, + { "matrix": [5, 5], "x": 11, "y": 1 }, + + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [6, 0], "x": 6, "y": 2 }, + { "matrix": [6, 1], "x": 7, "y": 2 }, + { "matrix": [6, 2], "x": 8, "y": 2 }, + { "matrix": [6, 3], "x": 9, "y": 2 }, + { "matrix": [6, 4], "x": 10, "y": 2 }, + { "matrix": [6, 5], "x": 11, "y": 2 }, + + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [7, 3], "x": 3, "y": 3 }, + { "matrix": [7, 4], "x": 4, "y": 3 }, + { "matrix": [7, 5], "x": 5, "y": 3 }, + { "matrix": [7, 0], "x": 6, "y": 3 }, + { "matrix": [7, 1], "x": 7, "y": 3 }, + { "matrix": [7, 2], "x": 8, "y": 3 }, + { "matrix": [3, 3], "x": 9, "y": 3 }, + { "matrix": [3, 4], "x": 10, "y": 3 }, + { "matrix": [3, 5], "x": 11, "y": 3 } + ] + }, + "LAYOUT_planck_1x2uC": { + "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": [4, 0], "x": 6, "y": 0 }, + { "matrix": [4, 1], "x": 7, "y": 0 }, + { "matrix": [4, 2], "x": 8, "y": 0 }, + { "matrix": [4, 3], "x": 9, "y": 0 }, + { "matrix": [4, 4], "x": 10, "y": 0 }, + { "matrix": [4, 5], "x": 11, "y": 0 }, + + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [5, 0], "x": 6, "y": 1 }, + { "matrix": [5, 1], "x": 7, "y": 1 }, + { "matrix": [5, 2], "x": 8, "y": 1 }, + { "matrix": [5, 3], "x": 9, "y": 1 }, + { "matrix": [5, 4], "x": 10, "y": 1 }, + { "matrix": [5, 5], "x": 11, "y": 1 }, + + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [6, 0], "x": 6, "y": 2 }, + { "matrix": [6, 1], "x": 7, "y": 2 }, + { "matrix": [6, 2], "x": 8, "y": 2 }, + { "matrix": [6, 3], "x": 9, "y": 2 }, + { "matrix": [6, 4], "x": 10, "y": 2 }, + { "matrix": [6, 5], "x": 11, "y": 2 }, + + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [7, 3], "x": 3, "y": 3 }, + { "matrix": [7, 4], "x": 4, "y": 3 }, + { "matrix": [7, 0], "x": 5, "y": 3, "w": 2 }, + { "matrix": [7, 1], "x": 7, "y": 3 }, + { "matrix": [7, 2], "x": 8, "y": 3 }, + { "matrix": [3, 3], "x": 9, "y": 3 }, + { "matrix": [3, 4], "x": 10, "y": 3 }, + { "matrix": [3, 5], "x": 11, "y": 3 } + ] + }, + "LAYOUT_planck_1x2uL": { + "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": [4, 0], "x": 6, "y": 0 }, + { "matrix": [4, 1], "x": 7, "y": 0 }, + { "matrix": [4, 2], "x": 8, "y": 0 }, + { "matrix": [4, 3], "x": 9, "y": 0 }, + { "matrix": [4, 4], "x": 10, "y": 0 }, + { "matrix": [4, 5], "x": 11, "y": 0 }, + + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [5, 0], "x": 6, "y": 1 }, + { "matrix": [5, 1], "x": 7, "y": 1 }, + { "matrix": [5, 2], "x": 8, "y": 1 }, + { "matrix": [5, 3], "x": 9, "y": 1 }, + { "matrix": [5, 4], "x": 10, "y": 1 }, + { "matrix": [5, 5], "x": 11, "y": 1 }, + + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [6, 0], "x": 6, "y": 2 }, + { "matrix": [6, 1], "x": 7, "y": 2 }, + { "matrix": [6, 2], "x": 8, "y": 2 }, + { "matrix": [6, 3], "x": 9, "y": 2 }, + { "matrix": [6, 4], "x": 10, "y": 2 }, + { "matrix": [6, 5], "x": 11, "y": 2 }, + + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [7, 3], "x": 3, "y": 3 }, + { "matrix": [7, 5], "x": 4, "y": 3, "w": 2 }, + { "matrix": [7, 0], "x": 6, "y": 3 }, + { "matrix": [7, 1], "x": 7, "y": 3 }, + { "matrix": [7, 2], "x": 8, "y": 3 }, + { "matrix": [3, 3], "x": 9, "y": 3 }, + { "matrix": [3, 4], "x": 10, "y": 3 }, + { "matrix": [3, 5], "x": 11, "y": 3 } + ] + }, + "LAYOUT_planck_1x2uR": { + "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": [4, 0], "x": 6, "y": 0 }, + { "matrix": [4, 1], "x": 7, "y": 0 }, + { "matrix": [4, 2], "x": 8, "y": 0 }, + { "matrix": [4, 3], "x": 9, "y": 0 }, + { "matrix": [4, 4], "x": 10, "y": 0 }, + { "matrix": [4, 5], "x": 11, "y": 0 }, + + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [5, 0], "x": 6, "y": 1 }, + { "matrix": [5, 1], "x": 7, "y": 1 }, + { "matrix": [5, 2], "x": 8, "y": 1 }, + { "matrix": [5, 3], "x": 9, "y": 1 }, + { "matrix": [5, 4], "x": 10, "y": 1 }, + { "matrix": [5, 5], "x": 11, "y": 1 }, + + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [6, 0], "x": 6, "y": 2 }, + { "matrix": [6, 1], "x": 7, "y": 2 }, + { "matrix": [6, 2], "x": 8, "y": 2 }, + { "matrix": [6, 3], "x": 9, "y": 2 }, + { "matrix": [6, 4], "x": 10, "y": 2 }, + { "matrix": [6, 5], "x": 11, "y": 2 }, + + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [7, 3], "x": 3, "y": 3 }, + { "matrix": [7, 4], "x": 4, "y": 3 }, + { "matrix": [7, 5], "x": 5, "y": 3 }, + { "matrix": [7, 1], "x": 6, "y": 3, "w": 2 }, + { "matrix": [7, 2], "x": 8, "y": 3 }, + { "matrix": [3, 3], "x": 9, "y": 3 }, + { "matrix": [3, 4], "x": 10, "y": 3 }, + { "matrix": [3, 5], "x": 11, "y": 3 } + ] + }, + "LAYOUT_planck_2x2u": { + "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": [4, 0], "x": 6, "y": 0 }, + { "matrix": [4, 1], "x": 7, "y": 0 }, + { "matrix": [4, 2], "x": 8, "y": 0 }, + { "matrix": [4, 3], "x": 9, "y": 0 }, + { "matrix": [4, 4], "x": 10, "y": 0 }, + { "matrix": [4, 5], "x": 11, "y": 0 }, + + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [5, 0], "x": 6, "y": 1 }, + { "matrix": [5, 1], "x": 7, "y": 1 }, + { "matrix": [5, 2], "x": 8, "y": 1 }, + { "matrix": [5, 3], "x": 9, "y": 1 }, + { "matrix": [5, 4], "x": 10, "y": 1 }, + { "matrix": [5, 5], "x": 11, "y": 1 }, + + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [6, 0], "x": 6, "y": 2 }, + { "matrix": [6, 1], "x": 7, "y": 2 }, + { "matrix": [6, 2], "x": 8, "y": 2 }, + { "matrix": [6, 3], "x": 9, "y": 2 }, + { "matrix": [6, 4], "x": 10, "y": 2 }, + { "matrix": [6, 5], "x": 11, "y": 2 }, + + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [7, 3], "x": 3, "y": 3 }, + { "matrix": [7, 5], "x": 4, "y": 3, "w": 2 }, + { "matrix": [7, 1], "x": 6, "y": 3, "w": 2 }, + { "matrix": [7, 2], "x": 8, "y": 3 }, + { "matrix": [3, 3], "x": 9, "y": 3 }, + { "matrix": [3, 4], "x": 10, "y": 3 }, + { "matrix": [3, 5], "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/planck/rev7/keymaps/default/config.h b/keyboards/planck/rev7/keymaps/default/config.h new file mode 100644 index 00000000000..fbbab996e1e --- /dev/null +++ b/keyboards/planck/rev7/keymaps/default/config.h @@ -0,0 +1,43 @@ +/* Copyright 2015-2023 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 + +#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 + +/* + * 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 diff --git a/keyboards/planck/rev7/keymaps/default/keymap.c b/keyboards/planck/rev7/keymaps/default/keymap.c new file mode 100644 index 00000000000..4ac4c0de4f8 --- /dev/null +++ b/keyboards/planck/rev7/keymaps/default/keymap.c @@ -0,0 +1,306 @@ +/* Copyright 2015-2023 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 . + */ + +#include QMK_KEYBOARD_H + +enum planck_layers { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _PLOVER, _ADJUST }; + +enum planck_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, PLOVER, BACKLIT, EXT_PLV }; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +/* clang-format off */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| 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, + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_RSFT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_RSFT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_planck_grid( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_RSFT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_planck_grid( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_planck_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ +[_PLOVER] = LAYOUT_planck_grid( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid( + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, EE_CLR, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, + _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; +/* clang-format on */ + +#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); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); +#endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); +#endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +/* clang-format off */ +float melody[8][2][2] = { + {{440.0f, 8}, {440.0f, 24}}, + {{440.0f, 8}, {440.0f, 24}}, + {{440.0f, 8}, {440.0f, 24}}, + {{440.0f, 8}, {440.0f, 24}}, + {{440.0f, 8}, {440.0f, 24}}, + {{440.0f, 8}, {440.0f, 24}}, + {{440.0f, 8}, {440.0f, 24}}, + {{440.0f, 8}, {440.0f, 24}}, +}; +/* clang-format on */ + +#define JUST_MINOR_THIRD 1.2 +#define JUST_MAJOR_THIRD 1.25 +#define JUST_PERFECT_FOURTH 1.33333333 +#define JUST_TRITONE 1.42222222 +#define JUST_PERFECT_FIFTH 1.33333333 + +#define ET12_MINOR_SECOND 1.059463 +#define ET12_MAJOR_SECOND 1.122462 +#define ET12_MINOR_THIRD 1.189207 +#define ET12_MAJOR_THIRD 1.259921 +#define ET12_PERFECT_FOURTH 1.33484 +#define ET12_TRITONE 1.414214 +#define ET12_PERFECT_FIFTH 1.498307 + +deferred_token tokens[8]; + +uint32_t reset_note(uint32_t trigger_time, void *note) { + *(float*)note = 440.0f; + return 0; +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + cancel_deferred_exec(tokens[index]); + if (clockwise) { + melody[index][1][0] = melody[index][1][0] * ET12_MINOR_SECOND; + melody[index][0][0] = melody[index][1][0] / ET12_PERFECT_FIFTH; + audio_play_melody(&melody[index], 2, false); + } else { + melody[index][1][0] = melody[index][1][0] / ET12_MINOR_SECOND; + melody[index][0][0] = melody[index][1][0] * ET12_TRITONE; + audio_play_melody(&melody[index], 2, false); + } + tokens[index] = defer_exec(1000, reset_note, &melody[index][1][0]); + return false; +} + +bool dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: { +#ifdef AUDIO_ENABLE + static bool play_sound = false; +#endif + if (active) { +#ifdef AUDIO_ENABLE + if (play_sound) { + PLAY_SONG(plover_song); + } +#endif + layer_on(_ADJUST); + } else { +#ifdef AUDIO_ENABLE + if (play_sound) { + PLAY_SONG(plover_gb_song); + } +#endif + layer_off(_ADJUST); + } +#ifdef AUDIO_ENABLE + play_sound = true; +#endif + break; + } + } + return true; +} \ No newline at end of file diff --git a/keyboards/planck/rev7/keymaps/default/rules.mk b/keyboards/planck/rev7/keymaps/default/rules.mk new file mode 100644 index 00000000000..13fc199bb6c --- /dev/null +++ b/keyboards/planck/rev7/keymaps/default/rules.mk @@ -0,0 +1 @@ +DEFERRED_EXEC_ENABLE = yes \ No newline at end of file diff --git a/keyboards/planck/rev7/keymaps/peterfalken/config.h b/keyboards/planck/rev7/keymaps/peterfalken/config.h new file mode 100644 index 00000000000..c3de26365b2 --- /dev/null +++ b/keyboards/planck/rev7/keymaps/peterfalken/config.h @@ -0,0 +1,49 @@ +/* Copyright 2015-2023 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 + +#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 + +/* + * 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 + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +// #define MIDI_TONE_KEYCODE_OCTAVES 2 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/rev7/keymaps/peterfalken/keymap.c b/keyboards/planck/rev7/keymaps/peterfalken/keymap.c new file mode 100644 index 00000000000..140149c4723 --- /dev/null +++ b/keyboards/planck/rev7/keymaps/peterfalken/keymap.c @@ -0,0 +1,80 @@ +// Copyright 2023 Peter.Falken (@PeterFalken) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "muse.h" +#include "peterfalken.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ▽ | Ctrl | Opt | Cmd | LWR | Space | RSE | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_planck_grid( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + _______, KC_LCTL, KC_LOPT, KC_LCMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | ▽ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_planck_grid( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | ▽ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_planck_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | RSET | ▽ | M.AP | M.AL | LPAD | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | SLEP | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | CPWD | UN | CU | CO | PA | MV | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid( + QK_BOOT, _______, CK_M1, KC_MCTL, KC_LPAD, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_SLP, + CK_CW, _______, CK_CU, CK_CO, CK_PA, CK_MV, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; diff --git a/keyboards/planck/rev7/keymaps/peterfalken/readme.md b/keyboards/planck/rev7/keymaps/peterfalken/readme.md new file mode 100644 index 00000000000..f64d682a51e --- /dev/null +++ b/keyboards/planck/rev7/keymaps/peterfalken/readme.md @@ -0,0 +1,14 @@ +Copyright 2023 LEG @PeterFalken + +This 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 . diff --git a/keyboards/planck/rev7/keymaps/peterfalken/rules.mk b/keyboards/planck/rev7/keymaps/peterfalken/rules.mk new file mode 100644 index 00000000000..4db223543d7 --- /dev/null +++ b/keyboards/planck/rev7/keymaps/peterfalken/rules.mk @@ -0,0 +1,4 @@ +# Setup keymap QMK features +# TODO: Check for space optimizations +AUDIO_ENABLE = yes # Enable Audio Output +ENCODER_ENABLE = no # Disable encoder diff --git a/keyboards/planck/rev7/matrix.c b/keyboards/planck/rev7/matrix.c new file mode 100644 index 00000000000..c89c399a40d --- /dev/null +++ b/keyboards/planck/rev7/matrix.c @@ -0,0 +1,188 @@ +/* + * Copyright 2018-2023 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 . + */ + +#include "gpio.h" +#include "hal_pal.h" +#include "hal_pal_lld.h" +#include "quantum.h" +#include + +// STM32-specific watchdog config calculations +// timeout = 31.25us * PR * (RL + 1) +#define _STM32_IWDG_LSI(us) ((us) / 31.25) +#define STM32_IWDG_PR_US(us) (uint8_t)(log(_STM32_IWDG_LSI(us)) / log(2) - 11) +#define STM32_IWDG_PR_MS(s) STM32_IWDG_PR_US(s * 1000.0) +#define STM32_IWDG_PR_S(s) STM32_IWDG_PR_US(s * 1000000.0) +#define _STM32_IWDG_SCALAR(us) (2 << ((uint8_t)STM32_IWDG_PR_US(us) + 1)) +#define STM32_IWDG_RL_US(us) (uint64_t)(_STM32_IWDG_LSI(us)) / _STM32_IWDG_SCALAR(us) +#define STM32_IWDG_RL_MS(s) STM32_IWDG_RL_US(s * 1000.0) +#define STM32_IWDG_RL_S(s) STM32_IWDG_RL_US(s * 1000000.0) + +#if !defined(PLANCK_ENCODER_RESOLUTION) +# define PLANCK_ENCODER_RESOLUTION 4 +#endif + +#if !defined(PLANCK_WATCHDOG_TIMEOUT) +# define PLANCK_WATCHDOG_TIMEOUT 1.0 +#endif + +#ifdef ENCODER_MAP_ENABLE +#error "The encoder map feature is not currently supported by the Planck's encoder matrix" +#endif + +/* matrix state(1:on, 0:off) */ +static pin_t matrix_row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static pin_t matrix_col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +static matrix_row_t matrix_inverted[MATRIX_COLS]; + +#ifdef ENCODER_ENABLE +int8_t encoder_LUT[] = {0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0}; +uint8_t encoder_state[8] = {0}; +int8_t encoder_pulses[8] = {0}; +uint8_t encoder_value[8] = {0}; +#endif + +void matrix_init_custom(void) { + // actual matrix setup - cols + for (int i = 0; i < MATRIX_COLS; i++) { + setPinOutput(matrix_col_pins[i]); + writePinLow(matrix_col_pins[i]); + } + + // rows + for (int i = 0; i < MATRIX_ROWS; i++) { + setPinInputLow(matrix_row_pins[i]); + } + + // encoder A & B setup + setPinInputLow(B12); + setPinInputLow(B13); + +#ifndef PLANCK_WATCHDOG_DISABLE + wdgInit(); + + static WDGConfig wdgcfg; + wdgcfg.pr = STM32_IWDG_PR_S(PLANCK_WATCHDOG_TIMEOUT); + wdgcfg.rlr = STM32_IWDG_RL_S(PLANCK_WATCHDOG_TIMEOUT); + wdgcfg.winr = STM32_IWDG_WIN_DISABLED; + wdgStart(&WDGD1, &wdgcfg); +#endif +} + +#ifdef ENCODER_ENABLE +bool encoder_update(uint8_t index, uint8_t state) { + bool changed = false; + uint8_t i = index; + + encoder_pulses[i] += encoder_LUT[state & 0xF]; + + if (encoder_pulses[i] >= PLANCK_ENCODER_RESOLUTION) { + encoder_value[index]++; + changed = true; + encoder_update_kb(index, false); + } + if (encoder_pulses[i] <= -PLANCK_ENCODER_RESOLUTION) { + encoder_value[index]--; + changed = true; + encoder_update_kb(index, true); + } + encoder_pulses[i] %= PLANCK_ENCODER_RESOLUTION; +#ifdef ENCODER_DEFAULT_POS + encoder_pulses[i] = 0; +#endif + return changed; +} +#endif + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { +#ifndef PLANCK_WATCHDOG_DISABLE + // reset watchdog + wdgReset(&WDGD1); +#endif + + bool changed = false; + + // actual matrix + for (int col = 0; col < MATRIX_COLS; col++) { + matrix_row_t data = 0; + + // strobe col + writePinHigh(matrix_col_pins[col]); + + // need wait to settle pin state + wait_us(20); + + // read row data + for (int row = 0; row < MATRIX_ROWS; row++) { + data |= (readPin(matrix_row_pins[row]) << row); + } + + // unstrobe col + writePinLow(matrix_col_pins[col]); + + if (matrix_inverted[col] != data) { + matrix_inverted[col] = data; + } + } + + for (int row = 0; row < MATRIX_ROWS; row++) { + matrix_row_t old = current_matrix[row]; + current_matrix[row] = 0; + for (int col = 0; col < MATRIX_COLS; col++) { + current_matrix[row] |= ((matrix_inverted[col] & (1 << row) ? 1 : 0) << col); + } + changed |= old != current_matrix[row]; + } + +#ifdef ENCODER_ENABLE + // encoder-matrix functionality + + // set up C/rows for encoder read + for (int i = 0; i < MATRIX_ROWS; i++) { + setPinOutput(matrix_row_pins[i]); + writePinHigh(matrix_row_pins[i]); + } + + // set up A & B for reading + setPinInputHigh(B12); + setPinInputHigh(B13); + + for (int i = 0; i < MATRIX_ROWS; i++) { + writePinLow(matrix_row_pins[i]); + wait_us(10); + uint8_t new_status = (palReadPad(GPIOB, 12) << 0) | (palReadPad(GPIOB, 13) << 1); + if ((encoder_state[i] & 0x3) != new_status) { + encoder_state[i] <<= 2; + encoder_state[i] |= new_status; + encoder_update(i, encoder_state[i]); + } + writePinHigh(matrix_row_pins[i]); + } + + // revert A & B to matrix state + setPinInputLow(B12); + setPinInputLow(B13); + + // revert C/rows to matrix state + for (int i = 0; i < MATRIX_ROWS; i++) { + setPinInputLow(matrix_row_pins[i]); + } +#endif + + return changed; +} diff --git a/keyboards/planck/rev7/mcuconf.h b/keyboards/planck/rev7/mcuconf.h new file mode 100644 index 00000000000..fa3d3be885d --- /dev/null +++ b/keyboards/planck/rev7/mcuconf.h @@ -0,0 +1,51 @@ +/* Copyright 2020 QMK Contributors + * + * This 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 3 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 + +// The SysTick timer from the normal quantum/stm32 uses TIM2 -- the WS2812 pin used +// on the Planck requires the use of TIM2 to run PWM -- rework which timers are +// allocated for PWM usage. +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_DAC_USE_DAC1_CH1 +#define STM32_DAC_USE_DAC1_CH1 TRUE +#undef STM32_DAC_USE_DAC1_CH2 +#define STM32_DAC_USE_DAC1_CH2 TRUE +#undef STM32_GPT_USE_TIM6 +#define STM32_GPT_USE_TIM6 TRUE +#undef STM32_GPT_USE_TIM7 +#define STM32_GPT_USE_TIM7 TRUE +#undef STM32_GPT_USE_TIM8 +#define STM32_GPT_USE_TIM8 TRUE + +// As mentioned above, we need to reallocate the SysTick timer used from +// TIM2 to TIM3. +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 3 + +// enable i2c +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +// use the watchdog timer +#undef STM32_WDG_USE_IWDG +#define STM32_WDG_USE_IWDG TRUE +#undef STM32_IWDG_IS_WINDOWED +#define STM32_IWDG_IS_WINDOWED TRUE diff --git a/keyboards/planck/rev7/readme.md b/keyboards/planck/rev7/readme.md new file mode 100644 index 00000000000..6a4df377046 --- /dev/null +++ b/keyboards/planck/rev7/readme.md @@ -0,0 +1,42 @@ +# Planck + +A compact 40% (12x4) ortholinear keyboard kit designed by OLKB and sold by Drop. A complete hardware rework of the rev6 Planck PCB, with support for up to 8 rotary encoders. [More info on qmk.fm](http://qmk.fm/planck/) + +* Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) +* Hardware Supported: Planck PCB rev7 +* Hardware Availability: [Drop](https://drop.com/buy/planck-mechanical-keyboard?mode=guest_open) + +Make example for this keyboard (after setting up your build environment): + + make planck/rev7: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). + +## Encoders + +Encoders must have matching pulse & detent resolutions (e.g. 24/24) for the scanning to work properly. Multiple encoders can be used at the same time, and are zero-indexed (compared to being one-indexed on the PCB's silkscreen) in the `encoder_update_user(uint8_t index, bool clockwise)` function: + +``` +,-----------------------------------------------------------------------------------. +| 0 | | | | | | | | | | | 4 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| 1 | | | | | | | | | | | 5 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| 2 | | | | | | | | | | | 6 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| 3 | | | | | | | | | | 7 | +`-----------------------------------------------------------------------------------' +``` + +If an encoder has a switch built-in, it's connected to the key at that location. On the default keymap, each encoder will play its own rising/falling tone sequence when rotated, and will reset the pitch after one second of inactivity. The encoder map feature is not currently supported. + +## Some Planck-specific config.h options: + +```c +// sets the length (in seconds) of the watchdog timer, which will reset the keyboard due to hang/crash in the code +#define PLANCK_WATCHDOG_TIMEOUT 1.0 +// disables the watchdog timer - you may want to disable the watchdog timer if you use longer macros +#define PLANCK_WATCHDOG_DISABLE +// the resolution of the encoders used in the encoder matrix +#define PLANCK_ENCODER_RESOLUTION 4 +``` diff --git a/keyboards/planck/rev7/rev7.c b/keyboards/planck/rev7/rev7.c new file mode 100644 index 00000000000..bb9d0ee1e8c --- /dev/null +++ b/keyboards/planck/rev7/rev7.c @@ -0,0 +1,74 @@ +/* Copyright 2023 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 . + */ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +// clang-format off +led_config_t g_led_config = { { + // Key Matrix to LED Index + { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, + { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, + { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, +}, { + // LED Index to Physical Position + {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} +}, { + // LED Index to Flag + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL +} }; + +// LED physical location index +// 6 5 4 3 +// 0 +// 7 8 1 2 + +#endif + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}}, + {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, + {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, + {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, + + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{5, 7}, {4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif + +const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = { + {36, 37, 38, 39, 40, 41}, + {24, 25, 26, 27, 28, 29}, + {12, 13, 14, 15, 16, 17}, + { 0, 1, 2, 9, 10, 11}, + {42, 43, 44, 45, 46, 47}, + {30, 31, 32, 33, 34, 35}, + {18, 19, 20, 21, 22, 23}, + { 6, 7, 8, 3, 4, 5} +}; diff --git a/keyboards/planck/rev7/rules.mk b/keyboards/planck/rev7/rules.mk new file mode 100644 index 00000000000..38710bc00b8 --- /dev/null +++ b/keyboards/planck/rev7/rules.mk @@ -0,0 +1,9 @@ +# Build Options +# change yes to no to disable +# +CUSTOM_MATRIX = lite +DIP_SWITCH_ENABLE = yes + +SRC += matrix.c + +LAYOUTS_HAS_RGB = no diff --git a/keyboards/planck/thk/config.h b/keyboards/planck/thk/config.h index 832fb0789cc..cfb88aa0eb1 100644 --- a/keyboards/planck/thk/config.h +++ b/keyboards/planck/thk/config.h @@ -18,8 +18,6 @@ along with this program. If not, see . #pragma once -#define TAPPING_TOGGLE 3 - #define DIP_SWITCH_PINS { D0, D1, D4, D6 } // THK uses D5 for audio diff --git a/keyboards/planck/thk/info.json b/keyboards/planck/thk/info.json index e7321ba6972..f62e074e682 100644 --- a/keyboards/planck/thk/info.json +++ b/keyboards/planck/thk/info.json @@ -21,6 +21,9 @@ }, "processor": "atmega32a", "bootloader": "usbasploader", + "tapping": { + "toggle": 3 + }, "layout_aliases": { "LAYOUT_planck_grid": "LAYOUT_ortho_4x12", "LAYOUT_planck_mit": "LAYOUT_planck_1x2uC" diff --git a/keyboards/playkbtw/ca66/config.h b/keyboards/playkbtw/ca66/config.h index 9bcb20ae881..5f360813239 100644 --- a/keyboards/playkbtw/ca66/config.h +++ b/keyboards/playkbtw/ca66/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/playkbtw/ca66/info.json b/keyboards/playkbtw/ca66/info.json index 828d5337b2a..5711f0e742b 100644 --- a/keyboards/playkbtw/ca66/info.json +++ b/keyboards/playkbtw/ca66/info.json @@ -14,8 +14,26 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/playkbtw/ca66/keymaps/olivia/keymap.c b/keyboards/playkbtw/ca66/keymaps/olivia/keymap.c index 9b441a88922..8ef6c0499db 100644 --- a/keyboards/playkbtw/ca66/keymaps/olivia/keymap.c +++ b/keyboards/playkbtw/ca66/keymaps/olivia/keymap.c @@ -17,20 +17,11 @@ 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), }; -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { DDRD |= (1 << 1); PORTD &= ~(1 << 1); } else { DDRD &= ~(1 << 1); PORTD &= ~(1 << 1); } + return false; } diff --git a/keyboards/playkbtw/helen80/config.h b/keyboards/playkbtw/helen80/config.h deleted file mode 100644 index 57840935b6b..00000000000 --- a/keyboards/playkbtw/helen80/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 Play Keyboard - * - * This 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 RGBLED_NUM 87 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/playkbtw/helen80/info.json b/keyboards/playkbtw/helen80/info.json index 7e568e6ed8e..95cbde60106 100644 --- a/keyboards/playkbtw/helen80/info.json +++ b/keyboards/playkbtw/helen80/info.json @@ -22,7 +22,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 87, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/playkbtw/pk60/config.h b/keyboards/playkbtw/pk60/config.h index 8471167fcd9..5f360813239 100644 --- a/keyboards/playkbtw/pk60/config.h +++ b/keyboards/playkbtw/pk60/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/playkbtw/pk60/info.json b/keyboards/playkbtw/pk60/info.json index 89b414d08f6..e42854308e6 100644 --- a/keyboards/playkbtw/pk60/info.json +++ b/keyboards/playkbtw/pk60/info.json @@ -17,6 +17,23 @@ "pin": "B7", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/playkbtw/pk60/keymaps/default/keymap.c b/keyboards/playkbtw/pk60/keymaps/default/keymap.c index 65d3996a85e..cc0276673a3 100644 --- a/keyboards/playkbtw/pk60/keymaps/default/keymap.c +++ b/keyboards/playkbtw/pk60/keymaps/default/keymap.c @@ -20,12 +20,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(F4); writePinLow(F4); } else { setPinInput(F4); writePinLow(F4); } + return false; } diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h index 3b2087c5b83..bb28749d943 100644 --- a/keyboards/playkbtw/pk64rgb/config.h +++ b/keyboards/playkbtw/pk64rgb/config.h @@ -40,21 +40,6 @@ #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL #endif -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -// # define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 18 -# define RGBLIGHT_HUE_STEP 5 -# define RGBLIGHT_SAT_STEP 5 -# define RGBLIGHT_VAL_STEP 5 -# define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/playkbtw/pk64rgb/info.json b/keyboards/playkbtw/pk64rgb/info.json index 522cd248b3a..727b9c0a5cb 100644 --- a/keyboards/playkbtw/pk64rgb/info.json +++ b/keyboards/playkbtw/pk64rgb/info.json @@ -9,13 +9,30 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "matrix_pins": { "cols": ["B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "B1", "B2", "B3", "B7"], "rows": ["D7", "D6", "D5", "D3", "D2"] }, "diode_direction": "COL2ROW", + "rgblight": { + "hue_steps": 5, + "saturation_steps": 5, + "brightness_steps": 5, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/ploopyco/mouse/config.h b/keyboards/ploopyco/mouse/config.h index 62ed32840bc..94bd6ef6af6 100644 --- a/keyboards/ploopyco/mouse/config.h +++ b/keyboards/ploopyco/mouse/config.h @@ -28,11 +28,6 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -#define RGBLED_NUM 4 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL - // #define DEBUG_LED_PIN F7 /* PMW33XX Settings */ diff --git a/keyboards/ploopyco/mouse/info.json b/keyboards/ploopyco/mouse/info.json index b89f82a363d..5dc53392ff2 100644 --- a/keyboards/ploopyco/mouse/info.json +++ b/keyboards/ploopyco/mouse/info.json @@ -16,7 +16,13 @@ "pin": "B5" }, "rgblight": { - "max_brightness": 40 + "led_count": 4, + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/ploopyco/trackball/rev1_005/config.h b/keyboards/ploopyco/trackball/rev1_005/config.h index e59c0a3e853..014d67f9c1f 100644 --- a/keyboards/ploopyco/trackball/rev1_005/config.h +++ b/keyboards/ploopyco/trackball/rev1_005/config.h @@ -22,8 +22,3 @@ // They are set as output and pulled high, by default #define UNUSABLE_PINS \ { D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 } - -#define RGBLED_NUM 3 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/ploopyco/trackball/rev1_005/info.json b/keyboards/ploopyco/trackball/rev1_005/info.json index c7506f2d84d..4ec61dc7eb1 100644 --- a/keyboards/ploopyco/trackball/rev1_005/info.json +++ b/keyboards/ploopyco/trackball/rev1_005/info.json @@ -10,6 +10,12 @@ "pin": "B5" }, "rgblight": { - "max_brightness": 40 + "led_count": 3, + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } } } diff --git a/keyboards/plume/plume65/config.h b/keyboards/plume/plume65/config.h index ba11813e4ea..4183c7db05e 100644 --- a/keyboards/plume/plume65/config.h +++ b/keyboards/plume/plume65/config.h @@ -16,22 +16,6 @@ #pragma once - #define RGBLED_NUM 10 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/plume/plume65/info.json b/keyboards/plume/plume65/info.json index 3f38c555e19..a149784fd7f 100644 --- a/keyboards/plume/plume65/info.json +++ b/keyboards/plume/plume65/info.json @@ -8,6 +8,21 @@ "pid": "0x22CF", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/plut0nium/0x3e/config.h b/keyboards/plut0nium/0x3e/config.h deleted file mode 100644 index 67d2105ef73..00000000000 --- a/keyboards/plut0nium/0x3e/config.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright 2020 plut0nium - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* - * RGB Underglow - */ - #define RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 12 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - -/* - * 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/plut0nium/0x3e/info.json b/keyboards/plut0nium/0x3e/info.json index 9ae1bcca07e..97c448f3a73 100644 --- a/keyboards/plut0nium/0x3e/info.json +++ b/keyboards/plut0nium/0x3e/info.json @@ -22,7 +22,17 @@ "pin": "C7" }, "rgblight": { - "max_brightness": 150 + "hue_steps": 12, + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 150, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "static_gradient": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/plut0nium/0x3e/keymaps/default/keymap.c b/keyboards/plut0nium/0x3e/keymaps/default/keymap.c index 0b4c26369da..a906ebd24e9 100644 --- a/keyboards/plut0nium/0x3e/keymaps/default/keymap.c +++ b/keyboards/plut0nium/0x3e/keymaps/default/keymap.c @@ -136,14 +136,6 @@ bool oled_task_user(void) { oled_write_ln_P(PSTR("Undf"), false); } - // Host Keyboard LED Status - // uint8_t led_usb_state = host_keyboard_leds(); - // oled_write_P(PSTR("-----"), false); - // oled_write_P(PSTR("Stats"), false); - // oled_write_P(led_usb_state & (1<. #pragma once -# define RGBLED_NUM 8 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/plywrks/lune/info.json b/keyboards/plywrks/lune/info.json index 0804c27c1c7..46c789054d1 100644 --- a/keyboards/plywrks/lune/info.json +++ b/keyboards/plywrks/lune/info.json @@ -8,6 +8,21 @@ "pid": "0x7901", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/plywrks/ply8x/config.h b/keyboards/plywrks/ply8x/config.h new file mode 100644 index 00000000000..2180b9887f3 --- /dev/null +++ b/keyboards/plywrks/ply8x/config.h @@ -0,0 +1,14 @@ +// Copyright 2023 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* RGB */ +#define WS2812_SPI SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_EXTERNAL_PULLUP +#define RGB_MATRIX_LED_COUNT 6 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/plywrks/ply8x/halconf.h b/keyboards/plywrks/ply8x/halconf.h new file mode 100644 index 00000000000..e215e323c5d --- /dev/null +++ b/keyboards/plywrks/ply8x/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/plywrks/ply8x/info.json b/keyboards/plywrks/ply8x/info.json new file mode 100644 index 00000000000..7c0717ade00 --- /dev/null +++ b/keyboards/plywrks/ply8x/info.json @@ -0,0 +1,978 @@ +{ + "manufacturer": "plywrks", + "keyboard_name": "ply8x", + "maintainer": "ramonimbao", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "rows": ["B2", "B1", "B0", "A7", "A10", "A2"], + "cols": ["A9", "A8", "B12", "B11", "B10", "A6", "A5", "A4", "A15", "C13", "C14", "B9", "B7", "B6", "B5", "B4", "B3"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x7905", + "vid": "0x706C" + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "layout": [ + {"flags": 8, "matrix": [3, 0], "x":2, "y":27}, + {"flags": 8, "matrix": [0,15], "x":211, "y":0}, + {"flags": 2, "x":0, "y":0}, + {"flags": 2, "x":10, "y":0}, + {"flags": 2, "x":20, "y":0}, + {"flags": 2, "x":30, "y":0} + ] + }, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_ansi", + "LAYOUT_iso": "LAYOUT_tkl_iso" + }, + "community_layouts": [ + "tkl_ansi", + "tkl_ansi_split_bs_rshift", + "tkl_ansi_tsangan", + "tkl_ansi_tsangan_split_bs_rshift", + "tkl_iso", + "tkl_iso_split_bs_rshift", + "tkl_iso_tsangan", + "tkl_iso_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x":0, "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.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "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}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"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, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.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}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/plywrks/ply8x/keymaps/default/keymap.c b/keyboards/plywrks/ply8x/keymaps/default/keymap.c new file mode 100644 index 00000000000..4ca5b29581d --- /dev/null +++ b/keyboards/plywrks/ply8x/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│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 │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + +#ifdef RGB_MATRIX_ENABLE +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.scroll_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(1, 0, 0, 0); + } + + if (!led_state.caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 0); + } + + return true; +} +#endif diff --git a/keyboards/plywrks/ply8x/keymaps/via/keymap.c b/keyboards/plywrks/ply8x/keymaps/via/keymap.c new file mode 100644 index 00000000000..e357a16d89b --- /dev/null +++ b/keyboards/plywrks/ply8x/keymaps/via/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + +#ifdef RGB_MATRIX_ENABLE +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.scroll_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(1, 0, 0, 0); + } + + if (!led_state.caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 0); + } + + return true; +} +#endif diff --git a/keyboards/plywrks/ply8x/keymaps/via/rules.mk b/keyboards/plywrks/ply8x/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/plywrks/ply8x/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/plywrks/ply8x/mcuconf.h b/keyboards/plywrks/ply8x/mcuconf.h new file mode 100644 index 00000000000..aceb2e3dfc0 --- /dev/null +++ b/keyboards/plywrks/ply8x/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/plywrks/ply8x/readme.md b/keyboards/plywrks/ply8x/readme.md new file mode 100644 index 00000000000..91b49344e5d --- /dev/null +++ b/keyboards/plywrks/ply8x/readme.md @@ -0,0 +1,26 @@ +# Plywrks ply8x + +![ply8x](https://i.imgur.com/SYY9eKih.png) + +F12 coreless keyboard PCB. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: STM32F072 + +Make example for this keyboard (after setting up your build environment): + + make plywrks/ply8x:default + +Flashing example for this keyboard: + + make plywrks/ply8x: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**: Set the slide switch to `BOOTLOADER`, then briefly press the button on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/plywrks/ply8x/rules.mk b/keyboards/plywrks/ply8x/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/plywrks/ply8x/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/pohjolaworks/louhi/config.h b/keyboards/pohjolaworks/louhi/config.h index ee3792928a0..9dbdc010503 100644 --- a/keyboards/pohjolaworks/louhi/config.h +++ b/keyboards/pohjolaworks/louhi/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 14 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/pohjolaworks/louhi/info.json b/keyboards/pohjolaworks/louhi/info.json index 39674dc1ba0..618d46b9c86 100644 --- a/keyboards/pohjolaworks/louhi/info.json +++ b/keyboards/pohjolaworks/louhi/info.json @@ -22,6 +22,9 @@ "pin": "B5" }, "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, "max_brightness": 230 }, "processor": "atmega32u4", diff --git a/keyboards/poker87c/config.h b/keyboards/poker87c/config.h deleted file mode 100644 index b91aa11bd73..00000000000 --- a/keyboards/poker87c/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2021 water - * - * This 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 RGBLED_NUM 95 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/poker87c/info.json b/keyboards/poker87c/info.json index f987bb5b050..b0c8befc23e 100644 --- a/keyboards/poker87c/info.json +++ b/keyboards/poker87c/info.json @@ -20,7 +20,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 95, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "indicators": { "caps_lock": "B3", diff --git a/keyboards/poker87d/config.h b/keyboards/poker87d/config.h deleted file mode 100644 index 35d54817f7d..00000000000 --- a/keyboards/poker87d/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2021 water - * - * This 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 RGBLED_NUM 125 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/poker87d/info.json b/keyboards/poker87d/info.json index 98cb25d91c6..8eec7890895 100644 --- a/keyboards/poker87d/info.json +++ b/keyboards/poker87d/info.json @@ -25,7 +25,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 125, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", @@ -89,7 +105,7 @@ {"matrix": [2, 9], "x": 9.5, "y": 2.5}, {"matrix": [2, 10], "x": 10.5, "y": 2.5}, {"matrix": [2, 11], "x": 11.5, "y": 2.5}, - {"matrix": [2, 12], "x": 12.5, "y": 2.5, "w": 1.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, {"matrix": [2, 14], "x": 15.25, "y": 2.5}, {"matrix": [5, 13], "x": 16.25, "y": 2.5}, diff --git a/keyboards/polycarbdiet/s20/config.h b/keyboards/polycarbdiet/s20/config.h index 61969b945f3..fcff1b29cfc 100644 --- a/keyboards/polycarbdiet/s20/config.h +++ b/keyboards/polycarbdiet/s20/config.h @@ -16,23 +16,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/polycarbdiet/s20/info.json b/keyboards/polycarbdiet/s20/info.json index aeb54275898..0905f9240ac 100644 --- a/keyboards/polycarbdiet/s20/info.json +++ b/keyboards/polycarbdiet/s20/info.json @@ -18,6 +18,24 @@ "pin": "B6", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/pom_keyboards/tnln95/config.h b/keyboards/pom_keyboards/tnln95/config.h index 4c85d73c7a7..14f8d92d5db 100644 --- a/keyboards/pom_keyboards/tnln95/config.h +++ b/keyboards/pom_keyboards/tnln95/config.h @@ -21,23 +21,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* RGB Configs */ - #define RGBLED_NUM 14 -#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_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep // #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 225 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 diff --git a/keyboards/pom_keyboards/tnln95/info.json b/keyboards/pom_keyboards/tnln95/info.json index 02f8ac7927f..7e055181bd8 100644 --- a/keyboards/pom_keyboards/tnln95/info.json +++ b/keyboards/pom_keyboards/tnln95/info.json @@ -18,6 +18,24 @@ "levels": 10, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/preonic/keymaps/dothtm60/config.h b/keyboards/preonic/keymaps/dothtm60/config.h new file mode 100644 index 00000000000..718b2d4b650 --- /dev/null +++ b/keyboards/preonic/keymaps/dothtm60/config.h @@ -0,0 +1,47 @@ +/* Copyright 2015-2021 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 + +#ifdef AUDIO_ENABLE +# define STARTUP_SONG SONG(PREONIC_SOUND) +// #define STARTUP_SONG SONG(NO_SOUND) + +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * 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 + +#define HOLD_ON_OTHER_KEY_PRESS diff --git a/keyboards/preonic/keymaps/dothtm60/keymap.c b/keyboards/preonic/keymaps/dothtm60/keymap.c new file mode 100644 index 00000000000..fbcdb9b7974 --- /dev/null +++ b/keyboards/preonic/keymaps/dothtm60/keymap.c @@ -0,0 +1,159 @@ +/* Copyright 2015-2021 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 7 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_5x12( + [0] = LAYOUT_ortho_5x12( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + MO(2), KC_LCTL, KC_LALT, KC_LGUI, LT(1,KC_SPC), KC_SPC, KC_SPC, LT(1,KC_SPC), KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ortho_5x12( + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, LGUI(KC_MINS), LGUI(KC_EQL), KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, + KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, LGUI(KC_LCBR), LGUI(KC_RCBR), KC_LCBR, KC_RCBR, KC_DQUO, KC_QUOT, KC_BSLS, + KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, LGUI(KC_LBRC), LGUI(KC_RBRC), KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_PENT, + KC_TRNS, KC_UNDS, KC_PLUS, KC_MINS, KC_EQL, LGUI(KC_QUES), LGUI(KC_SLSH), KC_QUES, KC_SLSH, KC_QUES, LCAG(KC_UP), KC_TRNS, + MO(15), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LGUI(KC_SPC), LGUI(KC_SPC), KC_TRNS, KC_TRNS, LGUI(KC_LBRC), LCAG(KC_DOWN), LGUI(KC_RBRC) + ), + + [2] = LAYOUT_ortho_5x12( + DB_TOGG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + RGB_TOG, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_NO, + HYPR(KC_H), KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(15), KC_NO, KC_NO, MO(15), KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + + + + + // Musical keys + + [7] = LAYOUT_ortho_5x12( + + // Chromatic Scale Vertical + // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + KC_ESC, MI_C, MI_E, MI_Gs, MI_C1, MI_E1, MI_Gs1, MI_C2, MI_E2, MI_Gs2, MI_C3, MI_TR0, + KC_TAB, MI_Cs, MI_F, MI_A, MI_Cs1, MI_F1, MI_A1, MI_Cs2, MI_F2, MI_A2, MI_Cs3, MI_TRSU, + KC_SPC, MI_D, MI_Fs, MI_As, MI_D1, MI_Fs1, MI_As1, MI_D2, MI_Fs2, MI_As2, MI_D3, MI_TRSD, + MI_SUST, MI_Ds, MI_G, MI_B, MI_Ds1, MI_G1, MI_B1, MI_Ds2, MI_G2, MI_B2, MI_Ds3, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_BNDU, KC_NO, MI_MODD, MI_MODU, MI_OCTD + ), + + + [8] = LAYOUT_ortho_5x12( + // Pocket Operator Scale Vertical + //1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + KC_ESC, MI_C, MI_G, MI_C1, MI_G1, MI_C2, MI_G2, MI_C3, MI_G3, MI_C4, MI_G4, MI_TR0, + KC_TAB, MI_D, MI_Gs, MI_D1, MI_Gs1, MI_D2, MI_Gs2, MI_D3, MI_Gs3, MI_D4, MI_Gs4, MI_TRSU, + KC_SPC, MI_Ds, MI_As, MI_Ds1, MI_As1, MI_Ds2, MI_As2, MI_Ds3, MI_As3, MI_Ds4, MI_As4, MI_TRSD, + MI_SUST, MI_F, MI_B, MI_F1, MI_B1, MI_F2, MI_B2, MI_F3, MI_B3, MI_F4, MI_B4, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_BNDU, KC_NO, MI_MODD, MI_MODU, MI_OCTD + ), + + [9] = LAYOUT_ortho_5x12( + // Major scale Vertical + // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + KC_ESC, MI_C, MI_G, MI_D1, MI_A1, MI_E2, MI_B2, MI_F3, MI_C4, MI_G4, MI_D5, MI_TR0, + KC_TAB, MI_D, MI_A, MI_E1, MI_B1, MI_F2, MI_C3, MI_G3, MI_D4, MI_A4, MI_E5, MI_TRSU, + KC_SPC, MI_E, MI_B, MI_F1, MI_C2, MI_G2, MI_D3, MI_A3, MI_E4, MI_B4, MI_F5, MI_TRSD, + MI_SUST, MI_F, MI_C1, MI_G1, MI_D2, MI_A2, MI_E3, MI_B3, MI_F4, MI_C5, MI_G5, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_BNDU, KC_NO, MI_MODD, MI_MODU, MI_OCTD + ), + + [10] = LAYOUT_ortho_5x12( + // Black Keys Vertical + // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + KC_ESC, MI_C, MI_A, MI_G1, MI_F2, MI_D3, MI_C4, MI_A4, MI_G5, KC_NO, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_C1, MI_A1, MI_G2, MI_F3, MI_D4, MI_C5, MI_A5, KC_NO, KC_NO, MI_TRSU, + KC_SPC, MI_F, MI_D1, MI_C2, MI_A2, MI_G3, MI_F4, MI_D5, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, MI_G, MI_F1, MI_D2, MI_C3, MI_A3, MI_G4, MI_F5, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_BNDU, KC_NO, MI_MODD, MI_MODU, MI_OCTD + ), + + + [11] = LAYOUT_ortho_5x12( + // Chromatic Scale Horizontal + //1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + KC_ESC, MI_C, MI_Cs, MI_D, MI_Ds, MI_E, MI_F, MI_Fs, MI_G, MI_Gs, MI_A, MI_TR0, + KC_TAB, MI_As, MI_B, MI_C1, MI_Cs1, MI_D1, MI_Ds1, MI_E1, MI_F1, MI_Fs1, MI_G1, MI_TRSU, + KC_SPC, MI_Gs1, MI_A1, MI_As1, MI_B1, MI_C2, MI_Cs2, MI_D2, MI_Ds2, MI_E2, MI_F2, MI_TRSD, + MI_SUST, MI_Fs2, MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2, MI_C3, MI_Cs3, MI_D3, MI_Ds3, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_BNDU, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + [12] = LAYOUT_ortho_5x12( + // Pocket Operator Scale Horizontal + //1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + KC_ESC, MI_C, MI_D, MI_Ds, MI_F, MI_G, MI_Gs, MI_As, MI_B, MI_C1, MI_D1, MI_TR0, + KC_TAB, MI_Ds1, MI_F1, MI_G1, MI_Gs1, MI_As1, MI_B1, MI_C2, MI_D2, MI_Ds2, MI_F2, MI_TRSU, + KC_SPC, MI_G2, MI_Gs2, MI_As2, MI_B2, MI_C3, MI_D3, MI_Ds3, MI_F3, MI_G3, MI_Gs3, MI_TRSD, + MI_SUST, MI_As3, MI_B3, MI_C4, MI_D4, MI_Ds4, MI_F4, MI_G4, MI_Gs4, MI_As4, MI_B4, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_BNDU, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + + + ), + + + [13] = LAYOUT_ortho_5x12( + // Major scale Horizontal + //1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + KC_ESC, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C1, MI_D1, MI_E1, MI_TR0, + KC_TAB, MI_F1, MI_G1, MI_A1, MI_B1, MI_C2, MI_D2, MI_E2, MI_F2, MI_G2, MI_A2, MI_TRSU, + KC_SPC, MI_B2, MI_C3, MI_D3, MI_E3, MI_F3, MI_G3, MI_A3, MI_B3, MI_C4, MI_D4, MI_TRSD, + MI_SUST, MI_E4, MI_F4, MI_G4, MI_A4, MI_B4, MI_C5, MI_D5, MI_E5, MI_F5, MI_G5, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_BNDU, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + + ), + [14] = LAYOUT_ortho_5x12( + // Black Keys Horizontal + //1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + KC_ESC, MI_C, MI_D, MI_F, MI_G, MI_A, MI_C1, MI_D1, MI_F1, MI_G1, MI_A1, MI_TR0, + KC_TAB, MI_C2, MI_D2, MI_F2, MI_G2, MI_A2, MI_C3, MI_D3, MI_F3, MI_G3, MI_A3, MI_TRSU, + KC_SPC, MI_C4, MI_D4, MI_F4, MI_G4, MI_A4, MI_C, MI_D, MI_F, MI_G, MI_A, MI_TRSD, + MI_SUST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_BNDU, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + + + + + + + // Settings + [15] = LAYOUT_ortho_5x12( + DB_TOGG, MI_CH1, MI_CH2, MI_CH3, MI_CH4, MI_CH5, MI_CH6, MI_CH7, MI_CH8, AU_TOGG, KC_NO, QK_BOOT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, DF(11), DF(12), DF(13), DF(14), KC_NO, DB_TOGG, + RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_NO, DF(7), DF(8), DF(9), DF(10), KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_TRNS, DF(0), DF(0), KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO + ) + + +}; + diff --git a/keyboards/preonic/keymaps/dothtm60/rules.mk b/keyboards/preonic/keymaps/dothtm60/rules.mk new file mode 100644 index 00000000000..4745e5384a7 --- /dev/null +++ b/keyboards/preonic/keymaps/dothtm60/rules.mk @@ -0,0 +1,3 @@ +SRC += muse.c + +MIDI_ENABLE = yes diff --git a/keyboards/preonic/keymaps/zach/zach_common_functions.c b/keyboards/preonic/keymaps/zach/zach_common_functions.c index 6ad1c7bed33..ae5f44e7136 100644 --- a/keyboards/preonic/keymaps/zach/zach_common_functions.c +++ b/keyboards/preonic/keymaps/zach/zach_common_functions.c @@ -141,31 +141,31 @@ tap_dance_action_t tap_dance_actions[] = { //#ifdef UNICODE_ENABLE // Unicode shortcuts -#define IBANG X(0x203D) -#define RAROW X(0x2192) -#define LAROW X(0x2190) -#define DEGREE X(0x00B0) -#define OMEGA X(0x03A9) -#define WOMEGA X(0x03C9) -#define MICRO X(0x00B5) -#define PLUMIN X(0x00B1) -#define SUPA2 X(0x00B2) -#define ROMAN1 X(0x2160) -#define ROMAN2 X(0x2161) -#define ROMAN3 X(0x2162) -#define ROMAN4 X(0x2163) -#define ROMAN5 X(0x2164) -#define ROMAN6 X(0x2165) -#define ROMAN7 X(0x2166) -#define roman1 X(0x2170) -#define roman2 X(0x2171) -#define roman3 X(0x2172) -#define roman4 X(0x2173) -#define roman5 X(0x2174) -#define roman6 X(0x2175) -#define roman7 X(0x2176) +#define IBANG UM(0x203D) +#define RAROW UM(0x2192) +#define LAROW UM(0x2190) +#define DEGREE UM(0x00B0) +#define OMEGA UM(0x03A9) +#define WOMEGA UM(0x03C9) +#define MICRO UM(0x00B5) +#define PLUMIN UM(0x00B1) +#define SUPA2 UM(0x00B2) +#define ROMAN1 UM(0x2160) +#define ROMAN2 UM(0x2161) +#define ROMAN3 UM(0x2162) +#define ROMAN4 UM(0x2163) +#define ROMAN5 UM(0x2164) +#define ROMAN6 UM(0x2165) +#define ROMAN7 UM(0x2166) +#define roman1 UM(0x2170) +#define roman2 UM(0x2171) +#define roman3 UM(0x2172) +#define roman4 UM(0x2173) +#define roman5 UM(0x2174) +#define roman6 UM(0x2175) +#define roman7 UM(0x2176) -#ifdef UNICODEMAP_ENABLE // For Unicode characters larger than 0x8000. Send with X() +#ifdef UNICODEMAP_ENABLE enum Ext_Unicode{ PENGUIN = 0, BOAR, @@ -182,12 +182,12 @@ const uint32_t unicode_map[] PROGMEM = { [CHICK] = 0x1F425, [TUMBLER] = 0x1F943 }; -#define PENGY X(PENGUIN) -#define BOARY X(BOAR) -#define MNKY X(MONKEY) -#define DRGN X(DRAGON) -#define DUCK X(CHICK) -#define TMBL X(TUMBLER) +#define PENGY UM(PENGUIN) +#define BOARY UM(BOAR) +#define MNKY UM(MONKEY) +#define DRGN UM(DRAGON) +#define DUCK UM(CHICK) +#define TMBL UM(TUMBLER) #endif //#endif diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h index 2f55894ae65..3d64a4a34ad 100644 --- a/keyboards/preonic/rev3/config.h +++ b/keyboards/preonic/rev3/config.h @@ -42,22 +42,8 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -/* - * WS2812 Underglow Matrix options - */ -#define RGBLED_NUM 9 -#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 // RGB Matrix support -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 9 #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 diff --git a/keyboards/preonic/rev3/info.json b/keyboards/preonic/rev3/info.json index d6d494e005c..75688a33b22 100644 --- a/keyboards/preonic/rev3/info.json +++ b/keyboards/preonic/rev3/info.json @@ -6,12 +6,27 @@ "pid": "0xA649", "device_version": "0.0.3" }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A1", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "A7", "B0"], @@ -90,7 +105,7 @@ {"matrix": [8, 2], "x": 2, "y": 4}, {"matrix": [9, 3], "x": 3, "y": 4}, {"matrix": [9, 4], "x": 4, "y": 4}, - {"matrix": [9, 5], "x": 5, "y": 4, "w": 2}, + {"matrix": [9, 0], "x": 5, "y": 4, "w": 2}, {"matrix": [9, 1], "x": 7, "y": 4}, {"matrix": [9, 2], "x": 8, "y": 4}, {"matrix": [8, 3], "x": 9, "y": 4}, @@ -223,7 +238,7 @@ {"matrix": [8, 1], "x": 1, "y": 4}, {"matrix": [8, 2], "x": 2, "y": 4}, {"matrix": [9, 3], "x": 3, "y": 4}, - {"matrix": [9, 4], "x": 4, "y": 4, "w": 2}, + {"matrix": [9, 5], "x": 4, "y": 4, "w": 2}, {"matrix": [9, 0], "x": 6, "y": 4}, {"matrix": [9, 1], "x": 7, "y": 4}, {"matrix": [9, 2], "x": 8, "y": 4}, @@ -290,8 +305,8 @@ {"matrix": [8, 1], "x": 1, "y": 4}, {"matrix": [8, 2], "x": 2, "y": 4}, {"matrix": [9, 3], "x": 3, "y": 4}, - {"matrix": [9, 4], "x": 4, "y": 4, "w": 2}, - {"matrix": [9, 0], "x": 6, "y": 4, "w": 2}, + {"matrix": [9, 5], "x": 4, "y": 4, "w": 2}, + {"matrix": [9, 1], "x": 6, "y": 4, "w": 2}, {"matrix": [9, 2], "x": 8, "y": 4}, {"matrix": [8, 3], "x": 9, "y": 4}, {"matrix": [8, 4], "x": 10, "y": 4}, diff --git a/keyboards/preonic/rev3_drop/config.h b/keyboards/preonic/rev3_drop/config.h index ac584dfbfe4..3d64a4a34ad 100644 --- a/keyboards/preonic/rev3_drop/config.h +++ b/keyboards/preonic/rev3_drop/config.h @@ -42,23 +42,8 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -/* - * WS2812 Underglow Matrix options - */ -#define RGBLED_NUM 9 -#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 - // RGB Matrix support -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 9 #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 diff --git a/keyboards/preonic/rev3_drop/info.json b/keyboards/preonic/rev3_drop/info.json index a3eac4eaf40..fed4acb01f5 100644 --- a/keyboards/preonic/rev3_drop/info.json +++ b/keyboards/preonic/rev3_drop/info.json @@ -6,12 +6,27 @@ "pid": "0xA649", "device_version": "0.0.3" }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A1", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "A7", "B0"], @@ -89,7 +104,7 @@ {"matrix": [8, 2], "x": 2, "y": 4}, {"matrix": [9, 3], "x": 3, "y": 4}, {"matrix": [9, 4], "x": 4, "y": 4}, - {"matrix": [9, 5], "x": 5, "y": 4, "w": 2}, + {"matrix": [9, 0], "x": 5, "y": 4, "w": 2}, {"matrix": [9, 1], "x": 7, "y": 4}, {"matrix": [9, 2], "x": 8, "y": 4}, {"matrix": [8, 3], "x": 9, "y": 4}, @@ -290,7 +305,7 @@ {"matrix": [8, 2], "x": 2, "y": 4}, {"matrix": [9, 3], "x": 3, "y": 4}, {"matrix": [9, 5], "x": 4, "y": 4, "w": 2}, - {"matrix": [9, 0], "x": 6, "y": 4, "w": 2}, + {"matrix": [9, 1], "x": 6, "y": 4, "w": 2}, {"matrix": [9, 2], "x": 8, "y": 4}, {"matrix": [8, 3], "x": 9, "y": 4}, {"matrix": [8, 4], "x": 10, "y": 4}, diff --git a/keyboards/primekb/meridian/config.h b/keyboards/primekb/meridian/config.h index 0633f8948ef..3bb4f22006d 100644 --- a/keyboards/primekb/meridian/config.h +++ b/keyboards/primekb/meridian/config.h @@ -17,7 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 3 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/primekb/meridian/ktr1010/config.h b/keyboards/primekb/meridian/ktr1010/config.h index e28306587db..3da9ff72c42 100644 --- a/keyboards/primekb/meridian/ktr1010/config.h +++ b/keyboards/primekb/meridian/ktr1010/config.h @@ -17,7 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 3 // Special timing definitions for KTR101 #define WS2812_TIMING 1325 #define WS2812_T0H 350 diff --git a/keyboards/primekb/meridian/ktr1010/info.json b/keyboards/primekb/meridian/ktr1010/info.json index 3a330b7306e..a9a9362ec98 100644 --- a/keyboards/primekb/meridian/ktr1010/info.json +++ b/keyboards/primekb/meridian/ktr1010/info.json @@ -1,4 +1,7 @@ { + "rgblight": { + "led_count": 3 + }, "ws2812": { "pin": "B15" } diff --git a/keyboards/primekb/meridian/rules.mk b/keyboards/primekb/meridian/rules.mk index 8b14acaf197..6d34cadbf7d 100644 --- a/keyboards/primekb/meridian/rules.mk +++ b/keyboards/primekb/meridian/rules.mk @@ -11,7 +11,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - DEFAULT_FOLDER = primekb/meridian/ktr1010 diff --git a/keyboards/primekb/meridian/ws2812/config.h b/keyboards/primekb/meridian/ws2812/config.h index 0633f8948ef..3bb4f22006d 100644 --- a/keyboards/primekb/meridian/ws2812/config.h +++ b/keyboards/primekb/meridian/ws2812/config.h @@ -17,7 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 3 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/primekb/meridian/ws2812/info.json b/keyboards/primekb/meridian/ws2812/info.json index 98702321171..4299d367c20 100644 --- a/keyboards/primekb/meridian/ws2812/info.json +++ b/keyboards/primekb/meridian/ws2812/info.json @@ -1,4 +1,7 @@ { + "rgblight": { + "led_count": 3 + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/primekb/meridian_rgb/config.h b/keyboards/primekb/meridian_rgb/config.h index 6e481d7778e..66857199142 100644 --- a/keyboards/primekb/meridian_rgb/config.h +++ b/keyboards/primekb/meridian_rgb/config.h @@ -17,18 +17,6 @@ along with this program. If not, see . #pragma once -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/primekb/meridian_rgb/info.json b/keyboards/primekb/meridian_rgb/info.json index c967c15811f..767a70b6f34 100644 --- a/keyboards/primekb/meridian_rgb/info.json +++ b/keyboards/primekb/meridian_rgb/info.json @@ -22,7 +22,20 @@ "pin": "F1" }, "rgblight": { - "max_brightness": 200 + "led_count": 64, + "max_brightness": 200, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/primekb/prime_e/keymaps/default/keymap.c b/keyboards/primekb/prime_e/keymaps/default/keymap.c index 08067b3132b..e5e47cffc2c 100644 --- a/keyboards/primekb/prime_e/keymaps/default/keymap.c +++ b/keyboards/primekb/prime_e/keymaps/default/keymap.c @@ -57,24 +57,18 @@ void matrix_init_user(void) { writePinLow(B3); } -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { writePinHigh(B2); } else { writePinLow(B2); } - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { writePinHigh(B1); } else { writePinLow(B1); } -/* - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinHigh(B3); - } else { - writePinLow(B3); - }*/ - + return false; } //function for layer indicator LED diff --git a/keyboards/primekb/prime_e/keymaps/jetpacktuxedo/keymap.c b/keyboards/primekb/prime_e/keymaps/jetpacktuxedo/keymap.c index cdd1b56430d..a45a841285f 100644 --- a/keyboards/primekb/prime_e/keymaps/jetpacktuxedo/keymap.c +++ b/keyboards/primekb/prime_e/keymaps/jetpacktuxedo/keymap.c @@ -100,13 +100,14 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { CAPS = 1; } else { CAPS = 0; } + return false; } void togg_indicator(uint8_t *state, uint8_t pin) { diff --git a/keyboards/primekb/prime_e/keymaps/madhatter/keymap.c b/keyboards/primekb/prime_e/keymaps/madhatter/keymap.c index f3228ec0d59..998046c6d7c 100644 --- a/keyboards/primekb/prime_e/keymaps/madhatter/keymap.c +++ b/keyboards/primekb/prime_e/keymaps/madhatter/keymap.c @@ -91,8 +91,9 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -void led_set_user(uint8_t usb_led) { - CAPS = IS_LED_ON(usb_led, USB_LED_CAPS_LOCK); +bool led_update_user(led_t led_state) { + CAPS = led_state.caps_lock; + return false; } void togg_indicator(uint8_t *state, uint8_t pin) { diff --git a/keyboards/primekb/prime_e/keymaps/via/keymap.c b/keyboards/primekb/prime_e/keymaps/via/keymap.c index 2d1d003d51a..09a42b0d165 100644 --- a/keyboards/primekb/prime_e/keymaps/via/keymap.c +++ b/keyboards/primekb/prime_e/keymaps/via/keymap.c @@ -85,24 +85,18 @@ void matrix_init_user(void) { writePinLow(B3); } -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { writePinHigh(B2); } else { writePinLow(B2); } - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { writePinHigh(B1); } else { writePinLow(B1); } -/* - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinHigh(B3); - } else { - writePinLow(B3); - }*/ - + return false; } //function for layer indicator LED diff --git a/keyboards/primekb/prime_e/keymaps/vial/keymap.c b/keyboards/primekb/prime_e/keymaps/vial/keymap.c index 195f845cc23..09a42b0d165 100644 --- a/keyboards/primekb/prime_e/keymaps/vial/keymap.c +++ b/keyboards/primekb/prime_e/keymaps/vial/keymap.c @@ -85,30 +85,24 @@ void matrix_init_user(void) { writePinLow(B3); } -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.num_lock) { writePinHigh(B2); } else { writePinLow(B2); } - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { writePinHigh(B1); } else { writePinLow(B1); } -/* - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinHigh(B3); - } else { - writePinLow(B3); - }*/ - + return false; } //function for layer indicator LED layer_state_t layer_state_set_user(layer_state_t state) { - if (biton32(state) == 1) { + if (get_highest_layer(state) == 1) { writePinHigh(B3); } else { writePinLow(B3); diff --git a/keyboards/primekb/prime_e/rgb/config.h b/keyboards/primekb/prime_e/rgb/config.h deleted file mode 100644 index 6610d03f046..00000000000 --- a/keyboards/primekb/prime_e/rgb/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2019 Holten Campbell - -This 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 RGBLED_NUM 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/primekb/prime_e/rgb/info.json b/keyboards/primekb/prime_e/rgb/info.json index 189e448ed93..998331ad897 100644 --- a/keyboards/primekb/prime_e/rgb/info.json +++ b/keyboards/primekb/prime_e/rgb/info.json @@ -4,6 +4,21 @@ "pid": "0x0052", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" } diff --git a/keyboards/primekb/prime_o/keymaps/reasonsandreasons/keymap.c b/keyboards/primekb/prime_o/keymaps/reasonsandreasons/keymap.c index 20f34ce60be..2f0290dc033 100644 --- a/keyboards/primekb/prime_o/keymaps/reasonsandreasons/keymap.c +++ b/keyboards/primekb/prime_o/keymaps/reasonsandreasons/keymap.c @@ -172,15 +172,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/program_yoink/config.h b/keyboards/program_yoink/config.h index dfb6f078aef..dcf558fdf78 100644 --- a/keyboards/program_yoink/config.h +++ b/keyboards/program_yoink/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/*RGB*/ - #define RGBLED_NUM 5 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/program_yoink/ortho/info.json b/keyboards/program_yoink/ortho/info.json index ef5492bd527..e9d5fd3e800 100644 --- a/keyboards/program_yoink/ortho/info.json +++ b/keyboards/program_yoink/ortho/info.json @@ -8,6 +8,18 @@ "pid": "0xF10C", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/program_yoink/staggered/info.json b/keyboards/program_yoink/staggered/info.json index 1b028593e33..c20e2c9fc7f 100644 --- a/keyboards/program_yoink/staggered/info.json +++ b/keyboards/program_yoink/staggered/info.json @@ -8,6 +8,18 @@ "pid": "0xF10B", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "sleep": true, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h new file mode 100644 index 00000000000..312a72979f5 --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -0,0 +1,42 @@ +/* Copyright 2023 GSKY + * + * This 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 RGB_DISABLE_WHEN_USB_SUSPENDED + +/* External spi flash */ +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 +#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) + +/* SPI Config for LED Driver */ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN A5 +#define SPI_MOSI_PIN A7 +#define SPI_MISO_PIN A6 + +#define DRIVER_1_CS A15 +#define DRIVER_2_CS B15 +#define DRIVER_1_EN C13 +#define DRIVER_2_EN C13 + +#define DRIVER_COUNT 1 +#define RGB_MATRIX_LED_COUNT 71 diff --git a/keyboards/projectd/65/projectd_65_ansi/halconf.h b/keyboards/projectd/65/projectd_65_ansi/halconf.h new file mode 100644 index 00000000000..64a184eb924 --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2023 Westberry Technology (ChangZhou) Corp., Ltd + * + * This 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_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/projectd/65/projectd_65_ansi/info.json b/keyboards/projectd/65/projectd_65_ansi/info.json new file mode 100644 index 00000000000..0c8b9585bbf --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/info.json @@ -0,0 +1,235 @@ +{ + "manufacturer": "ProjectD", + "keyboard_name": "ProjectD 65% ANSI", + "maintainer": "Gsky", + "bootloader": "wb32-dfu", + "bootmagic": { + "matrix": [1, 3] + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 13 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8"] + }, + "processor": "WB32FQ95", + "qmk": { + "tap_keycode_delay": 10 + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "center_point": [76, 25], + "driver": "aw20216", + "layout": [ + { "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [1, 7], "x": 10, "y": 0 }, + { "flags": 4, "matrix": [2, 7], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [3, 7], "x": 30, "y": 0 }, + { "flags": 4, "matrix": [4, 7], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [4, 6], "x": 50, "y": 0 }, + { "flags": 4, "matrix": [5, 6], "x": 60, "y": 0 }, + { "flags": 4, "matrix": [5, 7], "x": 70, "y": 0 }, + { "flags": 4, "matrix": [6, 7], "x": 80, "y": 0 }, + { "flags": 4, "matrix": [7, 7], "x": 90, "y": 0 }, + { "flags": 4, "matrix": [8, 7], "x": 100, "y": 0 }, + { "flags": 4, "matrix": [8, 6], "x": 110, "y": 0 }, + { "flags": 4, "matrix": [6, 6], "x": 120, "y": 0 }, + { "flags": 4, "matrix": [7, 1], "x": 130, "y": 0 }, + { "flags": 4, "matrix": [2, 3], "x": 150, "y": 0 }, + { "flags": 4, "matrix": [1, 1], "x": 0, "y": 10 }, + { "flags": 4, "matrix": [1, 0], "x": 15, "y": 10 }, + { "flags": 4, "matrix": [2, 0], "x": 25, "y": 10 }, + { "flags": 4, "matrix": [3, 0], "x": 35, "y": 10 }, + { "flags": 4, "matrix": [4, 0], "x": 45, "y": 10 }, + { "flags": 4, "matrix": [4, 1], "x": 55, "y": 10 }, + { "flags": 4, "matrix": [5, 1], "x": 65, "y": 10 }, + { "flags": 4, "matrix": [5, 0], "x": 75, "y": 10 }, + { "flags": 4, "matrix": [6, 0], "x": 85, "y": 10 }, + { "flags": 4, "matrix": [7, 0], "x": 95, "y": 10 }, + { "flags": 4, "matrix": [8, 0], "x": 105, "y": 10 }, + { "flags": 4, "matrix": [8, 1], "x": 115, "y": 10 }, + { "flags": 4, "matrix": [6, 1], "x": 125, "y": 10 }, + { "flags": 4, "matrix": [7, 5], "x": 135, "y": 10 }, + { "flags": 4, "matrix": [7, 3], "x": 150, "y": 10 }, + { "flags": 1, "matrix": [2, 1], "x": 0, "y": 20 }, + { "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 20 }, + { "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 20 }, + { "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 20 }, + { "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 20 }, + { "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 20 }, + { "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 20 }, + { "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 20 }, + { "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 20 }, + { "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 20 }, + { "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 20 }, + { "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 20 }, + { "flags": 4, "matrix": [8, 4], "x": 127.5, "y": 20 }, + { "flags": 4, "matrix": [2, 6], "x": 150, "y": 20 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 30 }, + { "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 30 }, + { "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 30 }, + { "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 30 }, + { "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 30 }, + { "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 30 }, + { "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 30 }, + { "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 30 }, + { "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 30 }, + { "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 30 }, + { "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 30 }, + { "flags": 4, "matrix": [0, 7], "x": 122.5, "y": 30 }, + { "flags": 4, "matrix": [1, 6], "x": 140, "y": 30 }, + { "flags": 4, "matrix": [6, 3], "x": 150, "y": 30 }, + { "flags": 4, "matrix": [0, 6], "x": 0, "y": 40 }, + { "flags": 4, "matrix": [0, 5], "x": 12.5, "y": 40 }, + { "flags": 4, "matrix": [0, 2], "x": 25, "y": 40 }, + { "flags": 4, "x": 61.5, "y": 40 }, + { "flags": 4, "x": 62.5, "y": 40 }, + { "flags": 4, "matrix": [0, 1], "x": 65, "y": 40 }, + { "flags": 4, "x": 67.5, "y": 40 }, + { "flags": 4, "x": 68.5, "y": 40 }, + { "flags": 4, "matrix": [3, 6], "x": 100, "y": 40 }, + { "flags": 4, "matrix": [3, 3], "x": 112.5, "y": 40 }, + { "flags": 4, "matrix": [0, 3], "x": 130, "y": 40 }, + { "flags": 4, "matrix": [1, 5], "x": 140, "y": 40 }, + { "flags": 4, "matrix": [2, 5], "x": 150, "y": 40 } + ] + }, + "url": "", + "usb": { + "device_version": "0.0.4", + "pid": "0x5319", + "vid": "0x3233" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, + "community_layouts": ["65_ansi_blocker"], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + { "label": "Esc", "matrix": [1, 3], "x": 0, "y": 0 }, + { "label": "1", "matrix": [1, 7], "x": 1, "y": 0 }, + { "label": "2", "matrix": [2, 7], "x": 2, "y": 0 }, + { "label": "3", "matrix": [3, 7], "x": 3, "y": 0 }, + { "label": "4", "matrix": [4, 7], "x": 4, "y": 0 }, + { "label": "5", "matrix": [4, 6], "x": 5, "y": 0 }, + { "label": "6", "matrix": [5, 6], "x": 6, "y": 0 }, + { "label": "7", "matrix": [5, 7], "x": 7, "y": 0 }, + { "label": "8", "matrix": [6, 7], "x": 8, "y": 0 }, + { "label": "9", "matrix": [7, 7], "x": 9, "y": 0 }, + { "label": "0", "matrix": [8, 7], "x": 10, "y": 0 }, + { "label": "-", "matrix": [8, 6], "x": 11, "y": 0 }, + { "label": "=", "matrix": [6, 6], "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [7, 1], "w": 2, "x": 13, "y": 0 }, + { "label": "Del", "matrix": [2, 3], "x": 15, "y": 0 }, + { "label": "Tab", "matrix": [1, 1], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 0], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [2, 0], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [3, 0], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [4, 0], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [4, 1], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [5, 1], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [5, 0], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [6, 0], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [7, 0], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [8, 0], "x": 10.5, "y": 1 }, + { "label": "[", "matrix": [8, 1], "x": 11.5, "y": 1 }, + { "label": "]", "matrix": [6, 1], "x": 12.5, "y": 1 }, + { "label": "\\", "matrix": [7, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "PGUP", "matrix": [7, 3], "x": 15, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 1], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [1, 2], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [3, 2], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [4, 2], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [4, 3], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [5, 3], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [5, 2], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [6, 2], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [7, 2], "x": 9.75, "y": 2 }, + { "label": ";", "matrix": [8, 2], "x": 10.75, "y": 2 }, + { "label": "'", "matrix": [8, 3], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [8, 4], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "PGDN", "matrix": [2, 6], "x": 15, "y": 2 }, + { "label": "LShift", "matrix": [0, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "Z", "matrix": [1, 4], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [2, 4], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [5, 5], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [5, 4], "x": 8.25, "y": 3 }, + { "label": ",", "matrix": [6, 4], "x": 9.25, "y": 3 }, + { "label": ".", "matrix": [7, 4], "x": 10.25, "y": 3 }, + { "label": "/", "matrix": [8, 5], "x": 11.25, "y": 3 }, + { "label": "RShift", "matrix": [0, 7], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "Up", "matrix": [1, 6], "x": 14, "y": 3 }, + { "label": "End", "matrix": [6, 3], "x": 15, "y": 3 }, + { "label": "LCtrl", "matrix": [0, 6], "w": 1.25, "x": 0, "y": 4 }, + { "label": "LWin", "matrix": [0, 5], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "LAlt", "matrix": [0, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "Space", "matrix": [0, 1], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "RAlt", "matrix": [3, 6], "w": 1.25, "x": 10, "y": 4 }, + { "label": "FN", "matrix": [3, 3], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "Left", "matrix": [0, 3], "x": 13, "y": 4 }, + { "label": "Down", "matrix": [1, 5], "x": 14, "y": 4 }, + { "label": "Right", "matrix": [2, 5], "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c new file mode 100644 index 00000000000..e7a34d3467d --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c @@ -0,0 +1,93 @@ +/* Copyright 2023 GSKY + * + * This 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 + +// 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. +enum my_keycodes { + RGB_R = QK_USER, + RGB_G, + RGB_B, + RGB_W, + SW_cy, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + case RGB_R: + if (record->event.pressed) { + rgb_matrix_sethsv(0, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_G: + if (record->event.pressed) { + rgb_matrix_sethsv(85, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_B: + if (record->event.pressed) { + rgb_matrix_sethsv(170, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_W: + if (record->event.pressed) { + rgb_matrix_sethsv(0, 0, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case SW_cy: + rgb_matrix_sethsv(0, 255, 255); + rgb_matrix_mode(13); + return false; /* Skip all further processing of this key */ + + + default: + return true; /* Process all other keycodes normally */ + } +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + 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, RGB_TOG, RGB_MOD, RGB_RMOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), +[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, + 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, RGB_R, RGB_G, RGB_B, RGB_W, SW_cy, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/projectd/65/projectd_65_ansi/keymaps/via/keymap.c b/keyboards/projectd/65/projectd_65_ansi/keymaps/via/keymap.c new file mode 100644 index 00000000000..035c038b741 --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/via/keymap.c @@ -0,0 +1,93 @@ +/* Copyright 2023 GSKY + * + * This 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 + +// 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. +enum my_keycodes { + RGB_R = QK_USER, + RGB_G, + RGB_B, + RGB_W, + SW_cy, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + case RGB_R: + if (record->event.pressed) { + rgb_matrix_sethsv(0, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_G: + if (record->event.pressed) { + rgb_matrix_sethsv(85, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_B: + if (record->event.pressed) { + rgb_matrix_sethsv(170, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_W: + if (record->event.pressed) { + rgb_matrix_sethsv(0, 0, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case SW_cy: + rgb_matrix_sethsv(0, 255, 255); + rgb_matrix_mode(13); + return false; /* Skip all further processing of this key */ + + + default: + return true; /* Process all other keycodes normally */ + } +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + 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, RGB_TOG, RGB_MOD, RGB_RMOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), +[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, + 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, RGB_R, RGB_G, RGB_B, RGB_W, SW_cy, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/projectd/65/projectd_65_ansi/keymaps/via/rules.mk b/keyboards/projectd/65/projectd_65_ansi/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/projectd/65/projectd_65_ansi/mcuconf.h b/keyboards/projectd/65/projectd_65_ansi/mcuconf.h new file mode 100644 index 00000000000..e4b8d1f9732 --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright (C) 2023 Westberry Technology (ChangZhou) Corp., Ltd + * + * This 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 WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_SPI_USE_SPIM2 +#define WB32_SPI_USE_SPIM2 TRUE diff --git a/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c b/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c new file mode 100644 index 00000000000..6027128a96e --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c @@ -0,0 +1,143 @@ +/* Copyright 2023 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + //{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 0, Esc + + {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, Esc + {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 1, 1 + {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 2, 2 + {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 3, 3 + {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 4, 4 + {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 5, 5 + {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 6, 6 + {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 7, 7 + {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 8, 8 + {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 9, 9 + {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 10, 0 + {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 11, - + {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 12, = + {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 13, Backspace + {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 14, Del + + {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 15, Tab + {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 16, Q + {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 17, W + {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 18, E + {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 19, R + {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 20, T + {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 21, Y + {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 22, U + {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 23, I + {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 24, O + {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 25, P + {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 26, [ + {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 27, ] + {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 28, "\\" + {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 29, PGUP + + {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 30, CapsLock + {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 31, A + {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 32, S + {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 33, D + {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 34, F + {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 35, G + {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 36, H + {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 37, J + {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 38, K + {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 39, L + {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 40, ; + {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 41, ' + {0, CS13_SW12, CS14_SW12, CS15_SW12}, // 42, Enter + {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 43, PGDN + + {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 44, LShift + {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 45, Z + {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 46, X + {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 47, C + {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 48, V + {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 49, B + {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 50, N + {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 51, M + {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 52, , + {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 53, . + {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 54, / + {0, CS16_SW8, CS17_SW8, CS18_SW8}, // 55, RShift + {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 56, Up + {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 57, END + + {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 58, LCtrl + {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 59, LWin + {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 60, LAlt + {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 61, LED71 + {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 62, LED72 + {0, CS16_SW4, CS17_SW4, CS18_SW4}, // 63, Space + {0, CS16_SW7, CS17_SW7, CS18_SW7}, // 64, LED73 + {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 65, LED74 + {0, CS16_SW5, CS17_SW5, CS18_SW5}, // 66, RAlt + {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 67, FN + + {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 68, Left + {0, CS16_SW11, CS17_SW11, CS18_SW11}, // 69, Down + {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 70, Right + +}; + +#endif + +#ifdef EEPROM_ENABLE + +#include "spi_master.h" + +void spi_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + setPinInput(SPI_SCK_PIN); + setPinInput(SPI_MOSI_PIN); + setPinInput(SPI_MISO_PIN); + + chThdSleepMilliseconds(10); + + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST | PAL_WB32_CURRENT_LEVEL3); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + } +} + +#endif + +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(30, 255, 255, 255); // assuming caps lock is at led #30 + } + return false; +} diff --git a/keyboards/projectd/65/projectd_65_ansi/readme.md b/keyboards/projectd/65/projectd_65_ansi/readme.md new file mode 100644 index 00000000000..56e7e4d5591 --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/readme.md @@ -0,0 +1,23 @@ +# ProjectD 65% ANSI + +A 65% keyboard, Equipped with the WestBerry Q95 microcontroller. + +* Keyboard Maintainer: [GSKY](https://github.com/gksygithub) +* Hardware Supported: projectd_65_ansi +* Hardware Availability: [GSKY](https://github.com/gksygithub/projectd_65_ansi) + +Make example for this keyboard (after setting up your build environment): + + make projectd/65/projectd_65_ansi:default + +Flashing example for this keyboard: + + make projectd/65/projectd_65_ansi:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Hold the Reset switch mounted under the space key after the USB cable is connected +* Hold the Esc key while connecting the USB cable (also erases persistent settings) +* Fn+Alt+Tab will reset the board to 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/projectd/65/projectd_65_ansi/rules.mk b/keyboards/projectd/65/projectd_65_ansi/rules.mk new file mode 100644 index 00000000000..24d5f6f52ec --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/projectkb/alice/rev1/config.h b/keyboards/projectkb/alice/rev1/config.h index bcb9ffbb09d..2692965fbfd 100644 --- a/keyboards/projectkb/alice/rev1/config.h +++ b/keyboards/projectkb/alice/rev1/config.h @@ -26,17 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/projectkb/alice/rev1/info.json b/keyboards/projectkb/alice/rev1/info.json index 4ed9926907e..1157fb13ae2 100644 --- a/keyboards/projectkb/alice/rev1/info.json +++ b/keyboards/projectkb/alice/rev1/info.json @@ -1,4 +1,19 @@ { + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/projectkb/alice/rev1/rules.mk b/keyboards/projectkb/alice/rev1/rules.mk index ab88066b0aa..f689205b388 100644 --- a/keyboards/projectkb/alice/rev1/rules.mk +++ b/keyboards/projectkb/alice/rev1/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/projectkb/alice/rev2/config.h b/keyboards/projectkb/alice/rev2/config.h index 95f845c9313..8bb661f90bd 100644 --- a/keyboards/projectkb/alice/rev2/config.h +++ b/keyboards/projectkb/alice/rev2/config.h @@ -26,17 +26,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/projectkb/alice/rev2/info.json b/keyboards/projectkb/alice/rev2/info.json index 57113b1e3cd..be97136ccd2 100644 --- a/keyboards/projectkb/alice/rev2/info.json +++ b/keyboards/projectkb/alice/rev2/info.json @@ -1,4 +1,19 @@ { + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/projectkb/alice/rev2/rules.mk b/keyboards/projectkb/alice/rev2/rules.mk index ab88066b0aa..f689205b388 100644 --- a/keyboards/projectkb/alice/rev2/rules.mk +++ b/keyboards/projectkb/alice/rev2/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/projectkb/signature65/rules.mk b/keyboards/projectkb/signature65/rules.mk index 707adf67c4e..5fb302d01f1 100644 --- a/keyboards/projectkb/signature65/rules.mk +++ b/keyboards/projectkb/signature65/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/projectkb/signature87/rules.mk b/keyboards/projectkb/signature87/rules.mk index 06b7b460e38..a09b9d3bdf2 100644 --- a/keyboards/projectkb/signature87/rules.mk +++ b/keyboards/projectkb/signature87/rules.mk @@ -9,5 +9,3 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/prototypist/oceanographer/rules.mk b/keyboards/prototypist/oceanographer/rules.mk index 07ce0fe6c51..e18a6cecee5 100644 --- a/keyboards/prototypist/oceanographer/rules.mk +++ b/keyboards/prototypist/oceanographer/rules.mk @@ -1,7 +1,5 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 AUDIO_ENABLE = yes LTO_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = WS2812 ENCODER_ENABLE = yes diff --git a/keyboards/prototypist/pt60/info.json b/keyboards/prototypist/pt60/info.json index f57d28aa842..8018350e6f5 100644 --- a/keyboards/prototypist/pt60/info.json +++ b/keyboards/prototypist/pt60/info.json @@ -42,7 +42,8 @@ {"matrix": [0, 12], "label": "+", "x": 12, "y": 0}, {"matrix": [0, 13], "label": "Back", "x": 13, "y": 0}, {"matrix": [2, 13], "label": "Delete", "x": 14, "y": 0}, - {"matrix": [1, 0], "label": "Tab", "w": 1.5, "x": 0, "y": 1}, + + {"matrix": [1, 0], "label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "label": "Q", "x": 1.5, "y": 1}, {"matrix": [1, 2], "label": "W", "x": 2.5, "y": 1}, {"matrix": [1, 3], "label": "E", "x": 3.5, "y": 1}, @@ -55,8 +56,8 @@ {"matrix": [1, 10], "label": "P", "x": 10.5, "y": 1}, {"matrix": [1, 11], "label": "{", "x": 11.5, "y": 1}, {"matrix": [1, 12], "label": "}", "x": 12.5, "y": 1}, - {"matrix": [1, 13], "h": 2, "label": "Enter", "w": 1.25, "x": 13.75, "y": 1}, - {"matrix": [2, 0], "label": "Caps Lock", "w": 1.75, "x": 0, "y": 2}, + + {"matrix": [2, 0], "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "label": "A", "x": 1.75, "y": 2}, {"matrix": [2, 2], "label": "S", "x": 2.75, "y": 2}, {"matrix": [2, 3], "label": "D", "x": 3.75, "y": 2}, @@ -69,8 +70,9 @@ {"matrix": [2, 10], "label": ":", "x": 10.75, "y": 2}, {"matrix": [2, 11], "label": "@", "x": 11.75, "y": 2}, {"matrix": [2, 12], "label": "~", "x": 12.75, "y": 2}, + {"matrix": [1, 13], "label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "label": "Shift", "w": 1.25, "x": 0, "y": 3}, + {"matrix": [3, 0], "label": "Shift", "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "label": "|", "x": 1.25, "y": 3}, {"matrix": [3, 2], "label": "Z", "x": 2.25, "y": 3}, {"matrix": [3, 3], "label": "X", "x": 3.25, "y": 3}, @@ -82,16 +84,17 @@ {"matrix": [3, 9], "label": "<", "x": 9.25, "y": 3}, {"matrix": [3, 10], "label": ">", "x": 10.25, "y": 3}, {"matrix": [3, 11], "label": "?", "x": 11.25, "y": 3}, - {"matrix": [3, 12], "label": "Shift", "w": 1.75, "x": 12.25, "y": 3}, + {"matrix": [3, 12], "label": "Shift", "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "label": "Fn", "x": 14, "y": 3}, - {"matrix": [4, 0], "label": "Ctrl", "w": 1.25, "x": 0, "y": 4}, - {"matrix": [4, 1], "label": "Win", "w": 1.25, "x": 1.25, "y": 4}, - {"matrix": [4, 2], "label": "Alt", "w": 1.25, "x": 2.5, "y": 4}, - {"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4}, - {"matrix": [4, 10], "label": "AltGr", "w": 1.25, "x": 10, "y": 4}, - {"matrix": [4, 11], "label": "Win", "w": 1.25, "x": 11.25, "y": 4}, - {"matrix": [4, 12], "label": "Fn", "w": 1.25, "x": 12.5, "y": 4}, - {"matrix": [4, 13], "label": "Ctrl", "w": 1.25, "x": 13.75, "y": 4} + + {"matrix": [4, 0], "label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "label": "Win", "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "label": "AltGr", "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "label": "Win", "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "label": "Fn", "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25} ] }, "LAYOUT_60_iso": { @@ -109,9 +112,9 @@ {"matrix": [0, 10], "label": ")", "x": 10, "y": 0}, {"matrix": [0, 11], "label": "_", "x": 11, "y": 0}, {"matrix": [0, 12], "label": "+", "x": 12, "y": 0}, - {"matrix": [0, 13], "label": "Back", "w": 2, "x": 13, "y": 0}, + {"matrix": [0, 13], "label": "Back", "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "label": "Tab", "w": 1.5, "x": 0, "y": 1}, + {"matrix": [1, 0], "label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "label": "Q", "x": 1.5, "y": 1}, {"matrix": [1, 2], "label": "W", "x": 2.5, "y": 1}, {"matrix": [1, 3], "label": "E", "x": 3.5, "y": 1}, @@ -124,8 +127,8 @@ {"matrix": [1, 10], "label": "P", "x": 10.5, "y": 1}, {"matrix": [1, 11], "label": "{", "x": 11.5, "y": 1}, {"matrix": [1, 12], "label": "}", "x": 12.5, "y": 1}, - {"matrix": [1, 13], "label": "Enter", "h": 2, "w": 1.25, "x": 13.75, "y": 1}, - {"matrix": [2, 0], "label": "Caps Lock", "w": 1.75, "x": 0, "y": 2}, + + {"matrix": [2, 0], "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "label": "A", "x": 1.75, "y": 2}, {"matrix": [2, 2], "label": "S", "x": 2.75, "y": 2}, {"matrix": [2, 3], "label": "D", "x": 3.75, "y": 2}, @@ -138,8 +141,9 @@ {"matrix": [2, 10], "label": ":", "x": 10.75, "y": 2}, {"matrix": [2, 11], "label": "@", "x": 11.75, "y": 2}, {"matrix": [2, 12], "label": "~", "x": 12.75, "y": 2}, + {"matrix": [1, 13], "label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "label": "Shift", "w": 1.25, "x": 0, "y": 3}, + {"matrix": [3, 0], "label": "Shift", "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "label": "|", "x": 1.25, "y": 3}, {"matrix": [3, 2], "label": "Z", "x": 2.25, "y": 3}, {"matrix": [3, 3], "label": "X", "x": 3.25, "y": 3}, @@ -151,16 +155,16 @@ {"matrix": [3, 9], "label": "<", "x": 9.25, "y": 3}, {"matrix": [3, 10], "label": ">", "x": 10.25, "y": 3}, {"matrix": [3, 11], "label": "?", "x": 11.25, "y": 3}, - {"matrix": [3, 12], "label": "Shift", "w": 2.75, "x": 12.25, "y": 3}, + {"matrix": [3, 12], "label": "Shift", "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "label": "Ctrl", "w": 1.25, "x": 0, "y": 4}, - {"matrix": [4, 1], "label": "Win", "w": 1.25, "x": 1.25, "y": 4}, - {"matrix": [4, 2], "label": "Alt", "w": 1.25, "x": 2.5, "y": 4}, - {"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4}, - {"matrix": [4, 10], "label": "AltGr", "w": 1.25, "x": 10, "y": 4}, - {"matrix": [4, 11], "label": "Win", "w": 1.25, "x": 11.25, "y": 4}, - {"matrix": [4, 12], "label": "Fn", "w": 1.25, "x": 12.5, "y": 4}, - {"matrix": [4, 13], "label": "Ctrl", "w": 1.25, "x": 13.75, "y": 4} + {"matrix": [4, 0], "label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "label": "Win", "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "label": "AltGr", "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "label": "Win", "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "label": "Fn", "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25} ] }, "LAYOUT_60_ansi": { @@ -178,9 +182,9 @@ {"matrix": [0, 10], "label": ")", "x": 10, "y": 0}, {"matrix": [0, 11], "label": "_", "x": 11, "y": 0}, {"matrix": [0, 12], "label": "+", "x": 12, "y": 0}, - {"matrix": [0, 13], "label": "Back", "w": 2, "x": 13, "y": 0}, + {"matrix": [0, 13], "label": "Back", "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "label": "Tab", "w": 1.5, "x": 0, "y": 1}, + {"matrix": [1, 0], "label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "label": "Q", "x": 1.5, "y": 1}, {"matrix": [1, 2], "label": "W", "x": 2.5, "y": 1}, {"matrix": [1, 3], "label": "E", "x": 3.5, "y": 1}, @@ -193,8 +197,9 @@ {"matrix": [1, 10], "label": "P", "x": 10.5, "y": 1}, {"matrix": [1, 11], "label": "{", "x": 11.5, "y": 1}, {"matrix": [1, 12], "label": "}", "x": 12.5, "y": 1}, - {"matrix": [1, 13], "label": "|", "w": 1.5, "x": 13.5, "y": 1}, - {"matrix": [2, 0], "label": "Caps Lock", "w": 1.75, "x": 0, "y": 2}, + {"matrix": [1, 13], "label": "|", "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "label": "A", "x": 1.75, "y": 2}, {"matrix": [2, 2], "label": "S", "x": 2.75, "y": 2}, {"matrix": [2, 3], "label": "D", "x": 3.75, "y": 2}, @@ -206,10 +211,9 @@ {"matrix": [2, 9], "label": "L", "x": 9.75, "y": 2}, {"matrix": [2, 10], "label": ":", "x": 10.75, "y": 2}, {"matrix": [2, 11], "label": "'", "x": 11.75, "y": 2}, - {"matrix": [2, 12], "label": "Enter", "w": 2.25, "x": 12.75, "y": 2}, - - {"matrix": [3, 0], "label": "Shift", "w": 2.25, "x": 0, "y": 3}, + {"matrix": [2, 12], "label": "Enter", "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "label": "Shift", "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "label": "Z", "x": 2.25, "y": 3}, {"matrix": [3, 3], "label": "X", "x": 3.25, "y": 3}, {"matrix": [3, 4], "label": "C", "x": 4.25, "y": 3}, @@ -220,16 +224,16 @@ {"matrix": [3, 9], "label": "<", "x": 9.25, "y": 3}, {"matrix": [3, 10], "label": ">", "x": 10.25, "y": 3}, {"matrix": [3, 11], "label": "?", "x": 11.25, "y": 3}, - {"matrix": [3, 12], "label": "Shift", "w": 2.75, "x": 12.25, "y": 3}, + {"matrix": [3, 12], "label": "Shift", "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "label": "Ctrl", "w": 1.25, "x": 0, "y": 4}, - {"matrix": [4, 1], "label": "Win", "w": 1.25, "x": 1.25, "y": 4}, - {"matrix": [4, 2], "label": "Alt", "w": 1.25, "x": 2.5, "y": 4}, - {"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4}, - {"matrix": [4, 10], "label": "AltGr", "w": 1.25, "x": 10, "y": 4}, - {"matrix": [4, 11], "label": "Win", "w": 1.25, "x": 11.25, "y": 4}, - {"matrix": [4, 12], "label": "Fn", "w": 1.25, "x": 12.5, "y": 4}, - {"matrix": [4, 13], "label": "Ctrl", "w": 1.25, "x": 13.75, "y": 4} + {"matrix": [4, 0], "label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "label": "Win", "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "label": "AltGr", "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "label": "Win", "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "label": "Fn", "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25} ] } } diff --git a/keyboards/prototypist/pt60/keymaps/default/keymap.c b/keyboards/prototypist/pt60/keymaps/default/keymap.c index 24616964751..9a2688e4c1b 100644 --- a/keyboards/prototypist/pt60/keymaps/default/keymap.c +++ b/keyboards/prototypist/pt60/keymaps/default/keymap.c @@ -6,33 +6,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_iso( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, - KC_LGUI, 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_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_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_LGUI, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL ), [1] = LAYOUT_60_iso( EE_CLR, 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_UP, _______, _______, KC_MUTE, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_60_iso( _______, 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_MPRV, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(3) ), [3] = LAYOUT_60_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; +}; diff --git a/keyboards/prototypist/pt60/keymaps/default_ansi/keymap.c b/keyboards/prototypist/pt60/keymaps/default_ansi/keymap.c index a25cd2fae90..b1e8987b650 100644 --- a/keyboards/prototypist/pt60/keymaps/default_ansi/keymap.c +++ b/keyboards/prototypist/pt60/keymaps/default_ansi/keymap.c @@ -7,32 +7,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_ansi( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_LGUI, 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_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL ), [1] = LAYOUT_60_ansi( EE_CLR, 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_UP, _______, _______, KC_MUTE, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_60_ansi( _______, 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_MPRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(3) ), [3] = LAYOUT_60_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/prototypist/pt60/keymaps/via/keymap.c b/keyboards/prototypist/pt60/keymaps/via/keymap.c index d710399a811..53e82bcd45f 100644 --- a/keyboards/prototypist/pt60/keymaps/via/keymap.c +++ b/keyboards/prototypist/pt60/keymaps/via/keymap.c @@ -5,33 +5,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENT, - KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_LGUI, 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_RALT, KC_RGUI, KC_APP, KC_RCTL ), [1] = LAYOUT_all( EE_CLR, 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_UP, _______, _______, KC_MUTE, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = 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_MPRV, KC_MNXT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, 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_MPRV, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(3) ), [3] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/prototypist/pt60/matrix_diagram.md b/keyboards/prototypist/pt60/matrix_diagram.md new file mode 100644 index 00000000000..8401f90158f --- /dev/null +++ b/keyboards/prototypist/pt60/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for Proto[Typist] PT-60 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐1D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬───────────────────────────────────────┬───┬─────┐ +│40 │41 │46 │4C │4D │ Tsangan/WKL with 10u Spacebar +└─────┴───┴───────────────────────────────────────┴───┴─────┘ +``` diff --git a/keyboards/prototypist/pt80/info.json b/keyboards/prototypist/pt80/info.json index a9c47072a32..cb58643e3f5 100644 --- a/keyboards/prototypist/pt80/info.json +++ b/keyboards/prototypist/pt80/info.json @@ -44,6 +44,7 @@ {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + {"matrix": [1, 0], "label": "\u00ac", "x": 0, "y": 1.25}, {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, {"matrix": [1, 2], "label": "\"", "x": 2, "y": 1.25}, @@ -62,7 +63,8 @@ {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "label": "Tab", "w": 1.5, "x": 0, "y": 2.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, @@ -75,11 +77,11 @@ {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "h": 2, "label": "Enter", "w": 1.25, "x": 13.75, "y": 2.25}, {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "label": "Caps Lock", "w": 1.75, "x": 0, "y": 3.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, @@ -92,7 +94,9 @@ {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, {"matrix": [3, 11], "label": "@", "x": 11.75, "y": 3.25}, {"matrix": [3, 12], "label": "~", "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "label": "Shift", "w": 1.25, "x": 0, "y": 4.25}, + {"matrix": [2, 13], "label": "Enter", "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4.25, "w": 1.25}, {"matrix": [4, 1], "label": "|", "x": 1.25, "y": 4.25}, {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, @@ -104,17 +108,18 @@ {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "label": "Shift", "w": 1.75, "x": 12.25, "y": 4.25}, + {"matrix": [4, 12], "label": "Shift", "x": 12.25, "y": 4.25, "w": 1.75}, {"matrix": [4, 13], "label": "Fn", "x": 14, "y": 4.25}, {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "label": "Ctrl", "w": 1.25, "x": 0, "y": 5.25}, - {"matrix": [5, 1], "label": "Win", "w": 1.25, "x": 1.25, "y": 5.25}, - {"matrix": [5, 2], "label": "Alt", "w": 1.25, "x": 2.5, "y": 5.25}, - {"matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25}, - {"matrix": [5, 10], "label": "AltGr", "w": 1.25, "x": 10, "y": 5.25}, - {"matrix": [5, 11], "label": "Win", "w": 1.25, "x": 11.25, "y": 5.25}, - {"matrix": [5, 12], "label": "Menu", "w": 1.25, "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "label": "Ctrl", "w": 1.25, "x": 13.75, "y": 5.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "label": "AltGr", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} @@ -123,22 +128,22 @@ "LAYOUT_tkl_iso": { "layout": [ {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, - {"matrix": [0, 1], "label": "F1", "x": 2, "y": 0}, - {"matrix": [0, 2], "label": "F2", "x": 3, "y": 0}, - {"matrix": [0, 3], "label": "F3", "x": 4, "y": 0}, - {"matrix": [0, 4], "label": "F4", "x": 5, "y": 0}, - {"matrix": [0, 5], "label": "F5", "x": 6.5, "y": 0}, - {"matrix": [0, 6], "label": "F6", "x": 7.5, "y": 0}, - {"matrix": [0, 7], "label": "F7", "x": 8.5, "y": 0}, - {"matrix": [0, 8], "label": "F8", "x": 9.5, "y": 0}, - {"matrix": [0, 9], "label": "F9", "x": 11, "y": 0}, - {"matrix": [0, 10], "label": "F10", "x": 12, "y": 0}, - {"matrix": [0, 11], "label": "F11", "x": 13, "y": 0}, - {"matrix": [0, 12], "label": "F12", "x": 14, "y": 0}, - + {"matrix": [0, 2], "label": "F1", "x": 2, "y": 0}, + {"matrix": [0, 3], "label": "F2", "x": 3, "y": 0}, + {"matrix": [0, 4], "label": "F3", "x": 4, "y": 0}, + {"matrix": [0, 5], "label": "F4", "x": 5, "y": 0}, + {"matrix": [0, 6], "label": "F5", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F6", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F7", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F8", "x": 9.5, "y": 0}, + {"matrix": [0, 10], "label": "F9", "x": 11, "y": 0}, + {"matrix": [0, 11], "label": "F10", "x": 12, "y": 0}, + {"matrix": [0, 12], "label": "F11", "x": 13, "y": 0}, + {"matrix": [0, 13], "label": "F12", "x": 14, "y": 0}, {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + {"matrix": [1, 0], "label": "\u00ac", "x": 0, "y": 1.25}, {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, {"matrix": [1, 2], "label": "\"", "x": 2, "y": 1.25}, @@ -152,12 +157,12 @@ {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, - {"matrix": [1, 13], "label": "Backspace", "w": 2, "x": 13, "y": 1.25}, - + {"matrix": [1, 13], "label": "Backspace", "x": 13, "y": 1.25, "w": 2}, {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "label": "Tab", "w": 1.5, "x": 0, "y": 2.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, @@ -170,11 +175,11 @@ {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "h": 2, "label": "Enter", "w": 1.25, "x": 13.75, "y": 2.25}, {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "label": "Caps Lock", "w": 1.75, "x": 0, "y": 3.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, @@ -187,7 +192,9 @@ {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, {"matrix": [3, 11], "label": "@", "x": 11.75, "y": 3.25}, {"matrix": [3, 12], "label": "~", "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "label": "Shift", "w": 1.25, "x": 0, "y": 4.25}, + {"matrix": [2, 13], "label": "Enter", "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4.25, "w": 1.25}, {"matrix": [4, 1], "label": "|", "x": 1.25, "y": 4.25}, {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, @@ -199,17 +206,17 @@ {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "label": "Shift", "w": 2.75, "x": 12.25, "y": 4.25}, - + {"matrix": [4, 12], "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75}, {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "label": "Ctrl", "w": 1.25, "x": 0, "y": 5.25}, - {"matrix": [5, 1], "label": "Win", "w": 1.25, "x": 1.25, "y": 5.25}, - {"matrix": [5, 2], "label": "Alt", "w": 1.25, "x": 2.5, "y": 5.25}, - {"matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25}, - {"matrix": [5, 10], "label": "AltGr", "w": 1.25, "x": 10, "y": 5.25}, - {"matrix": [5, 11], "label": "Win", "w": 1.25, "x": 11.25, "y": 5.25}, - {"matrix": [5, 12], "label": "Menu", "w": 1.25, "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "label": "Ctrl", "w": 1.25, "x": 13.75, "y": 5.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "label": "AltGr", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} @@ -218,22 +225,22 @@ "LAYOUT_tkl_ansi": { "layout": [ {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, - {"matrix": [0, 1], "label": "F1", "x": 2, "y": 0}, - {"matrix": [0, 2], "label": "F2", "x": 3, "y": 0}, - {"matrix": [0, 3], "label": "F3", "x": 4, "y": 0}, - {"matrix": [0, 4], "label": "F4", "x": 5, "y": 0}, - {"matrix": [0, 5], "label": "F5", "x": 6.5, "y": 0}, - {"matrix": [0, 6], "label": "F6", "x": 7.5, "y": 0}, - {"matrix": [0, 7], "label": "F7", "x": 8.5, "y": 0}, - {"matrix": [0, 8], "label": "F8", "x": 9.5, "y": 0}, - {"matrix": [0, 9], "label": "F9", "x": 11, "y": 0}, - {"matrix": [0, 10], "label": "F10", "x": 12, "y": 0}, - {"matrix": [0, 11], "label": "F11", "x": 13, "y": 0}, - {"matrix": [0, 12], "label": "F12", "x": 14, "y": 0}, - + {"matrix": [0, 2], "label": "F1", "x": 2, "y": 0}, + {"matrix": [0, 3], "label": "F2", "x": 3, "y": 0}, + {"matrix": [0, 4], "label": "F3", "x": 4, "y": 0}, + {"matrix": [0, 5], "label": "F4", "x": 5, "y": 0}, + {"matrix": [0, 6], "label": "F5", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F6", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F7", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F8", "x": 9.5, "y": 0}, + {"matrix": [0, 10], "label": "F9", "x": 11, "y": 0}, + {"matrix": [0, 11], "label": "F10", "x": 12, "y": 0}, + {"matrix": [0, 12], "label": "F11", "x": 13, "y": 0}, + {"matrix": [0, 13], "label": "F12", "x": 14, "y": 0}, {"matrix": [0, 14], "label": "PrtSc", "x": 15.25, "y": 0}, {"matrix": [0, 15], "label": "Scroll Lock", "x": 16.25, "y": 0}, {"matrix": [0, 16], "label": "Pause", "x": 17.25, "y": 0}, + {"matrix": [1, 0], "label": "\u00ac", "x": 0, "y": 1.25}, {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, {"matrix": [1, 2], "label": "\"", "x": 2, "y": 1.25}, @@ -247,12 +254,12 @@ {"matrix": [1, 10], "label": ")", "x": 10, "y": 1.25}, {"matrix": [1, 11], "label": "_", "x": 11, "y": 1.25}, {"matrix": [1, 12], "label": "+", "x": 12, "y": 1.25}, - {"matrix": [1, 13], "label": "Backspace", "w": 2, "x": 13, "y": 1.25}, - + {"matrix": [1, 13], "label": "Backspace", "x": 13, "y": 1.25, "w": 2}, {"matrix": [1, 14], "label": "Insert", "x": 15.25, "y": 1.25}, {"matrix": [1, 15], "label": "Home", "x": 16.25, "y": 1.25}, {"matrix": [1, 16], "label": "PgUp", "x": 17.25, "y": 1.25}, - {"matrix": [2, 0], "label": "Tab", "w": 1.5, "x": 0, "y": 2.25}, + + {"matrix": [2, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, {"matrix": [2, 1], "label": "Q", "x": 1.5, "y": 2.25}, {"matrix": [2, 2], "label": "W", "x": 2.5, "y": 2.25}, {"matrix": [2, 3], "label": "E", "x": 3.5, "y": 2.25}, @@ -265,11 +272,12 @@ {"matrix": [2, 10], "label": "P", "x": 10.5, "y": 2.25}, {"matrix": [2, 11], "label": "{", "x": 11.5, "y": 2.25}, {"matrix": [2, 12], "label": "}", "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "label": "|", "w": 1.5, "x": 13.5, "y": 2.25}, + {"matrix": [2, 13], "label": "|", "x": 13.5, "y": 2.25, "w": 1.5}, {"matrix": [2, 14], "label": "Delete", "x": 15.25, "y": 2.25}, {"matrix": [2, 15], "label": "End", "x": 16.25, "y": 2.25}, {"matrix": [2, 16], "label": "PgDn", "x": 17.25, "y": 2.25}, - {"matrix": [3, 0], "label": "Caps Lock", "w": 1.75, "x": 0, "y": 3.25}, + + {"matrix": [3, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, {"matrix": [3, 1], "label": "A", "x": 1.75, "y": 3.25}, {"matrix": [3, 2], "label": "S", "x": 2.75, "y": 3.25}, {"matrix": [3, 3], "label": "D", "x": 3.75, "y": 3.25}, @@ -281,9 +289,9 @@ {"matrix": [3, 9], "label": "L", "x": 9.75, "y": 3.25}, {"matrix": [3, 10], "label": ":", "x": 10.75, "y": 3.25}, {"matrix": [3, 11], "label": "@", "x": 11.75, "y": 3.25}, - {"matrix": [3, 12], "label": "Enter", "w": 2.25, "x": 12.75, "y": 3.25}, - {"matrix": [4, 0], "label": "Shift", "w": 2.25, "x": 0, "y": 4.25}, + {"matrix": [3, 12], "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4.25, "w": 2.25}, {"matrix": [4, 2], "label": "Z", "x": 2.25, "y": 4.25}, {"matrix": [4, 3], "label": "X", "x": 3.25, "y": 4.25}, {"matrix": [4, 4], "label": "C", "x": 4.25, "y": 4.25}, @@ -294,17 +302,17 @@ {"matrix": [4, 9], "label": "<", "x": 9.25, "y": 4.25}, {"matrix": [4, 10], "label": ">", "x": 10.25, "y": 4.25}, {"matrix": [4, 11], "label": "?", "x": 11.25, "y": 4.25}, - {"matrix": [4, 12], "label": "Shift", "w": 2.75, "x": 12.25, "y": 4.25}, - + {"matrix": [4, 12], "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75}, {"matrix": [4, 15], "label": "\u2191", "x": 16.25, "y": 4.25}, - {"matrix": [5, 0], "label": "Ctrl", "w": 1.25, "x": 0, "y": 5.25}, - {"matrix": [5, 1], "label": "Win", "w": 1.25, "x": 1.25, "y": 5.25}, - {"matrix": [5, 2], "label": "Alt", "w": 1.25, "x": 2.5, "y": 5.25}, - {"matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25}, - {"matrix": [5, 10], "label": "AltGr", "w": 1.25, "x": 10, "y": 5.25}, - {"matrix": [5, 11], "label": "Win", "w": 1.25, "x": 11.25, "y": 5.25}, - {"matrix": [5, 12], "label": "Menu", "w": 1.25, "x": 12.5, "y": 5.25}, - {"matrix": [5, 13], "label": "Ctrl", "w": 1.25, "x": 13.75, "y": 5.25}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "label": "AltGr", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25}, {"matrix": [5, 14], "label": "\u2190", "x": 15.25, "y": 5.25}, {"matrix": [5, 15], "label": "\u2193", "x": 16.25, "y": 5.25}, {"matrix": [5, 16], "label": "\u2192", "x": 17.25, "y": 5.25} diff --git a/keyboards/prototypist/pt80/keymaps/default/keymap.c b/keyboards/prototypist/pt80/keymaps/default/keymap.c index 5c5776b271d..5905a8d05fd 100644 --- a/keyboards/prototypist/pt80/keymaps/default/keymap.c +++ b/keyboards/prototypist/pt80/keymaps/default/keymap.c @@ -5,43 +5,43 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_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_PSCR, KC_SCRL, KC_PAUS, + 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_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_ENT, 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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_tkl_iso( - QK_BOOT, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, _______, KC_MPLY, _______, + QK_BOOT, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, _______, KC_MPLY, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), [2] = LAYOUT_tkl_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ ), [3] = LAYOUT_tkl_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - + }; diff --git a/keyboards/prototypist/pt80/keymaps/default_ansi/keymap.c b/keyboards/prototypist/pt80/keymaps/default_ansi/keymap.c index d4d974464ae..0f851bcd5c6 100644 --- a/keyboards/prototypist/pt80/keymaps/default_ansi/keymap.c +++ b/keyboards/prototypist/pt80/keymaps/default_ansi/keymap.c @@ -5,43 +5,43 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_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_SCRL, KC_PAUS, + 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_tkl_ansi( - QK_BOOT, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, _______, KC_MPLY, _______, + QK_BOOT, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, _______, KC_MPLY, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), [2] = LAYOUT_tkl_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ ), [3] = LAYOUT_tkl_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - + }; diff --git a/keyboards/prototypist/pt80/keymaps/via/keymap.c b/keyboards/prototypist/pt80/keymaps/via/keymap.c index 0529547ba71..c3fe205bc07 100644 --- a/keyboards/prototypist/pt80/keymaps/via/keymap.c +++ b/keyboards/prototypist/pt80/keymaps/via/keymap.c @@ -5,43 +5,43 @@ 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_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_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_ENT, 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_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_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + 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_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, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - QK_BOOT, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, KC_MUTE, _______, KC_MPLY, _______, + QK_BOOT, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, KC_MUTE, _______, KC_MPLY, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ ), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - + }; diff --git a/keyboards/prototypist/pt80/matrix_diagram.md b/keyboards/prototypist/pt80/matrix_diagram.md new file mode 100644 index 00000000000..e4fa03655eb --- /dev/null +++ b/keyboards/prototypist/pt80/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for Proto[Typist] PT-80 + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ +│00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ Standard +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ +│00 ││01 │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 │3D ││1E │1F │1G │ │1D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D ││2E │2F │2G │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐2D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │ │3C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│50 │51 │52 │56 │5A │5B │5C │5D ││5E │5F │5G │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│40 │ 2.25u LShift 2.75u RShift │4C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │56 │5B │5C │5D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬───────────────────────────────────────┬───┬─────┐ +│50 │51 │56 │5C │5D │ Tsangan/WKL with 10u Spacebar +└─────┴───┴───────────────────────────────────────┴───┴─────┘ +``` diff --git a/keyboards/protozoa/cassini/rules.mk b/keyboards/protozoa/cassini/rules.mk index 7000bb65710..7c0709f41e6 100644 --- a/keyboards/protozoa/cassini/rules.mk +++ b/keyboards/protozoa/cassini/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/protozoa/p01/config.h b/keyboards/protozoa/p01/config.h index 46f96e7934c..fd58bda9123 100644 --- a/keyboards/protozoa/p01/config.h +++ b/keyboards/protozoa/p01/config.h @@ -23,18 +23,3 @@ along with this program. If not, see . #define WS2812_PWM_PAL_MODE 2 #define WS2812_DMA_STREAM STM32_DMA1_STREAM5 #define WS2812_DMA_CHANNEL 5 - -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/protozoa/p01/info.json b/keyboards/protozoa/p01/info.json index 94089a3b78d..f414d6d71ad 100644 --- a/keyboards/protozoa/p01/info.json +++ b/keyboards/protozoa/p01/info.json @@ -8,6 +8,23 @@ "pid": "0x5031", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A9", "driver": "pwm" diff --git a/keyboards/protozoa/p01/rules.mk b/keyboards/protozoa/p01/rules.mk index a9e8e0f92e7..adb0000e016 100644 --- a/keyboards/protozoa/p01/rules.mk +++ b/keyboards/protozoa/p01/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/pteron36/config.h b/keyboards/pteron36/config.h index d661f794cc4..1148463200f 100644 --- a/keyboards/pteron36/config.h +++ b/keyboards/pteron36/config.h @@ -40,6 +40,3 @@ along with this program. If not, see . // for via #define DYNAMIC_KEYMAP_LAYER_COUNT 7 - -//RGB Underglow -#define RGBLED_NUM 10 diff --git a/keyboards/pteron36/info.json b/keyboards/pteron36/info.json index bb5a8ee1eb4..418ca0f6b8a 100644 --- a/keyboards/pteron36/info.json +++ b/keyboards/pteron36/info.json @@ -28,6 +28,9 @@ } } }, + "rgblight": { + "led_count": 10 + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/pteropus/info.json b/keyboards/pteropus/info.json index b1e0556b61d..76cbe67eee5 100644 --- a/keyboards/pteropus/info.json +++ b/keyboards/pteropus/info.json @@ -37,6 +37,7 @@ {"matrix": [0, 7], "x": 10, "y": 0}, {"matrix": [0, 8], "x": 11, "y": 0.125}, {"matrix": [0, 9], "x": 12, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, {"matrix": [1, 1], "x": 1, "y": 1.125}, {"matrix": [1, 2], "x": 2, "y": 1}, @@ -47,16 +48,18 @@ {"matrix": [1, 7], "x": 10, "y": 1}, {"matrix": [1, 8], "x": 11, "y": 1.125}, {"matrix": [1, 9], "x": 12, "y": 1.25}, - {"matrix": [2, 0], "x": 0, "y": 1.25}, - {"matrix": [2, 1], "x": 1, "y": 1.125}, - {"matrix": [2, 2], "x": 2, "y": 1}, - {"matrix": [2, 3], "x": 3, "y": 1.125}, - {"matrix": [2, 4], "x": 4, "y": 1.25}, - {"matrix": [2, 5], "x": 8, "y": 1.25}, - {"matrix": [2, 6], "x": 9, "y": 1.125}, - {"matrix": [2, 7], "x": 10, "y": 1}, - {"matrix": [2, 8], "x": 11, "y": 1.125}, - {"matrix": [2, 9], "x": 12, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.125}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.125}, + {"matrix": [2, 4], "x": 4, "y": 2.25}, + {"matrix": [2, 5], "x": 8, "y": 2.25}, + {"matrix": [2, 6], "x": 9, "y": 2.125}, + {"matrix": [2, 7], "x": 10, "y": 2}, + {"matrix": [2, 8], "x": 11, "y": 2.125}, + {"matrix": [2, 9], "x": 12, "y": 2.25}, + {"matrix": [3, 2], "x": 3, "y": 3.25}, {"matrix": [3, 3], "x": 4, "y": 3.5}, {"matrix": [3, 4], "x": 5, "y": 3.75}, diff --git a/keyboards/pw88/config.h b/keyboards/pw88/config.h new file mode 100644 index 00000000000..f655b925272 --- /dev/null +++ b/keyboards/pw88/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2023 Matthijs Muller + +This 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 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral diff --git a/keyboards/pw88/info.json b/keyboards/pw88/info.json new file mode 100644 index 00000000000..bd24071e70d --- /dev/null +++ b/keyboards/pw88/info.json @@ -0,0 +1,144 @@ +{ + "keyboard_name": "PW88", + "manufacturer": "Smollchungus", + "url": "https://www.github.com/smollchungus", + "maintainer": "Smollchungus", + "usb": { + "vid": "0x5363", + "pid": "0x8888", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgblight": true, + "nkro": true + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "rgblight": { + "led_count": 34, + "layers": { + "enabled": true + }, + "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 + } + }, + "matrix_pins": { + "cols": ["GP4", "GP3", "GP2", "GP26", "GP25", "GP24", "GP23", "GP20", "GP19", "GP18", "GP29", "GP28", "GP27", "GP14", "GP1", "GP5", "GP6"], + "rows": ["GP8", "GP11", "GP10", "GP9", "GP13", "GP12"] + }, + "diode_direction": "COL2ROW", + "processor": "RP2040", + "bootloader": "rp2040", + "layouts": { + "LAYOUT": { + "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.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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 }, + { "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "matrix": [1, 13], "x": 13, "y": 1.25 }, + { "matrix": [3, 14], "x": 14, "y": 1.25 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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, 7], "x": 7.5, "y": 2.25 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.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 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 13], "x": 14, "y": 4.25 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, + { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, + { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, + { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "matrix": [5, 16], "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/pw88/keymaps/default/keymap.c b/keyboards/pw88/keymaps/default/keymap.c new file mode 100644 index 00000000000..9e5ffd3f243 --- /dev/null +++ b/keyboards/pw88/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 Matthijs Muller + + * This 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_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_NUBS, 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_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_RGUI, KC_RCTL, 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, RGB_TOG, RGB_MOD, RGB_RMOD, + KC_TRNS, KC_TRNS, KC_TRNS, 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_SAI, RGB_VAI, + KC_TRNS, KC_TRNS, 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_HUD, RGB_SAD, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, _______, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, _______, _______, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/pw88/keymaps/via/keymap.c b/keyboards/pw88/keymaps/via/keymap.c new file mode 100644 index 00000000000..9e5ffd3f243 --- /dev/null +++ b/keyboards/pw88/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 Matthijs Muller + + * This 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_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_NUBS, 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_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_RGUI, KC_RCTL, 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, RGB_TOG, RGB_MOD, RGB_RMOD, + KC_TRNS, KC_TRNS, KC_TRNS, 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_SAI, RGB_VAI, + KC_TRNS, KC_TRNS, 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_HUD, RGB_SAD, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, _______, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, _______, _______, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/pw88/keymaps/via/rules.mk b/keyboards/pw88/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/pw88/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/pw88/readme.md b/keyboards/pw88/readme.md new file mode 100644 index 00000000000..facee8bac81 --- /dev/null +++ b/keyboards/pw88/readme.md @@ -0,0 +1,26 @@ +# PW88 + +![%PW88%](https://i.imgur.com/0uN5u2gh.jpg) + + +* Keyboard Maintainer: [Matthijs Muller](https://github.com/smollchungus) +* Hardware Supported: *Project W PCB* +* Hardware Availability: *Trailblazer Keyboards* + +Make example for this keyboard (after setting up your build environment): + + make pw88:default + +Flashing example for this keyboard: + + make pw88: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/pw88/rules.mk b/keyboards/pw88/rules.mk new file mode 100644 index 00000000000..c628fc7d0fe --- /dev/null +++ b/keyboards/pw88/rules.mk @@ -0,0 +1 @@ +# This file intentionally blank diff --git a/keyboards/qpockets/space_space/rev2/config.h b/keyboards/qpockets/space_space/rev2/config.h index 6603c0e1539..02bd670f713 100644 --- a/keyboards/qpockets/space_space/rev2/config.h +++ b/keyboards/qpockets/space_space/rev2/config.h @@ -18,7 +18,4 @@ #define LOCKING_SUPPORT_ENABLE -#define RGBLED_NUM 4 - -#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGBLIGHT_DEFAULT_HUE 130 diff --git a/keyboards/qpockets/space_space/rev2/info.json b/keyboards/qpockets/space_space/rev2/info.json index 635c66db992..45cdb5870ac 100644 --- a/keyboards/qpockets/space_space/rev2/info.json +++ b/keyboards/qpockets/space_space/rev2/info.json @@ -19,6 +19,9 @@ {"pin_a": "C7", "pin_b": "F7", "resolution": 3} ] }, + "rgblight": { + "led_count": 4 + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/quad_h/lb75/config.h b/keyboards/quad_h/lb75/config.h index 9457b207667..50001e978cc 100644 --- a/keyboards/quad_h/lb75/config.h +++ b/keyboards/quad_h/lb75/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/quad_h/lb75/info.json b/keyboards/quad_h/lb75/info.json index 786439186f4..99453aae4ca 100644 --- a/keyboards/quad_h/lb75/info.json +++ b/keyboards/quad_h/lb75/info.json @@ -21,7 +21,23 @@ "pin": "B0" }, "rgblight": { - "max_brightness": 220 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "max_brightness": 220, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/quarkeys/z40/config.h b/keyboards/quarkeys/z40/config.h index ece3e611361..84b3e5c03e5 100644 --- a/keyboards/quarkeys/z40/config.h +++ b/keyboards/quarkeys/z40/config.h @@ -20,9 +20,6 @@ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_DISABLE_WHEN_USB_SUSPENDED // Turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 130 // Limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -#define RGB_MATRIX_SAT_STEP 8 -#define RGB_MATRIX_VAL_STEP 8 -#define RGB_MATRIX_SPD_STEP 10 // RGB_MATRIX effects #define ENABLE_RGB_MATRIX_ALPHAS_MODS //Enables RGB_MATRIX_ALPHAS_MODS @@ -46,23 +43,7 @@ #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out #endif -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 47 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLIGHT_SLEEP -#endif \ No newline at end of file diff --git a/keyboards/quarkeys/z40/info.json b/keyboards/quarkeys/z40/info.json index cf4729fdd26..a045a9831a4 100644 --- a/keyboards/quarkeys/z40/info.json +++ b/keyboards/quarkeys/z40/info.json @@ -1,31 +1,54 @@ { "keyboard_name": "Z40 Ortho", - "manufacturer": "Quarkeys Stuidio", - "url": "www.quarkeys.com", - "maintainer": "TommyZ", - "usb": { - "vid": "0x8490", - "pid": "0x2801", - "device_version": "0.0.1" - }, + "manufacturer": "Quarkeys Studio", + "url": "https://www.quarkeys.com/", + "maintainer": "tommyamoszhao", + "usb": { + "vid": "0x8490", + "pid": "0x2801", + "device_version": "0.0.1" + }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "rgblight": { - "max_brightness": 130 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 47, + "max_brightness": 130, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true + } }, "matrix_pins": { - "cols": ["F4", "F5", "F6", "F7", "B6", "B5", "B4", "D7", "D6", "D0", "B1", "B0"], - "rows": ["E6", "B3", "C7", "C6"] + "cols": ["F4", "F5", "F6", "F7", "B6", "B5", "B4", "D7", "D6", "D0", "B1", "B0"], + "rows": ["E6", "B3", "C7", "C6"] }, "ws2812": { - "pin": "F1" + "pin": "F1" }, "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_planck_mit" + }, + "community_layouts": [ + "planck_mit" + ], "layouts": { - "LAYOUT": { + "LAYOUT_planck_mit": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/quarkeys/z40/keymaps/default/keymap.c b/keyboards/quarkeys/z40/keymaps/default/keymap.c index e54316ec296..8a08e47153f 100644 --- a/keyboards/quarkeys/z40/keymaps/default/keymap.c +++ b/keyboards/quarkeys/z40/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* +/* / Copyright 2022 quarkeys / This 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,11 +26,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Caps | ALT | OS | Ly1 | SPACE | Ly2 | M1 | M2 | M3 | Enter | * `-------------------------------------------------------------------------------------' */ - [0] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - 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_CAPS, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), MO(3), _______, _______, KC_ENT + [0] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + 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_CAPS, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), MO(3), _______, _______, KC_ENT ), /* [1] @@ -44,13 +44,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | 0 | | | . | | = | * `-------+------+------+------+------+-------------+------+------+------+-------+------' */ - - [1] = LAYOUT( - QK_BOOT, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, _______, - _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_MOD, _______, - _______, KC_VOLD, KC_VOLU, _______, _______, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, RGB_HUI, _______, - RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_0, _______, _______, KC_DOT, RGB_HUD, KC_EQL - ), + [1] = LAYOUT_planck_mit( + QK_BOOT, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, _______, + _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_MOD, _______, + _______, KC_VOLD, KC_VOLU, _______, _______, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, RGB_HUI, _______, + RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_0, _______, _______, KC_DOT, RGB_HUD, KC_EQL + ), /* [2] * ,-------------------------------------------------------------------------------------. @@ -63,13 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-------------------------------------------------------------------------------------' */ - [2] = 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_AMPR, KC_PIPE, KC_LPRN, KC_RPRN, KC_PLUS, KC_MINS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, _______, - _______, KC_EXLM, KC_AT, KC_HASH, KC_CIRC, KC_ASTR, KC_SLSH, KC_TILD, KC_LABK, KC_RABK, KC_QUES, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; + [2] = LAYOUT_planck_mit( + 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_AMPR, KC_PIPE, KC_LPRN, KC_RPRN, KC_PLUS, KC_MINS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, _______, + _______, KC_EXLM, KC_AT, KC_HASH, KC_CIRC, KC_ASTR, KC_SLSH, KC_TILD, KC_LABK, KC_RABK, KC_QUES, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; #ifdef RGBLIGHT_ENABLE const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({9, 1, HSV_RED}); @@ -78,10 +77,10 @@ const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({28 const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({16, 2, HSV_WHITE}); const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - my_capslock_layer, // Caplock indicator - my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control - my_symbol_layer, // F1-F12 keys & Symbols - my_other_layer // Self-Defined + my_capslock_layer, // Caplock indicator + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined ); void keyboard_post_init_user(void) { diff --git a/keyboards/quarkeys/z40/keymaps/via/keymap.c b/keyboards/quarkeys/z40/keymaps/via/keymap.c index f235747a709..fe596b98ff0 100644 --- a/keyboards/quarkeys/z40/keymaps/via/keymap.c +++ b/keyboards/quarkeys/z40/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* +/* / Copyright 2022 quarkeys / This 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,27 +15,27 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - 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_CAPS, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), MO(3), _______, _______, KC_ENT + [0] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + 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_CAPS, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), MO(3), _______, _______, KC_ENT ), - [1] = LAYOUT( - QK_BOOT, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, _______, - _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_MOD, _______, - _______, KC_VOLD, KC_VOLU, _______, _______, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, RGB_HUI, _______, - RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_0, _______, _______, KC_DOT, RGB_HUD, KC_EQL - ), + [1] = LAYOUT_planck_mit( + QK_BOOT, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, _______, + _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_MOD, _______, + _______, KC_VOLD, KC_VOLU, _______, _______, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, RGB_HUI, _______, + RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_0, _______, _______, KC_DOT, RGB_HUD, KC_EQL + ), - [2] = 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_AMPR, KC_PIPE, KC_LPRN, KC_RPRN, KC_PLUS, KC_MINS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, _______, - _______, KC_EXLM, KC_AT, KC_HASH, KC_CIRC, KC_ASTR, KC_SLSH, KC_TILD, KC_LABK, KC_RABK, KC_QUES, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; + [2] = LAYOUT_planck_mit( + 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_AMPR, KC_PIPE, KC_LPRN, KC_RPRN, KC_PLUS, KC_MINS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, _______, + _______, KC_EXLM, KC_AT, KC_HASH, KC_CIRC, KC_ASTR, KC_SLSH, KC_TILD, KC_LABK, KC_RABK, KC_QUES, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; #ifdef RGBLIGHT_ENABLE const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({9, 1, HSV_RED}); @@ -44,10 +44,10 @@ const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({28 const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({16, 2, HSV_WHITE}); const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - my_capslock_layer, // Caplock indicator - my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control - my_symbol_layer, // F1-F12 keys & Symbols - my_other_layer // Self-Defined + my_capslock_layer, // Caplock indicator + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined ); void keyboard_post_init_user(void) { diff --git a/keyboards/quarkeys/z40/readme.md b/keyboards/quarkeys/z40/readme.md index d3428dd2061..b1f2bb42be5 100644 --- a/keyboards/quarkeys/z40/readme.md +++ b/keyboards/quarkeys/z40/readme.md @@ -1,14 +1,18 @@ # Quarkeys Z40 Low Profile Keyboard -![Quarkeys Z40 Pastry](https://raw.githubusercontent.com/tommyamoszhao/keyboardimage/main/Z40/Z40_1024.png) +![Quarkeys Z40 Pastry](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/quarkeys/z40/72b918_ef3d9bc5f32e4b2ba224b0a25bc017f4~mv2.png "Quarkeys Z40 PCB render") A 40% Bottom mount low-profile & MX switch compatible keyboard. -* Keyboard Maintainer: [Quarkeys Studio](www.quarkeys.com) +* Keyboard Maintainer: [TommyZ](https://github.com/tommyamoszhao) * Hardware Supported: Z40-ACR, Z40-Pastry -* Hardware Specs: Per-key RGBs, layer & Capslock indicators -* For [RGB Matrix feature](https://docs.qmk.fm/#/feature_rgb_matrix): `RGB_MATRIX_ENABLE = yes`, `RGBLIGHT_ENABLE = no`. -* For [RGB Light feature](https://docs.qmk.fm/#/feature_rgblight): `RGB_MATRIX_ENABLE = no`, `RGBLIGHT_ENABLE = yes`. +* Hardware Availability: [Quarkeys Studio](https://www.quarkeys.com/product-page/z40-extra-pcb) + +## Hardware Specs + +* Per-key RGBs, layer & Capslock indicators + * For [RGB Matrix feature](https://docs.qmk.fm/#/feature_rgb_matrix): `RGB_MATRIX_ENABLE = yes`, `RGBLIGHT_ENABLE = no`. + * For [RGB Light feature](https://docs.qmk.fm/#/feature_rgblight): `RGB_MATRIX_ENABLE = no`, `RGBLIGHT_ENABLE = yes`. Make example for this keyboard solder version keymap(after setting up your build environment): @@ -20,4 +24,4 @@ Flashing example for this keyboard: **Bootloader:** Press the `QK_BOOT` keycode at ESC position of layer 1. -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). \ No newline at end of file +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/quarkeys/z60/hotswap/config.h b/keyboards/quarkeys/z60/hotswap/config.h index f02635a6394..d531fe5c4cf 100644 --- a/keyboards/quarkeys/z60/hotswap/config.h +++ b/keyboards/quarkeys/z60/hotswap/config.h @@ -14,22 +14,7 @@ #pragma once -#define RGBLED_NUM 80 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLIGHT_SLEEP diff --git a/keyboards/quarkeys/z60/hotswap/info.json b/keyboards/quarkeys/z60/hotswap/info.json index 1db45e4f7ba..d10065bbd5c 100644 --- a/keyboards/quarkeys/z60/hotswap/info.json +++ b/keyboards/quarkeys/z60/hotswap/info.json @@ -16,7 +16,22 @@ "pin": "D6" }, "rgblight": { - "max_brightness": 140 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 80, + "max_brightness": 140, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "diode_direction": "COL2ROW", "processor": "atmega32u4", diff --git a/keyboards/quarkeys/z60/solder/config.h b/keyboards/quarkeys/z60/solder/config.h index 588044ec304..bb314ae3159 100644 --- a/keyboards/quarkeys/z60/solder/config.h +++ b/keyboards/quarkeys/z60/solder/config.h @@ -14,23 +14,6 @@ #pragma once -#define RGBLED_NUM 77 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) - -#define RGBLIGHT_SLEEP diff --git a/keyboards/quarkeys/z60/solder/info.json b/keyboards/quarkeys/z60/solder/info.json index 75316622d1c..55e4ca33d9a 100644 --- a/keyboards/quarkeys/z60/solder/info.json +++ b/keyboards/quarkeys/z60/solder/info.json @@ -16,7 +16,22 @@ "pin": "D6" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 77, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "diode_direction": "COL2ROW", "processor": "atmega32u4", diff --git a/keyboards/quarkeys/z67/hotswap/config.h b/keyboards/quarkeys/z67/hotswap/config.h index f662eb9480a..d531fe5c4cf 100644 --- a/keyboards/quarkeys/z67/hotswap/config.h +++ b/keyboards/quarkeys/z67/hotswap/config.h @@ -14,22 +14,7 @@ #pragma once -#define RGBLED_NUM 77 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLIGHT_SLEEP diff --git a/keyboards/quarkeys/z67/hotswap/info.json b/keyboards/quarkeys/z67/hotswap/info.json index 43a9f465f73..8c452ea391d 100644 --- a/keyboards/quarkeys/z67/hotswap/info.json +++ b/keyboards/quarkeys/z67/hotswap/info.json @@ -16,7 +16,22 @@ "pin": "F0" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 77, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "diode_direction": "COL2ROW", "processor": "atmega32u4", diff --git a/keyboards/quarkeys/z67/solder/config.h b/keyboards/quarkeys/z67/solder/config.h index e65139c5ffa..9e4269c6d7d 100644 --- a/keyboards/quarkeys/z67/solder/config.h +++ b/keyboards/quarkeys/z67/solder/config.h @@ -14,21 +14,6 @@ #pragma once -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) #define RGBLIGHT_LAYERS -#define RGBLIGHT_SLEEP diff --git a/keyboards/quarkeys/z67/solder/info.json b/keyboards/quarkeys/z67/solder/info.json index 2a199583027..e37ef9a4cb1 100644 --- a/keyboards/quarkeys/z67/solder/info.json +++ b/keyboards/quarkeys/z67/solder/info.json @@ -16,7 +16,22 @@ "pin": "F0" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "diode_direction": "COL2ROW", "processor": "atmega32u4", diff --git a/keyboards/qvex/lynepad/config.h b/keyboards/qvex/lynepad/config.h index e266f72ad5b..5bb89db2d32 100644 --- a/keyboards/qvex/lynepad/config.h +++ b/keyboards/qvex/lynepad/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* LEDs */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Definitions for encoder tilt/press support */ #define ENC_TILT_THRESHOLD 1 #define PIN_TW_SW D2 // Center diff --git a/keyboards/qvex/lynepad/info.json b/keyboards/qvex/lynepad/info.json index fa8b71b5d6d..1a2091dc979 100644 --- a/keyboards/qvex/lynepad/info.json +++ b/keyboards/qvex/lynepad/info.json @@ -23,7 +23,22 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "max_brightness": 240, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/qvex/lynepad2/config.h b/keyboards/qvex/lynepad2/config.h new file mode 100644 index 00000000000..7b9d3ce306e --- /dev/null +++ b/keyboards/qvex/lynepad2/config.h @@ -0,0 +1,35 @@ +/* +Copyright 2023 QVEX Tech + +This 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 5 + +//Digital joystick (4-way switch + encoder) +#define PIN_JU D4 +#define PIN_JD B6 +#define PIN_JL D7 +#define PIN_JR B4 +#define PIN_JC C6 + +//Thumbwheel +#define PIN_TC D2 + +//Backlighting +#define BACKLIGHT_DEFAULT_LEVEL 5 + +//RGB arc +#define RGBLIGHT_DEFAULT_VAL 64 \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/info.json b/keyboards/qvex/lynepad2/info.json new file mode 100644 index 00000000000..02b6198bcd8 --- /dev/null +++ b/keyboards/qvex/lynepad2/info.json @@ -0,0 +1,69 @@ +{ + "manufacturer": "QVEX Tech", + "keyboard_name": "Lynepad", + "maintainer": "QVEX-Tech", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "F0", "F1", "F4", "F5"], + "rows": [ "C7", "F7" ,"F6", null, null] + }, + "processor": "atmega32u4", + "url": "https://qvex.eu", + "usb": { + "device_version": "1.0.0", + "vid": "0x04D8", + "pid": "0xE678" + }, + "encoder": { + "rotary": [ + {"pin_a": "D6", "pin_b": "B5", "resolution": 2}, + {"pin_a": "D1", "pin_b": "D0", "resolution": 2} + ] + }, + "features": { + "backlight": true, + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "rgblight": true + }, + "rgblight": { + "led_count": 5, + "max_brightness": 192, + "sleep": true + }, + "ws2812": { + "pin": "D3" + }, + "backlight": { + "breathing": true, + "levels": 8, + "max_brightness": 192, + "pin": "B7" + }, + "layouts": { + "LAYOUT": { + "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": [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 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/keymaps/default/keymap.c b/keyboards/qvex/lynepad2/keymaps/default/keymap.c new file mode 100644 index 00000000000..22286170f13 --- /dev/null +++ b/keyboards/qvex/lynepad2/keymaps/default/keymap.c @@ -0,0 +1,142 @@ +/* +Copyright 2023 QVEX Tech + +This 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 RGB_HUE_LAYER0 0 //default layer +#define RGB_HUE_LAYER1 50 +#define RGB_HUE_LAYER2 100 +#define RGB_HUE_LAYER3 150 +#define RGB_HUE_LAYER4 200 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT //Default + ( + G(KC_D), G(KC_TAB), C(G(KC_LEFT)), C(G(KC_RIGHT)), + G(KC_E), XXXXXXX, C(KC_C), C(KC_V), + KC_LGUI, XXXXXXX, XXXXXXX, + + KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, //joystick up, down, left, right + KC_MPLY, MO(4) //joystick center push, thumbwheel push + ), + + [1] = LAYOUT //KiCad + ( + KC_ESC, KC_R, KC_M, KC_DEL, + KC_V, KC_G, KC_D, KC_X, + MO(3), KC_B, C(KC_V), + + KC_PLUS, KC_MINUS, C(KC_Y), C(KC_Z), //joystick up, down, left, right + KC_PGDN, MO(4) //joystick center push, thumbwheel push + ), + + [2] = LAYOUT + ( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + XXXXXXX, MO(4) //joystick center push, thumbwheel push + ), + + [3] = LAYOUT + ( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + XXXXXXX, MO(4) //joystick center push, thumbwheel push + ), + + [4] = LAYOUT + ( + TO(0), TO(1), TO(2), TO(3), + BL_TOGG, BL_STEP, XXXXXXX, XXXXXXX, + QK_RBT, EE_CLR, QK_BOOT, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + RGB_TOG, XXXXXXX //joystick center push, thumbwheel push + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + + [1] = { + ENCODER_CCW_CW(LSFT(KC_W), KC_W), + ENCODER_CCW_CW(KC_N, LSFT(KC_N)) + }, + + [2] = { + ENCODER_CCW_CW(XXXXXXX, XXXXXXX), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + }, + + [3] = { + ENCODER_CCW_CW(XXXXXXX, XXXXXXX), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + }, + + [4] = { + ENCODER_CCW_CW(RGB_VAD, RGB_VAI), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + } +}; +#endif + +//set only hue, retain saturation, and value +void rgblight_sethue_noeeprom(uint8_t hue){ + //only if rgb led ring is on + if (rgblight_get_mode()) { + rgblight_sethsv_noeeprom(hue,rgblight_get_sat(),rgblight_get_val()); + } +} + +//set correct layer hue on layer change +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case 1: + rgblight_sethue_noeeprom(RGB_HUE_LAYER1); + break; + case 2: + rgblight_sethue_noeeprom(RGB_HUE_LAYER2); + break; + case 3: + rgblight_sethue_noeeprom(RGB_HUE_LAYER3); + break; + case 4: + rgblight_sethue_noeeprom(RGB_HUE_LAYER4); + break; + default: + rgblight_sethue_noeeprom(RGB_HUE_LAYER0); + break; + + } + return state; +} + +//set default layer hue upon init +void keyboard_post_init_user(void) { + rgblight_init(); + rgblight_sethue_noeeprom(RGB_HUE_LAYER0); +} \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/keymaps/default/rules.mk b/keyboards/qvex/lynepad2/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/qvex/lynepad2/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/keymaps/mcrosson/keymap.c b/keyboards/qvex/lynepad2/keymaps/mcrosson/keymap.c new file mode 100644 index 00000000000..ead8ab40a6d --- /dev/null +++ b/keyboards/qvex/lynepad2/keymaps/mcrosson/keymap.c @@ -0,0 +1,142 @@ +/* +Copyright 2023 QVEX Tech + +This 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 RGB_HUE_LAYER0 0 //default layer +#define RGB_HUE_LAYER1 50 +#define RGB_HUE_LAYER2 100 +#define RGB_HUE_LAYER3 150 +#define RGB_HUE_LAYER4 200 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT //Default + ( + KC_MS_BTN4, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, + KC_MS_BTN5, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, + KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, + + KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, //joystick up, down, left, right + KC_MPLY, MO(4) //joystick center push, thumbwheel push + ), + + [1] = LAYOUT //KiCad + ( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + XXXXXXX, MO(4) //joystick center push, thumbwheel push + ), + + [2] = LAYOUT + ( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + XXXXXXX, MO(4) //joystick center push, thumbwheel push + ), + + [3] = LAYOUT + ( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + XXXXXXX, MO(4) //joystick center push, thumbwheel push + ), + + [4] = LAYOUT + ( + TO(0), TO(1), TO(2), TO(3), + BL_TOGG, BL_STEP, XXXXXXX, XXXXXXX, + QK_RBT, EE_CLR, QK_BOOT, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + RGB_TOG, XXXXXXX //joystick center push, thumbwheel push + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_MS_WH_DOWN, KC_MS_WH_UP) + }, + + [1] = { + ENCODER_CCW_CW(XXXXXXX, XXXXXXX), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + }, + + [2] = { + ENCODER_CCW_CW(XXXXXXX, XXXXXXX), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + }, + + [3] = { + ENCODER_CCW_CW(XXXXXXX, XXXXXXX), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + }, + + [4] = { + ENCODER_CCW_CW(RGB_VAD, RGB_VAI), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + } +}; +#endif + +//set only hue, retain saturation, and value +void rgblight_sethue_noeeprom(uint8_t hue) { + //only if rgb led ring is on + if (rgblight_get_mode()) { + rgblight_sethsv_noeeprom(hue,rgblight_get_sat(),rgblight_get_val()); + } +} + +//set correct layer hue on layer change +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case 1: + rgblight_sethue_noeeprom(RGB_HUE_LAYER1); + break; + case 2: + rgblight_sethue_noeeprom(RGB_HUE_LAYER2); + break; + case 3: + rgblight_sethue_noeeprom(RGB_HUE_LAYER3); + break; + case 4: + rgblight_sethue_noeeprom(RGB_HUE_LAYER4); + break; + default: + rgblight_sethue_noeeprom(RGB_HUE_LAYER0); + break; + + } + return state; +} + +//set default layer hue upon init +void keyboard_post_init_user(void) { + rgblight_init(); + rgblight_sethue_noeeprom(RGB_HUE_LAYER0); +} \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/keymaps/mcrosson/rules.mk b/keyboards/qvex/lynepad2/keymaps/mcrosson/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/qvex/lynepad2/keymaps/mcrosson/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/keymaps/via/keymap.c b/keyboards/qvex/lynepad2/keymaps/via/keymap.c new file mode 100644 index 00000000000..ff86cdc7fa1 --- /dev/null +++ b/keyboards/qvex/lynepad2/keymaps/via/keymap.c @@ -0,0 +1,142 @@ +/* +Copyright 2023 QVEX Tech + +This 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 RGB_HUE_LAYER0 0 //default layer +#define RGB_HUE_LAYER1 50 +#define RGB_HUE_LAYER2 100 +#define RGB_HUE_LAYER3 150 +#define RGB_HUE_LAYER4 200 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT //Default + ( + G(KC_D), G(KC_TAB), C(G(KC_LEFT)), C(G(KC_RIGHT)), + G(KC_E), XXXXXXX, C(KC_C), C(KC_V), + KC_LGUI, XXXXXXX, XXXXXXX, + + KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, //joystick up, down, left, right + KC_MPLY, MO(4) //joystick center push, thumbwheel push + ), + + [1] = LAYOUT //KiCad + ( + KC_ESC, KC_R, KC_M, KC_DEL, + KC_V, KC_G, KC_D, KC_X, + MO(3), KC_B, C(KC_V), + + KC_PLUS, KC_MINUS, C(KC_Y), C(KC_Z), //joystick up, down, left, right + KC_PGDN, MO(4) //joystick center push, thumbwheel push + ), + + [2] = LAYOUT + ( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + XXXXXXX, MO(4) //joystick center push, thumbwheel push + ), + + [3] = LAYOUT + ( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + XXXXXXX, MO(4) //joystick center push, thumbwheel push + ), + + [4] = LAYOUT + ( + TO(0), TO(1), TO(2), TO(3), + BL_TOGG, BL_STEP, XXXXXXX, XXXXXXX, + QK_RBT, EE_CLR, QK_BOOT, + + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right + RGB_TOG, XXXXXXX //joystick center push, thumbwheel push + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + + [1] = { + ENCODER_CCW_CW(LSFT(KC_W), KC_W), + ENCODER_CCW_CW(KC_N, LSFT(KC_N)) + }, + + [2] = { + ENCODER_CCW_CW(XXXXXXX, XXXXXXX), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + }, + + [3] = { + ENCODER_CCW_CW(XXXXXXX, XXXXXXX), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + }, + + [4] = { + ENCODER_CCW_CW(RGB_VAD, RGB_VAI), + ENCODER_CCW_CW(XXXXXXX, XXXXXXX) + } +}; +#endif + +//set only hue, retain saturation, and value +void rgblight_sethue_noeeprom(uint8_t hue) { + //only if rgb led ring is on + if (rgblight_get_mode()) { + rgblight_sethsv_noeeprom(hue,rgblight_get_sat(),rgblight_get_val()); + } +} + +//set correct layer hue on layer change +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case 1: + rgblight_sethue_noeeprom(RGB_HUE_LAYER1); + break; + case 2: + rgblight_sethue_noeeprom(RGB_HUE_LAYER2); + break; + case 3: + rgblight_sethue_noeeprom(RGB_HUE_LAYER3); + break; + case 4: + rgblight_sethue_noeeprom(RGB_HUE_LAYER4); + break; + default: + rgblight_sethue_noeeprom(RGB_HUE_LAYER0); + break; + + } + return state; +} + +//set default layer hue upon init +void keyboard_post_init_user(void) { + rgblight_init(); + rgblight_sethue_noeeprom(RGB_HUE_LAYER0); +} \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/keymaps/via/rules.mk b/keyboards/qvex/lynepad2/keymaps/via/rules.mk new file mode 100644 index 00000000000..6ccd6d91943 --- /dev/null +++ b/keyboards/qvex/lynepad2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/matrix.c b/keyboards/qvex/lynepad2/matrix.c new file mode 100644 index 00000000000..878ee6e2f72 --- /dev/null +++ b/keyboards/qvex/lynepad2/matrix.c @@ -0,0 +1,119 @@ +/* +Copyright 2023 QVEX Tech + +This 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 +#include +#include +#include "util.h" +#include "matrix.h" +#include "debounce.h" +#include "quantum.h" + +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +static void select_row(uint8_t row) { + setPinOutput(row_pins[row]); + writePinLow(row_pins[row]); +} + +static void unselect_row(uint8_t row) { + setPinInputHigh(row_pins[row]); +} + +static void unselect_rows(void) { + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh(row_pins[x]); + } +} + +static void init_pins(void) { + unselect_rows(); + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh(col_pins[x]); + } + setPinInputHigh(PIN_JU); + setPinInputHigh(PIN_JD); + setPinInputHigh(PIN_JL); + setPinInputHigh(PIN_JR); + setPinInputHigh(PIN_JC); + setPinInputHigh(PIN_TC); +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + if (current_row > 2) return false; + + matrix_row_t last_row_value = current_matrix[current_row]; + + current_matrix[current_row] = 0; + + select_row(current_row); + wait_us(30); + + for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + uint8_t pin_state = readPin(col_pins[col_index]); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static bool read_encoder_switches(matrix_row_t current_matrix[]) { + matrix_row_t last_fourth_row = current_matrix[3]; + matrix_row_t last_fifth_row = current_matrix[4]; + + current_matrix[3] = 0; + current_matrix[4] = 0; + + current_matrix[4] |= !readPin(PIN_TC) ? (1 << 1) : 0; + + if (!readPin(PIN_JC)) { + if (!readPin(PIN_JU)) { + current_matrix[3] |= (1 << 0); + } else if (!readPin(PIN_JD)) { + current_matrix[3] |= (1 << 1); + } else if (!readPin(PIN_JL)) { + current_matrix[3] |= (1 << 2); + } else if (!readPin(PIN_JR)) { + current_matrix[3] |= (1 << 3); + } else { + current_matrix[4] |= (1 << 0); + } + } + + return last_fourth_row != current_matrix[3] || last_fifth_row != current_matrix[4]; +} + +void matrix_init_custom(void) { + init_pins(); +} + +bool matrix_scan_custom(void) { + bool changed = false; + + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { + changed |= read_cols_on_row(raw_matrix, current_row); + } + + changed |= read_encoder_switches(raw_matrix); + + return changed; +} \ No newline at end of file diff --git a/keyboards/qvex/lynepad2/readme.md b/keyboards/qvex/lynepad2/readme.md new file mode 100644 index 00000000000..c374b617c3e --- /dev/null +++ b/keyboards/qvex/lynepad2/readme.md @@ -0,0 +1,27 @@ +# QVEX Lynepad 2 + +![QVEX Lynepad 2.1](https://i.imgur.com/eDvVaE4h.jpeg) + +*Macropad with 11 keys, thumbwheel, and a rotary 4-way switch* + +* Keyboard Maintainer: [QVEX Tech](https://github.com/QVEX-Tech) ([seflm](https://github.com/seflm)) +* Hardware Supported: QVEX Lynepad +* Hardware Availability: [QVEX Lynepad on Tindie](https://www.tindie.com/products/qvex_tech/lynepad-21-hot-swap-macropad-w-joystick/) + +Make example for this keyboard (after setting up your build environment): + + make qvex/lynepad:default + +Flashing example for this keyboard: + + make qvex/lynepad: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 and plug in the keyboard +* **Physical reset button**: Briefly press the reset button on the back of the Lynepad using SIM tool (rev.2.0 or newer) +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/qvex/lynepad2/rules.mk b/keyboards/qvex/lynepad2/rules.mk new file mode 100644 index 00000000000..c25bdff0cf9 --- /dev/null +++ b/keyboards/qvex/lynepad2/rules.mk @@ -0,0 +1,2 @@ +CUSTOM_MATRIX = lite +SRC += matrix.c \ No newline at end of file diff --git a/keyboards/qwertyydox/config.h b/keyboards/qwertyydox/config.h index 8bc386dcabe..8e59e903ac0 100644 --- a/keyboards/qwertyydox/config.h +++ b/keyboards/qwertyydox/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 12 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/qwertyydox/info.json b/keyboards/qwertyydox/info.json index fcc14084b07..5f1eb80da84 100644 --- a/keyboards/qwertyydox/info.json +++ b/keyboards/qwertyydox/info.json @@ -13,6 +13,24 @@ "cols": ["F7", "F6", "F5", "C6", "D7", "D4", "D1"], "rows": ["B6", "B2", "B3", "B1"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/raindrop/config.h b/keyboards/raindrop/config.h new file mode 100644 index 00000000000..1f083ec616b --- /dev/null +++ b/keyboards/raindrop/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#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 diff --git a/keyboards/raindrop/info.json b/keyboards/raindrop/info.json new file mode 100644 index 00000000000..738e1719ea9 --- /dev/null +++ b/keyboards/raindrop/info.json @@ -0,0 +1,315 @@ +{ + "keyboard_name": "Raindrop", + "manufacturer": "Laneware Peripherals", + "url": "https://lanewareperipherals.com/collections/raindrop-60", + "maintainer": "qmk", + "usb": { + "vid": "0x4C50", + "pid": "0x3333", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["D3", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "F7", "F6", "F5", "F4", "F1", "F0", "D5"], + "rows": ["E6", "B7", "D0", "D1", "D2"] + }, + "diode_direction": "COL2ROW", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "backlight": false, + "audio": false, + "rgblight": false, + "sleep_led": false + }, + "community_layouts": ["60_hhkb", "60_ansi", "64_ansi"], + "layouts": { + "LAYOUT_60_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, 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, 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, 12], "x":12.75, "y":2, "w":2.25}, + + {"matrix": [3, 0], "x":0, "y":3, "w":2.25}, + {"matrix": [3, 1], "x":2.25, "y":3}, + {"matrix": [3, 2], "x":3.25, "y":3}, + {"matrix": [3, 3], "x":4.25, "y":3}, + {"matrix": [3, 4], "x":5.25, "y":3}, + {"matrix": [3, 5], "x":6.25, "y":3}, + {"matrix": [3, 6], "x":7.25, "y":3}, + {"matrix": [3, 7], "x":8.25, "y":3}, + {"matrix": [3, 8], "x":9.25, "y":3}, + {"matrix": [3, 9], "x":10.25, "y":3}, + {"matrix": [3, 10], "x":11.25, "y":3}, + {"matrix": [3, 11], "x":12.25, "y":3, "w":2.75}, + + {"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, 3], "x":3.75, "y":4, "w":6.25}, + {"matrix": [4, 4], "x":10, "y":4, "w":1.25}, + {"matrix": [4, 5], "x":11.25, "y":4, "w":1.25}, + {"matrix": [4, 6], "x":12.5, "y":4, "w":1.25}, + {"matrix": [4, 7], "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_hhkb": { + "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, 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, 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, 12], "x":12.75, "y":2, "w":2.25}, + + {"matrix": [3, 0], "x":0, "y":3, "w":2.25}, + {"matrix": [3, 1], "x":2.25, "y":3}, + {"matrix": [3, 2], "x":3.25, "y":3}, + {"matrix": [3, 3], "x":4.25, "y":3}, + {"matrix": [3, 4], "x":5.25, "y":3}, + {"matrix": [3, 5], "x":6.25, "y":3}, + {"matrix": [3, 6], "x":7.25, "y":3}, + {"matrix": [3, 7], "x":8.25, "y":3}, + {"matrix": [3, 8], "x":9.25, "y":3}, + {"matrix": [3, 9], "x":10.25, "y":3}, + {"matrix": [3, 10], "x":11.25, "y":3}, + {"matrix": [3, 11], "x":12.25, "y":3, "w":1.75}, + {"matrix": [3, 13], "x":14, "y":3}, + + {"matrix": [4, 1], "x": 1.75, "y": 4}, + {"matrix": [4, 2], "x": 2.75, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4, "w": 6.25}, + {"matrix": [4, 5], "x": 10.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 12, "y": 4} + ] + }, + "LAYOUT_64_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, 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, 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, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2}, + {"matrix": [3, 1], "x": 2, "y": 3}, + {"matrix": [3, 2], "x": 3, "y": 3}, + {"matrix": [3, 3], "x": 4, "y": 3}, + {"matrix": [3, 4], "x": 5, "y": 3}, + {"matrix": [3, 5], "x": 6, "y": 3}, + {"matrix": [3, 6], "x": 7, "y": 3}, + {"matrix": [3, 7], "x": 8, "y": 3}, + {"matrix": [3, 8], "x": 9, "y": 3}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "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, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 4], "x": 10, "y": 4}, + {"matrix": [4, 5], "x": 11, "y": 4}, + {"matrix": [4, 6], "x": 12, "y": 4}, + {"matrix": [4, 7], "x": 13, "y": 4}, + {"matrix": [4, 8], "x": 14, "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": [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, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"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": [3, 0], "x": 0, "y": 3, "w": 2}, + {"matrix": [3, 1], "x": 2, "y": 3}, + {"matrix": [3, 2], "x": 3, "y": 3}, + {"matrix": [3, 3], "x": 4, "y": 3}, + {"matrix": [3, 4], "x": 5, "y": 3}, + {"matrix": [3, 5], "x": 6, "y": 3}, + {"matrix": [3, 6], "x": 7, "y": 3}, + {"matrix": [3, 7], "x": 8, "y": 3}, + {"matrix": [3, 8], "x": 9, "y": 3}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "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, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 4], "x": 10, "y": 4}, + {"matrix": [4, 5], "x": 11, "y": 4}, + {"matrix": [4, 6], "x": 12, "y": 4}, + {"matrix": [4, 7], "x": 13, "y": 4}, + {"matrix": [4, 8], "x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/raindrop/keymaps/arrows/keymap.c b/keyboards/raindrop/keymaps/arrows/keymap.c new file mode 100644 index 00000000000..a13614f7511 --- /dev/null +++ b/keyboards/raindrop/keymaps/arrows/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define RS_GRV RSFT_T(KC_GRV) +#define RG_DEL RGUI_T(KC_DEL) + +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_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, RS_GRV, KC_UP, RG_DEL, + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_64_ansi( + 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_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_INS, KC_NO, KC_HOME, KC_END, KC_NO, KC_NO, KC_PGUP, KC_PGDN, KC_NO, KC_SCRL, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_NO, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_RGUI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/raindrop/keymaps/default/keymap.c b/keyboards/raindrop/keymaps/default/keymap.c new file mode 100644 index 00000000000..8456863bb0d --- /dev/null +++ b/keyboards/raindrop/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [1] = LAYOUT_60_ansi( + 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_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_INS, KC_NO, KC_HOME, KC_END, KC_NO, KC_NO, KC_PGUP, KC_PGDN, KC_NO, KC_SCRL, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_NO, KC_NO, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/raindrop/keymaps/hhkb/keymap.c b/keyboards/raindrop/keymaps/hhkb/keymap.c new file mode 100644 index 00000000000..b08984c9aa7 --- /dev/null +++ b/keyboards/raindrop/keymaps/hhkb/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_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_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_LSFT, 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_LCTL, 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI + ), + [1] = LAYOUT_60_hhkb( + 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_NO, KC_NO, + KC_NO, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_INS, KC_HOME, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/raindrop/readme.md b/keyboards/raindrop/readme.md new file mode 100644 index 00000000000..2741cfafa75 --- /dev/null +++ b/keyboards/raindrop/readme.md @@ -0,0 +1,38 @@ +# Raindrop + +![stacked](https://i.imgur.com/R2iPqjIh.png) +*Casing* +![PCB Front](https://i.imgur.com/00TpL3nh.png) +*PCB Front* + +60% sized keyboard with a gasket mounted plate and aluminium case, made by Laneware Peripherals. + +* Keyboard Maintainer: [Laneware Peripherals](https://github.com/laneware) +* Hardware Supported: Raindrop PCB +* Hardware Availability: Group Buy + +## Layouts +The Raindrop PCB can be configured in the following key layouts: +| Key Layout | Keymap | Diagram | +| :---: | :---: | :---: | +| Standard 60% | default | ![diagram_ansi](https://i.imgur.com/oibG44o.png) | +| 2u Left Shift with Arrow Keys | arrows | ![diagram_arrows](https://i.imgur.com/cQ4Kwb5h.png) | +| HHKB with 6.25 Spacebar | hhkb | ![diagram_hhkb](https://i.imgur.com/WU6gb1Qh.png) | + +Make example for this keyboard (after setting up your build environment): + + make raindrop:default + +Flashing example for this keyboard: + + make raindrop: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/raindrop/rules.mk b/keyboards/raindrop/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/rainkeebs/delilah/config.h b/keyboards/rainkeebs/delilah/config.h index 3f9d574f77e..30e2a8bf276 100644 --- a/keyboards/rainkeebs/delilah/config.h +++ b/keyboards/rainkeebs/delilah/config.h @@ -20,18 +20,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/rainkeebs/delilah/info.json b/keyboards/rainkeebs/delilah/info.json index 891c4847785..714308d4164 100644 --- a/keyboards/rainkeebs/delilah/info.json +++ b/keyboards/rainkeebs/delilah/info.json @@ -8,6 +8,23 @@ "pid": "0x645C", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/rainkeebs/rainkeeb/rules.mk b/keyboards/rainkeebs/rainkeeb/rules.mk index ed4adffba93..866521b4288 100644 --- a/keyboards/rainkeebs/rainkeeb/rules.mk +++ b/keyboards/rainkeebs/rainkeeb/rules.mk @@ -13,7 +13,6 @@ RGBLIGHT_ENABLE = no # OLED enable OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Encoder enable ENCODER_ENABLE = yes diff --git a/keyboards/rainkeebs/trailmix/info.json b/keyboards/rainkeebs/trailmix/info.json new file mode 100644 index 00000000000..7b3cfdfcdd3 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/info.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "rainkeebs", + "keyboard_name": "trailmix", + "maintainer": "ATron789", + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "B2", "pin_b": "B4"} + ] + }, + "matrix_pins": { + "cols": ["F6", "D4", "F5", "D0", "F4", "B6"], + "rows": ["D1", "D7", "F7", "C6"] + }, + "processor": "atmega32u4", + "split": { + "enabled": true, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "B2", "pin_b": "B4"} + ] + } + }, + "soft_serial_pin": "D3" + }, + "url": "https://www.rainkeebs.mx", + "usb": { + "device_version": "1.0.0", + "pid": "0x7363", + "vid": "0x726B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "L00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "L01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "L02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L04", "matrix": [0, 4], "x": 4, "y": 0}, + + {"label": "R04", "matrix": [4, 4], "x": 8, "y": 0}, + {"label": "R03", "matrix": [4, 3], "x": 9, "y": 0}, + {"label": "R02", "matrix": [4, 2], "x": 10, "y": 0}, + {"label": "R01", "matrix": [4, 1], "x": 11, "y": 0}, + {"label": "R00", "matrix": [4, 0], "x": 12, "y": 0}, + + {"label": "L10", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "L12", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "L13", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L14", "matrix": [1, 4], "x": 4, "y": 1}, + + {"label": "R14", "matrix": [5, 4], "x": 8, "y": 1}, + {"label": "R13", "matrix": [5, 3], "x": 9, "y": 1}, + {"label": "R12", "matrix": [5, 2], "x": 10, "y": 1}, + {"label": "R11", "matrix": [5, 1], "x": 11, "y": 1}, + {"label": "R10", "matrix": [5, 0], "x": 12, "y": 1}, + + {"label": "L20", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "L21", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "L22", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "L23", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L24", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "L25", "matrix": [2, 5], "x": 5, "y": 2}, + + {"label": "R25", "matrix": [6, 5], "x": 7, "y": 2}, + {"label": "R24", "matrix": [6, 4], "x": 8, "y": 2}, + {"label": "R23", "matrix": [6, 3], "x": 9, "y": 2}, + {"label": "R22", "matrix": [6, 2], "x": 10, "y": 2}, + {"label": "R21", "matrix": [6, 1], "x": 11, "y": 2}, + {"label": "R20", "matrix": [6, 0], "x": 12, "y": 2}, + + {"label": "L30", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "L31", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "L32", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "L33", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "L34", "matrix": [3, 4], "x": 4, "y": 3, "w": 2}, + + {"label": "R34", "matrix": [7, 4], "x": 7, "y": 3, "w": 2}, + {"label": "R33", "matrix": [7, 3], "x": 9, "y": 3}, + {"label": "R32", "matrix": [7, 2], "x": 10, "y": 3}, + {"label": "R31", "matrix": [7, 1], "x": 11, "y": 3}, + {"label": "R30", "matrix": [7, 0], "x": 12, "y": 3} + ] + } + } +} diff --git a/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c b/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c new file mode 100644 index 00000000000..77418f9cd63 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 Regan Palmer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSPC, + KC_LCTL, KC_LALT, KC_LGUI, LOWER,KC_LSFT, KC_SPC, RAISE, KC_RGUI, KC_ESC, KC_TAB + ), + + [_LOWER] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_ESC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_TRNS, + KC_TAB, KC_INSERT, KC_DELETE, KC_BACKSLASH,KC_MINUS, KC_TRNS, KC_TRNS, KC_PLUS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_TRNS, KC_TRNS + ), + + [_RAISE] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_LCBR, KC_RCBR, KC_COLN, KC_DQT, KC_TRNS, + KC_TRNS, KC_CAPS, KC_TRNS, KC_PIPE, KC_UNDS, KC_TRNS, KC_TRNS, KC_EQUAL, KC_QUESTION, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ADJUST, KC_TRNS, KC_TRNS + ), + + [_ADJUST] = 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_PRINT_SCREEN, KC_SCROLL_LOCK, KC_PAUSE, KC_H, KC_J, KC_K, KC_L, KC_ENTER, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSPC, + KC_LCTL, KC_LALT, ADJUST, RAISE, KC_SPC, KC_LSFT, LOWER, ADJUST, KC_RALT, KC_RCTL + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)}, + [_LOWER] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_HOME, KC_END)}, + [_RAISE] = {ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_WH_L, KC_WH_R)}, + [_ADJUST] = {ENCODER_CCW_CW(KC_MS_LEFT, KC_MS_RIGHT), ENCODER_CCW_CW(KC_MS_UP, KC_MS_DOWN)}, +}; +#endif diff --git a/keyboards/rainkeebs/trailmix/keymaps/default/rules.mk b/keyboards/rainkeebs/trailmix/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rainkeebs/trailmix/readme.md b/keyboards/rainkeebs/trailmix/readme.md new file mode 100644 index 00000000000..2b2b6437e68 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/readme.md @@ -0,0 +1,28 @@ +# Trailmix + +![Trailmix](https://i.postimg.cc/wB4Zk1pS/IMG-20230326-222616.jpg) + + +Ortho split 40% keyboard by rainkeenbs with encoders. + +* Keyboard Maintainer: [ATron789](https://github.com/atron789) +* Hardware Supported: `Elite Pi`, `Pro Micro Type-C USB`, `Elite-C (v4)`, `nice!nano v2` controllers + + +Make example for this keyboard (after setting up your build environment): + + make rainkeebs/trailmix:default + +Flashing example for this keyboard: + + make rainkeebs/rainkeeb:default:flash + +(Flash one side of the keyboard at the time) + +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**: reset button located next to the encoder slot, one on each side of the keyboard. diff --git a/keyboards/rainkeebs/trailmix/rules.mk b/keyboards/rainkeebs/trailmix/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/rainkeebs/trailmix/trailmix.c b/keyboards/rainkeebs/trailmix/trailmix.c new file mode 100644 index 00000000000..105d988dadb --- /dev/null +++ b/keyboards/rainkeebs/trailmix/trailmix.c @@ -0,0 +1,91 @@ +/* +Copyright 2023 Alberto Pavano "ATron789" + +This 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" + +enum layers { _BASE, _LOWER, _RAISE, _ADJUST }; + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + switch (get_highest_layer(layer_state)) { + case _BASE: + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + } + break; + case _RAISE: + if (index == 0) { + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_WH_R); + } else { + tap_code(KC_WH_L); + } + } + break; + case _LOWER: + if (index == 0) { + if (clockwise) { + tap_code(KC_PGUP); + } else { + tap_code(KC_PGDN); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_END); + } else { + tap_code(KC_HOME); + } + } + break; + case _ADJUST: + if (index == 0) { + if (clockwise) { + tap_code(KC_MS_RIGHT); + } else { + tap_code(KC_MS_LEFT); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_MS_DOWN); + } else { + tap_code(KC_MS_UP); + } + } + break; + } + return true; +} +#endif diff --git a/keyboards/rainkeebs/yasui/config.h b/keyboards/rainkeebs/yasui/config.h index 5033c1ceac1..30e2a8bf276 100644 --- a/keyboards/rainkeebs/yasui/config.h +++ b/keyboards/rainkeebs/yasui/config.h @@ -20,18 +20,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/rainkeebs/yasui/info.json b/keyboards/rainkeebs/yasui/info.json index c1c874c77bc..5e7ea06deb3 100644 --- a/keyboards/rainkeebs/yasui/info.json +++ b/keyboards/rainkeebs/yasui/info.json @@ -8,6 +8,23 @@ "pid": "0x7973", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/rart/rart4x4/config.h b/keyboards/rart/rart4x4/config.h index 76ffbba1cf6..42556799eb8 100644 --- a/keyboards/rart/rart4x4/config.h +++ b/keyboards/rart/rart4x4/config.h @@ -22,19 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 7 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/rart/rart4x4/info.json b/keyboards/rart/rart4x4/info.json index 3cd5710ddf9..aa822b8f5c0 100644 --- a/keyboards/rart/rart4x4/info.json +++ b/keyboards/rart/rart4x4/info.json @@ -12,7 +12,23 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F7", "B2", "B5", "B4"], diff --git a/keyboards/rart/rart67/config.h b/keyboards/rart/rart67/config.h index 21a2aba522a..42556799eb8 100644 --- a/keyboards/rart/rart67/config.h +++ b/keyboards/rart/rart67/config.h @@ -22,19 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 11 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/rart/rart67/info.json b/keyboards/rart/rart67/info.json index d12df10ae12..a6722f4432e 100644 --- a/keyboards/rart/rart67/info.json +++ b/keyboards/rart/rart67/info.json @@ -12,7 +12,23 @@ "pin": "B7" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 11, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B3", "B2", "B1", "D5", "D4", "D6", "D7", "B4", "B5", "F0", "F7", "F6", "F5", "F4", "F1", "E6"], diff --git a/keyboards/rart/rart67m/rules.mk b/keyboards/rart/rart67m/rules.mk index 9d9090d7ea0..5a309870d33 100644 --- a/keyboards/rart/rart67m/rules.mk +++ b/keyboards/rart/rart67m/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/rart/rart75hs/config.h b/keyboards/rart/rart75hs/config.h index 26adeb96a73..3715a98a6d1 100644 --- a/keyboards/rart/rart75hs/config.h +++ b/keyboards/rart/rart75hs/config.h @@ -22,16 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#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 11 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/rart/rart75hs/info.json b/keyboards/rart/rart75hs/info.json index 80b09b6357c..148dfba3852 100644 --- a/keyboards/rart/rart75hs/info.json +++ b/keyboards/rart/rart75hs/info.json @@ -26,7 +26,19 @@ "pin": "C0" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 11, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true, + "twinkle": true + } }, "bootmagic": { "matrix": [0, 1] diff --git a/keyboards/rart/rart75m/rules.mk b/keyboards/rart/rart75m/rules.mk index 6d03cffdfe7..5277f7c480d 100644 --- a/keyboards/rart/rart75m/rules.mk +++ b/keyboards/rart/rart75m/rules.mk @@ -12,5 +12,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes diff --git a/keyboards/rart/rart80/config.h b/keyboards/rart/rart80/config.h index 4c08a231aab..3715a98a6d1 100644 --- a/keyboards/rart/rart80/config.h +++ b/keyboards/rart/rart80/config.h @@ -22,16 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#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_SLEEP diff --git a/keyboards/rart/rart80/info.json b/keyboards/rart/rart80/info.json index 5b9f768c74d..e2093e50292 100644 --- a/keyboards/rart/rart80/info.json +++ b/keyboards/rart/rart80/info.json @@ -21,7 +21,19 @@ "pin": "D5" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "knight": true, + "static_gradient": true, + "twinkle": true + } }, "bootmagic": { "matrix": [0, 1] diff --git a/keyboards/rart/rartand/rules.mk b/keyboards/rart/rartand/rules.mk index b9cc25d86e2..7b55e77aeed 100644 --- a/keyboards/rart/rartand/rules.mk +++ b/keyboards/rart/rartand/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/rart/rartland/rules.mk b/keyboards/rart/rartland/rules.mk index 06d9ea1b916..5e5e0f090d7 100644 --- a/keyboards/rart/rartland/rules.mk +++ b/keyboards/rart/rartland/rules.mk @@ -15,5 +15,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes diff --git a/keyboards/rart/rartlice/config.h b/keyboards/rart/rartlice/config.h index b242e63013b..9673097c382 100644 --- a/keyboards/rart/rartlice/config.h +++ b/keyboards/rart/rartlice/config.h @@ -22,17 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 11 #define WS2812_SPI SPID2 /* diff --git a/keyboards/rart/rartlice/info.json b/keyboards/rart/rartlice/info.json index b1046227cc5..d800165b53a 100644 --- a/keyboards/rart/rartlice/info.json +++ b/keyboards/rart/rartlice/info.json @@ -19,6 +19,21 @@ "scroll_lock": "A9", "on_state": 0 }, + "rgblight": { + "led_count": 11, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/rart/rartlice/rules.mk b/keyboards/rart/rartlice/rules.mk index 49179d2fb92..b3f4fc8b8a7 100644 --- a/keyboards/rart/rartlice/rules.mk +++ b/keyboards/rart/rartlice/rules.mk @@ -12,7 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 - -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/rart/rartpad/config.h b/keyboards/rart/rartpad/config.h index bf87b3204da..42556799eb8 100644 --- a/keyboards/rart/rartpad/config.h +++ b/keyboards/rart/rartpad/config.h @@ -22,19 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 5 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/rart/rartpad/info.json b/keyboards/rart/rartpad/info.json index 01929e01764..8c921931a8c 100644 --- a/keyboards/rart/rartpad/info.json +++ b/keyboards/rart/rartpad/info.json @@ -26,7 +26,23 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "max_brightness": 240, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/rastersoft/minitkl/info.json b/keyboards/rastersoft/minitkl/info.json new file mode 100644 index 00000000000..7de5b4f75dc --- /dev/null +++ b/keyboards/rastersoft/minitkl/info.json @@ -0,0 +1,339 @@ +{ + "keyboard_name": "MiniTKL", + "manufacturer": "Rastersoft", + "url": "https://gitlab.com/rastersoft/full-ten-keyless", + "maintainer": "rastersoft", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "usb": { + "vid": "0xFEED", + "pid": "0x68F1", + "device_version": "0.0.1" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["D6", "D4", "B6", "D5", "B4", "D3", "D7", "D1", "C6", "D2", "C7", "D0"], + "cols": ["F4", "F1", "F0", "F5", "F6", "F7", "B7", "B5"] + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgblight": true + }, + "rgblight": { + "led_count": 3, + "pin": "B2", + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8, + "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 + }, + "layers": { + "enabled": true + } + }, + "ws2812": { + "pin": "B2" + }, + "layouts": { + "LAYOUT_iso": { + "layout": [ + {"label":"esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"F1", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"F2", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"F3", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"F4", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"F5", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"F6", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"F7", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"F8", "x":8, "y":0, "matrix": [1, 7]}, + {"label":"F9", "x":9, "y":0, "matrix": [1, 6]}, + {"label":"F10", "x":10, "y":0, "matrix": [1, 5]}, + {"label":"F11", "x":11, "y":0, "matrix": [1, 4]}, + {"label":"F12", "x":12, "y":0, "matrix": [1, 3]}, + {"label":"PrtScr", "x":13, "y":0, "matrix": [1, 2]}, + {"label":"ScrollLock", "x":14, "y":0, "matrix": [1, 1]}, + {"label":"Pause", "x":15, "y":0, "matrix": [1, 0]}, + + {"label":"º", "x":0, "y":1, "matrix": [2, 0]}, + {"label":"1", "x":1, "y":1, "matrix": [2, 1]}, + {"label":"2", "x":2, "y":1, "matrix": [2, 2]}, + {"label":"3", "x":3, "y":1, "matrix": [2, 3]}, + {"label":"4", "x":4, "y":1, "matrix": [2, 4]}, + {"label":"5", "x":5, "y":1, "matrix": [2, 5]}, + {"label":"6", "x":6, "y":1, "matrix": [2, 6]}, + {"label":"7", "x":7, "y":1, "matrix": [2, 7]}, + {"label":"8", "x":8, "y":1, "matrix": [3, 7]}, + {"label":"9", "x":9, "y":1, "matrix": [3, 6]}, + {"label":"0", "x":10, "y":1, "matrix": [3, 5]}, + {"label":"'", "x":11, "y":1, "matrix": [3, 4]}, + {"label":"\u00bf", "x":12, "y":1, "matrix": [3, 3]}, + {"label":"Backspace", "x":13, "y":1, "matrix": [3, 2], "w":2}, + {"label":"Home", "x":15, "y":1, "matrix": [3, 1]}, + {"label":"End", "x":16, "y":1, "matrix": [3, 0]}, + + {"label":"Tab", "x":0, "y":2, "w":1.5, "matrix": [4, 0]}, + {"label":"Q", "x":1.5, "y":2, "matrix": [4, 1]}, + {"label":"W", "x":2.5, "y":2, "matrix": [4, 2]}, + {"label":"E", "x":3.5, "y":2, "matrix": [4, 3]}, + {"label":"R", "x":4.5, "y":2, "matrix": [4, 4]}, + {"label":"T", "x":5.5, "y":2, "matrix": [4, 5]}, + {"label":"Y", "x":6.5, "y":2, "matrix": [4, 6]}, + {"label":"U", "x":7.5, "y":2, "matrix": [4, 7]}, + {"label":"I", "x":8.5, "y":2, "matrix": [5, 7]}, + {"label":"O", "x":9.5, "y":2, "matrix": [5, 6]}, + {"label":"P", "x":10.5, "y":2, "matrix": [5, 5]}, + {"label":"^", "x":11.5, "y":2, "matrix": [5, 4]}, + {"label":"*", "x":12.5, "y":2, "matrix": [5, 3]}, + {"label":"Insert", "x":15, "y":2, "matrix": [5, 1]}, + {"label":"PgUp", "x":15, "y":2, "matrix": [5, 0]}, + + {"label":"Shift Lock", "x":0, "y":3, "w":1.75, "matrix": [6, 0]}, + {"label":"A", "x":1.75, "y":3, "matrix": [6, 1]}, + {"label":"S", "x":2.75, "y":3, "matrix": [6, 2]}, + {"label":"D", "x":3.75, "y":3, "matrix": [6, 3]}, + {"label":"F", "x":4.75, "y":3, "matrix": [6, 4]}, + {"label":"G", "x":5.75, "y":3, "matrix": [6, 5]}, + {"label":"H", "x":6.75, "y":3, "matrix": [6, 6]}, + {"label":"J", "x":7.75, "y":3, "matrix": [6, 7]}, + {"label":"K", "x":8.75, "y":3, "matrix": [7, 7]}, + {"label":"L", "x":9.75, "y":3, "matrix": [7, 6]}, + {"label":"\u00d1", "x":10.75, "y":3, "matrix": [7, 5]}, + {"label":"\u00a8", "x":11.75, "y":3, "matrix": [7, 4]}, + {"label":"ç", "x":12.75, "y":3, "matrix": [7, 3]}, + {"label":"Return", "x":13.75, "y":2, "w":1.25, "h":2, "matrix": [5, 2]}, + {"label":"Del", "x":15, "y":3, "matrix": [7, 1]}, + {"label":"PgDow", "x":16, "y":3, "matrix": [7, 0]}, + + {"label":"Shift", "x":0, "y":4, "w":1.25, "matrix": [8, 0]}, + {"label":">", "x":1.25, "y":4, "matrix": [8, 1]}, + {"label":"Z", "x":2.25, "y":4, "matrix": [8, 2]}, + {"label":"X", "x":3.25, "y":4, "matrix": [8, 3]}, + {"label":"C", "x":4.25, "y":4, "matrix": [8, 4]}, + {"label":"V", "x":5.25, "y":4, "matrix": [8, 5]}, + {"label":"B", "x":6.25, "y":4, "matrix": [8, 6]}, + {"label":"N", "x":7.25, "y":4, "matrix": [8, 7]}, + {"label":"M", "x":8.25, "y":4, "matrix": [9, 7]}, + {"label":";", "x":9.25, "y":4, "matrix": [9, 6]}, + {"label":":", "x":10.25, "y":4, "matrix": [9, 5]}, + {"label":"_", "x":11.25, "y":4, "matrix": [9, 4]}, + {"label":"Shift", "x":12.25, "y":4, "w":2.75, "matrix": [9, 3]}, + {"label":"Up", "x":15, "y":4, "matrix": [9, 1]}, + {"label":"Fn", "x":16, "y":4, "matrix": [9, 0]}, + + {"label":"Ctrl", "x":0, "y":5, "w":1.25, "matrix": [10, 0]}, + {"label":"Mod", "x":1.25, "y":5, "w":1.25, "matrix": [10, 1]}, + {"label":"Alt", "x":2.25, "y":5, "w":1.25, "matrix": [10, 2]}, + {"label":"Space", "x":3.5, "y":5, "w":6.5, "matrix": [10, 6]}, + {"label":"AltGr", "x":10, "y":5, "w":1.25, "matrix": [11, 5]}, + {"label":"Menu", "x":11, "y":5, "w":1.25, "matrix": [11, 4]}, + {"label":"Ctrl", "x":12, "y":5, "w":1.25, "matrix": [11, 3]}, + {"label":"Left", "x":13, "y":5, "matrix": [11, 2]}, + {"label":"Bottom", "x":14, "y":5, "matrix": [11, 1]}, + {"label":"Right", "x":15, "y":5, "matrix": [11, 0]} + ] + },"LAYOUT_ansi": { + "layout": [ + {"label":"esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"F1", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"F2", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"F3", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"F4", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"F5", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"F6", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"F7", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"F8", "x":8, "y":0, "matrix": [1, 7]}, + {"label":"F9", "x":9, "y":0, "matrix": [1, 6]}, + {"label":"F10", "x":10, "y":0, "matrix": [1, 5]}, + {"label":"F11", "x":11, "y":0, "matrix": [1, 4]}, + {"label":"F12", "x":12, "y":0, "matrix": [1, 3]}, + {"label":"PrtScr", "x":13, "y":0, "matrix": [1, 2]}, + {"label":"ScrollLock", "x":14, "y":0, "matrix": [1, 1]}, + {"label":"Pause", "x":15, "y":0, "matrix": [1, 0]}, + + {"label":"º", "x":0, "y":1, "matrix": [2, 0]}, + {"label":"1", "x":1, "y":1, "matrix": [2, 1]}, + {"label":"2", "x":2, "y":1, "matrix": [2, 2]}, + {"label":"3", "x":3, "y":1, "matrix": [2, 3]}, + {"label":"4", "x":4, "y":1, "matrix": [2, 4]}, + {"label":"5", "x":5, "y":1, "matrix": [2, 5]}, + {"label":"6", "x":6, "y":1, "matrix": [2, 6]}, + {"label":"7", "x":7, "y":1, "matrix": [2, 7]}, + {"label":"8", "x":8, "y":1, "matrix": [3, 7]}, + {"label":"9", "x":9, "y":1, "matrix": [3, 6]}, + {"label":"0", "x":10, "y":1, "matrix": [3, 5]}, + {"label":"-", "x":11, "y":1, "matrix": [3, 4]}, + {"label":"=", "x":12, "y":1, "matrix": [3, 3]}, + {"label":"Backspace", "x":13, "y":1, "matrix": [3, 2], "w":2}, + {"label":"Home", "x":15, "y":1, "matrix": [3, 1]}, + {"label":"End", "x":16, "y":1, "matrix": [3, 0]}, + + {"label":"Tab", "x":0, "y":2, "w":1.5, "matrix": [4, 0]}, + {"label":"Q", "x":1.5, "y":2, "matrix": [4, 1]}, + {"label":"W", "x":2.5, "y":2, "matrix": [4, 2]}, + {"label":"E", "x":3.5, "y":2, "matrix": [4, 3]}, + {"label":"R", "x":4.5, "y":2, "matrix": [4, 4]}, + {"label":"T", "x":5.5, "y":2, "matrix": [4, 5]}, + {"label":"Y", "x":6.5, "y":2, "matrix": [4, 6]}, + {"label":"U", "x":7.5, "y":2, "matrix": [4, 7]}, + {"label":"I", "x":8.5, "y":2, "matrix": [5, 7]}, + {"label":"O", "x":9.5, "y":2, "matrix": [5, 6]}, + {"label":"P", "x":10.5, "y":2, "matrix": [5, 5]}, + {"label":"[", "x":11.5, "y":2, "matrix": [5, 4]}, + {"label":"]", "x":12.5, "y":2, "matrix": [5, 3]}, + {"label":"|", "x":13.75, "y":2, "w":1.25, "matrix": [5, 2]}, + {"label":"Insert", "x":15, "y":2, "matrix": [5, 1]}, + {"label":"PgUp", "x":15, "y":2, "matrix": [5, 0]}, + + {"label":"Shift Lock", "x":0, "y":3, "w":1.75, "matrix": [6, 0]}, + {"label":"A", "x":1.75, "y":3, "matrix": [6, 1]}, + {"label":"S", "x":2.75, "y":3, "matrix": [6, 2]}, + {"label":"D", "x":3.75, "y":3, "matrix": [6, 3]}, + {"label":"F", "x":4.75, "y":3, "matrix": [6, 4]}, + {"label":"G", "x":5.75, "y":3, "matrix": [6, 5]}, + {"label":"H", "x":6.75, "y":3, "matrix": [6, 6]}, + {"label":"J", "x":7.75, "y":3, "matrix": [6, 7]}, + {"label":"K", "x":8.75, "y":3, "matrix": [7, 7]}, + {"label":"L", "x":9.75, "y":3, "matrix": [7, 6]}, + {"label":";", "x":10.75, "y":3, "matrix": [7, 5]}, + {"label":"\u00a8", "x":11.75, "y":3, "matrix": [7, 4]}, + {"label":"Return", "x":12.75, "y":3, "w":2.25, "matrix": [7, 3]}, + {"label":"Del", "x":15, "y":3, "matrix": [7, 1]}, + {"label":"PgDow", "x":16, "y":3, "matrix": [7, 0]}, + + {"label":"Shift", "x":0, "y":4, "w":2.25, "matrix": [8, 0]}, + {"label":"Z", "x":2.25, "y":4, "matrix": [8, 2]}, + {"label":"X", "x":3.25, "y":4, "matrix": [8, 3]}, + {"label":"C", "x":4.25, "y":4, "matrix": [8, 4]}, + {"label":"V", "x":5.25, "y":4, "matrix": [8, 5]}, + {"label":"B", "x":6.25, "y":4, "matrix": [8, 6]}, + {"label":"N", "x":7.25, "y":4, "matrix": [8, 7]}, + {"label":"M", "x":8.25, "y":4, "matrix": [9, 7]}, + {"label":";", "x":9.25, "y":4, "matrix": [9, 6]}, + {"label":":", "x":10.25, "y":4, "matrix": [9, 5]}, + {"label":"_", "x":11.25, "y":4, "matrix": [9, 4]}, + {"label":"Shift", "x":12.25, "y":4, "w":2.75, "matrix": [9, 3]}, + {"label":"Up", "x":15, "y":4, "matrix": [9, 1]}, + {"label":"Fn", "x":16, "y":4, "matrix": [9, 0]}, + + {"label":"Ctrl", "x":0, "y":5, "w":1.25, "matrix": [10, 0]}, + {"label":"Mod", "x":1.25, "y":5, "w":1.25, "matrix": [10, 1]}, + {"label":"Alt", "x":2.25, "y":5, "w":1.25, "matrix": [10, 2]}, + {"label":"Space", "x":3.5, "y":5, "w":6.5, "matrix": [10, 6]}, + {"label":"AltGr", "x":10, "y":5, "w":1.25, "matrix": [11, 5]}, + {"label":"Menu", "x":11, "y":5, "w":1.25, "matrix": [11, 4]}, + {"label":"Ctrl", "x":12, "y":5, "w":1.25, "matrix": [11, 3]}, + {"label":"Left", "x":13, "y":5, "matrix": [11, 2]}, + {"label":"Bottom", "x":14, "y":5, "matrix": [11, 1]}, + {"label":"Right", "x":15, "y":5, "matrix": [11, 0]} + ] + },"LAYOUT_hybrid": { + "layout": [ + {"label":"esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"F1", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"F2", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"F3", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"F4", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"F5", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"F6", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"F7", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"F8", "x":8, "y":0, "matrix": [1, 7]}, + {"label":"F9", "x":9, "y":0, "matrix": [1, 6]}, + {"label":"F10", "x":10, "y":0, "matrix": [1, 5]}, + {"label":"F11", "x":11, "y":0, "matrix": [1, 4]}, + {"label":"F12", "x":12, "y":0, "matrix": [1, 3]}, + {"label":"PrtScr", "x":13, "y":0, "matrix": [1, 2]}, + {"label":"ScrollLock", "x":14, "y":0, "matrix": [1, 1]}, + {"label":"Pause", "x":15, "y":0, "matrix": [1, 0]}, + + {"label":"º", "x":0, "y":1, "matrix": [2, 0]}, + {"label":"1", "x":1, "y":1, "matrix": [2, 1]}, + {"label":"2", "x":2, "y":1, "matrix": [2, 2]}, + {"label":"3", "x":3, "y":1, "matrix": [2, 3]}, + {"label":"4", "x":4, "y":1, "matrix": [2, 4]}, + {"label":"5", "x":5, "y":1, "matrix": [2, 5]}, + {"label":"6", "x":6, "y":1, "matrix": [2, 6]}, + {"label":"7", "x":7, "y":1, "matrix": [2, 7]}, + {"label":"8", "x":8, "y":1, "matrix": [3, 7]}, + {"label":"9", "x":9, "y":1, "matrix": [3, 6]}, + {"label":"0", "x":10, "y":1, "matrix": [3, 5]}, + {"label":"-", "x":11, "y":1, "matrix": [3, 4]}, + {"label":"=", "x":12, "y":1, "matrix": [3, 3]}, + {"label":"Backspace", "x":13, "y":1, "matrix": [3, 2], "w":2}, + {"label":"Home", "x":15, "y":1, "matrix": [3, 1]}, + {"label":"End", "x":16, "y":1, "matrix": [3, 0]}, + + {"label":"Tab", "x":0, "y":2, "w":1.5, "matrix": [4, 0]}, + {"label":"Q", "x":1.5, "y":2, "matrix": [4, 1]}, + {"label":"W", "x":2.5, "y":2, "matrix": [4, 2]}, + {"label":"E", "x":3.5, "y":2, "matrix": [4, 3]}, + {"label":"R", "x":4.5, "y":2, "matrix": [4, 4]}, + {"label":"T", "x":5.5, "y":2, "matrix": [4, 5]}, + {"label":"Y", "x":6.5, "y":2, "matrix": [4, 6]}, + {"label":"U", "x":7.5, "y":2, "matrix": [4, 7]}, + {"label":"I", "x":8.5, "y":2, "matrix": [5, 7]}, + {"label":"O", "x":9.5, "y":2, "matrix": [5, 6]}, + {"label":"P", "x":10.5, "y":2, "matrix": [5, 5]}, + {"label":"[", "x":11.5, "y":2, "matrix": [5, 4]}, + {"label":"]", "x":12.5, "y":2, "matrix": [5, 3]}, + {"label":"|", "x":13.75, "y":2, "w":1.25, "matrix": [5, 2]}, + {"label":"Insert", "x":15, "y":2, "matrix": [5, 1]}, + {"label":"PgUp", "x":15, "y":2, "matrix": [5, 0]}, + + {"label":"Shift Lock", "x":0, "y":3, "w":1.75, "matrix": [6, 0]}, + {"label":"A", "x":1.75, "y":3, "matrix": [6, 1]}, + {"label":"S", "x":2.75, "y":3, "matrix": [6, 2]}, + {"label":"D", "x":3.75, "y":3, "matrix": [6, 3]}, + {"label":"F", "x":4.75, "y":3, "matrix": [6, 4]}, + {"label":"G", "x":5.75, "y":3, "matrix": [6, 5]}, + {"label":"H", "x":6.75, "y":3, "matrix": [6, 6]}, + {"label":"J", "x":7.75, "y":3, "matrix": [6, 7]}, + {"label":"K", "x":8.75, "y":3, "matrix": [7, 7]}, + {"label":"L", "x":9.75, "y":3, "matrix": [7, 6]}, + {"label":";", "x":10.75, "y":3, "matrix": [7, 5]}, + {"label":"\u00a8", "x":11.75, "y":3, "matrix": [7, 4]}, + {"label":"Return", "x":12.75, "y":3, "w":2.25, "matrix": [7, 3]}, + {"label":"Del", "x":15, "y":3, "matrix": [7, 1]}, + {"label":"PgDow", "x":16, "y":3, "matrix": [7, 0]}, + + {"label":"Shift", "x":0, "y":4, "w":1.25, "matrix": [8, 0]}, + {"label":">", "x":1.25, "y":4, "matrix": [8, 1]}, + {"label":"Z", "x":2.25, "y":4, "matrix": [8, 2]}, + {"label":"X", "x":3.25, "y":4, "matrix": [8, 3]}, + {"label":"C", "x":4.25, "y":4, "matrix": [8, 4]}, + {"label":"V", "x":5.25, "y":4, "matrix": [8, 5]}, + {"label":"B", "x":6.25, "y":4, "matrix": [8, 6]}, + {"label":"N", "x":7.25, "y":4, "matrix": [8, 7]}, + {"label":"M", "x":8.25, "y":4, "matrix": [9, 7]}, + {"label":";", "x":9.25, "y":4, "matrix": [9, 6]}, + {"label":":", "x":10.25, "y":4, "matrix": [9, 5]}, + {"label":"_", "x":11.25, "y":4, "matrix": [9, 4]}, + {"label":"Shift", "x":12.25, "y":4, "w":2.75, "matrix": [9, 3]}, + {"label":"Up", "x":15, "y":4, "matrix": [9, 1]}, + {"label":"Fn", "x":16, "y":4, "matrix": [9, 0]}, + + {"label":"Ctrl", "x":0, "y":5, "w":1.25, "matrix": [10, 0]}, + {"label":"Mod", "x":1.25, "y":5, "w":1.25, "matrix": [10, 1]}, + {"label":"Alt", "x":2.25, "y":5, "w":1.25, "matrix": [10, 2]}, + {"label":"Space", "x":3.5, "y":5, "w":6.5, "matrix": [10, 6]}, + {"label":"AltGr", "x":10, "y":5, "w":1.25, "matrix": [11, 5]}, + {"label":"Menu", "x":11, "y":5, "w":1.25, "matrix": [11, 4]}, + {"label":"Ctrl", "x":12, "y":5, "w":1.25, "matrix": [11, 3]}, + {"label":"Left", "x":13, "y":5, "matrix": [11, 2]}, + {"label":"Bottom", "x":14, "y":5, "matrix": [11, 1]}, + {"label":"Right", "x":15, "y":5, "matrix": [11, 0]} + ] + } + } +} diff --git a/keyboards/rastersoft/minitkl/keymaps/ansi/keymap.c b/keyboards/rastersoft/minitkl/keymaps/ansi/keymap.c new file mode 100644 index 00000000000..fce96e6a05e --- /dev/null +++ b/keyboards/rastersoft/minitkl/keymaps/ansi/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 Raster Software Vigo + * + * This 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_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_HOME, 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_INS, 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, LT(1, KC_APP), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, RGB_TOG, RGB_MODE_FORWARD, RGB_MODE_REVERSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLD, KC_VOLU + ), +}; diff --git a/keyboards/rastersoft/minitkl/keymaps/ansi/readme.md b/keyboards/rastersoft/minitkl/keymaps/ansi/readme.md new file mode 100644 index 00000000000..7b3324b99c5 --- /dev/null +++ b/keyboards/rastersoft/minitkl/keymaps/ansi/readme.md @@ -0,0 +1,5 @@ +# The ANSI keymap for MiniTKL + +![keymap](https://images2.imgbox.com/2e/e5/vj7f99XL_o.png) + +The `Fn` key trigger `KC_APP` when tapped, and activate Layer 1 when held. diff --git a/keyboards/rastersoft/minitkl/keymaps/default/keymap.c b/keyboards/rastersoft/minitkl/keymaps/default/keymap.c new file mode 100644 index 00000000000..12d9548433a --- /dev/null +++ b/keyboards/rastersoft/minitkl/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 Raster Software Vigo + * + * This 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_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_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_INS, 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_DEL, 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, LT(1, KC_APP), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, RGB_TOG, RGB_MODE_FORWARD, RGB_MODE_REVERSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLD, KC_VOLU + ), +}; diff --git a/keyboards/rastersoft/minitkl/keymaps/default/readme.md b/keyboards/rastersoft/minitkl/keymaps/default/readme.md new file mode 100644 index 00000000000..6962acb70b4 --- /dev/null +++ b/keyboards/rastersoft/minitkl/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# The default keymap for MiniTKL + +![keymap](https://images2.imgbox.com/53/28/YxGS3GJT_o.png) + +The `Fn` key trigger `KC_APP` when tapped, and activate Layer 1 when held. diff --git a/keyboards/rastersoft/minitkl/keymaps/hybrid/keymap.c b/keyboards/rastersoft/minitkl/keymaps/hybrid/keymap.c new file mode 100644 index 00000000000..a65df705739 --- /dev/null +++ b/keyboards/rastersoft/minitkl/keymaps/hybrid/keymap.c @@ -0,0 +1,37 @@ +/* + * Copyright 2023 Raster Software Vigo + * + * This 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_hybrid( + 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_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_HOME, 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_NUHS, KC_INS, 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_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, LT(1, KC_APP), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_hybrid( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, RGB_TOG, RGB_MODE_FORWARD, RGB_MODE_REVERSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLD, KC_VOLU + ), +}; diff --git a/keyboards/rastersoft/minitkl/keymaps/hybrid/readme.md b/keyboards/rastersoft/minitkl/keymaps/hybrid/readme.md new file mode 100644 index 00000000000..121f6277f2c --- /dev/null +++ b/keyboards/rastersoft/minitkl/keymaps/hybrid/readme.md @@ -0,0 +1,11 @@ +# The HYBRID keymap for MiniTKL + +![keymap](https://images2.imgbox.com/00/22/vjrqgfHy_o.png) + +This keymap is designed to be able to have an ISO keyboard with the ANSI Return +key. This is useful in, at least, two cases: + +* some programmers prefer the ANSI key, but want to use European languages. +* some keycaps come without ISO return key, even for European languages layouts. + +The `Fn` key trigger `KC_APP` when tapped, and activate Layer 1 when held. diff --git a/keyboards/rastersoft/minitkl/minitkl.c b/keyboards/rastersoft/minitkl/minitkl.c new file mode 100644 index 00000000000..3d5135b332f --- /dev/null +++ b/keyboards/rastersoft/minitkl/minitkl.c @@ -0,0 +1,54 @@ +/* + * Copyright 2023 Raster Software Vigo + * + * This 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" + + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, 85,255,192} // not-so-bright HSV_GREEN for CAPS LOCK +); +const rgblight_segment_t PROGMEM my_scroll_lock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_RED} // HSV_RED for SCROLL LOCK +); +const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_ORANGE} // HSV_ORANGE for Fn key pressed +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, + my_scroll_lock_layer, + my_fn_layer +); + +void keyboard_post_init_kb(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; + 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); // all LEDs green in caps lock + rgblight_set_layer_state(1, led_state.scroll_lock); // all LEDs red in scroll lock + } + return true; +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + rgblight_set_layer_state(2, layer_state_cmp(state, 1)); // all LEDs orange if FN is pressed + return layer_state_set_user(state); +} diff --git a/keyboards/rastersoft/minitkl/readme.md b/keyboards/rastersoft/minitkl/readme.md new file mode 100644 index 00000000000..e2f75d39890 --- /dev/null +++ b/keyboards/rastersoft/minitkl/readme.md @@ -0,0 +1,31 @@ +# MiniTKL + +![MiniTKL](https://images2.imgbox.com/53/28/YxGS3GJT_o.png) + +A compact TenKeyLess keyboard. + +* Keyboard maintainer: [Sergio Costas](https://github.com/rastersoft) +* Hardware supported: ISO version. ANSI will be added in a future. +* Hardware Availability: it's a build-yourself keyboard. + +Make example for this keyboard (after setting up your build environment): + + make rastersoft/minitkl:default + +Flashing example for this keyboard: + + make rastersoft/minitkl:default:flash + +![PCB](https://images2.imgbox.com/84/b3/GnPfMO94_o.png) + +![Result](https://images2.imgbox.com/78/90/rM5iLSdx_o.jpg) + +The default layout is ISO. Replace 'default' with 'ansi' for ANSI layout, or 'hybrid' for the ANSI/ISO hybrid layout. + +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 + +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead + +More info: [gitlab.com/rastersoft/full-ten-keyless](https://gitlab.com/rastersoft/full-ten-keyless) diff --git a/keyboards/rastersoft/minitkl/rules.mk b/keyboards/rastersoft/minitkl/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/rastersoft/minitkl/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/rate/pistachio/rev1/config.h b/keyboards/rate/pistachio/rev1/config.h index cf7e2cdfb02..cad548df8e6 100644 --- a/keyboards/rate/pistachio/rev1/config.h +++ b/keyboards/rate/pistachio/rev1/config.h @@ -19,13 +19,7 @@ along with this program. If not, see . #define USE_I2C -/* ws2812 RGB LED */ -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 1, 1 } -#define RGBLED_NUM 2 #define RGBLIGHT_LAYERS -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 diff --git a/keyboards/rate/pistachio/rev1/info.json b/keyboards/rate/pistachio/rev1/info.json index a50ae8b9919..2bec0c52af2 100644 --- a/keyboards/rate/pistachio/rev1/info.json +++ b/keyboards/rate/pistachio/rev1/info.json @@ -1,4 +1,9 @@ { + "rgblight": { + "hue_steps": 10, + "led_count": 2, + "split_count": [1, 1] + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/rate/pistachio/rev2/config.h b/keyboards/rate/pistachio/rev2/config.h index 5ac0b8fbfa4..8b5dcbc9f49 100644 --- a/keyboards/rate/pistachio/rev2/config.h +++ b/keyboards/rate/pistachio/rev2/config.h @@ -22,13 +22,7 @@ along with this program. If not, see . /* Split hand configration */ #define SPLIT_HAND_MATRIX_GRID D4,D3 -/* ws2812 RGB LED */ -#define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 38, 46 } -#define RGBLED_NUM 84 #define RGBLIGHT_LAYERS -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 diff --git a/keyboards/rate/pistachio/rev2/info.json b/keyboards/rate/pistachio/rev2/info.json index a1ea3be3cb3..9f0c169b873 100644 --- a/keyboards/rate/pistachio/rev2/info.json +++ b/keyboards/rate/pistachio/rev2/info.json @@ -3,7 +3,10 @@ "pin": "D2" }, "rgblight": { - "max_brightness": 195 + "hue_steps": 10, + "led_count": 84, + "max_brightness": 195, + "split_count": [38, 46] }, "matrix_pins": { "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4", "D3"], diff --git a/keyboards/rate/pistachio_mp/config.h b/keyboards/rate/pistachio_mp/config.h index 25aac817da7..eaa46500a1f 100644 --- a/keyboards/rate/pistachio_mp/config.h +++ b/keyboards/rate/pistachio_mp/config.h @@ -17,9 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 3 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 #else diff --git a/keyboards/rate/pistachio_mp/info.json b/keyboards/rate/pistachio_mp/info.json index 07943e5ca32..a37b55b6aba 100644 --- a/keyboards/rate/pistachio_mp/info.json +++ b/keyboards/rate/pistachio_mp/info.json @@ -9,6 +9,10 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "hue_steps": 10, + "led_count": 3 + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/rate/pistachio_mp/keymaps/default/keymap.c b/keyboards/rate/pistachio_mp/keymaps/default/keymap.c index 86f88d91439..e73abd09eb8 100644 --- a/keyboards/rate/pistachio_mp/keymaps/default/keymap.c +++ b/keyboards/rate/pistachio_mp/keymaps/default/keymap.c @@ -41,16 +41,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} -#endif diff --git a/keyboards/rate/pistachio_mp/keymaps/via/keymap.c b/keyboards/rate/pistachio_mp/keymaps/via/keymap.c index f459a769702..5e4dc36887f 100644 --- a/keyboards/rate/pistachio_mp/keymaps/via/keymap.c +++ b/keyboards/rate/pistachio_mp/keymaps/via/keymap.c @@ -23,29 +23,10 @@ enum layer_names { _RESERVE_1 }; -static uint8_t encoder_state = 0; -static const keypos_t ENC_CW = {.row = 3, .col = 3}; -static const keypos_t ENC_CCW = {.row = 4, .col = 1}; - -#define LAYOUT_via( \ - ECW,ECCW, K07, \ - K00, K01, K02, K03, \ - K04, K05, K06, \ - K08, K09, K10, K11, \ - K12, K13, K14, \ - K15, K16, K17 ) { \ - { K00, K01, K02, K03 }, \ - { K04, K05, K06, K07 }, \ - { K08, K09, K10, K11 }, \ - { K12, K13, K14, ECCW }, \ - { K15, ECW, K16, K17 }, \ -} - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT_via( - KC_VOLU,KC_VOLD,KC_MPLY, + [_BASE] = LAYOUT( + KC_MPLY, LT(_FN, KC_NUM), KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_PPLS, @@ -53,8 +34,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT ), /* Fn */ - [_FN] = LAYOUT_via( - KC_VOLU,KC_VOLD,KC_NO, + [_FN] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, @@ -62,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO ), /* Reserve */ - [_RESERVE_0] = LAYOUT_via( - KC_VOLU,KC_VOLD,KC_TRNS, + [_RESERVE_0] = 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, @@ -71,8 +52,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS ), /* Reserve */ - [_RESERVE_1] = LAYOUT_via( - KC_VOLU,KC_VOLD,KC_TRNS, + [_RESERVE_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, @@ -81,43 +62,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -#ifdef ENCODER_ENABLE -void encoder_action_unregister(void) { - if (encoder_state) { - keyevent_t encoder_event = (keyevent_t) { - .key = encoder_state >> 1 ? ENC_CW : ENC_CCW, - .pressed = false, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state = 0; - action_exec(encoder_event); - } - return; -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? ENC_CW : ENC_CCW, - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); - return; -} - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); - return; -} - -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; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, }; #endif diff --git a/keyboards/rate/pistachio_mp/keymaps/via/rules.mk b/keyboards/rate/pistachio_mp/keymaps/via/rules.mk index 036bd6d1c3e..f1adcab005e 100644 --- a/keyboards/rate/pistachio_mp/keymaps/via/rules.mk +++ b/keyboards/rate/pistachio_mp/keymaps/via/rules.mk @@ -1 +1,2 @@ -VIA_ENABLE = yes \ No newline at end of file +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rate/pistachio_pro/keymaps/default/keymap.c b/keyboards/rate/pistachio_pro/keymaps/default/keymap.c index 5a543ef11cc..a757bcce326 100644 --- a/keyboards/rate/pistachio_pro/keymaps/default/keymap.c +++ b/keyboards/rate/pistachio_pro/keymaps/default/keymap.c @@ -91,20 +91,6 @@ bool oled_task_user(void) { return false; } -/* Encoder */ -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - - return true; -} - /* Keyboard */ void keyboard_post_init_user(void) { bme280_init(); diff --git a/keyboards/rate/pistachio_pro/keymaps/via/keymap.c b/keyboards/rate/pistachio_pro/keymaps/via/keymap.c index b5b8e3c4404..30156f08980 100644 --- a/keyboards/rate/pistachio_pro/keymaps/via/keymap.c +++ b/keyboards/rate/pistachio_pro/keymaps/via/keymap.c @@ -26,54 +26,34 @@ enum layer_names { _RESERVE_1 }; -static uint8_t encoder_state = 0; -static const keypos_t ENC_CW = {.row = 0, .col = 14 }; -static const keypos_t ENC_CCW = {.row = 0, .col = 15 }; - -#define LAYOUT_via( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, ENC_CW, ENC_CCW, k013, \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, k117, \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ - k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k413, \ - k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k510, k511, k512, k513 ) { \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, ENC_CW, ENC_CCW, KC_NO, KC_NO }, \ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k115, k116, k117 }, \ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, KC_NO, KC_NO }, \ - { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k413, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k510, k511, k512, k513, KC_NO, KC_NO, KC_NO, KC_NO } \ -} - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT_via( - 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_MPLY, + [_BASE] = 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_MPLY, JP_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, 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, JP_AT, JP_LBRC, KC_DEL, KC_END, KC_PGDN, JP_EISU, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, KC_SPC, LT(_FN, JP_HENK), JP_KANA, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_FN] = LAYOUT_via( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,KC_VOLD,KC_MPLY, + [_FN] = 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, JP_DOT, JP_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_RESERVE_0] = LAYOUT_via( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,KC_VOLD,KC_MPLY, + [_RESERVE_0] = 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_RESERVE_1] = LAYOUT_via( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,KC_VOLD,KC_MPLY, + [_RESERVE_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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -129,40 +109,6 @@ bool oled_task_user(void) { return false; } -/* Encoder */ -void encoder_action_unregister(void) { - if (encoder_state) { - keyevent_t encoder_event = (keyevent_t) { - .key = encoder_state >> 1 ? ENC_CW : ENC_CCW, - .pressed = false, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state = 0; - action_exec(encoder_event); - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? ENC_CW : ENC_CCW, - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -void matrix_scan_user(void) { - encoder_action_unregister(); -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return false; -} - /* Keyboard */ void keyboard_post_init_user(void) { bme280_init(); @@ -179,3 +125,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/rate/pistachio_pro/keymaps/via/rules.mk b/keyboards/rate/pistachio_pro/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/rate/pistachio_pro/keymaps/via/rules.mk +++ b/keyboards/rate/pistachio_pro/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rate/pistachio_pro/rules.mk b/keyboards/rate/pistachio_pro/rules.mk index df27be46be3..7d8b50ef3fd 100644 --- a/keyboards/rate/pistachio_pro/rules.mk +++ b/keyboards/rate/pistachio_pro/rules.mk @@ -11,7 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes CUSTOM_MATRIX = lite diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/config.h b/keyboards/rationalist/ratio65_hotswap/rev_a/config.h deleted file mode 100644 index 17ec1a2babc..00000000000 --- a/keyboards/rationalist/ratio65_hotswap/rev_a/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -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 RGBLED_NUM 18 - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/info.json b/keyboards/rationalist/ratio65_hotswap/rev_a/info.json index c9fb81dad88..e53227ce7f0 100644 --- a/keyboards/rationalist/ratio65_hotswap/rev_a/info.json +++ b/keyboards/rationalist/ratio65_hotswap/rev_a/info.json @@ -8,6 +8,23 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/rationalist/ratio65_solder/rev_a/config.h b/keyboards/rationalist/ratio65_solder/rev_a/config.h deleted file mode 100644 index c3f781ab7c5..00000000000 --- a/keyboards/rationalist/ratio65_solder/rev_a/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -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 RGBLED_NUM 18 - -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - diff --git a/keyboards/rationalist/ratio65_solder/rev_a/info.json b/keyboards/rationalist/ratio65_solder/rev_a/info.json index a35fb509720..0ef22251029 100644 --- a/keyboards/rationalist/ratio65_solder/rev_a/info.json +++ b/keyboards/rationalist/ratio65_solder/rev_a/info.json @@ -8,6 +8,23 @@ "pid": "0x0002", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/recompile_keys/mio/config.h b/keyboards/recompile_keys/mio/config.h deleted file mode 100644 index 2a9f3d4187c..00000000000 --- a/keyboards/recompile_keys/mio/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2021 recompile keys - -This 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 RGBLED_NUM 8 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -# define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/recompile_keys/mio/info.json b/keyboards/recompile_keys/mio/info.json index 450cf1c3b0b..0456937cc5a 100644 --- a/keyboards/recompile_keys/mio/info.json +++ b/keyboards/recompile_keys/mio/info.json @@ -8,6 +8,24 @@ "pid": "0x4D41", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/rect44/config.h b/keyboards/rect44/config.h deleted file mode 100644 index 6fb0d430fbc..00000000000 --- a/keyboards/rect44/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2020-2021 koshinoya - * - * This 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 RGBLED_NUM 12 -# 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/rect44/info.json b/keyboards/rect44/info.json index bf985f6202f..2a127db8315 100644 --- a/keyboards/rect44/info.json +++ b/keyboards/rect44/info.json @@ -8,6 +8,21 @@ "pid": "0x4DD7", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/redox/rev1/config.h b/keyboards/redox/rev1/config.h index 5b44f7541f0..fdda27552df 100644 --- a/keyboards/redox/rev1/config.h +++ b/keyboards/redox/rev1/config.h @@ -22,10 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 14 // Number of LEDs - -#define RGBLIGHT_SPLIT // sync LEDs between RIGHT and LEFT hand - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/redox/rev1/info.json b/keyboards/redox/rev1/info.json index 908404466a9..c0c5ce6e1a6 100644 --- a/keyboards/redox/rev1/info.json +++ b/keyboards/redox/rev1/info.json @@ -8,6 +8,10 @@ "pid": "0x5244", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 14, + "split": true + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/redragon/k667/config.h b/keyboards/redragon/k667/config.h new file mode 100644 index 00000000000..e17865a4039 --- /dev/null +++ b/keyboards/redragon/k667/config.h @@ -0,0 +1,28 @@ +/* Copyright 2023 temp4gh + * + * This 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 DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_2 0b1010011 + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 45 +#define DRIVER_2_LED_TOTAL 45 + +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) + diff --git a/keyboards/redragon/k667/halconf.h b/keyboards/redragon/k667/halconf.h new file mode 100644 index 00000000000..f1dae7232ed --- /dev/null +++ b/keyboards/redragon/k667/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 temp4gh + * + * This 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_I2C +#define HAL_USE_I2C TRUE diff --git a/keyboards/redragon/k667/info.json b/keyboards/redragon/k667/info.json new file mode 100644 index 00000000000..80d61953120 --- /dev/null +++ b/keyboards/redragon/k667/info.json @@ -0,0 +1,234 @@ +{ + "manufacturer": "redragon", + "keyboard_name": "k667", + "bootloader": "stm32duino", + "bootmagic": { + "matrix": [1, 0] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B5", "pin_b": "B4"} + ] + }, + "features": { + "bootmagic": true, + "console": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "B8", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A6", "A7", "C4", "C5", "B0", "B1", "C6", "C7", "C8", "C9", "A8", "A9", "A10", "A13", "A14", "A15"], + "rows": ["A0", "A1", "A2", "A3", "A4", "A5"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_wave": true, + "pixel_flow": true + }, + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 2, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 2, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 2, "flags": 4}, + {"matrix": [0, 6], "x": 95, "y": 2, "flags": 4}, + {"matrix": [0, 7], "x": 109, "y": 2, "flags": 4}, + {"matrix": [0, 8], "x": 122, "y": 2, "flags": 4}, + {"matrix": [0, 9], "x": 136, "y": 2, "flags": 4}, + {"matrix": [0, 10], "x": 157, "y": 2, "flags": 4}, + {"matrix": [0, 11], "x": 170, "y": 2, "flags": 4}, + {"matrix": [0, 12], "x": 184, "y": 2, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 2, "flags": 4}, + {"matrix": [0, 14], "x": 217, "y": 2, "flags": 4}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 14, "flags": 4}, + {"matrix": [1, 4], "x": 61, "y": 14, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 14, "flags": 4}, + {"matrix": [1, 6], "x": 89, "y": 14, "flags": 4}, + {"matrix": [1, 7], "x": 102, "y": 14, "flags": 4}, + {"matrix": [1, 8], "x": 116, "y": 14, "flags": 4}, + {"matrix": [1, 9], "x": 129, "y": 14, "flags": 4}, + {"matrix": [1, 10], "x": 143, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 157, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 170, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 190, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 217, "y": 14, "flags": 4}, + {"matrix": [2, 0], "x": 10, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 27, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 54, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 150, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 163, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 177, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 194, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 217, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 12, "y": 34, "flags": 4}, + {"matrix": [3, 1], "x": 30, "y": 34, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 58, "y": 34, "flags": 4}, + {"matrix": [3, 4], "x": 71, "y": 34, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 34, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 34, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 34, "flags": 4}, + {"matrix": [3, 8], "x": 126, "y": 34, "flags": 4}, + {"matrix": [3, 9], "x": 140, "y": 34, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 34, "flags": 4}, + {"matrix": [3, 11], "x": 167, "y": 34, "flags": 4}, + {"x": 180, "y": 34, "flags": 4}, + {"matrix": [3, 13], "x": 189, "y": 34, "flags": 4}, + {"matrix": [3, 14], "x": 217, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 44, "flags": 4}, + {"x": 24, "y": 44, "flags": 4}, + {"matrix": [4, 2], "x": 38, "y": 44, "flags": 4}, + {"matrix": [4, 3], "x": 51, "y": 44, "flags": 4}, + {"matrix": [4, 4], "x": 65, "y": 44, "flags": 4}, + {"matrix": [4, 5], "x": 78, "y": 44, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 44, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 44, "flags": 4}, + {"matrix": [4, 8], "x": 119, "y": 44, "flags": 4}, + {"matrix": [4, 9], "x": 133, "y": 44, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 44, "flags": 4}, + {"matrix": [4, 11], "x": 160, "y": 44, "flags": 4}, + {"matrix": [4, 12], "x": 179, "y": 44, "flags": 4}, + {"matrix": [4, 13], "x": 201, "y": 46, "flags": 4}, + {"matrix": [4, 14], "x": 217, "y": 44, "flags": 4}, + {"matrix": [5, 0], "x": 8, "y": 54, "flags": 4}, + {"matrix": [5, 1], "x": 25, "y": 54, "flags": 4}, + {"matrix": [5, 2], "x": 43, "y": 54, "flags": 4}, + {"x": 67, "y": 57, "flags": 4}, + {"x": 80, "y": 57, "flags": 4}, + {"x": 94, "y": 54, "flags": 4}, + {"matrix": [5, 6], "x": 107, "y": 57, "flags": 4}, + {"x": 120, "y": 57, "flags": 4}, + {"matrix": [5, 9], "x": 143, "y": 54, "flags": 4}, + {"matrix": [5, 10], "x": 157, "y": 54, "flags": 4}, + {"matrix": [5, 11], "x": 170, "y": 54, "flags": 4}, + {"matrix": [5, 12], "x": 187, "y": 56, "flags": 4}, + {"matrix": [5, 13], "x": 201, "y": 56, "flags": 4}, + {"matrix": [5, 14], "x": 214, "y": 56, "flags": 4}, + {"x": 207, "y": 23, "flags": 8}, + {"x": 207, "y": 27, "flags": 8} + ] + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x0021", + "vid": "0x369B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "END", "matrix": [0, 15], "x": 16.5, "y": 0}, + {"label": "GRV", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "MINS", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "EQL", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "BSPC", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"label": "HOME", "matrix": [1, 14], "x": 16.5, "y": 1.25}, + {"label": "TAB", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "LBRC", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "RBRC", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "BSLS", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "DEL", "matrix": [2, 14], "x": 16.5, "y": 2.25}, + {"label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": "SCLN", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "QUOT", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "ENT", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "PGUP", "matrix": [3, 14], "x": 16.5, "y": 3.25}, + {"label": "LSFT", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "COMM", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": "DOT", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "SLSH", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "RSFT", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "UP", "matrix": [4, 13], "x": 15.25, "y": 4.25}, + {"label": "PGDN", "matrix": [4, 14], "x": 16.5, "y": 4.25}, + {"label": "LCTL", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "LGUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "LALT", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "SPC", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "RALT", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "MO(1)", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "RCTL", "matrix": [5, 11], "x": 13, "y": 5.25, "w": 1.25}, + {"label": "LEFT", "matrix": [5, 12], "x": 14.25, "y": 5.25}, + {"label": "DOWN", "matrix": [5, 13], "x": 15.25, "y": 5.25}, + {"label": "RGHT", "matrix": [5, 14], "x": 16.5, "y": 5.25} + ] + } + } +} diff --git a/keyboards/redragon/k667/k667.c b/keyboards/redragon/k667/k667.c new file mode 100644 index 00000000000..81aeef44946 --- /dev/null +++ b/keyboards/redragon/k667/k667.c @@ -0,0 +1,112 @@ +/* Copyright 2023 temp4gh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + {0, G_1, I_1, H_1}, + {0, G_3, I_3, H_3}, + {0, G_4, I_4, H_4}, + {0, G_5, I_5, H_5}, + {0, G_6, I_6, H_6}, + {0, G_7, I_7, H_7}, + {0, G_8, I_8, H_8}, + {0, G_9, I_9, H_9}, + {0, G_10, I_10, H_10}, + {0, G_11, I_11, H_11}, + {0, G_12, I_12, H_12}, + {0, G_13, I_13, H_13}, + {0, G_14, I_14, H_14}, + {0, G_15, I_15, H_15}, + {0, D_1, F_1, E_1}, + {0, D_2, F_2, E_2}, + {0, D_3, F_3, E_3}, + {0, D_4, F_4, E_4}, + {0, D_5, F_5, E_5}, + {0, D_6, F_6, E_6}, + {0, D_7, F_7, E_7}, + {0, D_8, F_8, E_8}, + {0, D_9, F_9, E_9}, + {0, D_10, F_10, E_10}, + {0, D_11, F_11, E_11}, + {0, D_12, F_12, E_12}, + {0, D_13, F_13, E_13}, + {0, D_14, F_14, E_14}, + {0, D_15, F_15, E_15}, + {0, A_1, C_1, B_1}, + {0, A_2, C_2, B_2}, + {0, A_3, C_3, B_3}, + {0, A_4, C_4, B_4}, + {0, A_5, C_5, B_5}, + {0, A_6, C_6, B_6}, + {0, A_7, C_7, B_7}, + {0, A_8, C_8, B_8}, + {0, A_9, C_9, B_9}, + {0, A_10, C_10, B_10}, + {0, A_11, C_11, B_11}, + {0, A_12, C_12, B_12}, + {0, A_13, C_13, B_13}, + {0, A_14, C_14, B_14}, + {0, A_15, C_15, B_15}, + {1, G_1, I_1, H_1}, + {1, G_2, I_2, H_2}, + {1, G_3, I_3, H_3}, + {1, G_4, I_4, H_4}, + {1, G_5, I_5, H_5}, + {1, G_6, I_6, H_6}, + {1, G_7, I_7, H_7}, + {1, G_8, I_8, H_8}, + {1, G_9, I_9, H_9}, + {1, G_10, I_10, H_10}, + {1, G_11, I_11, H_11}, + {1, G_12, I_12, H_12}, + {1, G_13, I_13, H_13}, + {1, G_14, I_14, H_14}, + {1, G_15, I_15, H_15}, + {1, D_1, F_1, E_1}, + {1, D_2, F_2, E_2}, + {1, D_3, F_3, E_3}, + {1, D_4, F_4, E_4}, + {1, D_5, F_5, E_5}, + {1, D_6, F_6, E_6}, + {1, D_7, F_7, E_7}, + {1, D_8, F_8, E_8}, + {1, D_9, F_9, E_9}, + {1, D_10, F_10, E_10}, + {1, D_11, F_11, E_11}, + {1, D_12, F_12, E_12}, + {1, D_13, F_13, E_13}, + {1, D_14, F_14, E_14}, + {1, D_15, F_15, E_15}, + {1, A_1, C_1, B_1}, + {1, A_2, C_2, B_2}, + {1, A_3, C_3, B_3}, + {1, A_5, C_5, B_5}, + {1, A_6, C_6, B_6}, + {1, A_7, C_7, B_7}, + {1, A_8, C_8, B_8}, + {1, A_9, C_9, B_9}, + {1, A_10, C_10, B_10}, + {1, A_11, C_11, B_11}, + {1, A_12, C_12, B_12}, + {1, A_13, C_13, B_13}, + {1, A_14, C_14, B_14}, + {1, A_15, C_15, B_15}, + {0, G_2, I_2, H_2}, + {1, A_4, C_4, B_4} +}; +#endif diff --git a/keyboards/redragon/k667/keymaps/default/keymap.c b/keyboards/redragon/k667/keymaps/default/keymap.c new file mode 100644 index 00000000000..48fab8614b0 --- /dev/null +++ b/keyboards/redragon/k667/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2023 temp4gh + * + * This 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 layer_names +{ + _BASE, + _FnLay, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_END, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FnLay), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FnLay] = LAYOUT( + QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI + ) +}; diff --git a/keyboards/redragon/k667/mcuconf.h b/keyboards/redragon/k667/mcuconf.h new file mode 100644 index 00000000000..9187c76aad0 --- /dev/null +++ b/keyboards/redragon/k667/mcuconf.h @@ -0,0 +1,22 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + 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 + + http://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. +*/ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/redragon/k667/readme.md b/keyboards/redragon/k667/readme.md new file mode 100644 index 00000000000..71e5349ff64 --- /dev/null +++ b/keyboards/redragon/k667/readme.md @@ -0,0 +1,21 @@ +# K667 + +![k667](https://i.imgur.com/7K5h5Obh.jpg) + +A customizable 75% keyboard. + +- Keyboard Maintainer: [temp4gh](https://github.com/temp4gh) +- Hardware Supported: K667 PCB +- Hardware Availability: www.redragonzone.com + +Make example for this keyboard (after setting up your build environment): + + make redragon/k667:default + +Flashing example for this keyboard: + + make redragon/k667:default:flash + +**Reset Key**: Hold down the key located at *K10*, commonly programmed as *Grave* while plugging in the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/redragon/k667/rules.mk b/keyboards/redragon/k667/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/redragon/k667/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/retro_75/config.h b/keyboards/retro_75/config.h index a5d547936b2..1464cc5f23d 100644 --- a/keyboards/retro_75/config.h +++ b/keyboards/retro_75/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 18 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/retro_75/info.json b/keyboards/retro_75/info.json index 1b15ca5e805..2a3e249d473 100644 --- a/keyboards/retro_75/info.json +++ b/keyboards/retro_75/info.json @@ -8,6 +8,21 @@ "pid": "0x5275", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A9" }, diff --git a/keyboards/reversestudio/decadepad/config.h b/keyboards/reversestudio/decadepad/config.h index a730f35d8c6..69c6b57a35b 100644 --- a/keyboards/reversestudio/decadepad/config.h +++ b/keyboards/reversestudio/decadepad/config.h @@ -23,21 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/reversestudio/decadepad/info.json b/keyboards/reversestudio/decadepad/info.json index 3b56eb8c536..18ea68a9352 100644 --- a/keyboards/reversestudio/decadepad/info.json +++ b/keyboards/reversestudio/decadepad/info.json @@ -8,6 +8,23 @@ "pid": "0x4450", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/reviung/reviung33/config.h b/keyboards/reviung/reviung33/config.h index 269d01a9ee8..a0711511018 100644 --- a/keyboards/reviung/reviung33/config.h +++ b/keyboards/reviung/reviung33/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 5 -# define RGBLIGHT_HUE_STEP 16 -# define RGBLIGHT_SAT_STEP 16 -# define RGBLIGHT_VAL_STEP 16 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/reviung/reviung33/info.json b/keyboards/reviung/reviung33/info.json index d5dfa7061a1..d292748b2f7 100644 --- a/keyboards/reviung/reviung33/info.json +++ b/keyboards/reviung/reviung33/info.json @@ -8,6 +8,25 @@ "pid": "0x516D", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 5, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/reviung/reviung41/config.h b/keyboards/reviung/reviung41/config.h index 0269cf131b0..a0711511018 100644 --- a/keyboards/reviung/reviung41/config.h +++ b/keyboards/reviung/reviung41/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 11 - #define RGBLIGHT_HUE_STEP 16 - #define RGBLIGHT_SAT_STEP 16 - #define RGBLIGHT_VAL_STEP 16 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/reviung/reviung41/info.json b/keyboards/reviung/reviung41/info.json index 6344a3e53e1..f4a434db779 100644 --- a/keyboards/reviung/reviung41/info.json +++ b/keyboards/reviung/reviung41/info.json @@ -8,6 +8,25 @@ "pid": "0xDCCB", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 11, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/reviung/reviung41/keymaps/ciutadellla/keymap.c b/keyboards/reviung/reviung41/keymaps/ciutadellla/keymap.c index 98dda7fe199..a4279821ccc 100644 --- a/keyboards/reviung/reviung41/keymaps/ciutadellla/keymap.c +++ b/keyboards/reviung/reviung41/keymaps/ciutadellla/keymap.c @@ -265,7 +265,7 @@ * +-------------/ \--------------+ */ - [_ADJUST] = LAYOUT_reviung41(X(GRINNING_FACE), X(GRINNING_FACE_WITH_SWEAT), X(ROLLING_LAUGHING), X(WINKING_FACE), X(SMILING_FACE_HALO), X(SMILING_FACE_HEARTS), RGB_VAI, RGB_HUI, RGB_MOD, KC_BRIU, KC_MPLY, KC_VOLU, X(SMILING_FACE_HEART_EYES), X(FACE_BLOWING_KISS), X(FACE_ROLLING_EYES), X(PENSIVE_FACE), X(LOUDLY_CRYING_FACE), X(PILE_POO), RGB_VAD, RGB_HUD, RGB_RMOD, KC_BRID, KC_MSTP, KC_VOLD, X(THUMBSUP), X(THUMBSDOWN), X(CLAPPING_HANDS), X(EYES), X(MAN_FACEPALMING), X(GHOST), RGB_TOG, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + [_ADJUST] = LAYOUT_reviung41(UM(GRINNING_FACE), UM(GRINNING_FACE_WITH_SWEAT), UM(ROLLING_LAUGHING), UM(WINKING_FACE), UM(SMILING_FACE_HALO), UM(SMILING_FACE_HEARTS), RGB_VAI, RGB_HUI, RGB_MOD, KC_BRIU, KC_MPLY, KC_VOLU, UM(SMILING_FACE_HEART_EYES), UM(FACE_BLOWING_KISS), UM(FACE_ROLLING_EYES), UM(PENSIVE_FACE), UM(LOUDLY_CRYING_FACE), UM(PILE_POO), RGB_VAD, RGB_HUD, RGB_RMOD, KC_BRID, KC_MSTP, KC_VOLD, UM(THUMBSUP), UM(THUMBSDOWN), UM(CLAPPING_HANDS), UM(EYES), UM(MAN_FACEPALMING), UM(GHOST), RGB_TOG, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/reviung/reviung5/config.h b/keyboards/reviung/reviung5/config.h index d955973b258..4977d4b5872 100644 --- a/keyboards/reviung/reviung5/config.h +++ b/keyboards/reviung/reviung5/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 4 -# define RGBLIGHT_HUE_STEP 16 -# define RGBLIGHT_SAT_STEP 16 -# define RGBLIGHT_VAL_STEP 16 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/reviung/reviung5/info.json b/keyboards/reviung/reviung5/info.json index 59ca122b113..d3503be13e7 100644 --- a/keyboards/reviung/reviung5/info.json +++ b/keyboards/reviung/reviung5/info.json @@ -8,6 +8,25 @@ "pid": "0x4F0D", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/reviung/reviung53/config.h b/keyboards/reviung/reviung53/config.h index 5d55e83d358..321f116f92b 100644 --- a/keyboards/reviung/reviung53/config.h +++ b/keyboards/reviung/reviung53/config.h @@ -3,22 +3,6 @@ #pragma once -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 16 -#define RGBLIGHT_SAT_STEP 16 -#define RGBLIGHT_VAL_STEP 16 -#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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/reviung/reviung53/info.json b/keyboards/reviung/reviung53/info.json index d79d31ae9ea..6f0549d374e 100644 --- a/keyboards/reviung/reviung53/info.json +++ b/keyboards/reviung/reviung53/info.json @@ -8,6 +8,25 @@ "pid": "0x4E09", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/rgbkb/mun/config.h b/keyboards/rgbkb/mun/config.h index 5b411a8c529..fd2e366614c 100644 --- a/keyboards/rgbkb/mun/config.h +++ b/keyboards/rgbkb/mun/config.h @@ -9,8 +9,6 @@ #pragma once -#define MATRIX_IO_DELAY 5 - #define BUSY_WAIT #define BUSY_WAIT_INSTRUCTIONS 35 // Increase if two rows are pressed at the same time. #define GPIO_INPUT_PIN_DELAY 10 @@ -48,20 +46,6 @@ #define SPLIT_LED_STATE_ENABLE #define SPLIT_TRANSACTION_IDS_KB TOUCH_ENCODER_SYNC, RGB_MENU_SYNC -/* RGB LED Configuration */ -#define RGBLED_NUM 98 -#define RGBLED_SPLIT { 49, 49 } -#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 RGB_MATRIX_LED_COUNT 98 #define RGB_MATRIX_SPLIT { 49, 49 } #define RGB_MATRIX_CENTER { 128, 34 } @@ -135,7 +119,6 @@ #define TOUCH_UPDATE_INTERVAL 33 #define OLED_UPDATE_INTERVAL 33 -#define TAP_CODE_DELAY 5 #define WEAR_LEVELING_BACKING_SIZE 4096 #define WEAR_LEVELING_LOGICAL_SIZE 2048 diff --git a/keyboards/rgbkb/mun/keymaps/default/keymap.c b/keyboards/rgbkb/mun/keymaps/default/keymap.c index a1b9dcfe460..aa8ba1eba0f 100644 --- a/keyboards/rgbkb/mun/keymaps/default/keymap.c +++ b/keyboards/rgbkb/mun/keymaps/default/keymap.c @@ -66,9 +66,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| * | Ctrl | Win | Alt | RGBTOG | Adjust | Space | Bksp | | Enter | Space | Left | Down | Up | Right | Ctrl | * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' - * Encoder 1 Encoder 2 Encoder 3 Encoder 4 - * .-----------------------------------. .-----------------------------------. - * | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn | * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI | * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' @@ -80,7 +77,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, - KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_PGDN, KC_PGUP, KC_PGDN, KC_PGUP, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD ), @@ -91,7 +87,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -102,7 +97,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -113,7 +107,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TCH_TOG, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -124,7 +117,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -135,7 +127,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -146,7 +137,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -157,7 +147,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; @@ -251,3 +240,10 @@ bool oled_task_user(void) { oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [1 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/rgbkb/mun/keymaps/default/rules.mk b/keyboards/rgbkb/mun/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/rgbkb/mun/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c b/keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c index 8767edbb57c..4d62b95b963 100644 --- a/keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c +++ b/keyboards/rgbkb/mun/keymaps/peott-fr/keymap.c @@ -42,40 +42,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' */ [_BASE] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_END, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, MO(3), DEL_FUNC, SPC_LHND, SPC_LHND, BSP_FUNC, BSP_FUNC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, + SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, + KC_LCTL, KC_LGUI, KC_LALT, MO(3), DEL_FUNC, SPC_LHND, SPC_LHND, BSP_FUNC, BSP_FUNC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, // Here we have the encoder setup. Encoder 0 clockwise, Encoder 0 counter-clockwise, Encoder 1 clockwise, Encoder 1 counter-clockwise , then right side - KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_PGDN, KC_PGUP, KC_PGDN, KC_PGUP, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD, RGB_TOG, RGB_MOD + KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD, RGB_TOG, RGB_MOD ), [_LHAND] = LAYOUT( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, - KC_LSFT, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_RSFT, + KC_LSFT, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, // Encoders. - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_FUNC] = LAYOUT( - 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, 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, 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, // Encoders. - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), // Placeholder layer! [3] = LAYOUT( - 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_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_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, // Encoders. - 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 ) -}; \ No newline at end of file +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/rgbkb/mun/keymaps/peott-fr/rules.mk b/keyboards/rgbkb/mun/keymaps/peott-fr/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/rgbkb/mun/keymaps/peott-fr/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rgbkb/mun/keymaps/via/keymap.c b/keyboards/rgbkb/mun/keymaps/via/keymap.c index a1b9dcfe460..aa8ba1eba0f 100644 --- a/keyboards/rgbkb/mun/keymaps/via/keymap.c +++ b/keyboards/rgbkb/mun/keymaps/via/keymap.c @@ -66,9 +66,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| * | Ctrl | Win | Alt | RGBTOG | Adjust | Space | Bksp | | Enter | Space | Left | Down | Up | Right | Ctrl | * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' - * Encoder 1 Encoder 2 Encoder 3 Encoder 4 - * .-----------------------------------. .-----------------------------------. - * | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn | * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI | * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' @@ -80,7 +77,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, - KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_PGDN, KC_PGUP, KC_PGDN, KC_PGUP, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD ), @@ -91,7 +87,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -102,7 +97,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -113,7 +107,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TCH_TOG, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -124,7 +117,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -135,7 +127,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -146,7 +137,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -157,7 +147,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; @@ -251,3 +240,10 @@ bool oled_task_user(void) { oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [1 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/rgbkb/mun/keymaps/via/rules.mk b/keyboards/rgbkb/mun/keymaps/via/rules.mk index 40bded39919..74b4513b046 100644 --- a/keyboards/rgbkb/mun/keymaps/via/rules.mk +++ b/keyboards/rgbkb/mun/keymaps/via/rules.mk @@ -1 +1,2 @@ -VIA_ENABLE=yes \ No newline at end of file +VIA_ENABLE=yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c b/keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c index 960cc9266da..eefb59e676a 100644 --- a/keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c +++ b/keyboards/rgbkb/mun/keymaps/xulkal2/keymap.c @@ -46,9 +46,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| * | Ctrl- | Win | Alt | Del | Space | | ADJ | | FN | | Space | '" | Alt | App | Ctrl= | * '--------+--------+--------+--------|--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' - * Encoder 1 Encoder 2 Encoder 3 Encoder 4 - * .-----------------------------------. .-----------------------------------. - * | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn | * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI | * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' @@ -60,7 +57,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, SC_LCPO, KC_LGUI, KC_LALT, KC_DEL, KC_SPC, KC_NO, ADJ, FN, KC_NO, KC_SPC, KC_QUOTE,KC_RALT, KC_APP, SC_RCPC, - KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, MENU_DN, MENU_UP, MENU_DN, MENU_UP, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD ), @@ -76,9 +72,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| * | | | | | | | | | | | Play | Prev | Next | VolUp | VolDn | * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' - * Encoder 1 Encoder 2 Encoder 3 Encoder 4 - * .-----------------------------------. .-----------------------------------. - * | | | | | | | | | | * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| * | | | | | | Touch Encoder Touch Encoder | | | | | | * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' @@ -90,7 +83,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_RST, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLU, KC_VOLD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -120,7 +112,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; @@ -247,3 +238,11 @@ bool oled_task_user(void) { oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(MENU_DN, MENU_UP), ENCODER_CCW_CW(MENU_DN, MENU_UP) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk b/keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk index a087f669da4..e6b71e56d17 100644 --- a/keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk +++ b/keyboards/rgbkb/mun/keymaps/xulkal2/rules.mk @@ -1,3 +1,5 @@ MOUSEKEY_ENABLE = yes # using for mouse wheel up and down, more granular than page up/down -OPT_DEFS += -DRGB_UNLIMITED_POWER \ No newline at end of file +OPT_DEFS += -DRGB_UNLIMITED_POWER + +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rgbkb/mun/rev1/info.json b/keyboards/rgbkb/mun/rev1/info.json index 36b1ab00030..5d380de5c74 100644 --- a/keyboards/rgbkb/mun/rev1/info.json +++ b/keyboards/rgbkb/mun/rev1/info.json @@ -8,16 +8,33 @@ "pid": "0x3505", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 98, + "split_count": [49, 49], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A0", "B11", "B0", "B10", "B12", "B2", "A8"], - "rows": ["A1", "A3", "B3", "A13", "B15", null, null] + "rows": ["A1", "A3", "B3", "A13", "B15", null, null], + "io_delay": 5 }, "diode_direction": "COL2ROW", "encoder": { @@ -26,6 +43,9 @@ {"pin_a": "B9", "pin_b": "A15"} ] }, + "qmk": { + "tap_keycode_delay": 5 + }, "split": { "soft_serial_pin": "A9" }, @@ -114,16 +134,6 @@ {"matrix": [11, 1], "x": 12.5, "y": 4}, {"matrix": [11, 0], "x": 13.5, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5.5}, - {"matrix": [5, 1], "x": 1, "y": 5.5}, - {"matrix": [5, 2], "x": 2, "y": 5.5}, - {"matrix": [5, 3], "x": 3, "y": 5.5}, - - {"matrix": [12, 0], "x": 10.5, "y": 5.5}, - {"matrix": [12, 1], "x": 11.5, "y": 5.5}, - {"matrix": [12, 2], "x": 12.5, "y": 5.5}, - {"matrix": [12, 3], "x": 13.5, "y": 5.5}, - {"matrix": [6, 0], "x": 0, "y": 6.5}, {"matrix": [6, 1], "x": 1, "y": 6.5}, {"matrix": [6, 2], "x": 2, "y": 6.5}, diff --git a/keyboards/rgbkb/mun/rev1/rev1.c b/keyboards/rgbkb/mun/rev1/rev1.c index 564ce4dfb94..986916b4a98 100644 --- a/keyboards/rgbkb/mun/rev1/rev1.c +++ b/keyboards/rgbkb/mun/rev1/rev1.c @@ -12,25 +12,12 @@ #define NUMBER_OF_TOUCH_ENCODERS 2 #define TOUCH_ENCODER_OPTIONS TOUCH_SEGMENTS + 2 -#define NUMBER_OF_ENCODERS 4 -#define ENCODER_OPTIONS 2 - typedef struct PACKED { uint8_t r; uint8_t c; } encodermap_t; -// this maps encoders and then touch encoders to their respective electrical matrix entry -// mapping is row (y) then column (x) when looking at the electrical layout -const encodermap_t encoder_map[NUMBER_OF_ENCODERS][ENCODER_OPTIONS] = -{ - { { 5, 0 }, { 5, 1 } }, // Encoder 1 matrix entries - { { 5, 2 }, { 5, 3 } }, // Encoder 2 matrix entries - { { 12, 0 }, { 12, 1 } }, // Encoder 3 matrix entries - { { 12, 2 }, { 12, 3 } }, // Encoder 4 matrix entries -}; - -const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPTIONS] = +const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPTIONS] = { { { 6, 0 }, { 6, 1 }, { 6, 2 }, { 6, 3 }, { 6, 4 } }, // Touch Encoder 1 matrix entries { { 13, 0 }, { 13, 1 }, { 13, 2 }, { 13, 3 }, { 13, 4 } } // Touch Encoder 2 matrix entries @@ -44,24 +31,6 @@ static void process_encoder_matrix(encodermap_t pos) { action_exec(MAKE_KEYEVENT(pos.r, pos.c, false)); } -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) - return false; - - // Mapping clockwise (typically increase) to zero, and counter clockwise (decrease) to 1 - process_encoder_matrix(encoder_map[index][clockwise ? 0 : 1]); - return false; -} - -bool touch_encoder_update_kb(uint8_t index, bool clockwise) { - if (!touch_encoder_update_user(index, clockwise)) - return false; - - // Mapping clockwise (typically increase) to zero, and counter clockwise (decrease) to 1 - process_encoder_matrix(touch_encoder_map[index][clockwise ? 0 : 1]); - return false; -} - bool touch_encoder_tapped_kb(uint8_t index, uint8_t section) { if (!touch_encoder_tapped_user(index, section)) return false; diff --git a/keyboards/rgbkb/mun/rules.mk b/keyboards/rgbkb/mun/rules.mk index 0862bde4e54..18dfc8edf70 100644 --- a/keyboards/rgbkb/mun/rules.mk +++ b/keyboards/rgbkb/mun/rules.mk @@ -19,7 +19,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. RGB_MATRIX_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable the OLED Driver ENCODER_ENABLE = yes diff --git a/keyboards/rgbkb/pan/config.h b/keyboards/rgbkb/pan/config.h index b89b6b4f658..58b047c2b35 100644 --- a/keyboards/rgbkb/pan/config.h +++ b/keyboards/rgbkb/pan/config.h @@ -16,18 +16,7 @@ along with this program. If not, see . #pragma once -#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 RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 64 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/rgbkb/pan/info.json b/keyboards/rgbkb/pan/info.json index 5c3ed6f6101..fdf3519bb65 100644 --- a/keyboards/rgbkb/pan/info.json +++ b/keyboards/rgbkb/pan/info.json @@ -12,7 +12,20 @@ "driver": "custom" }, "rgblight": { - "max_brightness": 120 + "led_count": 64, + "max_brightness": 120, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "layouts": { "LAYOUT_all": { diff --git a/keyboards/rgbkb/pan/rules.mk b/keyboards/rgbkb/pan/rules.mk index 775fa48e121..3f1097a7e86 100644 --- a/keyboards/rgbkb/pan/rules.mk +++ b/keyboards/rgbkb/pan/rules.mk @@ -11,7 +11,6 @@ AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # RGB layout selection RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips diff --git a/keyboards/rgbkb/sol/config.h b/keyboards/rgbkb/sol/config.h index 5c327fd760d..9a05fa04e3a 100644 --- a/keyboards/rgbkb/sol/config.h +++ b/keyboards/rgbkb/sol/config.h @@ -18,9 +18,6 @@ along with this program. If not, see . #pragma once - -#define TAPPING_TERM 150 - #define EE_HANDS #ifdef IOS_DEVICE_ENABLE @@ -84,17 +81,6 @@ along with this program. If not, see . #define LED_HITS_TO_REMEMBER 5 -#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 - #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for Helix keyboard // 120 RGBoff, OLEDoff diff --git a/keyboards/rgbkb/sol/keymaps/brianweyer/keymap.c b/keyboards/rgbkb/sol/keymaps/brianweyer/keymap.c index c476f4c2df5..194ec4de2f0 100644 --- a/keyboards/rgbkb/sol/keymaps/brianweyer/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/brianweyer/keymap.c @@ -254,10 +254,10 @@ static void render_status(void) { } // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(led_usb_state & (1< -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 - - -// place overrides here - -/* #define SSD1306OLED */ diff --git a/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c b/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c index a5b62eb1daa..0ef9def55de 100644 --- a/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c @@ -334,11 +334,11 @@ static void render_status(void) { } // Host Keyboard LED Status - uint8_t led_state = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); oled_write_P(PSTR("-----"), false); - oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false); + oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false); #ifdef RGB_OLED_MENU static char buffer[31] = { 0 }; diff --git a/keyboards/rgbkb/sol/keymaps/xyverz/rules.mk b/keyboards/rgbkb/sol/keymaps/xyverz/rules.mk index 073cb668f0f..36416c8dbee 100644 --- a/keyboards/rgbkb/sol/keymaps/xyverz/rules.mk +++ b/keyboards/rgbkb/sol/keymaps/xyverz/rules.mk @@ -24,7 +24,6 @@ IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPa DEFAULT_FOLDER = rgbkb/sol/rev1 ENCODER_ENABLE = no OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Do not edit past here diff --git a/keyboards/rgbkb/sol/rev1/info.json b/keyboards/rgbkb/sol/rev1/info.json index b0b8fc12d02..5b288088a9e 100644 --- a/keyboards/rgbkb/sol/rev1/info.json +++ b/keyboards/rgbkb/sol/rev1/info.json @@ -9,7 +9,21 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" + }, + "rgblight": { + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7"], @@ -24,6 +38,9 @@ "split": { "soft_serial_pin": "D3" }, + "tapping": { + "term": 150 + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/rgbkb/sol/rev2/info.json b/keyboards/rgbkb/sol/rev2/info.json index 1eec8a39303..c71efbc7698 100644 --- a/keyboards/rgbkb/sol/rev2/info.json +++ b/keyboards/rgbkb/sol/rev2/info.json @@ -9,7 +9,21 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" + }, + "rgblight": { + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7"], @@ -19,6 +33,9 @@ "split": { "soft_serial_pin": "D3" }, + "tapping": { + "term": 150 + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/rgbkb/sol3/config.h b/keyboards/rgbkb/sol3/config.h index 1b8fa2314f9..3a0b61bfd54 100644 --- a/keyboards/rgbkb/sol3/config.h +++ b/keyboards/rgbkb/sol3/config.h @@ -9,8 +9,6 @@ #pragma once -#define MATRIX_IO_DELAY 5 - #define BUSY_WAIT #define BUSY_WAIT_INSTRUCTIONS 35 // Increase if two rows are pressed at the same time. #define GPIO_INPUT_PIN_DELAY 10 @@ -52,24 +50,6 @@ #define DIP_SWITCH_PINS { A14, B13 } #define DIP_SWITCH_PINS_RIGHT { A14, B0 } -/* RGB LED Configuration */ -#define RGBLED_NUM 156 -#define RGBLED_SPLIT { 78, 78 } - -// RGB Lighting Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgblight?id=effect-and-animation-toggles -#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 RGB_MATRIX_LED_COUNT 156 #define RGB_MATRIX_SPLIT { 78, 78 } #define RGB_MATRIX_CENTER { 81, 28 } @@ -137,7 +117,6 @@ #define TOUCH_UPDATE_INTERVAL 33 #define OLED_UPDATE_INTERVAL 33 -#define TAP_CODE_DELAY 5 /* Audio Configuration */ #define AUDIO_PIN A4 diff --git a/keyboards/rgbkb/sol3/keymaps/default/keymap.c b/keyboards/rgbkb/sol3/keymaps/default/keymap.c index 19499ab3c3b..dacdf98a405 100644 --- a/keyboards/rgbkb/sol3/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol3/keymaps/default/keymap.c @@ -23,9 +23,6 @@ * └──────┴──────┴──────┴──────┴──────┤ Space├──────┤ ├──────┤ Space├──────┴──────┴──────┴──────┴──────┘ * │ │ DEL │ │ Enter│ │ * └──────┴──────┘ └──────┴──────┘ - * ┌──────┬──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┬──────┐ - * │Vol Dn│Vol Up│Vol Dn│Vol Up│Vol Dn│Vol Up│ │Vol Dn│Vol Up│Vol Dn│Vol Up│Vol Dn│Vol Up│ - * └──────┴──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┴──────┘ * ┌──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┐ * │Vol Dn│Vol Up│ Prev │ Play │ Next │ │Vol Dn│Vol Up│ Prev │ Play │ Next │ * └──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┘ @@ -65,7 +62,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_PGDN, KC_DEL, KC_ENT, KC_PGUP, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, - KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV ), @@ -76,7 +72,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -87,7 +82,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -98,7 +92,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, AU_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_TOGG, CK_UP, CK_DOWN, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -109,7 +102,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_SPD, _______, RGB_SPI, _______, _______, DM_RSTP, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, _______, RGB_RMOD,RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -171,3 +163,12 @@ void render_layer_status(void) { oled_write_ln_P(PSTR("Undef"), false); } } + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [1 ... 4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/rgbkb/sol3/keymaps/default/rules.mk b/keyboards/rgbkb/sol3/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/rgbkb/sol3/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c b/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c index ab8f7d0ce3f..0f92110ff4c 100644 --- a/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c +++ b/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c @@ -28,7 +28,6 @@ extern keymap_config_t keymap_config; * `-------------' `--------=----' */ #define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__, \ - KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, \ KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU ) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -59,3 +58,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1 ... 4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk b/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk +++ b/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rgbkb/sol3/keymaps/via/keymap.c b/keyboards/rgbkb/sol3/keymaps/via/keymap.c index 11479259080..9ceb324f645 100644 --- a/keyboards/rgbkb/sol3/keymaps/via/keymap.c +++ b/keyboards/rgbkb/sol3/keymaps/via/keymap.c @@ -23,9 +23,6 @@ * └──────┴──────┴──────┴──────┴──────┤ Space├──────┤ ├──────┤ Space├──────┴──────┴──────┴──────┴──────┘ * │ │ DEL │ │ Enter│ │ * └──────┴──────┘ └──────┴──────┘ - * ┌──────┬──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┬──────┐ - * │Vol Dn│Vol Up│Vol Dn│Vol Up│Vol Dn│Vol Up│ │Vol Dn│Vol Up│Vol Dn│Vol Up│Vol Dn│Vol Up│ - * └──────┴──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┴──────┘ * ┌──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┐ * │Vol Dn│Vol Up│ Prev │ Play │ Next │ │Vol Dn│Vol Up│ Prev │ Play │ Next │ * └──────┴──────┴──────┴──────┴──────┘ └──────┴──────┴──────┴──────┴──────┘ @@ -68,7 +65,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_PGDN, KC_DEL, KC_ENT, KC_PGUP, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL, - KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV ), @@ -79,7 +75,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -90,7 +85,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -101,7 +95,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, AU_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_TOGG, CK_UP, CK_DOWN, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -112,7 +105,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_SPD, _______, RGB_SPI, _______, _______, DM_RSTP, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, _______, RGB_RMOD,RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -123,7 +115,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -134,7 +125,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -145,7 +135,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -216,3 +205,12 @@ void render_layer_status(void) { oled_write_ln_P(PSTR("Undef"), false); } } + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [1 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/rgbkb/sol3/keymaps/via/rules.mk b/keyboards/rgbkb/sol3/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/rgbkb/sol3/keymaps/via/rules.mk +++ b/keyboards/rgbkb/sol3/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rgbkb/sol3/rev1/info.json b/keyboards/rgbkb/sol3/rev1/info.json index 74af9d21faf..b80161995f0 100644 --- a/keyboards/rgbkb/sol3/rev1/info.json +++ b/keyboards/rgbkb/sol3/rev1/info.json @@ -8,16 +8,33 @@ "pid": "0x3510", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 156, + "split_count": [78, 78], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A6", "A7", "B0", "B2", "B1", "B9", "B3", "B4"], - "rows": ["B15", "A8", "A15", "B12", "A3", null] + "rows": ["B15", "A8", "A15", "B12", "A3", null], + "io_delay": 5 }, "diode_direction": "COL2ROW", "encoder": { @@ -45,6 +62,9 @@ } } }, + "qmk": { + "tap_keycode_delay": 5 + }, "processor": "STM32F303", "bootloader": "stm32-dfu", "layouts": { @@ -132,20 +152,6 @@ {"matrix": [10, 1], "x": 14.5, "y": 4}, {"matrix": [10, 0], "x": 15.5, "y": 4, "w": 1.5}, - {"matrix": [5, 0], "x": 0, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [5, 1], "x": 0.8, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [5, 2], "x": 1.6, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [5, 3], "x": 2.4, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [5, 4], "x": 3.2, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [5, 5], "x": 4, "y": 7, "w": 0.8, "h": 0.8}, - - {"matrix": [11, 0], "x": 12.2, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [11, 1], "x": 13, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [11, 2], "x": 13.8, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [11, 3], "x": 14.6, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [11, 4], "x": 15.4, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [11, 5], "x": 16.2, "y": 7, "w": 0.8, "h": 0.8}, - {"matrix": [0, 7], "x": 0, "y": 7.8, "w": 0.8, "h": 0.8}, {"matrix": [1, 7], "x": 0.8, "y": 7.8, "w": 0.8, "h": 0.8}, {"matrix": [2, 7], "x": 1.6, "y": 7.8, "w": 0.8, "h": 0.8}, diff --git a/keyboards/rgbkb/sol3/rev1/rev1.c b/keyboards/rgbkb/sol3/rev1/rev1.c index ff330a83d66..e853ed9b986 100644 --- a/keyboards/rgbkb/sol3/rev1/rev1.c +++ b/keyboards/rgbkb/sol3/rev1/rev1.c @@ -13,27 +13,12 @@ #define NUMBER_OF_TOUCH_ENCODERS 2 #define TOUCH_ENCODER_OPTIONS TOUCH_SEGMENTS + 2 -#define NUMBER_OF_ENCODERS 6 -#define ENCODER_OPTIONS 2 - typedef struct PACKED { uint8_t r; uint8_t c; } encodermap_t; -// this maps encoders and then touch encoders to their respective electrical matrix entry -// mapping is row (y) then column (x) when looking at the electrical layout -const encodermap_t encoder_map[NUMBER_OF_ENCODERS][ENCODER_OPTIONS] = -{ - { { 5, 0 }, { 5, 1 } }, // Encoder 0 matrix entries - { { 5, 2 }, { 5, 3 } }, // Encoder 1 matrix entries - { { 5, 4 }, { 5, 5 } }, // Encoder 2 matrix entries - { { 11, 0 }, { 11, 1 } }, // Encoder 3 matrix entries - { { 11, 2 }, { 11, 3 } }, // Encoder 4 matrix entries - { { 11, 4 }, { 11, 5 } } // Encoder 5 matrix entries -}; - -const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPTIONS] = +const encodermap_t touch_encoder_map[NUMBER_OF_TOUCH_ENCODERS][TOUCH_ENCODER_OPTIONS] = { { { 1, 7 }, { 0, 7 }, { 2, 7 }, { 5, 6 }, { 5, 7 }, }, // Touch Encoder 0 matrix entries { { 7, 7 }, { 6, 7 }, { 8, 7 }, { 11, 6 }, { 11, 7 }, } // Touch Encoder 1 matrix entries @@ -43,7 +28,7 @@ static bool limit_lightning = true; RGB rgb_matrix_hsv_to_rgb(HSV hsv) { if (limit_lightning) hsv.v /= 2; - return hsv_to_rgb(hsv); + return hsv_to_rgb(hsv); } bool dip_switch_update_kb(uint8_t index, bool active) { @@ -72,15 +57,6 @@ static void process_encoder_matrix(encodermap_t pos) { action_exec(MAKE_KEYEVENT(pos.r, pos.c, false)); } -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) - return false; - - // Mapping clockwise (typically increase) to zero, and counter clockwise (decrease) to 1 - process_encoder_matrix(encoder_map[index][clockwise ? 0 : 1]); - return false; -} - bool touch_encoder_update_kb(uint8_t index, bool clockwise) { if (!touch_encoder_update_user(index, clockwise)) return false; @@ -189,7 +165,7 @@ void rgb_matrix_increase_flags(void) #endif -__attribute__((weak)) +__attribute__((weak)) void render_layer_status(void) { // Keymap specific, expected to be overridden // Host Keyboard Layer Status @@ -245,7 +221,7 @@ oled_rotation_t oled_init_kb(oled_rotation_t rotation) { bool oled_task_kb(void) { if (!oled_task_user()) return false; - + if (is_keyboard_left()) { render_icon(); oled_write_P(PSTR(" "), false); diff --git a/keyboards/rgbkb/sol3/rules.mk b/keyboards/rgbkb/sol3/rules.mk index 382b858f465..9cb54cfa151 100644 --- a/keyboards/rgbkb/sol3/rules.mk +++ b/keyboards/rgbkb/sol3/rules.mk @@ -23,7 +23,6 @@ RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable the OLED Driver ENCODER_ENABLE = yes diff --git a/keyboards/rgbkb/zen/rev1/config.h b/keyboards/rgbkb/zen/rev1/config.h index 88951a1b449..1578432cf80 100644 --- a/keyboards/rgbkb/zen/rev1/config.h +++ b/keyboards/rgbkb/zen/rev1/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 16 // Number of LEDs - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/rgbkb/zen/rev1/info.json b/keyboards/rgbkb/zen/rev1/info.json index 940df081c96..81370b916dd 100644 --- a/keyboards/rgbkb/zen/rev1/info.json +++ b/keyboards/rgbkb/zen/rev1/info.json @@ -16,6 +16,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 16 + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/rgbkb/zen/rev2/config.h b/keyboards/rgbkb/zen/rev2/config.h index 394fd1630bc..1578432cf80 100644 --- a/keyboards/rgbkb/zen/rev2/config.h +++ b/keyboards/rgbkb/zen/rev2/config.h @@ -22,19 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* ws2812 RGB LED */ -#define RGBLED_NUM 34 // Number of LEDs -#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 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/rgbkb/zen/rev2/info.json b/keyboards/rgbkb/zen/rev2/info.json index eed39e56287..8d486e53b87 100644 --- a/keyboards/rgbkb/zen/rev2/info.json +++ b/keyboards/rgbkb/zen/rev2/info.json @@ -21,6 +21,21 @@ "split": { "soft_serial_pin": "D3" }, + "rgblight": { + "led_count": 34, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/rgbkb/zen/rev2/rev2.c b/keyboards/rgbkb/zen/rev2/rev2.c index 4c308264d67..c36a32c161b 100644 --- a/keyboards/rgbkb/zen/rev2/rev2.c +++ b/keyboards/rgbkb/zen/rev2/rev2.c @@ -40,11 +40,11 @@ void render_status(void) { oled_write_P(layer_name_user(get_highest_layer(layer_state)), false); // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); oled_set_cursor(0, oled_max_lines() - 4); // Line 13 - oled_write_P(led_usb_state & (1<display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -//assign the right code to your layers for OLED display -#define L_BASE 0 -#define L_FN (1<<_FN) -#define L_ADJ (1<<_ADJ) - -static void render_logo(struct CharacterMatrix *matrix) { - - static char 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}; - matrix_write(matrix, logo); - //matrix_write_P(&matrix, PSTR(" Split keyboard kit")); -} - - - -void render_status(struct CharacterMatrix *matrix) { - - // Render to mode icon - static char logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; - if(keymap_config.swap_lalt_lgui==false){ - matrix_write(matrix, logo[0][0]); - matrix_write_P(matrix, PSTR("\n")); - matrix_write(matrix, logo[0][1]); - }else{ - matrix_write(matrix, logo[1][0]); - matrix_write_P(matrix, PSTR("\n")); - matrix_write(matrix, logo[1][1]); - } - - // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - char buf[40]; - snprintf(buf,sizeof(buf), "Undef-%ld", layer_state); - matrix_write_P(matrix, PSTR("\nLayer: ")); - switch (layer_state) { - case L_BASE: - matrix_write_P(matrix, PSTR("Default")); - break; - case L_FN: - matrix_write_P(matrix, PSTR("FN")); - break; - case L_ADJ: - case L_ADJ_TRI: - matrix_write_P(matrix, PSTR("ADJ")); - break; - default: - matrix_write(matrix, buf); - } - - // Host Keyboard LED Status - char led[40]; - snprintf(led, sizeof(led), "\n%s %s %s", - (host_keyboard_leds() & (1<. #define RGBLED_NUM 30 #else #define RGBLED_NUM 60 - #define RGBLED_SPLIT { 30, 30 } #endif -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #define RGB_MATRIX_LED_COUNT 60 #define RGB_MATRIX_SPLIT { 30, 30 } diff --git a/keyboards/rgbkb/zygomorph/rev1/info.json b/keyboards/rgbkb/zygomorph/rev1/info.json index 4be3dd61d36..4cd4c876f00 100644 --- a/keyboards/rgbkb/zygomorph/rev1/info.json +++ b/keyboards/rgbkb/zygomorph/rev1/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F4", "F6", "C7", "C6", "B6", "D4"], @@ -24,6 +24,21 @@ "split": { "soft_serial_pin": "D3" }, + "rgblight": { + "split_count": [30, 30], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/rico/phoenix_project_no1/config.h b/keyboards/rico/phoenix_project_no1/config.h new file mode 100644 index 00000000000..43fb63ce470 --- /dev/null +++ b/keyboards/rico/phoenix_project_no1/config.h @@ -0,0 +1,20 @@ +/* Copyright 2023 Eric Becourt (Rico at https://github.com/mymakercorner) + * + * This 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 RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/rico/phoenix_project_no1/info.json b/keyboards/rico/phoenix_project_no1/info.json new file mode 100644 index 00000000000..7b13e4a0dfa --- /dev/null +++ b/keyboards/rico/phoenix_project_no1/info.json @@ -0,0 +1,123 @@ +{ + "manufacturer": "Rico", + "keyboard_name": "Phoenix Project No 1", + "maintainer": "Rico", + "board": "GENERIC_RP_RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP24", "GP0", "GP14", "GP13", "GP12", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP25", "GP2", "GP1"], + "rows": ["GP27", "GP29", "GP19", "GP20", "GP26"] + }, + "processor": "RP2040", + "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 + }, + "led_count": 16 + }, + "url": "https://github.com/mymakercorner/Phoenix_Project_No1", + "usb": { + "device_version": "1.0.0", + "pid": "0x9901", + "vid": "0x21C0" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP28" + }, + "layouts": { + "LAYOUT": { + "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": [0, 15], "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, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [2, 15], "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, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/rico/phoenix_project_no1/keymaps/default/keymap.c b/keyboards/rico/phoenix_project_no1/keymaps/default/keymap.c new file mode 100644 index 00000000000..a4d58d9097e --- /dev/null +++ b/keyboards/rico/phoenix_project_no1/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2023 Eric Becourt (Rico at https://github.com/mymakercorner) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layer_names { + _BASE, + _FN, + _FN2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_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_NO, 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, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FN] = LAYOUT( + 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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_FN2] = 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, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 diff --git a/keyboards/rico/phoenix_project_no1/keymaps/via/keymap.c b/keyboards/rico/phoenix_project_no1/keymaps/via/keymap.c new file mode 100644 index 00000000000..a4d58d9097e --- /dev/null +++ b/keyboards/rico/phoenix_project_no1/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2023 Eric Becourt (Rico at https://github.com/mymakercorner) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layer_names { + _BASE, + _FN, + _FN2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_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_NO, 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, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FN] = LAYOUT( + 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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_FN2] = 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, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 diff --git a/keyboards/rico/phoenix_project_no1/keymaps/via/rules.mk b/keyboards/rico/phoenix_project_no1/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/rico/phoenix_project_no1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/rico/phoenix_project_no1/readme.md b/keyboards/rico/phoenix_project_no1/readme.md new file mode 100644 index 00000000000..c70b944717f --- /dev/null +++ b/keyboards/rico/phoenix_project_no1/readme.md @@ -0,0 +1,34 @@ +# Phoenix Project No 1 + +![Type S](https://i.imgur.com/YJaz6P3h.jpeg) +![Type H](https://i.imgur.com/7Lz9oRLh.jpeg) + +This is an open source collection of M65-A keyboard replacement PCBs, available both in solderable and hotswap variants. + +* Keyboard Maintainer: [Eric Becourt, aka Rico](https://github.com/mymakercorner) +* Hardware Supported: Phoenix Project No 1 Type S (solder) and Type H (hotswap) +* Hardware Availability: hardware is open source, Github repository contains everything to easily have fully assembled PCBs at JLCPCB + +More details in Github repository [here](https://github.com/mymakercorner/Phoenix_Project_No1) + +Make example for this keyboard (after setting up your build environment): + + make rico/phoenix_project_no1:default + +Flashing example for this keyboard: + + make rico/phoenix_project_no1: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 + +You can enter the bootloader in 5 ways: + +* **QMK software ways:** + * **Bootmagic reset**: hold down the key at (0,0) in the matrix (the top left key or Escape) and plug in the keyboard + * **Keycode in layout**: press the key mapped to `QK_BOOT` that is the top left key or Escape on layer 2 + * **Physical BOOTSEL button**: double tap the BOOTSEL button +* **Native RP2040 MCU ways:** + * **Physical BOOTSEL and RESET button**: while keyboard is plugged maintain RESET button pressed, press BOOTSEL button then release the RESET button + * **Physical RESET button**: maintain RESET button pressed while plugging in the keyboard diff --git a/keyboards/rico/phoenix_project_no1/rules.mk b/keyboards/rico/phoenix_project_no1/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/rico/phoenix_project_no1/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/ristretto/rules.mk b/keyboards/ristretto/rules.mk index cb202f5b9b1..13002485f83 100644 --- a/keyboards/ristretto/rules.mk +++ b/keyboards/ristretto/rules.mk @@ -12,5 +12,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WAIT_FOR_USB = yes diff --git a/keyboards/rmi_kb/chevron/info.json b/keyboards/rmi_kb/chevron/info.json index ef1d8235362..48f4373c263 100644 --- a/keyboards/rmi_kb/chevron/info.json +++ b/keyboards/rmi_kb/chevron/info.json @@ -10,7 +10,7 @@ }, "matrix_pins": { "cols": ["A5", "A6", "A7", "C7", "C6", "C5", "C4", "C3", "C2", "C1", "A4", "A3", "A2", "B4"], - "rows": ["D5", "D6", "C0", "D7", null] + "rows": ["D5", "D6", "C0", "D7"] }, "diode_direction": "COL2ROW", "encoder": { @@ -126,66 +126,6 @@ {"matrix": [2, 12], "x": 11.75, "y": 3, "w": 1.75}, {"matrix": [2, 13], "x": 13.5, "y": 3}, - {"matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [3, 4], "x": 3.75, "y": 4, "w": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 4}, - {"matrix": [3, 8], "x": 7.75, "y": 4, "w": 3}, - {"matrix": [3, 11], "x": 10.75, "y": 4, "w": 1.25}, - {"matrix": [3, 12], "x": 12, "y": 4, "w": 1.25}, - {"matrix": [3, 13], "x": 13.25, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [4, 0], "x": 11.5, "y": 0}, - {"matrix": [1, 13], "x": 12.5, "y": 0}, - {"matrix": [4, 1], "x": 13.5, "y": 0}, - - {"matrix": [0, 0], "x": 0, "y": 1}, - {"matrix": [0, 1], "x": 1, "y": 1}, - {"matrix": [0, 2], "x": 2, "y": 1}, - {"matrix": [0, 3], "x": 3, "y": 1}, - {"matrix": [0, 4], "x": 4, "y": 1}, - {"matrix": [0, 5], "x": 5, "y": 1}, - {"matrix": [0, 6], "x": 6, "y": 1}, - {"matrix": [0, 7], "x": 7, "y": 1}, - {"matrix": [0, 8], "x": 8, "y": 1}, - {"matrix": [0, 9], "x": 9, "y": 1}, - {"matrix": [0, 10], "x": 10, "y": 1}, - {"matrix": [0, 11], "x": 11, "y": 1}, - {"matrix": [0, 12], "x": 12, "y": 1}, - {"matrix": [0, 13], "x": 13, "y": 1, "w": 1.5}, - - {"matrix": [1, 0], "x": 0, "y": 2, "w": 1.25}, - {"matrix": [1, 1], "x": 1.25, "y": 2}, - {"matrix": [1, 2], "x": 2.25, "y": 2}, - {"matrix": [1, 3], "x": 3.25, "y": 2}, - {"matrix": [1, 4], "x": 4.25, "y": 2}, - {"matrix": [1, 5], "x": 5.25, "y": 2}, - {"matrix": [1, 6], "x": 6.25, "y": 2}, - {"matrix": [1, 7], "x": 7.25, "y": 2}, - {"matrix": [1, 8], "x": 8.25, "y": 2}, - {"matrix": [1, 9], "x": 9.25, "y": 2}, - {"matrix": [1, 10], "x": 10.25, "y": 2}, - {"matrix": [1, 11], "x": 11.25, "y": 2}, - {"matrix": [1, 12], "x": 12.25, "y": 2, "w": 2.25}, - - {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 3}, - {"matrix": [2, 2], "x": 2.75, "y": 3}, - {"matrix": [2, 3], "x": 3.75, "y": 3}, - {"matrix": [2, 4], "x": 4.75, "y": 3}, - {"matrix": [2, 5], "x": 5.75, "y": 3}, - {"matrix": [2, 6], "x": 6.75, "y": 3}, - {"matrix": [2, 7], "x": 7.75, "y": 3}, - {"matrix": [2, 8], "x": 8.75, "y": 3}, - {"matrix": [2, 9], "x": 9.75, "y": 3}, - {"matrix": [2, 10], "x": 10.75, "y": 3}, - {"matrix": [2, 12], "x": 11.75, "y": 3, "w": 1.75}, - {"matrix": [2, 13], "x": 13.5, "y": 3}, - {"matrix": [3, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [3, 2], "x": 2.5, "y": 4, "w": 1.25}, diff --git a/keyboards/rmi_kb/chevron/keymaps/via/keymap.c b/keyboards/rmi_kb/chevron/keymaps/via/keymap.c index 8651a3dee7e..6ebf4eb7c02 100644 --- a/keyboards/rmi_kb/chevron/keymaps/via/keymap.c +++ b/keyboards/rmi_kb/chevron/keymaps/via/keymap.c @@ -16,29 +16,29 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - KC_VOLD, KC_MUTE, KC_VOLU, + [0] = LAYOUT_ansi( + KC_MUTE, KC_ESC, 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_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, MO(1), KC_BSPC, KC_RALT, KC_RGUI, KC_RCTL ), - [1] = LAYOUT_all( - _______, _______, _______, + [1] = LAYOUT_ansi( + _______, 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_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_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_all( - _______, _______, _______, + [3] = LAYOUT_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -46,43 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -keyevent_t encoder_ccw = { - .key = (keypos_t){.row = 4, .col = 0}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, }; - -keyevent_t encoder_cw = { - .key = (keypos_t){.row = 4, .col = 1}, - .pressed = false, - .type = KEY_EVENT -}; - -void matrix_scan_user(void) { - if (encoder_ccw.pressed) { - encoder_ccw.pressed = false; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - - if (encoder_cw.pressed) { - encoder_cw.pressed = false; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - encoder_cw.pressed = true; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - wait_ms(20); - } else { - encoder_ccw.pressed = true; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - wait_ms(20); - } - return true; -} +#endif diff --git a/keyboards/rmi_kb/chevron/keymaps/via/rules.mk b/keyboards/rmi_kb/chevron/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/rmi_kb/chevron/keymaps/via/rules.mk +++ b/keyboards/rmi_kb/chevron/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rmi_kb/herringbone/pro/info.json b/keyboards/rmi_kb/herringbone/pro/info.json index e02c428ab86..bbef69f28aa 100644 --- a/keyboards/rmi_kb/herringbone/pro/info.json +++ b/keyboards/rmi_kb/herringbone/pro/info.json @@ -329,9 +329,7 @@ {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.5}, {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 12], "x": 13.25, "y": 5.5}, - {"matrix": [5, 13], "x": 14.25, "y": 5.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5} + {"matrix": [5, 13], "x": 14.25, "y": 5.5} ] } } diff --git a/keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c b/keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c index dbf282b68f5..9df8143fb72 100644 --- a/keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c +++ b/keyboards/rmi_kb/herringbone/pro/keymaps/via/keymap.c @@ -19,7 +19,7 @@ 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_VOLD, KC_MUTE, KC_VOLU, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -52,31 +52,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -keyevent_t encoder_ccw = { - .key = (keypos_t){.row = 6, .col = 0}, - .pressed = false, - .type = KEY_EVENT - }; - -keyevent_t encoder_cw = { - .key = (keypos_t){.row = 6, .col = 1}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, }; - -void matrix_scan_user(void) { - if (encoder_ccw.pressed) { - encoder_ccw.pressed = false; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - - if (encoder_cw.pressed) { - encoder_cw.pressed = false; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } -} +#endif #ifdef OLED_ENABLE uint32_t anim_timer = 0; @@ -85,25 +68,6 @@ uint8_t current_frame = 0; #define FRAME_DURATION 50 -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - encoder_cw.pressed = true; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - wait_ms(20); - anim_sleep = timer_read32(); - oled_on(); - } else { - encoder_ccw.pressed = true; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - wait_ms(20); - anim_sleep = timer_read32(); - oled_on(); - } - return true; -} - static void render_pattern(void) { void animate(void) { oled_set_cursor(4, 0); diff --git a/keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk b/keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk +++ b/keyboards/rmi_kb/herringbone/pro/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rmi_kb/herringbone/pro/rules.mk b/keyboards/rmi_kb/herringbone/pro/rules.mk index db45e4f61c5..890f20de86a 100644 --- a/keyboards/rmi_kb/herringbone/pro/rules.mk +++ b/keyboards/rmi_kb/herringbone/pro/rules.mk @@ -15,7 +15,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/rmi_kb/squishy65/config.h b/keyboards/rmi_kb/squishy65/config.h index b4efbc241c7..4b007cf387e 100644 --- a/keyboards/rmi_kb/squishy65/config.h +++ b/keyboards/rmi_kb/squishy65/config.h @@ -17,18 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 18 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/rmi_kb/squishy65/info.json b/keyboards/rmi_kb/squishy65/info.json index 35aeac5706f..1af28e861c7 100644 --- a/keyboards/rmi_kb/squishy65/info.json +++ b/keyboards/rmi_kb/squishy65/info.json @@ -8,6 +8,21 @@ "pid": "0x10B5", "device_version": "0.6.5" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/rmi_kb/squishy65/rules.mk b/keyboards/rmi_kb/squishy65/rules.mk index 4eaa5819ac4..31f4f7acad0 100644 --- a/keyboards/rmi_kb/squishy65/rules.mk +++ b/keyboards/rmi_kb/squishy65/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/rmi_kb/squishyfrl/config.h b/keyboards/rmi_kb/squishyfrl/config.h index 1433de81063..f36369d6c75 100644 --- a/keyboards/rmi_kb/squishyfrl/config.h +++ b/keyboards/rmi_kb/squishyfrl/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 16 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/rmi_kb/squishyfrl/info.json b/keyboards/rmi_kb/squishyfrl/info.json index f6ab10f5d93..a19d0bde7dd 100644 --- a/keyboards/rmi_kb/squishyfrl/info.json +++ b/keyboards/rmi_kb/squishyfrl/info.json @@ -8,6 +8,21 @@ "pid": "0x4BE5", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C15" }, diff --git a/keyboards/rmi_kb/squishyfrl/rules.mk b/keyboards/rmi_kb/squishyfrl/rules.mk index 5c31520ab48..d612de6c5f5 100644 --- a/keyboards/rmi_kb/squishyfrl/rules.mk +++ b/keyboards/rmi_kb/squishyfrl/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/rmi_kb/squishytkl/config.h b/keyboards/rmi_kb/squishytkl/config.h index 1433de81063..f36369d6c75 100644 --- a/keyboards/rmi_kb/squishytkl/config.h +++ b/keyboards/rmi_kb/squishytkl/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 16 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/rmi_kb/squishytkl/info.json b/keyboards/rmi_kb/squishytkl/info.json index b49d72c8293..64b13752d9f 100644 --- a/keyboards/rmi_kb/squishytkl/info.json +++ b/keyboards/rmi_kb/squishytkl/info.json @@ -8,6 +8,21 @@ "pid": "0x00B1", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C15" }, @@ -350,117 +365,114 @@ }, "LAYOUT_all": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.5}, - - {"matrix": [0, 1], "x": 1.25, "y": 0.5}, - {"matrix": [0, 2], "x": 2.25, "y": 0.5}, - {"matrix": [0, 3], "x": 3.25, "y": 0.5}, - {"matrix": [0, 4], "x": 4.25, "y": 0.5}, - - {"matrix": [1, 0], "x": 5.5, "y": 0.5}, - {"matrix": [1, 1], "x": 6.5, "y": 0.5}, - {"matrix": [1, 2], "x": 7.5, "y": 0.5}, - {"matrix": [1, 3], "x": 8.5, "y": 0.5}, - - {"matrix": [2, 0], "x": 9.75, "y": 0.5}, - {"matrix": [2, 1], "x": 10.75, "y": 0.5}, - {"matrix": [2, 2], "x": 11.75, "y": 0.5}, - {"matrix": [2, 3], "x": 12.75, "y": 0.5}, - - {"matrix": [2, 4], "x": 14, "y": 0.5}, - - {"matrix": [3, 20], "x": 15.25, "y": 0.5}, - {"matrix": [3, 21], "x": 16.25, "y": 0.5}, - {"matrix": [3, 22], "x": 17.25, "y": 0.5}, - - {"matrix": [8, 5], "x": 0, "y": 1.75}, - {"matrix": [8, 6], "x": 1, "y": 1.75}, - {"matrix": [8, 7], "x": 2, "y": 1.75}, - {"matrix": [8, 8], "x": 3, "y": 1.75}, - {"matrix": [8, 9], "x": 4, "y": 1.75}, - {"matrix": [8, 10], "x": 5, "y": 1.75}, - {"matrix": [8, 11], "x": 6, "y": 1.75}, - {"matrix": [8, 12], "x": 7, "y": 1.75}, - {"matrix": [8, 13], "x": 8, "y": 1.75}, - {"matrix": [8, 14], "x": 9, "y": 1.75}, - {"matrix": [8, 15], "x": 10, "y": 1.75}, - {"matrix": [8, 16], "x": 11, "y": 1.75}, - {"matrix": [8, 17], "x": 12, "y": 1.75}, - {"matrix": [8, 18], "x": 13, "y": 1.75}, - {"matrix": [8, 19], "x": 14, "y": 1.75}, - - {"matrix": [4, 20], "x": 15.25, "y": 1.75}, - {"matrix": [4, 21], "x": 16.25, "y": 1.75}, - {"matrix": [4, 22], "x": 17.25, "y": 1.75}, - - {"matrix": [9, 5], "x": 0, "y": 2.75, "w": 1.5}, - {"matrix": [9, 6], "x": 1.5, "y": 2.75}, - {"matrix": [9, 7], "x": 2.5, "y": 2.75}, - {"matrix": [9, 8], "x": 3.5, "y": 2.75}, - {"matrix": [9, 9], "x": 4.5, "y": 2.75}, - {"matrix": [9, 10], "x": 5.5, "y": 2.75}, - {"matrix": [9, 11], "x": 6.5, "y": 2.75}, - {"matrix": [9, 12], "x": 7.5, "y": 2.75}, - {"matrix": [9, 13], "x": 8.5, "y": 2.75}, - {"matrix": [9, 14], "x": 9.5, "y": 2.75}, - {"matrix": [9, 15], "x": 10.5, "y": 2.75}, - {"matrix": [9, 16], "x": 11.5, "y": 2.75}, - {"matrix": [9, 17], "x": 12.5, "y": 2.75}, - {"matrix": [9, 19], "x": 13.5, "y": 2.75, "w": 1.5}, - - {"matrix": [5, 20], "x": 15.25, "y": 2.75}, - {"matrix": [5, 21], "x": 16.25, "y": 2.75}, - {"matrix": [5, 22], "x": 17.25, "y": 2.75}, - - {"matrix": [10, 5], "x": 0, "y": 3.75, "w": 1.75}, - {"matrix": [10, 6], "x": 1.75, "y": 3.75}, - {"matrix": [10, 7], "x": 2.75, "y": 3.75}, - {"matrix": [10, 8], "x": 3.75, "y": 3.75}, - {"matrix": [10, 9], "x": 4.75, "y": 3.75}, - {"matrix": [10, 10], "x": 5.75, "y": 3.75}, - {"matrix": [10, 11], "x": 6.75, "y": 3.75}, - {"matrix": [10, 12], "x": 7.75, "y": 3.75}, - {"matrix": [10, 13], "x": 8.75, "y": 3.75}, - {"matrix": [10, 14], "x": 9.75, "y": 3.75}, - {"matrix": [10, 15], "x": 10.75, "y": 3.75}, - {"matrix": [10, 16], "x": 11.75, "y": 3.75}, - {"matrix": [10, 18], "x": 12.75, "y": 3.75, "w": 2.25}, - - {"matrix": [11, 5], "x": 0, "y": 4.75, "w": 1.25}, - {"matrix": [11, 6], "x": 1.25, "y": 4.75}, - {"matrix": [11, 7], "x": 2.25, "y": 4.75}, - {"matrix": [11, 8], "x": 3.25, "y": 4.75}, - {"matrix": [11, 9], "x": 4.25, "y": 4.75}, - {"matrix": [11, 10], "x": 5.25, "y": 4.75}, - {"matrix": [11, 11], "x": 6.25, "y": 4.75}, - {"matrix": [11, 12], "x": 7.25, "y": 4.75}, - {"matrix": [11, 13], "x": 8.25, "y": 4.75}, - {"matrix": [11, 14], "x": 9.25, "y": 4.75}, - {"matrix": [11, 15], "x": 10.25, "y": 4.75}, - {"matrix": [11, 16], "x": 11.25, "y": 4.75}, - {"matrix": [11, 18], "x": 12.25, "y": 4.75, "w": 1.75}, - {"matrix": [11, 19], "x": 14, "y": 4.75}, - - {"matrix": [6, 24], "x": 16.25, "y": 4.75}, - - {"matrix": [12, 5], "x": 0, "y": 5.75, "w": 1.25}, - {"matrix": [12, 6], "x": 1.25, "y": 5.75, "w": 1.25}, - {"matrix": [12, 7], "x": 2.5, "y": 5.75, "w": 1.25}, - {"matrix": [12, 8], "x": 3.75, "y": 5.75}, - {"matrix": [12, 9], "x": 4.75, "y": 5.75, "w": 1.5}, - {"matrix": [12, 13], "x": 6.25, "y": 5.75}, - {"matrix": [12, 14], "x": 7.25, "y": 5.75, "w": 2.75}, - {"matrix": [12, 15], "x": 10, "y": 5.75, "w": 1.25}, - {"matrix": [12, 16], "x": 11.25, "y": 5.75, "w": 1.25}, - {"matrix": [12, 18], "x": 12.5, "y": 5.75, "w": 1.25}, - {"matrix": [12, 19], "x": 13.75, "y": 5.75, "w": 1.25}, - - {"matrix": [7, 23], "x": 15.25, "y": 5.75}, - {"matrix": [7, 24], "x": 16.25, "y": 5.75}, - {"matrix": [7, 25], "x": 17.25, "y": 5.75}, - - {"matrix": [13, 0], "x": 18.5, "y": 0}, - {"matrix": [13, 1], "x": 18.5, "y": 1} + {"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": [1, 0], "x": 5.5, "y": 0}, + {"matrix": [1, 1], "x": 6.5, "y": 0}, + {"matrix": [1, 2], "x": 7.5, "y": 0}, + {"matrix": [1, 3], "x": 8.5, "y": 0}, + + {"matrix": [2, 0], "x": 9.75, "y": 0}, + {"matrix": [2, 1], "x": 10.75, "y": 0}, + {"matrix": [2, 2], "x": 11.75, "y": 0}, + {"matrix": [2, 3], "x": 12.75, "y": 0}, + + {"matrix": [2, 4], "x": 14, "y": 0}, + + {"matrix": [3, 20], "x": 15.25, "y": 0}, + {"matrix": [3, 21], "x": 16.25, "y": 0}, + {"matrix": [3, 22], "x": 17.25, "y": 0}, + + {"matrix": [8, 5], "x": 0, "y": 1.25}, + {"matrix": [8, 6], "x": 1, "y": 1.25}, + {"matrix": [8, 7], "x": 2, "y": 1.25}, + {"matrix": [8, 8], "x": 3, "y": 1.25}, + {"matrix": [8, 9], "x": 4, "y": 1.25}, + {"matrix": [8, 10], "x": 5, "y": 1.25}, + {"matrix": [8, 11], "x": 6, "y": 1.25}, + {"matrix": [8, 12], "x": 7, "y": 1.25}, + {"matrix": [8, 13], "x": 8, "y": 1.25}, + {"matrix": [8, 14], "x": 9, "y": 1.25}, + {"matrix": [8, 15], "x": 10, "y": 1.25}, + {"matrix": [8, 16], "x": 11, "y": 1.25}, + {"matrix": [8, 17], "x": 12, "y": 1.25}, + {"matrix": [8, 18], "x": 13, "y": 1.25}, + {"matrix": [8, 19], "x": 14, "y": 1.25}, + + {"matrix": [4, 20], "x": 15.25, "y": 1.25}, + {"matrix": [4, 21], "x": 16.25, "y": 1.25}, + {"matrix": [4, 22], "x": 17.25, "y": 1.25}, + + {"matrix": [9, 5], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [9, 6], "x": 1.5, "y": 2.25}, + {"matrix": [9, 7], "x": 2.5, "y": 2.25}, + {"matrix": [9, 8], "x": 3.5, "y": 2.25}, + {"matrix": [9, 9], "x": 4.5, "y": 2.25}, + {"matrix": [9, 10], "x": 5.5, "y": 2.25}, + {"matrix": [9, 11], "x": 6.5, "y": 2.25}, + {"matrix": [9, 12], "x": 7.5, "y": 2.25}, + {"matrix": [9, 13], "x": 8.5, "y": 2.25}, + {"matrix": [9, 14], "x": 9.5, "y": 2.25}, + {"matrix": [9, 15], "x": 10.5, "y": 2.25}, + {"matrix": [9, 16], "x": 11.5, "y": 2.25}, + {"matrix": [9, 17], "x": 12.5, "y": 2.25}, + {"matrix": [9, 19], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [5, 20], "x": 15.25, "y": 2.25}, + {"matrix": [5, 21], "x": 16.25, "y": 2.25}, + {"matrix": [5, 22], "x": 17.25, "y": 2.25}, + + {"matrix": [10, 5], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [10, 6], "x": 1.75, "y": 3.25}, + {"matrix": [10, 7], "x": 2.75, "y": 3.25}, + {"matrix": [10, 8], "x": 3.75, "y": 3.25}, + {"matrix": [10, 9], "x": 4.75, "y": 3.25}, + {"matrix": [10, 10], "x": 5.75, "y": 3.25}, + {"matrix": [10, 11], "x": 6.75, "y": 3.25}, + {"matrix": [10, 12], "x": 7.75, "y": 3.25}, + {"matrix": [10, 13], "x": 8.75, "y": 3.25}, + {"matrix": [10, 14], "x": 9.75, "y": 3.25}, + {"matrix": [10, 15], "x": 10.75, "y": 3.25}, + {"matrix": [10, 16], "x": 11.75, "y": 3.25}, + {"matrix": [10, 18], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [11, 5], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [11, 6], "x": 1.25, "y": 4.25}, + {"matrix": [11, 7], "x": 2.25, "y": 4.25}, + {"matrix": [11, 8], "x": 3.25, "y": 4.25}, + {"matrix": [11, 9], "x": 4.25, "y": 4.25}, + {"matrix": [11, 10], "x": 5.25, "y": 4.25}, + {"matrix": [11, 11], "x": 6.25, "y": 4.25}, + {"matrix": [11, 12], "x": 7.25, "y": 4.25}, + {"matrix": [11, 13], "x": 8.25, "y": 4.25}, + {"matrix": [11, 14], "x": 9.25, "y": 4.25}, + {"matrix": [11, 15], "x": 10.25, "y": 4.25}, + {"matrix": [11, 16], "x": 11.25, "y": 4.25}, + {"matrix": [11, 18], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [11, 19], "x": 14, "y": 4.25}, + + {"matrix": [6, 24], "x": 16.25, "y": 4.25}, + + {"matrix": [12, 5], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [12, 6], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [12, 7], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [12, 8], "x": 3.75, "y": 5.25}, + {"matrix": [12, 9], "x": 4.75, "y": 5.25, "w": 1.5}, + {"matrix": [12, 13], "x": 6.25, "y": 5.25}, + {"matrix": [12, 14], "x": 7.25, "y": 5.25, "w": 2.75}, + {"matrix": [12, 15], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [12, 16], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [12, 18], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [12, 19], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [7, 23], "x": 15.25, "y": 5.25}, + {"matrix": [7, 24], "x": 16.25, "y": 5.25}, + {"matrix": [7, 25], "x": 17.25, "y": 5.25} ] } } diff --git a/keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c b/keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c index 2c33b4869cf..ea11eadd080 100644 --- a/keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c +++ b/keyboards/rmi_kb/squishytkl/keymaps/via/keymap.c @@ -22,46 +22,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, - KC_VOLU, KC_VOLD - ), + KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) }; -keyevent_t encoder_ccw = { - .key = (keypos_t){.row = 13, .col = 0}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } }; - -keyevent_t encoder_cw = { - .key = (keypos_t){.row = 13, .col = 1}, - .pressed = false, - .type = KEY_EVENT -}; - -void matrix_scan_user(void) { - if (encoder_ccw.pressed) { - encoder_ccw.pressed = false; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - - if (encoder_cw.pressed) { - encoder_cw.pressed = false; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - encoder_cw.pressed = true; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } else { - encoder_ccw.pressed = true; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - return true; -} +#endif diff --git a/keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk b/keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk +++ b/keyboards/rmi_kb/squishytkl/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rmi_kb/squishytkl/rules.mk b/keyboards/rmi_kb/squishytkl/rules.mk index ae292c0a5af..a84e51ab51c 100644 --- a/keyboards/rmi_kb/squishytkl/rules.mk +++ b/keyboards/rmi_kb/squishytkl/rules.mk @@ -11,6 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable rotary encoder fuctionality - -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE \ No newline at end of file diff --git a/keyboards/rmi_kb/tkl_ff/v2/config.h b/keyboards/rmi_kb/tkl_ff/v2/config.h index b5d023489af..6159ac1bd06 100644 --- a/keyboards/rmi_kb/tkl_ff/v2/config.h +++ b/keyboards/rmi_kb/tkl_ff/v2/config.h @@ -18,18 +18,3 @@ #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - -# define RGBLED_NUM 26 -# define RGBLIGHT_HUE_STEP 32 -# define RGBLIGHT_SAT_STEP 32 -# define RGBLIGHT_VAL_STEP 32 -//# 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 diff --git a/keyboards/rmi_kb/tkl_ff/v2/info.json b/keyboards/rmi_kb/tkl_ff/v2/info.json index a7617b5f30e..72a3406af3e 100644 --- a/keyboards/rmi_kb/tkl_ff/v2/info.json +++ b/keyboards/rmi_kb/tkl_ff/v2/info.json @@ -2,6 +2,21 @@ "usb": { "pid": "0x10FF" }, + "rgblight": { + "hue_steps": 32, + "saturation_steps": 32, + "brightness_steps": 32, + "led_count": 26, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "E2" } diff --git a/keyboards/rmi_kb/wete/v1/config.h b/keyboards/rmi_kb/wete/v1/config.h index c4d0637afe2..b3b42c6c3ec 100644 --- a/keyboards/rmi_kb/wete/v1/config.h +++ b/keyboards/rmi_kb/wete/v1/config.h @@ -21,18 +21,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_CHANNEL 1 #define BACKLIGHT_PAL_MODE 1 -#define RGBLED_NUM 24 -#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 SLEEP_LED_GPT_DRIVER GPTD1 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/rmi_kb/wete/v1/info.json b/keyboards/rmi_kb/wete/v1/info.json index c3ae142d319..47a6befec34 100644 --- a/keyboards/rmi_kb/wete/v1/info.json +++ b/keyboards/rmi_kb/wete/v1/info.json @@ -18,6 +18,21 @@ "levels": 24, "breathing": true }, + "rgblight": { + "led_count": 24, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4" }, diff --git a/keyboards/rmi_kb/wete/v1/rules.mk b/keyboards/rmi_kb/wete/v1/rules.mk index e81a5dd98ed..108db79ad0b 100644 --- a/keyboards/rmi_kb/wete/v1/rules.mk +++ b/keyboards/rmi_kb/wete/v1/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/rmi_kb/wete/v2/config.h b/keyboards/rmi_kb/wete/v2/config.h index 3c46afada59..121c9046e02 100644 --- a/keyboards/rmi_kb/wete/v2/config.h +++ b/keyboards/rmi_kb/wete/v2/config.h @@ -20,21 +20,6 @@ along with this program. If not, see . #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -# define RGBLED_NUM 18 -# define RGBLIGHT_HUE_STEP 32 -# define RGBLIGHT_SAT_STEP 32 -# define RGBLIGHT_VAL_STEP 32 -//# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/rmi_kb/wete/v2/info.json b/keyboards/rmi_kb/wete/v2/info.json index f1e87a6e287..45ae1b5708c 100644 --- a/keyboards/rmi_kb/wete/v2/info.json +++ b/keyboards/rmi_kb/wete/v2/info.json @@ -18,6 +18,21 @@ {"pin_a": "D2", "pin_b": "D1"} ] }, + "rgblight": { + "hue_steps": 32, + "saturation_steps": 32, + "brightness_steps": 32, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D0" }, @@ -393,10 +408,7 @@ {"matrix": [10, 8], "x": 16.25, "y": 5.25}, {"matrix": [11, 8], "x": 17.25, "y": 5.25}, {"matrix": [10, 9], "x": 18.25, "y": 5.25}, - {"matrix": [11, 9], "x": 19.25, "y": 5.25}, - - {"matrix": [12, 0], "x": 19, "y": 0, "w": 0.5}, - {"matrix": [12, 1], "x": 20.5, "y": 0, "w": 0.5} + {"matrix": [11, 9], "x": 19.25, "y": 5.25} ] } } diff --git a/keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c b/keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c index 05df87fc94c..8d4f3c88eb6 100644 --- a/keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c +++ b/keyboards/rmi_kb/wete/v2/keymaps/via/keymap.c @@ -14,6 +14,7 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, 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, @@ -21,8 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P7, KC_P8, KC_P9, KC_PPLS, 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_P4, KC_P5, KC_P6, KC_NO, 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_P1, KC_P2, KC_P3, KC_PENT, 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_PGDN, - KC_P0, KC_NO, KC_PDOT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, - KC_VOLD, KC_VOLU + KC_P0, KC_NO, KC_PDOT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -30,49 +30,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; -keyevent_t encoder_ccw = { - .key = (keypos_t){.row = 12, .col = 0}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder_cw = { - .key = (keypos_t){.row = 12, .col = 1}, - .pressed = false, - .type = KEY_EVENT +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) } }; - -void matrix_scan_user(void) { - if (encoder_ccw.pressed) { - encoder_ccw.pressed = false; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - - if (encoder_cw.pressed) { - encoder_cw.pressed = false; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - encoder_cw.pressed = true; - encoder_cw.time = timer_read(); - action_exec(encoder_cw); - } else { - encoder_ccw.pressed = true; - encoder_ccw.time = timer_read(); - action_exec(encoder_ccw); - } - return true; -} +#endif #ifdef RGBLIGHT_ENABLE // Can probably still be optimized, but I like it as is for clarity diff --git a/keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk b/keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk +++ b/keyboards/rmi_kb/wete/v2/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rmkeebs/rm_fullsize/info.json b/keyboards/rmkeebs/rm_fullsize/info.json new file mode 100644 index 00000000000..4b02137ad3e --- /dev/null +++ b/keyboards/rmkeebs/rm_fullsize/info.json @@ -0,0 +1,155 @@ +{ + "manufacturer": "RuckerMachine", + "keyboard_name": "rm_fullsize", + "maintainer": "RuckerMachine", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["GP22", "GP23", "GP24", "GP25", "GP26", "GP27", "GP28", "GP29", "GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP12", "GP13", "GP14", "GP16", "GP17"], + "rows": ["GP8", "GP7", "GP9", "GP20", "GP18", "GP19"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "encoder": { + "rotary": [ + { "pin_a": "GP11", "pin_b": "GP10" } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0.25 }, + { "matrix": [0, 2], "x": 2, "y": 0.25 }, + { "matrix": [0, 3], "x": 3, "y": 0.25 }, + { "matrix": [0, 4], "x": 4, "y": 0.25 }, + { "matrix": [0, 5], "x": 5, "y": 0.25 }, + { "matrix": [0, 6], "x": 6.5, "y": 0.25 }, + { "matrix": [0, 7], "x": 7.5, "y": 0.25 }, + { "matrix": [0, 8], "x": 8.5, "y": 0.25 }, + { "matrix": [0, 9], "x": 9.5, "y": 0.25 }, + { "matrix": [0, 10], "x": 11, "y": 0.25 }, + { "matrix": [0, 11], "x": 12, "y": 0.25 }, + { "matrix": [0, 12], "x": 13, "y": 0.25 }, + { "matrix": [0, 13], "x": 14, "y": 0.25 }, + { "matrix": [0, 14], "x": 15.25, "y": 0.25 }, + { "matrix": [0, 15], "x": 16.25, "y": 0.25 }, + { "matrix": [3, 15], "x": 17.25, "y": 0.25 }, + { "matrix": [0, 16], "x": 18.5, "y": 0.25 }, + { "matrix": [0, 17], "x": 19.5, "y": 0.25 }, + { "matrix": [0, 18], "x": 20.5, "y": 0.25 }, + { "matrix": [0, 19], "x": 21.75, "y": 0 }, + + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "x": 13, "y": 1.5 }, + { "matrix": [2, 13], "x": 14, "y": 1.5 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.5 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.5 }, + { "matrix": [4, 15], "x": 17.25, "y": 1.5 }, + { "matrix": [1, 16], "x": 18.5, "y": 1.5 }, + { "matrix": [1, 17], "x": 19.5, "y": 1.5 }, + { "matrix": [1, 18], "x": 20.5, "y": 1.5 }, + { "matrix": [1, 19], "x": 21.5, "y": 1.5 }, + + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [3, 13], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.5 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.5 }, + { "matrix": [5, 15], "x": 17.25, "y": 2.5 }, + { "matrix": [2, 16], "x": 18.5, "y": 2.5 }, + { "matrix": [2, 17], "x": 19.5, "y": 2.5 }, + { "matrix": [2, 18], "x": 20.5, "y": 2.5 }, + { "matrix": [2, 19], "x": 21.5, "y": 2.5 }, + + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 }, + { "matrix": [3, 16], "x": 18.5, "y": 3.5 }, + { "matrix": [3, 17], "x": 19.5, "y": 3.5 }, + { "matrix": [3, 18], "x": 20.5, "y": 3.5 }, + { "matrix": [3, 19], "x": 21.5, "y": 3.5 }, + + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 1], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 2], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 11], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "matrix": [3, 14], "x": 16.25, "y": 4.5 }, + { "matrix": [4, 16], "x": 18.5, "y": 4.5 }, + { "matrix": [4, 17], "x": 19.5, "y": 4.5 }, + { "matrix": [4, 18], "x": 20.5, "y": 4.5 }, + { "matrix": [4, 19], "x": 21.5, "y": 4.5 }, + + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.5 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.5 }, + { "matrix": [5, 9], "w": 1.25, "x": 10, "y": 5.5 }, + { "matrix": [5, 10], "w": 1.25, "x": 11.25, "y": 5.5 }, + { "matrix": [5, 11], "w": 1.25, "x": 12.5, "y": 5.5 }, + { "matrix": [5, 12], "w": 1.25, "x": 13.75, "y": 5.5 }, + { "matrix": [5, 13], "x": 15.25, "y": 5.5 }, + { "matrix": [4, 14], "x": 16.25, "y": 5.5 }, + { "matrix": [5, 14], "x": 17.25, "y": 5.5 }, + { "matrix": [5, 16], "x": 18.5, "y": 5.5 }, + { "matrix": [5, 17], "x": 19.5, "y": 5.5 }, + { "matrix": [5, 18], "x": 20.5, "y": 5.5 }, + { "matrix": [5, 19], "x": 21.5, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c b/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c new file mode 100644 index 00000000000..c94cc2e526e --- /dev/null +++ b/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c @@ -0,0 +1,54 @@ +// Copyright 2022 JRucker (@JRucker) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + KC_00 = QK_USER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* ┌───┐ + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ │ENC│ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │PLA│PRV│NXT│ └───┘ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Und│Bsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ = │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ + │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │Ent│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┼───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ 00│ . │Del│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───┴───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, C(KC_Z), KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_PEQL, + 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_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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_00, KC_PDOT, KC_PENT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_00: + if (record->event.pressed) { + // when keycode KC_00 is pressed + SEND_STRING("00"); + } + return false; + } + return true; +}; diff --git a/keyboards/rmkeebs/rm_fullsize/keymaps/default/rules.mk b/keyboards/rmkeebs/rm_fullsize/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/rmkeebs/rm_fullsize/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rmkeebs/rm_fullsize/readme.md b/keyboards/rmkeebs/rm_fullsize/readme.md new file mode 100644 index 00000000000..5158d447c6f --- /dev/null +++ b/keyboards/rmkeebs/rm_fullsize/readme.md @@ -0,0 +1,26 @@ +# rm_fullsize + +![rm_full](https://i.imgur.com/k61zEtah.jpg) + +A fullsized keyboard with multiple layout options and a big knob. The case is manchined out of 6061 Aluminum by Rucker Machine in the USA. + +* Keyboard Maintainer: [Rucker Machine](https://github.com/RuckerMachine) +* Hardware Supported: RM Fullsized PCB, RP2040 controller +* Hardware Availability: [RM Fullsized](https://www.rmkeebs.com/product/rm-fullsized/) + +Make example for this keyboard (after setting up your build environment): + + make rmkeebs/rm_fullsize:default + +Flashing example for this keyboard: + + make rmkeebs/rm_fullsize: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 (Escape key) and plug in the keyboard +* **Physical reset button**: Hold down the button on the back of the PCB labeled BOOTLOADER, then press and hold the button labeled RESET for 3 seconds, then release both buttons. diff --git a/keyboards/rmkeebs/rm_fullsize/rules.mk b/keyboards/rmkeebs/rm_fullsize/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/rmkeebs/rm_fullsize/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/rocketboard_16/config.h b/keyboards/rocketboard_16/config.h index 64c493ace87..5e04a24ba58 100644 --- a/keyboards/rocketboard_16/config.h +++ b/keyboards/rocketboard_16/config.h @@ -17,27 +17,10 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP - // OLED stuff #define OLED_DISPLAY_128X64 #define OLED_FONT_H "custom_font.h" -// Allows for rotary encoder volume control -#define TAP_CODE_DELAY 20 - #define LOCKING_SUPPORT_ENABLE #define LOCKING_RESYNC_ENABLE diff --git a/keyboards/rocketboard_16/info.json b/keyboards/rocketboard_16/info.json index 00006749d80..5e3ee7b0e8f 100644 --- a/keyboards/rocketboard_16/info.json +++ b/keyboards/rocketboard_16/info.json @@ -21,9 +21,29 @@ {"pin_a": "A2", "pin_b": "A3"} ] }, + "qmk": { + "tap_keycode_delay": 20 + }, "bootmagic": { "matrix": [4, 1] }, + "rgblight": { + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A4" }, diff --git a/keyboards/rocketboard_16/rules.mk b/keyboards/rocketboard_16/rules.mk index dd493f5f18b..dcc3d4516bd 100644 --- a/keyboards/rocketboard_16/rules.mk +++ b/keyboards/rocketboard_16/rules.mk @@ -17,12 +17,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB backlit keys AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes RAW_ENABLE = yes # Enables HID RAW communication between the board and the PC -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - LTO_ENABLE = yes diff --git a/keyboards/rominronin/katana60/rev1/config.h b/keyboards/rominronin/katana60/rev1/config.h index 6c1b144b58c..13f0a19cbd2 100644 --- a/keyboards/rominronin/katana60/rev1/config.h +++ b/keyboards/rominronin/katana60/rev1/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAPPING_TERM 200 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/keymap.c index 02bd23a9b42..ca2be62a194 100644 --- a/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/keymap.c +++ b/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/keymap.c @@ -120,14 +120,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case M_QWERTY: @@ -157,7 +149,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/rominronin/katana60/rev1/keymaps/msiu/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/msiu/keymap.c index a65a5260b5d..7850d38c903 100644 --- a/keyboards/rominronin/katana60/rev1/keymaps/msiu/keymap.c +++ b/keyboards/rominronin/katana60/rev1/keymaps/msiu/keymap.c @@ -48,23 +48,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; - - - - - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/rominronin/katana60/rev1/keymaps/rominronin/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/rominronin/keymap.c index 6fa09146ede..615de932f89 100644 --- a/keyboards/rominronin/katana60/rev1/keymaps/rominronin/keymap.c +++ b/keyboards/rominronin/katana60/rev1/keymaps/rominronin/keymap.c @@ -63,20 +63,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/rominronin/katana60/rev2/config.h b/keyboards/rominronin/katana60/rev2/config.h index 0de481d0def..8e3d35a7beb 100644 --- a/keyboards/rominronin/katana60/rev2/config.h +++ b/keyboards/rominronin/katana60/rev2/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAPPING_TERM 200 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/rpiguy9907/southpaw66/config.h b/keyboards/rpiguy9907/southpaw66/config.h index 99fb7f54ea5..b4da5d530f8 100644 --- a/keyboards/rpiguy9907/southpaw66/config.h +++ b/keyboards/rpiguy9907/southpaw66/config.h @@ -16,9 +16,6 @@ #pragma once - -#define TAPPING_TERM 400 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/rpiguy9907/southpaw66/info.json b/keyboards/rpiguy9907/southpaw66/info.json index 3cebdcb4a8c..6c90980e7c5 100644 --- a/keyboards/rpiguy9907/southpaw66/info.json +++ b/keyboards/rpiguy9907/southpaw66/info.json @@ -16,6 +16,9 @@ "bootmagic": { "matrix": [1, 0] }, + "tapping": { + "term": 400 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/rubi/rules.mk b/keyboards/rubi/rules.mk index e2279a08a6c..e4810730443 100644 --- a/keyboards/rubi/rules.mk +++ b/keyboards/rubi/rules.mk @@ -11,7 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes SRC += lib/oled.c \ diff --git a/keyboards/runes/vaengr/config.h b/keyboards/runes/vaengr/config.h deleted file mode 100644 index 2f307f633f5..00000000000 --- a/keyboards/runes/vaengr/config.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright 2021 Vicktor - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - -/* - * 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/runes/vaengr/info.json b/keyboards/runes/vaengr/info.json index 98354c2900b..cf55a4093f0 100644 --- a/keyboards/runes/vaengr/info.json +++ b/keyboards/runes/vaengr/info.json @@ -9,6 +9,23 @@ "device_version": "0.0.1", "force_nkro": true }, + "rgblight": { + "hue_steps": 10, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/rura66/rev1/config.h b/keyboards/rura66/rev1/config.h index 8afe563b68f..e9a1ae40890 100644 --- a/keyboards/rura66/rev1/config.h +++ b/keyboards/rura66/rev1/config.h @@ -20,27 +20,7 @@ along with this program. If not, see . /* Split hand configration */ #define MASTER_LEFT -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 66 // Number of LEDs - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 33, 33 } - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RGB_TEST -// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - - /*== choose 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 -#endif /* Custom font */ #define OLED_FONT_H "keyboards/rura66/common/glcdfont.c" diff --git a/keyboards/rura66/rev1/info.json b/keyboards/rura66/rev1/info.json index e312323c4dd..efab211fca5 100644 --- a/keyboards/rura66/rev1/info.json +++ b/keyboards/rura66/rev1/info.json @@ -9,10 +9,20 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { - "max_brightness": 120 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 66, + "max_brightness": 120, + "split_count": [33, 33], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], diff --git a/keyboards/rura66/rev1/rules.mk b/keyboards/rura66/rev1/rules.mk index 0f2fb66a801..1c7bdc0c3cd 100644 --- a/keyboards/rura66/rev1/rules.mk +++ b/keyboards/rura66/rev1/rules.mk @@ -2,7 +2,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow SPLIT_KEYBOARD = yes RGB_MATRIX_ENABLE = no -OLED_DRIVER = SSD1306 ENCODER_ENABLE = no LTO_ENABLE = yes diff --git a/keyboards/ryanbaekr/rb18/config.h b/keyboards/ryanbaekr/rb18/config.h index 835872aed57..9024fa25d5b 100644 --- a/keyboards/ryanbaekr/rb18/config.h +++ b/keyboards/ryanbaekr/rb18/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* Underglow options */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 3 -#define RGBLED_HUE_STEP 8 -#define RGBLED_SAT_STEP 8 -#define RGBLED_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ryanbaekr/rb18/info.json b/keyboards/ryanbaekr/rb18/info.json index 2ee09674860..f03a29dfb1f 100644 --- a/keyboards/ryanbaekr/rb18/info.json +++ b/keyboards/ryanbaekr/rb18/info.json @@ -8,6 +8,21 @@ "pid": "0x0018", "device_version": "0.0.3" }, + "rgblight": { + "led_count": 3, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/ryanbaekr/rb69/config.h b/keyboards/ryanbaekr/rb69/config.h index 5614dfa1005..2e802ba3630 100644 --- a/keyboards/ryanbaekr/rb69/config.h +++ b/keyboards/ryanbaekr/rb69/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* Underglow options */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLED_HUE_STEP 8 -#define RGBLED_SAT_STEP 8 -#define RGBLED_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ryanbaekr/rb69/info.json b/keyboards/ryanbaekr/rb69/info.json index 0b514a46f67..8f132e6f5f0 100644 --- a/keyboards/ryanbaekr/rb69/info.json +++ b/keyboards/ryanbaekr/rb69/info.json @@ -8,6 +8,21 @@ "pid": "0x0069", "device_version": "0.0.3" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, @@ -16,8 +31,8 @@ "rows": ["D7", "C6", "D4", "D0", "D1"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "elite_c", + "pin_compatible": "elite_c", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ryanbaekr/rb86/info.json b/keyboards/ryanbaekr/rb86/info.json index 5c4c3485dff..fb4b9a4d21c 100644 --- a/keyboards/ryanbaekr/rb86/info.json +++ b/keyboards/ryanbaekr/rb86/info.json @@ -13,8 +13,8 @@ "rows": ["B0", "B1", "B2", "B3", "B4", "D7"] }, "diode_direction": "COL2ROW", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "elite_c", + "pin_compatible": "elite_c", "layout_aliases": { "LAYOUT_numpad_6x17": "LAYOUT" }, diff --git a/keyboards/ryanbaekr/rb87/config.h b/keyboards/ryanbaekr/rb87/config.h index ca1f8284c52..9024fa25d5b 100644 --- a/keyboards/ryanbaekr/rb87/config.h +++ b/keyboards/ryanbaekr/rb87/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -/* Underglow options */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 15 -#define RGBLED_HUE_STEP 8 -#define RGBLED_SAT_STEP 8 -#define RGBLED_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ryanbaekr/rb87/info.json b/keyboards/ryanbaekr/rb87/info.json index 8741408aaa1..cade6f12931 100644 --- a/keyboards/ryanbaekr/rb87/info.json +++ b/keyboards/ryanbaekr/rb87/info.json @@ -3,13 +3,28 @@ "manufacturer": "ryanbaekr", "url": "", "maintainer": "ryanbaekr", - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "elite_c", + "pin_compatible": "elite_c", "usb": { "vid": "0x7262", "pid": "0x0087", "device_version": "0.0.3" }, + "rgblight": { + "led_count": 15, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/ryanskidmore/rskeys100/info.json b/keyboards/ryanskidmore/rskeys100/info.json index 90b739b7d1e..1e7bf808289 100644 --- a/keyboards/ryanskidmore/rskeys100/info.json +++ b/keyboards/ryanskidmore/rskeys100/info.json @@ -11,7 +11,7 @@ "pin": "C7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/ryloo_studio/m0110/config.h b/keyboards/ryloo_studio/m0110/config.h index 9ed41827d0c..592d0be42a9 100755 --- a/keyboards/ryloo_studio/m0110/config.h +++ b/keyboards/ryloo_studio/m0110/config.h @@ -22,18 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 18 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/ryloo_studio/m0110/info.json b/keyboards/ryloo_studio/m0110/info.json index cded8206f4a..2df9f04cc7e 100644 --- a/keyboards/ryloo_studio/m0110/info.json +++ b/keyboards/ryloo_studio/m0110/info.json @@ -21,7 +21,22 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 123 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "max_brightness": 123, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.c b/keyboards/s_ol/0xc_pad/0xc_pad.c index c471da92cc5..ba8cd96aec2 100644 --- a/keyboards/s_ol/0xc_pad/0xc_pad.c +++ b/keyboards/s_ol/0xc_pad/0xc_pad.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 "0xc_pad.h" +#include "quantum.h" #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.h b/keyboards/s_ol/0xc_pad/0xc_pad.h deleted file mode 100644 index 013f4c89dcb..00000000000 --- a/keyboards/s_ol/0xc_pad/0xc_pad.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2021 s-ol - * - * This 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 LED_LAYOUT( \ - \ - k01, k05, k02, k06, k10, k03, k07, k11, k15, k08, k12, k16) \ - \ - { k01, k02, k03, k08, k07, k06, k05, k10, k11, k12, k16, k15, } diff --git a/keyboards/s_ol/0xc_pad/info.json b/keyboards/s_ol/0xc_pad/info.json index a35c054900b..98092302609 100644 --- a/keyboards/s_ol/0xc_pad/info.json +++ b/keyboards/s_ol/0xc_pad/info.json @@ -10,7 +10,7 @@ "pin": "C7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "layouts": { "LAYOUT": { diff --git a/keyboards/saevus/cor_tkl/config.h b/keyboards/saevus/cor_tkl/config.h index b42ece99a60..7fedf4dce12 100644 --- a/keyboards/saevus/cor_tkl/config.h +++ b/keyboards/saevus/cor_tkl/config.h @@ -20,5 +20,4 @@ along with this program. If not, see . /* RGB Matrix setup */ #define RGB_MATRIX_LED_COUNT 2 -#define RGBLED_NUM 2 #define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral diff --git a/keyboards/saevus/cor_tkl/info.json b/keyboards/saevus/cor_tkl/info.json index 54451c1077e..98880e4834d 100644 --- a/keyboards/saevus/cor_tkl/info.json +++ b/keyboards/saevus/cor_tkl/info.json @@ -35,7 +35,7 @@ "rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"] }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "GP19", diff --git a/keyboards/salicylic_acid3/7skb/rev1/config.h b/keyboards/salicylic_acid3/7skb/rev1/config.h index 573efb81c71..644ce27575b 100644 --- a/keyboards/salicylic_acid3/7skb/rev1/config.h +++ b/keyboards/salicylic_acid3/7skb/rev1/config.h @@ -25,23 +25,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifndef RGBLED_NUM - #define RGBLED_NUM 12 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 6, 6 } -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -49,8 +32,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard diff --git a/keyboards/salicylic_acid3/7skb/rev1/info.json b/keyboards/salicylic_acid3/7skb/rev1/info.json index 12f0b6f4248..89e675db525 100644 --- a/keyboards/salicylic_acid3/7skb/rev1/info.json +++ b/keyboards/salicylic_acid3/7skb/rev1/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "hue_steps": 10, + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/7splus/config.h b/keyboards/salicylic_acid3/7splus/config.h index 82eec4a3066..3a82c91526a 100644 --- a/keyboards/salicylic_acid3/7splus/config.h +++ b/keyboards/salicylic_acid3/7splus/config.h @@ -24,23 +24,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifndef RGBLED_NUM - #define RGBLED_NUM 31 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 11, 20 } -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -48,8 +31,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard diff --git a/keyboards/salicylic_acid3/7splus/info.json b/keyboards/salicylic_acid3/7splus/info.json index 524ecc34ea7..35b3d7ec170 100644 --- a/keyboards/salicylic_acid3/7splus/info.json +++ b/keyboards/salicylic_acid3/7splus/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "hue_steps": 10, + "led_count": 31, + "split_count": [11, 20], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/ergoarrows/config.h b/keyboards/salicylic_acid3/ergoarrows/config.h index dcbdb0f5374..e373d2a88b7 100644 --- a/keyboards/salicylic_acid3/ergoarrows/config.h +++ b/keyboards/salicylic_acid3/ergoarrows/config.h @@ -24,23 +24,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifndef RGBLED_NUM - #define RGBLED_NUM 86 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 43, 43 } -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 90 #define RGBLIGHT_VAL_STEP 17 @@ -48,8 +31,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 30 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard diff --git a/keyboards/salicylic_acid3/ergoarrows/info.json b/keyboards/salicylic_acid3/ergoarrows/info.json index 1665fce7e8f..3b4df223632 100644 --- a/keyboards/salicylic_acid3/ergoarrows/info.json +++ b/keyboards/salicylic_acid3/ergoarrows/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "hue_steps": 10, + "led_count": 86, + "split_count": [43, 43], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/getta25/keymaps/oled/rules.mk b/keyboards/salicylic_acid3/getta25/keymaps/oled/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/salicylic_acid3/getta25/keymaps/oled/rules.mk +++ b/keyboards/salicylic_acid3/getta25/keymaps/oled/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/salicylic_acid3/getta25/rev1/config.h b/keyboards/salicylic_acid3/getta25/rev1/config.h index cdc803a98c6..a8fd75dc9db 100644 --- a/keyboards/salicylic_acid3/getta25/rev1/config.h +++ b/keyboards/salicylic_acid3/getta25/rev1/config.h @@ -23,18 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 9 // Number of LEDs -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -42,8 +30,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard diff --git a/keyboards/salicylic_acid3/getta25/rev1/info.json b/keyboards/salicylic_acid3/getta25/rev1/info.json index de9fe887e76..e2148f9302a 100644 --- a/keyboards/salicylic_acid3/getta25/rev1/info.json +++ b/keyboards/salicylic_acid3/getta25/rev1/info.json @@ -8,6 +8,22 @@ "pid": "0x3060", "device_version": "0.1.3" }, + "rgblight": { + "hue_steps": 10, + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/jisplit89/rev1/config.h b/keyboards/salicylic_acid3/jisplit89/rev1/config.h index 51b6d454e5f..144d743b327 100644 --- a/keyboards/salicylic_acid3/jisplit89/rev1/config.h +++ b/keyboards/salicylic_acid3/jisplit89/rev1/config.h @@ -24,23 +24,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifndef RGBLED_NUM - #define RGBLED_NUM 32 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 11, 21 } -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -48,8 +31,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard diff --git a/keyboards/salicylic_acid3/jisplit89/rev1/info.json b/keyboards/salicylic_acid3/jisplit89/rev1/info.json index 63feabb9393..e3d884bdb1b 100644 --- a/keyboards/salicylic_acid3/jisplit89/rev1/info.json +++ b/keyboards/salicylic_acid3/jisplit89/rev1/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "hue_steps": 10, + "led_count": 32, + "split_count": [11, 21], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/nafuda/config.h b/keyboards/salicylic_acid3/nafuda/config.h index 94d44bfce83..fb94963ca0e 100644 --- a/keyboards/salicylic_acid3/nafuda/config.h +++ b/keyboards/salicylic_acid3/nafuda/config.h @@ -23,18 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 7 // Number of LEDs -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -42,8 +30,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 diff --git a/keyboards/salicylic_acid3/nafuda/info.json b/keyboards/salicylic_acid3/nafuda/info.json index ea2645cf23f..b42cfeb6b4f 100644 --- a/keyboards/salicylic_acid3/nafuda/info.json +++ b/keyboards/salicylic_acid3/nafuda/info.json @@ -8,6 +8,22 @@ "pid": "0x3060", "device_version": "0.1.2" }, + "rgblight": { + "hue_steps": 10, + "led_count": 7, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/naked48/rev1/config.h b/keyboards/salicylic_acid3/naked48/rev1/config.h index c7246fad769..84dbacba549 100644 --- a/keyboards/salicylic_acid3/naked48/rev1/config.h +++ b/keyboards/salicylic_acid3/naked48/rev1/config.h @@ -22,22 +22,4 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifndef RGBLED_NUM - #define RGBLED_NUM 48 -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #define RGBLIGHT_DEFAULT_VAL 50 - -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/salicylic_acid3/naked48/rev1/info.json b/keyboards/salicylic_acid3/naked48/rev1/info.json index a378952d252..a2d7b0c8497 100644 --- a/keyboards/salicylic_acid3/naked48/rev1/info.json +++ b/keyboards/salicylic_acid3/naked48/rev1/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "D7", "E6", "B4", "B5"], @@ -25,6 +25,22 @@ } } }, + "rgblight": { + "hue_steps": 10, + "led_count": 48, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/naked64/rev1/config.h b/keyboards/salicylic_acid3/naked64/rev1/config.h index 33ee2b50302..a8fd75dc9db 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/config.h +++ b/keyboards/salicylic_acid3/naked64/rev1/config.h @@ -23,9 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 12 // Number of LEDs -#define RGBLIGHT_LED_MAP { 0, 1, 3, 2, 2, 3, 2, 3, 4, 5, 6, 7 } - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -33,12 +30,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - -// Selection of RGBLIGHT MODE to use. -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_SNAKE #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard diff --git a/keyboards/salicylic_acid3/naked64/rev1/info.json b/keyboards/salicylic_acid3/naked64/rev1/info.json index a58acf807b0..a95f8d60fe0 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/info.json +++ b/keyboards/salicylic_acid3/naked64/rev1/info.json @@ -22,6 +22,15 @@ } } }, + "rgblight": { + "hue_steps": 10, + "led_count": 12, + "led_map": [0, 1, 3, 2, 2, 3, 2, 3, 4, 5, 6, 7], + "animations": { + "breathing": true, + "snake": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/salicylic_acid3/nknl7en/config.h b/keyboards/salicylic_acid3/nknl7en/config.h index 9f39d06f61f..5bc9c2c789b 100644 --- a/keyboards/salicylic_acid3/nknl7en/config.h +++ b/keyboards/salicylic_acid3/nknl7en/config.h @@ -24,23 +24,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifndef RGBLED_NUM - #define RGBLED_NUM 21 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 9, 12 } -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -48,8 +31,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard diff --git a/keyboards/salicylic_acid3/nknl7en/info.json b/keyboards/salicylic_acid3/nknl7en/info.json index f0f45f077a4..fad22122f6c 100644 --- a/keyboards/salicylic_acid3/nknl7en/info.json +++ b/keyboards/salicylic_acid3/nknl7en/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "hue_steps": 10, + "led_count": 21, + "split_count": [9, 12], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/nknl7jp/config.h b/keyboards/salicylic_acid3/nknl7jp/config.h index 65091cadc07..5bc9c2c789b 100644 --- a/keyboards/salicylic_acid3/nknl7jp/config.h +++ b/keyboards/salicylic_acid3/nknl7jp/config.h @@ -24,23 +24,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifndef RGBLED_NUM - #define RGBLED_NUM 20 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 9, 11 } -#endif - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -48,8 +31,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) // USB_MAX_POWER_CONSUMPTION value for naked48 keyboard diff --git a/keyboards/salicylic_acid3/nknl7jp/info.json b/keyboards/salicylic_acid3/nknl7jp/info.json index 5713ad90846..7bafe46d9a0 100644 --- a/keyboards/salicylic_acid3/nknl7jp/info.json +++ b/keyboards/salicylic_acid3/nknl7jp/info.json @@ -16,6 +16,23 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "hue_steps": 10, + "led_count": 20, + "split_count": [9, 11], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/salicylic_acid3/setta21/keymaps/salicylic/keymap.c b/keyboards/salicylic_acid3/setta21/keymaps/salicylic/keymap.c index e117d26eee4..b7cde4d4e09 100644 --- a/keyboards/salicylic_acid3/setta21/keymaps/salicylic/keymap.c +++ b/keyboards/salicylic_acid3/setta21/keymaps/salicylic/keymap.c @@ -173,8 +173,8 @@ void render_layer_state(void) { oled_write_P(PSTR(" Macro "), layer_state_is(_MACRO)); } -void render_keylock_status(uint8_t led_usb_state) { - oled_write_P(PSTR("NumLock"), led_usb_state & (1 << USB_LED_NUM_LOCK)); +void render_keylock_status(led_t led_state) { + oled_write_P(PSTR("NumLock"), led_state.num_lock); oled_write_P(PSTR(" "), false); } @@ -186,7 +186,7 @@ void render_layer_messages(void) { void render_status(void) { /* Show Keyboard Layout */ render_layer_messages(); - render_keylock_status(host_keyboard_leds()); + render_keylock_status(host_keyboard_led_state()); render_layer_state(); } diff --git a/keyboards/salicylic_acid3/setta21/keymaps/salicylic/rules.mk b/keyboards/salicylic_acid3/setta21/keymaps/salicylic/rules.mk index 69864a31662..ad721c13de4 100644 --- a/keyboards/salicylic_acid3/setta21/keymaps/salicylic/rules.mk +++ b/keyboards/salicylic_acid3/setta21/keymaps/salicylic/rules.mk @@ -1,4 +1,3 @@ RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/salicylic_acid3/setta21/rev1/config.h b/keyboards/salicylic_acid3/setta21/rev1/config.h index eb9e0b5b1dc..fb94963ca0e 100644 --- a/keyboards/salicylic_acid3/setta21/rev1/config.h +++ b/keyboards/salicylic_acid3/setta21/rev1/config.h @@ -23,18 +23,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 21 // Number of LEDs -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 #define RGBLIGHT_VAL_STEP 17 @@ -42,8 +30,6 @@ along with this program. If not, see . #define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_VAL_STEP 4 #endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 #if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) #define USB_MAX_POWER_CONSUMPTION 400 diff --git a/keyboards/salicylic_acid3/setta21/rev1/info.json b/keyboards/salicylic_acid3/setta21/rev1/info.json index 642bde6298a..d510c2c3b2a 100644 --- a/keyboards/salicylic_acid3/setta21/rev1/info.json +++ b/keyboards/salicylic_acid3/setta21/rev1/info.json @@ -8,11 +8,27 @@ "pid": "0x3060", "device_version": "0.1.1" }, + "rgblight": { + "hue_steps": 10, + "led_count": 21, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], diff --git a/keyboards/sam/s80/config.h b/keyboards/sam/s80/config.h deleted file mode 100644 index 4c3d6ae5049..00000000000 --- a/keyboards/sam/s80/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2020 CMM。Studio Freather - * - * This 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 RGBLED_NUM 20 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - -// generated by KBFirmware JSON to QMK Parser -// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/sam/s80/info.json b/keyboards/sam/s80/info.json index 73794ba3eb9..3949a2680ab 100644 --- a/keyboards/sam/s80/info.json +++ b/keyboards/sam/s80/info.json @@ -20,6 +20,9 @@ "pin": "E2" }, "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, "max_brightness": 100 }, "processor": "atmega32u4", diff --git a/keyboards/sam/sg81m/config.h b/keyboards/sam/sg81m/config.h deleted file mode 100644 index b999af6eec4..00000000000 --- a/keyboards/sam/sg81m/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2021 CMM.Studio Freather - * - * This 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 RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/sam/sg81m/info.json b/keyboards/sam/sg81m/info.json index baa1cec9a75..ca06c38aa4c 100644 --- a/keyboards/sam/sg81m/info.json +++ b/keyboards/sam/sg81m/info.json @@ -16,6 +16,24 @@ "indicators": { "caps_lock": "B0" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/sandwich/keeb68/info.json b/keyboards/sandwich/keeb68/info.json index ec09badedfa..df8b91a3385 100644 --- a/keyboards/sandwich/keeb68/info.json +++ b/keyboards/sandwich/keeb68/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "C7", "levels": 5, "breathing": true diff --git a/keyboards/satt/comet46/lib/host_led_state_reader.c b/keyboards/satt/comet46/lib/host_led_state_reader.c index 758fc4c1dcb..e9910e01414 100644 --- a/keyboards/satt/comet46/lib/host_led_state_reader.c +++ b/keyboards/satt/comet46/lib/host_led_state_reader.c @@ -4,12 +4,12 @@ char host_led_state_str[22]; const char *read_host_led_state(void) { - uint8_t leds = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); snprintf(host_led_state_str, sizeof(host_led_state_str), "Lock: %s%s%s", - (leds & (1 << USB_LED_CAPS_LOCK)) ? "CAPL " : "", - (leds & (1 << USB_LED_SCROLL_LOCK)) ? "SCRL " : "", - (leds & (1 << USB_LED_NUM_LOCK)) ? "NUML" : ""); + led_state.caps_lock ? "CAPL " : "", + led_state.scroll_lock ? "SCRL " : "", + led_state.num_lock ? "NUML" : ""); return host_led_state_str; } diff --git a/keyboards/satt/comet46/rules.mk b/keyboards/satt/comet46/rules.mk index 687d594ecbf..fe692cc5c34 100644 --- a/keyboards/satt/comet46/rules.mk +++ b/keyboards/satt/comet46/rules.mk @@ -11,7 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite -OLED_DRIVER = SSD1306 # project specific files SRC += matrix.c diff --git a/keyboards/satt/vision/rules.mk b/keyboards/satt/vision/rules.mk index 0aeca0dd9f3..7f4f202a1b7 100644 --- a/keyboards/satt/vision/rules.mk +++ b/keyboards/satt/vision/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/sauce/mild/rules.mk b/keyboards/sauce/mild/rules.mk index eed469b44e8..ca4d3845848 100644 --- a/keyboards/sauce/mild/rules.mk +++ b/keyboards/sauce/mild/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/sawnsprojects/amber80/solder/config.h b/keyboards/sawnsprojects/amber80/solder/config.h deleted file mode 100644 index b47e1efd74a..00000000000 --- a/keyboards/sawnsprojects/amber80/solder/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2022 SawnsProjects - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* RGB */ - #define RGBLED_NUM 22 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== or choose 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 diff --git a/keyboards/sawnsprojects/amber80/solder/info.json b/keyboards/sawnsprojects/amber80/solder/info.json index 9fe412c3cd4..f6c458a9b72 100644 --- a/keyboards/sawnsprojects/amber80/solder/info.json +++ b/keyboards/sawnsprojects/amber80/solder/info.json @@ -18,6 +18,23 @@ "scroll_lock": "B0", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/sawnsprojects/krush/krush60/solder/config.h b/keyboards/sawnsprojects/krush/krush60/solder/config.h deleted file mode 100644 index 9cdc6354ecc..00000000000 --- a/keyboards/sawnsprojects/krush/krush60/solder/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2021 SawnsProjects - * - * This 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 RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 diff --git a/keyboards/sawnsprojects/krush/krush60/solder/info.json b/keyboards/sawnsprojects/krush/krush60/solder/info.json index 2cdecaaeb41..7aeb5ad38ab 100644 --- a/keyboards/sawnsprojects/krush/krush60/solder/info.json +++ b/keyboards/sawnsprojects/krush/krush60/solder/info.json @@ -21,7 +21,23 @@ "pin": "F1" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/config.h b/keyboards/sawnsprojects/krush/krush65/hotswap/config.h deleted file mode 100644 index 380a50edbec..00000000000 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/config.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright 2021 SawnsProjects - * - * This 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 - -/* Encoders */ - -#define ENCODERS_CW_KEY { { 12, 3 } } -#define ENCODERS_CCW_KEY { { 12, 4 } } - -/* RGB */ - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c deleted file mode 100644 index 96fcc9a6141..00000000000 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * Copyright 2021 drashna jael're (@drashna) - * Copyright 2021 uybv - * Copyright 2021 SawnsProjects - * - * This 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 3 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 "encoder_actions.h" - -#ifdef ENCODER_ENABLE -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -#endif diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h deleted file mode 100644 index fb226326324..00000000000 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h b/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h deleted file mode 100644 index 5f25d9c5c34..00000000000 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2021 SawnsProjects - * - * This 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 "encoder_actions.h" diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/info.json b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json index 4cec48d86e6..5f8036cd3aa 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/info.json +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json @@ -26,12 +26,28 @@ "pin": "E6" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { - "LAYOUT_all": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -109,88 +125,6 @@ {"matrix": [4, 14], "x": 14, "y": 4}, {"matrix": [4, 15], "x": 15, "y": 4} ] - }, - "LAYOUT_via_rotary": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.75}, - {"matrix": [0, 1], "x": 1, "y": 0.75}, - {"matrix": [0, 2], "x": 2, "y": 0.75}, - {"matrix": [0, 3], "x": 3, "y": 0.75}, - {"matrix": [0, 4], "x": 4, "y": 0.75}, - {"matrix": [0, 5], "x": 5, "y": 0.75}, - {"matrix": [0, 6], "x": 6, "y": 0.75}, - {"matrix": [0, 7], "x": 7, "y": 0.75}, - {"matrix": [0, 8], "x": 8, "y": 0.75}, - {"matrix": [0, 9], "x": 9, "y": 0.75}, - {"matrix": [0, 10], "x": 10, "y": 0.75}, - {"matrix": [0, 11], "x": 11, "y": 0.75}, - {"matrix": [0, 12], "x": 12, "y": 0.75}, - {"matrix": [0, 13], "x": 13, "y": 0.75}, - {"matrix": [0, 14], "x": 14, "y": 0.75}, - {"matrix": [0, 15], "x": 15, "y": 0.75}, - - {"matrix": [3, 12], "x": 14.75, "y": 0, "w": 0.75, "h": 0.75}, - {"matrix": [4, 12], "x": 15.5, "y": 0, "w": 0.75, "h": 0.75}, - - {"matrix": [1, 0], "x": 0, "y": 1.75, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1.75}, - {"matrix": [1, 2], "x": 2.5, "y": 1.75}, - {"matrix": [1, 3], "x": 3.5, "y": 1.75}, - {"matrix": [1, 4], "x": 4.5, "y": 1.75}, - {"matrix": [1, 5], "x": 5.5, "y": 1.75}, - {"matrix": [1, 6], "x": 6.5, "y": 1.75}, - {"matrix": [1, 7], "x": 7.5, "y": 1.75}, - {"matrix": [1, 8], "x": 8.5, "y": 1.75}, - {"matrix": [1, 9], "x": 9.5, "y": 1.75}, - {"matrix": [1, 10], "x": 10.5, "y": 1.75}, - {"matrix": [1, 11], "x": 11.5, "y": 1.75}, - {"matrix": [1, 12], "x": 12.5, "y": 1.75}, - {"matrix": [1, 13], "x": 13.5, "y": 1.75, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1.75}, - - {"matrix": [2, 0], "x": 0, "y": 2.75, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2.75}, - {"matrix": [2, 2], "x": 2.75, "y": 2.75}, - {"matrix": [2, 3], "x": 3.75, "y": 2.75}, - {"matrix": [2, 4], "x": 4.75, "y": 2.75}, - {"matrix": [2, 5], "x": 5.75, "y": 2.75}, - {"matrix": [2, 6], "x": 6.75, "y": 2.75}, - {"matrix": [2, 7], "x": 7.75, "y": 2.75}, - {"matrix": [2, 8], "x": 8.75, "y": 2.75}, - {"matrix": [2, 9], "x": 9.75, "y": 2.75}, - {"matrix": [2, 10], "x": 10.75, "y": 2.75}, - {"matrix": [2, 11], "x": 11.75, "y": 2.75}, - {"matrix": [2, 13], "x": 12.75, "y": 2.75, "w": 2.25}, - {"matrix": [2, 15], "x": 15, "y": 2.75}, - - {"matrix": [3, 0], "x": 0, "y": 3.75, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3.75}, - {"matrix": [3, 3], "x": 3.25, "y": 3.75}, - {"matrix": [3, 4], "x": 4.25, "y": 3.75}, - {"matrix": [3, 5], "x": 5.25, "y": 3.75}, - {"matrix": [3, 6], "x": 6.25, "y": 3.75}, - {"matrix": [3, 7], "x": 7.25, "y": 3.75}, - {"matrix": [3, 8], "x": 8.25, "y": 3.75}, - {"matrix": [3, 9], "x": 9.25, "y": 3.75}, - {"matrix": [3, 10], "x": 10.25, "y": 3.75}, - {"matrix": [3, 11], "x": 11.25, "y": 3.75}, - {"matrix": [3, 13], "x": 12.25, "y": 3.75, "w": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3.75}, - {"matrix": [3, 15], "x": 15, "y": 3.75}, - - {"matrix": [4, 0], "x": 0, "y": 4.75, "w": 1.25}, - {"matrix": [4, 2], "x": 1.25, "y": 4.75, "w": 1.25}, - {"matrix": [4, 3], "x": 2.5, "y": 4.75, "w": 1.25}, - {"matrix": [4, 5], "x": 3.75, "y": 4.75, "w": 2.25}, - {"matrix": [4, 6], "x": 6, "y": 4.75, "w": 1.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.75, "w": 2.75}, - {"matrix": [4, 8], "x": 10, "y": 4.75, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.75, "w": 1.25}, - - {"matrix": [4, 13], "x": 13, "y": 4.75}, - {"matrix": [4, 14], "x": 14, "y": 4.75}, - {"matrix": [4, 15], "x": 15, "y": 4.75} - ] } } } diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c index 13883d07e45..8487c555bae 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [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_BSPC, KC_GRV, KC_PSCR, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_all( + [1] = 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c index d55eb74fb0d..7d239cc5232 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c @@ -19,42 +19,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_via_rotary( - 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_PSCR, KC_VOLD ,KC_VOLU, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [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_GRV, KC_PSCR, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_via_rotary( - 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + 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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_via_rotary( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 ), - [3] = LAYOUT_via_rotary( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 ), }; - -void matrix_scan_user(void) { - encoder_action_unregister(); -} -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return false; // override kb default behavior -}; \ No newline at end of file +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk index a9739430b9a..1189f4ad192 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk @@ -1,5 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes - -# Added encoder Action -SRC += encoder_actions.c \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/sawnsprojects/krush/krush65/solder/config.h b/keyboards/sawnsprojects/krush/krush65/solder/config.h deleted file mode 100644 index c5b074931d3..00000000000 --- a/keyboards/sawnsprojects/krush/krush65/solder/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2021 SawnsProjects - * - * This 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 RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/info.json b/keyboards/sawnsprojects/krush/krush65/solder/info.json index bd84e19a0ea..853f95b45e2 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/info.json +++ b/keyboards/sawnsprojects/krush/krush65/solder/info.json @@ -26,7 +26,23 @@ "pin": "F1" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/sawnsprojects/satxri6key/config.h b/keyboards/sawnsprojects/satxri6key/config.h index b7b34360512..d649c698aba 100644 --- a/keyboards/sawnsprojects/satxri6key/config.h +++ b/keyboards/sawnsprojects/satxri6key/config.h @@ -16,22 +16,6 @@ #pragma once - #define RGBLED_NUM 6 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - #define RGB_MATRIX_LED_COUNT 6 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/sawnsprojects/satxri6key/info.json b/keyboards/sawnsprojects/satxri6key/info.json index 642f813a67e..5d92db728ab 100644 --- a/keyboards/sawnsprojects/satxri6key/info.json +++ b/keyboards/sawnsprojects/satxri6key/info.json @@ -8,6 +8,24 @@ "pid": "0x0727", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk b/keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk index 70b7f6921fa..3d821b064a3 100644 --- a/keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk +++ b/keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk @@ -1,4 +1,4 @@ VIA_ENABLE = no RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 diff --git a/keyboards/sawnsprojects/vcl65/solder/config.h b/keyboards/sawnsprojects/vcl65/solder/config.h deleted file mode 100644 index 4fd203480c3..00000000000 --- a/keyboards/sawnsprojects/vcl65/solder/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 SawnsProjects - * - * This 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 RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ -/*== all animations 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 diff --git a/keyboards/sawnsprojects/vcl65/solder/info.json b/keyboards/sawnsprojects/vcl65/solder/info.json index 47b141ad4e1..a7c3975ccf0 100644 --- a/keyboards/sawnsprojects/vcl65/solder/info.json +++ b/keyboards/sawnsprojects/vcl65/solder/info.json @@ -21,7 +21,23 @@ "pin": "B7" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/sck/gtm/config.h b/keyboards/sck/gtm/config.h index c95d84b30d0..5f360813239 100644 --- a/keyboards/sck/gtm/config.h +++ b/keyboards/sck/gtm/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - -#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 RGBLED_NUM 4 -#endif diff --git a/keyboards/sck/gtm/info.json b/keyboards/sck/gtm/info.json index 422fb0c0f1e..7925b109ece 100644 --- a/keyboards/sck/gtm/info.json +++ b/keyboards/sck/gtm/info.json @@ -8,6 +8,21 @@ "pid": "0x6090", "device_version": "0.0.2" }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/sck/osa/config.h b/keyboards/sck/osa/config.h deleted file mode 100644 index cc6739122e2..00000000000 --- a/keyboards/sck/osa/config.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2019 jrfhoutx - -This 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 RGBLED_NUM 9 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - -/* - * 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/sck/osa/info.json b/keyboards/sck/osa/info.json index ae63add0625..823b94f4777 100644 --- a/keyboards/sck/osa/info.json +++ b/keyboards/sck/osa/info.json @@ -18,6 +18,11 @@ "num_lock": "C7", "scroll_lock": "B6" }, + "rgblight": { + "hue_steps": 10, + "led_count": 9, + "sleep": true + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/sck/osa/keymaps/ocm/keymap.c b/keyboards/sck/osa/keymaps/ocm/keymap.c index cd48b57291f..87544b7375e 100644 --- a/keyboards/sck/osa/keymaps/ocm/keymap.c +++ b/keyboards/sck/osa/keymaps/ocm/keymap.c @@ -15,13 +15,6 @@ */ #include QMK_KEYBOARD_H -// Defines the keycodes used by our macros in process_record_user -//enum custom_keycodes { -// QMKBEST = SAFE_RANGE, -// QMKURL -//}; - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap BASE: (Base Layer) Default Layer * .----.,----------------------------------------------------------------------. @@ -84,40 +77,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL ), }; - - - - -//bool process_record_user(uint16_t keycode, keyrecord_t *record) { -// switch (keycode) { -// case QMKBEST: -// if (record->event.pressed) { -// // when keycode QMKBEST is pressed -// SEND_STRING("QMK is the best thing ever!"); -// } else { -// // when keycode QMKBEST is released -// } -// break; -// case QMKURL: -// if (record->event.pressed) { -// // when keycode QMKURL is pressed -// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); -// } else { -// // when keycode QMKURL is released -// } -// break; -// } -// return true; -//} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/sck/osa/keymaps/splitbs/keymap.c b/keyboards/sck/osa/keymaps/splitbs/keymap.c index 528e45329b7..367e084443a 100644 --- a/keyboards/sck/osa/keymaps/splitbs/keymap.c +++ b/keyboards/sck/osa/keymaps/splitbs/keymap.c @@ -15,13 +15,6 @@ */ #include QMK_KEYBOARD_H -// Defines the keycodes used by our macros in process_record_user -//enum custom_keycodes { -// QMKBEST = SAFE_RANGE, -// QMKURL -//}; - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap BASE: (Base Layer) Default Layer * .----.,----------------------------------------------------------------------. @@ -64,40 +57,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, _______, KC_SPC, KC_RALT, KC_RCTL ), }; - - - - -//bool process_record_user(uint16_t keycode, keyrecord_t *record) { -// switch (keycode) { -// case QMKBEST: -// if (record->event.pressed) { -// // when keycode QMKBEST is pressed -// SEND_STRING("QMK is the best thing ever!"); -// } else { -// // when keycode QMKBEST is released -// } -// break; -// case QMKURL: -// if (record->event.pressed) { -// // when keycode QMKURL is pressed -// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); -// } else { -// // when keycode QMKURL is released -// } -// break; -// } -// return true; -//} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/sck/osa/keymaps/splitrs/keymap.c b/keyboards/sck/osa/keymaps/splitrs/keymap.c index 3c64300667e..92f156321c9 100644 --- a/keyboards/sck/osa/keymaps/splitrs/keymap.c +++ b/keyboards/sck/osa/keymaps/splitrs/keymap.c @@ -15,13 +15,6 @@ */ #include QMK_KEYBOARD_H -// Defines the keycodes used by our macros in process_record_user -//enum custom_keycodes { -// QMKBEST = SAFE_RANGE, -// QMKURL -//}; - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap BASE: (Base Layer) Default Layer * .----.,----------------------------------------------------------------------. @@ -64,40 +57,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, _______, KC_SPC, KC_RALT, KC_RCTL ), }; - - - - -//bool process_record_user(uint16_t keycode, keyrecord_t *record) { -// switch (keycode) { -// case QMKBEST: -// if (record->event.pressed) { -// // when keycode QMKBEST is pressed -// SEND_STRING("QMK is the best thing ever!"); -// } else { -// // when keycode QMKBEST is released -// } -// break; -// case QMKURL: -// if (record->event.pressed) { -// // when keycode QMKURL is pressed -// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); -// } else { -// // when keycode QMKURL is released -// } -// break; -// } -// return true; -//} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/scottokeebs/scotto34/info.json b/keyboards/scottokeebs/scotto34/info.json new file mode 100644 index 00000000000..72a1801bead --- /dev/null +++ b/keyboards/scottokeebs/scotto34/info.json @@ -0,0 +1,75 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "Scotto34 (PCB Edition)", + "maintainer": "joe-scotto", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP18", "GP19", "GP20", "GP21", "GP22"], + "rows": ["GP0", "GP1", "GP14", "GP15"] + }, + "processor": "RP2040", + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x1013", + "vid": "0x534B" + }, + "ws2812": { + "pin": "GP23", + "driver": "vendor" + }, + "rgblight": { + "led_count": 1 + }, + "community_layouts": ["split_3x5_2"], + "layouts": { + "LAYOUT_split_3x5_2": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [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": [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": [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": [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 } + ] + } + } +} diff --git a/keyboards/scottokeebs/scotto34/keymaps/default/config.h b/keyboards/scottokeebs/scotto34/keymaps/default/config.h new file mode 100644 index 00000000000..9e99bf0205e --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2023 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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c b/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c new file mode 100644 index 00000000000..a06722184a9 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2023 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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, 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_split_3x5_2( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_2( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_2( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/scottokeebs/scotto34/keymaps/scotto/config.h b/keyboards/scottokeebs/scotto34/keymaps/scotto/config.h new file mode 100644 index 00000000000..9e99bf0205e --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2023 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 TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c b/keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c new file mode 100644 index 00000000000..b1720f43020 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c @@ -0,0 +1,246 @@ +/* +Copyright 2023 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 + +// Tap dance declarations +enum { + TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI, + TD_ESC_LCTL_LALT_WINDOWS_EMOJI +}; + +// Custom tapping term for multi function keys +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI) : + case TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Begin quad TD +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_HOLD, + TD_DOUBLE_HOLD, + TD_TRIPLE_HOLD, + TD_SINGLE_TAP, + TD_DOUBLE_TAP, + TD_TRIPLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Create an instance of 'td_tap_t' for the 'x' tap dance. +static td_tap_t xtap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return TD_SINGLE_TAP; + } else { + return TD_SINGLE_HOLD; + } + } else if (state->count == 2) { + if (state->interrupted || !state->pressed) { + return TD_DOUBLE_TAP; + } else { + return TD_DOUBLE_HOLD; + } + } else if (state->count == 3) { + if (state->interrupted || !state->pressed) { + return TD_TRIPLE_TAP; + } else { + return TD_TRIPLE_HOLD; + } + } + + return TD_UNKNOWN; +} + +void td_esc_lalt_lctl_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: tap_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; + case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; + default: break; + } +} + +void td_esc_lalt_lctl_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + case TD_DOUBLE_HOLD: unregister_code(KC_LCTL); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_esc_lctl_lalt_windows_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: tap_code16(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; + case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; + default: break; + } +} + +void td_esc_lctl_lalt_windows_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break; + default: break; + } + xtap_state.state = TD_NONE; +} + + // Tap Dance definitions +tap_dance_action_t tap_dance_actions[] = { + [TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lalt_lctl_spotlight_emoji_finished, td_esc_lalt_lctl_spotlight_emoji_reset), + [TD_ESC_LCTL_LALT_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lctl_lalt_windows_emoji_finished, td_esc_lctl_lalt_windows_emoji_reset) +}; +// For the x tap dance. Put it here so it can be used in any keymap +void x_finished(tap_dance_state_t *state, void *user_data); +void x_reset(tap_dance_state_t *state, void *user_data); + +// Onboard LED +#ifdef RGBLIGHT_ENABLE + // Configure LED + void keyboard_post_init_user(void) { + // Initialize RGB to static black + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_BLACK); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + } + + // Change LED + void housekeeping_task_user(void) { + // Caps lock status + if (host_keyboard_led_state().caps_lock) { + rgblight_setrgb_at(4, 4, 0, 0); + } else { + // Layers + switch (get_highest_layer(layer_state | default_layer_state)) { + case 0: + rgblight_setrgb_at(4, 4, 4, 0); + break; + case 1: + rgblight_setrgb_at(4, 4, 4, 0); + break; + case 2: + rgblight_setrgb_at(4, 4, 4, 0); + break; + case 3: + rgblight_setrgb_at(4, 4, 4, 0); + break; + case 4: + rgblight_setrgb_at(0, 0, 4, 0); + break; + case 5: + rgblight_setrgb_at(0, 4, 0, 0); + break; + case 6: + rgblight_setrgb_at(0, 0, 4, 0); + break; + case 7: + rgblight_setrgb_at(0, 0, 4, 0); + break; + case 8: + rgblight_setrgb_at(0, 0, 4, 0); + break; + } + } + } +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI), LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) + ), + [1] = LAYOUT_split_3x5_2( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_2( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_2( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(5), TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [4] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI), LCTL_T(KC_SPC), LT(6, KC_TAB), LT(7, KC_ENT) + ), + [5] = LAYOUT_split_3x5_2( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, KC_SLSH, + KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT) + ), + [6] = LAYOUT_split_3x5_2( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [7] = LAYOUT_split_3x5_2( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(8), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [8] = LAYOUT_split_3x5_2( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), TO(5), TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk b/keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk new file mode 100644 index 00000000000..e5ddcae8d92 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/scottokeebs/scotto34/readme.md b/keyboards/scottokeebs/scotto34/readme.md new file mode 100644 index 00000000000..546a20b08a6 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/readme.md @@ -0,0 +1,29 @@ +# Scotto34 (PCB Edition) + +![Scotto34 (PCB Edition)](https://i.imgur.com/nTxYa7ih.jpg) + +A low profile 34-key split monoblock ortholinear keyboard that uses 18x17mm spaced Choc switches and an exposed controller in the middle. + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: Scotto34 (PCB Edition), Raspberry Pi Pico +* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [AliExpress](https://aliexpress.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make scottokeebs/scotto34:default + +Flashing example for this keyboard: + + make scottokeebs/scotto34: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/scottokeebs/scotto34/rules.mk b/keyboards/scottokeebs/scotto34/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/sendyyeah/pix/config.h b/keyboards/sendyyeah/pix/config.h index 071064c8bcb..d6dfea8506b 100644 --- a/keyboards/sendyyeah/pix/config.h +++ b/keyboards/sendyyeah/pix/config.h @@ -25,20 +25,5 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 15 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYER_BLINK diff --git a/keyboards/sendyyeah/pix/info.json b/keyboards/sendyyeah/pix/info.json index c1ca4137ccc..9701dffb159 100644 --- a/keyboards/sendyyeah/pix/info.json +++ b/keyboards/sendyyeah/pix/info.json @@ -8,6 +8,24 @@ "pid": "0x4E34", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 15, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/sendyyeah/pix/rules.mk b/keyboards/sendyyeah/pix/rules.mk index a6fe4b81c41..83231e1022b 100644 --- a/keyboards/sendyyeah/pix/rules.mk +++ b/keyboards/sendyyeah/pix/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/senselessclay/ck60/info.json b/keyboards/senselessclay/ck60/info.json index 0e27424dac2..f05d94c9de4 100644 --- a/keyboards/senselessclay/ck60/info.json +++ b/keyboards/senselessclay/ck60/info.json @@ -12,7 +12,7 @@ "pin": "B1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F0", "D5", "D3", "D2", "D1", "D0", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], diff --git a/keyboards/senselessclay/ck65/config.h b/keyboards/senselessclay/ck65/config.h index 9aad2f69c34..7c029a283db 100644 --- a/keyboards/senselessclay/ck65/config.h +++ b/keyboards/senselessclay/ck65/config.h @@ -38,17 +38,4 @@ along with this program. If not, see . //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -/* RGB Backlighting */ -#define RGBLED_NUM 69 -#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_SLEEP #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+5 diff --git a/keyboards/senselessclay/ck65/info.json b/keyboards/senselessclay/ck65/info.json index 75bff408c68..129c487e19d 100644 --- a/keyboards/senselessclay/ck65/info.json +++ b/keyboards/senselessclay/ck65/info.json @@ -12,7 +12,21 @@ "pin": "B1" }, "rgblight": { - "max_brightness": 122 + "led_count": 69, + "max_brightness": 122, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F0", "D5", "D3", "D2", "D1", "D0", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], diff --git a/keyboards/senselessclay/gos65/config.h b/keyboards/senselessclay/gos65/config.h index 907e7dea5d3..cef01cf341c 100644 --- a/keyboards/senselessclay/gos65/config.h +++ b/keyboards/senselessclay/gos65/config.h @@ -37,17 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -/* RGB Backlighting */ -#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_SLEEP diff --git a/keyboards/senselessclay/gos65/info.json b/keyboards/senselessclay/gos65/info.json index eb59447c39e..c834b8152f1 100644 --- a/keyboards/senselessclay/gos65/info.json +++ b/keyboards/senselessclay/gos65/info.json @@ -12,7 +12,21 @@ "pin": "B0" }, "rgblight": { - "max_brightness": 125 + "led_count": 68, + "max_brightness": 125, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F4", "D5", "D3", "D2", "D1", "D0", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], diff --git a/keyboards/sentraq/number_pad/config.h b/keyboards/sentraq/number_pad/config.h deleted file mode 100644 index d1cb9939bd9..00000000000 --- a/keyboards/sentraq/number_pad/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2019 QMK 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 - - #define RGBLED_NUM 13 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/sentraq/number_pad/info.json b/keyboards/sentraq/number_pad/info.json index 61b085d86f8..7852587d394 100644 --- a/keyboards/sentraq/number_pad/info.json +++ b/keyboards/sentraq/number_pad/info.json @@ -7,6 +7,24 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 13, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/sentraq/s60_x/default/config.h b/keyboards/sentraq/s60_x/default/config.h index 1fa22a6e9db..c265dc1ef12 100644 --- a/keyboards/sentraq/s60_x/default/config.h +++ b/keyboards/sentraq/s60_x/default/config.h @@ -6,7 +6,4 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define LOCKING_SUPPORT_ENABLE -#define LOCKING_RESYNC_ENABLE - #define NO_ACTION_ONESHOT diff --git a/keyboards/sentraq/s60_x/keymaps/ansi_qwertz/keymap.c b/keyboards/sentraq/s60_x/keymaps/ansi_qwertz/keymap.c index 6337639143f..f1c8c29128e 100644 --- a/keyboards/sentraq/s60_x/keymaps/ansi_qwertz/keymap.c +++ b/keyboards/sentraq/s60_x/keymaps/ansi_qwertz/keymap.c @@ -34,9 +34,6 @@ along with this program. If not, see . #define KC_FUNC MO(2) #define MICMUTE RCTL(KC_LCTL) -enum function_codes { -}; - enum layer_names { DEFAULT, GAMING, @@ -144,14 +141,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - bool process_german(uint16_t keycode, keyrecord_t *record) { uint16_t send_code = 0; if (record->event.pressed) { @@ -208,7 +197,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; #endif } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/sentraq/s60_x/rgb/config.h b/keyboards/sentraq/s60_x/rgb/config.h index da4d3257a62..5f360813239 100644 --- a/keyboards/sentraq/s60_x/rgb/config.h +++ b/keyboards/sentraq/s60_x/rgb/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/sentraq/s60_x/rgb/info.json b/keyboards/sentraq/s60_x/rgb/info.json index c311c6a5134..108eb42b3f2 100644 --- a/keyboards/sentraq/s60_x/rgb/info.json +++ b/keyboards/sentraq/s60_x/rgb/info.json @@ -9,6 +9,23 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/sentraq/s65_plus/config.h b/keyboards/sentraq/s65_plus/config.h index 900ea0aa40a..675b4c58fa7 100644 --- a/keyboards/sentraq/s65_plus/config.h +++ b/keyboards/sentraq/s65_plus/config.h @@ -1,19 +1,5 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 20 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/sentraq/s65_plus/info.json b/keyboards/sentraq/s65_plus/info.json index f9287f2507f..bac1729ce4e 100644 --- a/keyboards/sentraq/s65_plus/info.json +++ b/keyboards/sentraq/s65_plus/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "B7" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/sentraq/s65_x/config.h b/keyboards/sentraq/s65_x/config.h index 7b388614f4b..675b4c58fa7 100644 --- a/keyboards/sentraq/s65_x/config.h +++ b/keyboards/sentraq/s65_x/config.h @@ -1,21 +1,6 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 20 -#define RGBLIGHT_SLEEP /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/sentraq/s65_x/info.json b/keyboards/sentraq/s65_x/info.json index d87a6873cac..416baa89df3 100644 --- a/keyboards/sentraq/s65_x/info.json +++ b/keyboards/sentraq/s65_x/info.json @@ -18,6 +18,24 @@ "levels": 5, "as_caps_lock": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/sets3n/kk980/config.h b/keyboards/sets3n/kk980/config.h index d7b29ad7328..c19b74dc539 100644 --- a/keyboards/sets3n/kk980/config.h +++ b/keyboards/sets3n/kk980/config.h @@ -22,33 +22,10 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 102 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,\ - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, \ - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, \ - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, \ - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, \ - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, \ - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, \ - 96, 97, 98, 99, 100, 101, 102 } // 1 --> ScollLock 2 --> CapsLock 3 --> Bluetooth 4 --> NumLock -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF #ifdef RGB_MATRIX_ENABLE -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 102 #define RGB_MATRIX_KEYPRESSES #endif diff --git a/keyboards/sets3n/kk980/info.json b/keyboards/sets3n/kk980/info.json index f59f186bf4c..2efdb4dafef 100644 --- a/keyboards/sets3n/kk980/info.json +++ b/keyboards/sets3n/kk980/info.json @@ -12,7 +12,22 @@ "pin": "B7" }, "rgblight": { - "max_brightness": 230 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 102, + "max_brightness": 230, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "B1", "B0", "D0", "D1"], diff --git a/keyboards/shoc/keymaps/bongo/keymap.c b/keyboards/shoc/keymaps/bongo/keymap.c index 14779f1d755..8f57181330d 100644 --- a/keyboards/shoc/keymaps/bongo/keymap.c +++ b/keyboards/shoc/keymaps/bongo/keymap.c @@ -163,7 +163,7 @@ bool oled_task_user(void) { oled_set_cursor(0,6); oled_write_P(PSTR(" WPM: "), false); oled_write(get_u8_str(get_current_wpm(), '0'), false); - if(host_keyboard_leds() & (1<. + */ +#include QMK_KEYBOARD_H + +#define LT1_CAP LT(1, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ansi( + KC_F1, KC_F2, 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_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_PGUP, + KC_F5, KC_F6, LT1_CAP, 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_F7, KC_F8, 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, TO(1), + KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi( + 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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/shostudio/arc/keymaps/via/keymap.c b/keyboards/shostudio/arc/keymaps/via/keymap.c new file mode 100644 index 00000000000..663823d915b --- /dev/null +++ b/keyboards/shostudio/arc/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2023 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 + +#define LT1_CAP LT(1, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ansi( + KC_F1, KC_F2, 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_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_PGUP, + KC_F5, KC_F6, LT1_CAP, 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_F7, KC_F8, 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, TO(1), + KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi( + 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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/shostudio/arc/keymaps/via/rules.mk b/keyboards/shostudio/arc/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/shostudio/arc/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/shostudio/arc/readme.md b/keyboards/shostudio/arc/readme.md new file mode 100644 index 00000000000..b84d77e0b76 --- /dev/null +++ b/keyboards/shostudio/arc/readme.md @@ -0,0 +1,27 @@ +# arc + +![arc](https://i.imgur.com/HQdls1nh.png) + +ARC PCB, An ergonomic 65% keyboard PCB. +* Keyboard Maintainer: [shostudios](https://shostudios.co/) +* Hardware Supported: ARC, APM32F103 +* Hardware Availability: [shostudios](https://shostudios.co/) + +Make example for this keyboard (after setting up your build environment): + + make shostudio/arc:default + +Flashing example for this keyboard: + + make shostudio/arc:default:flash + +## Bootloader + +Enter the bootloader in 4 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 +* **Bootloader**: Hold down the key at (0,13) in the matrix (Backspace) 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/shostudio/arc/rules.mk b/keyboards/shostudio/arc/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/shostudio/arc/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/signum/3_0/keymaps/default/generate_km.py b/keyboards/signum/3_0/keymaps/default/generate_km.py index cfa8edf57a7..a939e4e73a4 100755 --- a/keyboards/signum/3_0/keymaps/default/generate_km.py +++ b/keyboards/signum/3_0/keymaps/default/generate_km.py @@ -39,7 +39,7 @@ def _translate(s): elif re.match("^TT[0-9]{1,2}$", s): # Tn, works from TT0 to TT99 return ("TT({0})".format(s[2:]), "{0:^7}".format(s)) elif s in layout.uc_dict: - return ("X("+s+")", " {0} ".format(chr(int(layout.uc_dict[s], 0)))) + return ("UM("+s+")", " {0} ".format(chr(int(layout.uc_dict[s], 0)))) elif s in layout.qmk_dict: return (layout.qmk_dict[s], "{0:^7}".format(s)) elif s == s.upper() and s.startswith("KC_"): diff --git a/keyboards/signum/3_0/keymaps/default/layout.py b/keyboards/signum/3_0/keymaps/default/layout.py index 90fb1d9c945..4691985d29d 100644 --- a/keyboards/signum/3_0/keymaps/default/layout.py +++ b/keyboards/signum/3_0/keymaps/default/layout.py @@ -396,7 +396,7 @@ # One Shot Keys missing # Swap Hands "_sp_swp": "SHT(KC_SPC)", - # Unicode support (via X()) included implicitly + # Unicode support included implicitly # Switching Unicode Input Modes "UC_win": "UC_WINC", "UC_lnx": "UC_LINX", "UC_mac": "UC_MAC", diff --git a/keyboards/silverbullet44/config.h b/keyboards/silverbullet44/config.h index 5485a99f59d..e8f1cca7ebb 100644 --- a/keyboards/silverbullet44/config.h +++ b/keyboards/silverbullet44/config.h @@ -19,39 +19,16 @@ along with this program. If not, see . #define MASTER_RIGHT - //#define RGBLIGHT_SPLIT - #define RGBLED_SPLIT {26, 26} - #define RGBLED_NUM 52 #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 52 #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 8 - #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_TYPING_HEATMAP #else - #define RGBLIGHT_LED_MAP { 0,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,3,4,5,6, \ - 26,27,28,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,29,30,31,32 } - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - //#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 diff --git a/keyboards/silverbullet44/info.json b/keyboards/silverbullet44/info.json index 5fc8686de25..a761288fb4d 100644 --- a/keyboards/silverbullet44/info.json +++ b/keyboards/silverbullet44/info.json @@ -12,10 +12,24 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 8 }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 52, + "max_brightness": 150, + "led_map": [0, 1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3, 4, 5, 6, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 29, 30, 31, 32], + "split_count": [26, 26], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true + } }, "matrix_pins": { "cols": ["B3", "B1", "F7", "F6", "F5", "F4"], diff --git a/keyboards/singa/config.h b/keyboards/singa/config.h deleted file mode 100644 index 75b78de22de..00000000000 --- a/keyboards/singa/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 18 - -#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/singa/info.json b/keyboards/singa/info.json index 4c582df8584..0987506b36e 100644 --- a/keyboards/singa/info.json +++ b/keyboards/singa/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/sinpad20/keymaps/via/keymap.c b/keyboards/sinpad20/keymaps/via/keymap.c deleted file mode 100644 index 9d7c4c1f3bb..00000000000 --- a/keyboards/sinpad20/keymaps/via/keymap.c +++ /dev/null @@ -1,108 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───────┐ ┌───┬───┐ - * │ │ │ < │ / │ - * │ Ent │ ├───┼───┤ - * │ │ │ > │ * │ - * └───────┘ └───┴───┘ - * ┌───┬───┬───┐ ┌───┐ - * │ 7 │ 8 │ 9 │ │ │ - * ├───┼───┼───┤ │ + │ - * │ 5 │ 6 │ 7 │ │ │ - * ├───┼───┼───┤ ├───┤ - * │ 1 │ 2 │ 3 │ │ - │ - * ├───┼───┼───┤ ├───┤ - * │ALT│ 0 │ . │ │Bs │ - * └───┴───┴───┘ └───┘ - */ - - [0] = LAYOUT_all( - KC_PENT, KC_LEFT, KC_PSLS, - KC_RGHT, KC_PAST, - - KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3, KC_PMNS, - KC_LALT, KC_P0, KC_PDOT, KC_BSPC - ), - /* - * ┌───────┐ ┌───┬───┐ - * │ │ │ < │ / │ - * │ Ent │ ├───┼───┤ - * │ │ │ > │ * │ - * └───────┘ └───┴───┘ - * ┌───┬───┬───┐ ┌───┐ - * │ 7 │ 8 │ 9 │ │ │ - * ├───┼───┼───┤ │ + │ - * │ 5 │ 6 │ 7 │ │ │ - * ├───┼───┼───┤ ├───┤ - * │ 1 │ 2 │ 3 │ │ - │ - * ├───┼───┼───┤ ├───┤ - * │ALT│ 0 │ . │ │Bs │ - * └───┴───┴───┘ └───┘ - */ - - [1] = LAYOUT_all( - KC_PENT, KC_LEFT, KC_PSLS, - KC_RGHT, KC_PAST, - - KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3, KC_PMNS, - KC_LALT, KC_P0, KC_PDOT, KC_BSPC - ), - /* - * ┌───────┐ ┌───┬───┐ - * │ │ │ < │ / │ - * │ Ent │ ├───┼───┤ - * │ │ │ > │ * │ - * └───────┘ └───┴───┘ - * ┌───┬───┬───┐ ┌───┐ - * │ 7 │ 8 │ 9 │ │ │ - * ├───┼───┼───┤ │ + │ - * │ 5 │ 6 │ 7 │ │ │ - * ├───┼───┼───┤ ├───┤ - * │ 1 │ 2 │ 3 │ │ - │ - * ├───┼───┼───┤ ├───┤ - * │ALT│ 0 │ . │ │Bs │ - * └───┴───┴───┘ └───┘ - */ - - [2] = LAYOUT_all( - KC_PENT, KC_LEFT, KC_PSLS, - KC_RGHT, KC_PAST, - - KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3, KC_PMNS, - KC_LALT, KC_P0, KC_PDOT, KC_BSPC - ), - /* - * ┌───────┐ ┌───┬───┐ - * │ │ │ < │ / │ - * │ Ent │ ├───┼───┤ - * │ │ │ > │ * │ - * └───────┘ └───┴───┘ - * ┌───┬───┬───┐ ┌───┐ - * │ 7 │ 8 │ 9 │ │ │ - * ├───┼───┼───┤ │ + │ - * │ 5 │ 6 │ 7 │ │ │ - * ├───┼───┼───┤ ├───┤ - * │ 1 │ 2 │ 3 │ │ - │ - * ├───┼───┼───┤ ├───┤ - * │ALT│ 0 │ . │ │Bs │ - * └───┴───┴───┘ └───┘ - */ - - [3] = LAYOUT_all( - KC_PENT, KC_LEFT, KC_PSLS, - KC_RGHT, KC_PAST, - - KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3, KC_PMNS, - KC_LALT, KC_P0, KC_PDOT, KC_BSPC - ) -}; diff --git a/keyboards/sinpad20/keymaps/via/rules.mk b/keyboards/sinpad20/keymaps/via/rules.mk deleted file mode 100644 index 8c4c035c8c9..00000000000 --- a/keyboards/sinpad20/keymaps/via/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -VIA_ENABLE = yes -VIAL_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sinpad20/keymaps/via/sinpad20.json b/keyboards/sinpad20/keymaps/via/sinpad20.json deleted file mode 100644 index e14fb86d823..00000000000 --- a/keyboards/sinpad20/keymaps/via/sinpad20.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "layouts": { - "keymap": [ - [ - { - "w": 2, - "h": 2 - }, - "2,3", - { - "x": 0.25 - }, - "0,2", - "0,3" - ], - [ - { - "x": 2.25 - }, - "1,2", - "1,3" - ], - [ - { - "y": 0.25 - }, - "2,0", - "2,1", - "2,2", - { - "x": 0.25, - "h": 2 - }, - "3,3" - ], - [ - "3,0", - "3,1", - "3,2" - ], - [ - "4,0", - "4,1", - "4,2", - { - "x": 0.25 - }, - "4,3" - ], - [ - "5,0", - "5,1", - "5,2", - { - "x": 0.25 - }, - "5,3" - ] - ] - }, - "name": "sinpad20", - "vendorId": "0xCEE9", - "productId": "0x0001", - "lighting": "none", - "matrix": { - "rows": 6, - "cols": 4 - } -} \ No newline at end of file diff --git a/keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c b/keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c index f63da310fd7..5b55d1ba246 100644 --- a/keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c +++ b/keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c @@ -130,14 +130,6 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { ) }; -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case MAC: @@ -171,7 +163,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/skeletn87/hotswap/config.h b/keyboards/skeletn87/hotswap/config.h deleted file mode 100644 index 26ec63afd49..00000000000 --- a/keyboards/skeletn87/hotswap/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2021 kb-elmo - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/skeletn87/hotswap/info.json b/keyboards/skeletn87/hotswap/info.json index 6eccddef6b4..c7eac83fc3d 100644 --- a/keyboards/skeletn87/hotswap/info.json +++ b/keyboards/skeletn87/hotswap/info.json @@ -26,7 +26,23 @@ "pin": "B3" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/skeletn87/soldered/config.h b/keyboards/skeletn87/soldered/config.h deleted file mode 100644 index 26ec63afd49..00000000000 --- a/keyboards/skeletn87/soldered/config.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2021 kb-elmo - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/skeletn87/soldered/info.json b/keyboards/skeletn87/soldered/info.json index fefb5073bb1..304fa00dc49 100644 --- a/keyboards/skeletn87/soldered/info.json +++ b/keyboards/skeletn87/soldered/info.json @@ -26,7 +26,23 @@ "pin": "B2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/skeletonkbd/frost68/config.h b/keyboards/skeletonkbd/frost68/config.h new file mode 100644 index 00000000000..eaf7a31fb6e --- /dev/null +++ b/keyboards/skeletonkbd/frost68/config.h @@ -0,0 +1,61 @@ +// Copyright 2023 skeletonkbd (@skeletonkbd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_PIO_USE_PIO1 +#define RGB_MATRIX_LED_COUNT 68 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define USB_SUSPEND_WAKEUP_DELAY 200 + +#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_FLOW +#define ENABLE_RGB_MATRIX_PIXEL_RAIN + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN diff --git a/keyboards/skeletonkbd/frost68/frost68.c b/keyboards/skeletonkbd/frost68/frost68.c new file mode 100644 index 00000000000..4bfd3fa28f3 --- /dev/null +++ b/keyboards/skeletonkbd/frost68/frost68.c @@ -0,0 +1,18 @@ +// Copyright 2023 skeletonkbd (@skeletonkbd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +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) { + for (uint8_t i = led_min; i < led_max; i++) { + if (g_led_config.flags[i] & LED_FLAG_INDICATOR) { + rgb_matrix_set_color(i, RGB_RED); + } + } + } + return false; +} diff --git a/keyboards/skeletonkbd/frost68/info.json b/keyboards/skeletonkbd/frost68/info.json new file mode 100644 index 00000000000..742daf8d578 --- /dev/null +++ b/keyboards/skeletonkbd/frost68/info.json @@ -0,0 +1,185 @@ +{ + "manufacturer": "skeletonkbd", + "keyboard_name": "Frost68", + "maintainer": "skeletonkbd", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "build": { + "debounce_type": "sym_eager_pk" + }, + "matrix_pins": { + "cols": ["GP21", "GP22", "GP23", "GP24", "GP25", "GP26", "GP28", "GP3", "GP4", "GP5", "GP6", "GP9", "GP10", "GP11", "GP12", "GP13"], + "rows": ["GP29", "GP27", "GP20", "GP19", "GP18"] + }, + "processor": "RP2040", + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 33.1, "y": 3.7, "flags": 4}, + {"matrix": [0, 1], "x": 45.7, "y": 3.7, "flags": 4}, + {"matrix": [0, 2], "x": 58.3, "y": 2.4, "flags": 4}, + {"matrix": [0, 3], "x": 71.1, "y": 6.4, "flags": 4}, + {"matrix": [0, 4], "x": 83.4, "y": 10.4, "flags": 4}, + {"matrix": [0, 5], "x": 95.7, "y": 14.3, "flags": 4}, + {"matrix": [0, 6], "x": 108, "y": 18.3, "flags": 4}, + {"matrix": [1, 5], "x": 99.3, "y": 35, "flags": 4}, + {"matrix": [1, 4], "x": 86.9, "y": 31, "flags": 4}, + {"matrix": [1, 3], "x": 74.6, "y": 27, "flags": 4}, + {"matrix": [1, 2], "x": 62.3, "y": 23.1, "flags": 4}, + {"matrix": [1, 1], "x": 49.2, "y": 22.7, "flags": 4}, + {"matrix": [1, 0], "x": 33.5, "y": 22.7, "flags": 1}, + {"matrix": [2, 0], "x": 32.3, "y": 41.8, "flags": 1}, + {"matrix": [2, 1], "x": 49.7, "y": 41.8, "flags": 4}, + {"matrix": [2, 2], "x": 62.7, "y": 42.7, "flags": 4}, + {"matrix": [2, 3], "x": 75.1, "y": 46.7, "flags": 4}, + {"matrix": [2, 4], "x": 87.4, "y": 50.6, "flags": 4}, + {"matrix": [2, 5], "x": 99.7, "y": 54.6, "flags": 4}, + {"matrix": [3, 5], "x": 103.3, "y": 75.2, "flags": 4}, + {"matrix": [3, 4], "x": 90.9, "y": 71.2, "flags": 4}, + {"matrix": [3, 3], "x": 78.6, "y": 67.3, "flags": 4}, + {"matrix": [3, 2], "x": 66.3, "y": 63.3, "flags": 4}, + {"matrix": [3, 1], "x": 53.3, "y": 60.8, "flags": 4}, + {"matrix": [3, 0], "x": 32.8, "y": 60.8, "flags": 1}, + {"matrix": [4, 0], "x": 28.1, "y": 79.9, "flags": 1}, + {"matrix": [4, 1], "x": 47, "y": 79.9, "flags": 1}, + {"matrix": [4, 3], "x": 80.6, "y": 87.4, "flags": 4}, + {"matrix": [4, 5], "x": 100.6, "y": 93.8, "flags": 4}, + {"matrix": [4, 7], "x": 140.2, "y": 90.4, "flags": 4}, + {"matrix": [4, 10], "x": 166.4, "y": 82.5, "flags": 1}, + {"matrix": [4, 12], "x": 195.7, "y": 79.9, "flags": 1}, + {"matrix": [4, 13], "x": 211.4, "y": 79.9, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 79.9, "flags": 4}, + {"matrix": [4, 15], "x": 236.6, "y": 79.9, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 60.8, "flags": 4}, + {"matrix": [3, 13], "x": 206.7, "y": 60.8, "flags": 1}, + {"matrix": [3, 12], "x": 189.4, "y": 60.8, "flags": 4}, + {"matrix": [3, 11], "x": 176.8, "y": 60.8, "flags": 4}, + {"matrix": [3, 10], "x": 163.7, "y": 63.3, "flags": 4}, + {"matrix": [3, 9], "x": 151.4, "y": 67.3, "flags": 4}, + {"matrix": [3, 8], "x": 139.1, "y": 71.2, "flags": 4}, + {"matrix": [3, 7], "x": 126.8, "y": 75.2, "flags": 4}, + {"matrix": [2, 7], "x": 130.3, "y": 54.6, "flags": 4}, + {"matrix": [2, 8], "x": 142.6, "y": 50.6, "flags": 4}, + {"matrix": [2, 9], "x": 155, "y": 46.7, "flags": 4}, + {"matrix": [2, 10], "x": 167.3, "y": 42.7, "flags": 4}, + {"matrix": [2, 11], "x": 180.4, "y": 41.8, "flags": 4}, + {"matrix": [2, 12], "x": 193, "y": 41.8, "flags": 4}, + {"matrix": [2, 13], "x": 213.4, "y": 41.8, "flags": 4}, + {"matrix": [2, 15], "x": 236.6, "y": 39.6, "flags": 4}, + {"matrix": [1, 15], "x": 235.3, "y": 20.5, "flags": 4}, + {"matrix": [1, 14], "x": 217.4, "y": 22.7, "flags": 4}, + {"matrix": [1, 13], "x": 201.6, "y": 22.7, "flags": 4}, + {"matrix": [1, 12], "x": 189, "y": 22.7, "flags": 4}, + {"matrix": [1, 11], "x": 176.4, "y": 22, "flags": 4}, + {"matrix": [1, 10], "x": 163.4, "y": 24.5, "flags": 4}, + {"matrix": [1, 9], "x": 151.1, "y": 28.4, "flags": 4}, + {"matrix": [1, 8], "x": 138.7, "y": 32.4, "flags": 4}, + {"matrix": [1, 7], "x": 126.4, "y": 36.4, "flags": 4}, + {"matrix": [0, 7], "x": 128.1, "y": 16.3, "flags": 4}, + {"matrix": [0, 8], "x": 140.5, "y": 12.4, "flags": 4}, + {"matrix": [0, 9], "x": 152.8, "y": 8.4, "flags": 4}, + {"matrix": [0, 10], "x": 165.1, "y": 4.4, "flags": 4}, + {"matrix": [0, 11], "x": 178.2, "y": 2.9, "flags": 4}, + {"matrix": [0, 12], "x": 190.8, "y": 3.7, "flags": 4}, + {"matrix": [0, 14], "x": 209.7, "y": 3.7, "flags": 1}, + {"matrix": [0, 15], "x": 233.9, "y": 1.5, "flags": 4} + ], + "max_brightness": 118, + "sat_steps": 8, + "speed_steps": 10, + "val_steps": 8 + }, + "url": "https://skeletonkbd.com/", + "usb": { + "device_version": "1.0.0", + "pid": "0x68A0", + "vid": "0x1209" + }, + "layouts": { + "LAYOUT": { + "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": 9, "y": 0}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0}, + {"matrix": [0, 10], "x": 12, "y": 0}, + {"matrix": [0, 11], "x": 13, "y": 0}, + {"matrix": [0, 12], "x": 14, "y": 0}, + {"matrix": [0, 13], "x": 15, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 17.25, "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, 7], "x": 8.5, "y": 1}, + {"matrix": [1, 8], "x": 9.5, "y": 1}, + {"matrix": [1, 9], "x": 10.5, "y": 1}, + {"matrix": [1, 10], "x": 11.5, "y": 1}, + {"matrix": [1, 11], "x": 12.5, "y": 1}, + {"matrix": [1, 12], "x": 13.5, "y": 1}, + {"matrix": [1, 13], "x": 14.5, "y": 1}, + {"matrix": [1, 14], "x": 15.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 17.25, "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, 7], "x": 8.75, "y": 2}, + {"matrix": [2, 8], "x": 9.75, "y": 2}, + {"matrix": [2, 9], "x": 10.75, "y": 2}, + {"matrix": [2, 10], "x": 11.75, "y": 2}, + {"matrix": [2, 11], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 2}, + {"matrix": [2, 13], "x": 14.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 17.25, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "x": 12.25, "y": 3}, + {"matrix": [3, 12], "x": 13.25, "y": 3}, + {"matrix": [3, 13], "x": 14.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 16, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 8.25, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 15, "y": 4}, + {"matrix": [4, 14], "x": 16, "y": 4}, + {"matrix": [4, 15], "x": 17, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c new file mode 100644 index 00000000000..3d0d6dc794c --- /dev/null +++ b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2023 skeletonkbd (@skeletonkbd) +// 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, + _L1, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_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_HOME, + 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_END, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LNG1, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(_L1), KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_L1] = 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_TRNS, KC_PSCR, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, + KC_TRNS, 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_LNG2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS), + + +}; \ No newline at end of file diff --git a/keyboards/skeletonkbd/frost68/keymaps/via/keymap.c b/keyboards/skeletonkbd/frost68/keymaps/via/keymap.c new file mode 100644 index 00000000000..16d734b83f3 --- /dev/null +++ b/keyboards/skeletonkbd/frost68/keymaps/via/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2023 skeletonkbd (@skeletonkbd) +// 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, + _L1, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_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_HOME, + 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_END, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LNG1, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(_L1), KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [_L1] = 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_TRNS, KC_PSCR, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, + KC_TRNS, 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_LNG2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS), + + +}; \ No newline at end of file diff --git a/keyboards/skeletonkbd/frost68/keymaps/via/rules.mk b/keyboards/skeletonkbd/frost68/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/skeletonkbd/frost68/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/skeletonkbd/frost68/readme.md b/keyboards/skeletonkbd/frost68/readme.md new file mode 100644 index 00000000000..4864fd1a19e --- /dev/null +++ b/keyboards/skeletonkbd/frost68/readme.md @@ -0,0 +1,27 @@ +# skeletonkbd/skeleton68 + +![skeletonkbd/skeleton68](https://i.imgur.com/ZrtbBNPh.jpg) + +Alice layout keyboard with acrylic case. + +- Keyboard Maintainer: [SkeletonKBD](https://github.com/skeletonkbd) +- Hardware Supported: Frost68 +- Hardware Availability: https://github.com/skeletonkbd/Frost68 + +Make example for this keyboard (after setting up your build environment): + + make skeletonkbd/skeleton68:default + +Flashing example for this keyboard: + + make skeletonkbd/skeleton68: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/skeletonkbd/frost68/rules.mk b/keyboards/skeletonkbd/frost68/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/skeletonkbd/skeletonnumpad/config.h b/keyboards/skeletonkbd/skeletonnumpad/config.h index 829b08ea52d..1636a977cf0 100644 --- a/keyboards/skeletonkbd/skeletonnumpad/config.h +++ b/keyboards/skeletonkbd/skeletonnumpad/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 17 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/skeletonkbd/skeletonnumpad/info.json b/keyboards/skeletonkbd/skeletonnumpad/info.json index 7ed7ee39490..7f4c72248d6 100644 --- a/keyboards/skeletonkbd/skeletonnumpad/info.json +++ b/keyboards/skeletonkbd/skeletonnumpad/info.json @@ -12,7 +12,22 @@ "pin": "D4" }, "rgblight": { - "max_brightness": 120 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 17, + "max_brightness": 120, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "matrix_pins": { "cols": ["D6", "D7", "B4", "B5"], diff --git a/keyboards/skippys_custom_pcs/rooboard65/config.h b/keyboards/skippys_custom_pcs/rooboard65/config.h index 5932113c947..afdacdd0803 100644 --- a/keyboards/skippys_custom_pcs/rooboard65/config.h +++ b/keyboards/skippys_custom_pcs/rooboard65/config.h @@ -22,22 +22,8 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#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 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 */ diff --git a/keyboards/skippys_custom_pcs/rooboard65/info.json b/keyboards/skippys_custom_pcs/rooboard65/info.json index ca86bae4b98..11a50e87b1f 100644 --- a/keyboards/skippys_custom_pcs/rooboard65/info.json +++ b/keyboards/skippys_custom_pcs/rooboard65/info.json @@ -12,7 +12,20 @@ "pin": "F7" }, "rgblight": { - "max_brightness": 96 + "led_count": 68, + "max_brightness": 96, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "B3", "B2", "B1", "D1"], diff --git a/keyboards/skippys_custom_pcs/roopad/config.h b/keyboards/skippys_custom_pcs/roopad/config.h deleted file mode 100644 index f787da4012f..00000000000 --- a/keyboards/skippys_custom_pcs/roopad/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2020 - -This 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 RGBLED_NUM 21 -#define RGBLIGHT_SLEEP - -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/skippys_custom_pcs/roopad/info.json b/keyboards/skippys_custom_pcs/roopad/info.json index 0bf27a69dce..c44fcd1541f 100644 --- a/keyboards/skippys_custom_pcs/roopad/info.json +++ b/keyboards/skippys_custom_pcs/roopad/info.json @@ -8,6 +8,22 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 21, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/skmt/15k/config.h b/keyboards/skmt/15k/config.h index 9d7338ccce9..6e0360ec7b3 100644 --- a/keyboards/skmt/15k/config.h +++ b/keyboards/skmt/15k/config.h @@ -19,7 +19,6 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -#define RGBLED_NUM 15 // Number of LEDs #define RGB_MATRIX_LED_COUNT 15 // Number of LEDs #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 diff --git a/keyboards/skmt/15k/info.json b/keyboards/skmt/15k/info.json index 38215ef661e..0f333620920 100644 --- a/keyboards/skmt/15k/info.json +++ b/keyboards/skmt/15k/info.json @@ -47,7 +47,7 @@ } }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [2, 4], "x": 224, "y": 64}, {"flags": 4, "matrix": [2, 3], "x": 168, "y": 64}, diff --git a/keyboards/skyloong/dt40/config.h b/keyboards/skyloong/dt40/config.h new file mode 100644 index 00000000000..e67b7ae0a9a --- /dev/null +++ b/keyboards/skyloong/dt40/config.h @@ -0,0 +1,36 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This 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 RGB_MATRIX_LED_COUNT 44 //The number of LEDs connected +#define RGB_MATRIX_KEYPRESSES //Reacts to keypress +#define RGB_DISABLE_WHEN_USB_SUSPENDED //turn off effects when suspended + +#define RGB_MATRIX_DEFAULT_VAL 150 //Sets the default mode, if none has been set +#define RGB_TRIGGER_ON_KEYDOWN //Triggers RGB keypress events on key down +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects +#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 1 + +//Set WS2812 driver +#define WS2812_TRST_US 200 //The Trst period between frames +//set ' WS2812_DRIVER = pwm ' in rule.mk +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 +#define WS2812_DMA_CHANNEL 3 + + diff --git a/keyboards/skyloong/dt40/dt40.c b/keyboards/skyloong/dt40/dt40.c new file mode 100644 index 00000000000..359e425b8de --- /dev/null +++ b/keyboards/skyloong/dt40/dt40.c @@ -0,0 +1,24 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This 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" + +void board_init(void) { + AFIO->MAPR |= AFIO_MAPR_USART1_REMAP | AFIO_MAPR_TIM3_REMAP_PARTIALREMAP; + +} diff --git a/keyboards/skyloong/dt40/halconf.h b/keyboards/skyloong/dt40/halconf.h new file mode 100644 index 00000000000..f9301ae83bf --- /dev/null +++ b/keyboards/skyloong/dt40/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next + diff --git a/keyboards/skyloong/dt40/info.json b/keyboards/skyloong/dt40/info.json new file mode 100644 index 00000000000..b6172465e68 --- /dev/null +++ b/keyboards/skyloong/dt40/info.json @@ -0,0 +1,165 @@ +{ + "manufacturer": "JZ-Skyloong", + "keyboard_name": "DT40", + "maintainer": "JZ-Skyloong", + "bootloader": "stm32duino", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B12", "B5", "B8", "B9", "B10", "B11", "A15", "B7", "A2", "A1", "A0"], + "rows": ["B6", "B15", "B2", "B14"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "dual_beacom": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "ranbow_beacon": true + }, + "driver": "ws2812", + "hue_steps": 20, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 47, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 121, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 159, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 223, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 33, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 51, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 70, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 89, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 107, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 126, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 145, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 182, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 196, "y": 0, "flags": 4}, + {"matrix": [1, 10], "x": 219, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 42, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 61, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 79, "y": 43, "flags": 4}, + {"matrix": [2, 4], "x": 98, "y": 43, "flags": 4}, + {"matrix": [2, 5], "x": 117, "y": 43, "flags": 4}, + {"matrix": [2, 6], "x": 135, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 154, "y": 43, "flags": 4}, + {"matrix": [2, 8], "x": 180, "y": 43, "flags": 4}, + {"matrix": [2, 9], "x": 205, "y": 43, "flags": 4}, + {"matrix": [2, 10], "x":224, "y": 43, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 63, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 100, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 163, "y":21, "flags": 4}, + {"matrix": [3, 6], "x": 145, "y": 64, "flags": 4}, + {"matrix": [3, 7], "x": 165, "y": 64, "flags": 4}, + {"matrix": [3, 8], "x": 187, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 205, "y":64, "flags": 4}, + {"matrix": [3, 10], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 180, + "sat_steps": 20, + "speed_steps": 20, + "val_steps": 20 + }, + "url": "https://github.com/JZ-Skyloong", + "usb": { + "device_version": "1.0.0", + "pid": "0x6040", + "vid": "0x1EA7" + }, + "ws2812": { + "driver": "pwm", + "pin": "B4" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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": 9.75, "y": 1}, + {"matrix": [1, 9], "x": 10.5, "y": 0}, + {"matrix": [1, 10], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2, "w": 1.75}, + {"matrix": [2, 9], "x": 11, "y": 2}, + {"matrix": [2, 10], "x": 12, "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, "w": 1.25}, + {"matrix": [3, 4], "x": 4.5, "y": 3, "w": 3}, + {"matrix": [3, 5], "x": 8.75, "y": 1}, + {"matrix": [3, 6], "x": 7.5, "y": 3, "w": 1.25}, + {"matrix": [3, 7], "x": 8.75, "y": 3, "w": 1.25}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3}, + {"matrix": [3, 10], "x": 12, "y": 3} + ] + } + } +} + diff --git a/keyboards/skyloong/dt40/keymaps/default/keymap.c b/keyboards/skyloong/dt40/keymaps/default/keymap.c new file mode 100644 index 00000000000..c8f828156a9 --- /dev/null +++ b/keyboards/skyloong/dt40/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This 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] = { + /* Base */ + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_O, KC_I, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_L, KC_P, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, RGB_TOG, + KC_LCTL, KC_LALT, KC_SPC, KC_LWIN, KC_SPC, KC_K, KC_SPC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + + diff --git a/keyboards/skyloong/dt40/keymaps/via/keymap.c b/keyboards/skyloong/dt40/keymaps/via/keymap.c new file mode 100644 index 00000000000..40721123cdb --- /dev/null +++ b/keyboards/skyloong/dt40/keymaps/via/keymap.c @@ -0,0 +1,59 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This 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 { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_O, KC_I, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_L, KC_P, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, MO(3), + KC_LCTL, KC_LALT, MO(1), KC_LWIN, KC_SPC, KC_K, MO(2), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LOWER] = LAYOUT( + RGB_TOG, RGB_M_P, RGB_M_R, RGB_M_B, RGB_M_SW, _______, _______, _______, KC_EQL, KC_MINS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_RBRC, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, KC_LBRC, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + + [_RAISE] = LAYOUT( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_9, KC_8, _______, + KC_TAB, KC_GRV, _______, _______, _______, _______, _______, KC_SCLN, _______, KC_0, _______, + _______, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, + _______, _______, _______, _______, _______, KC_QUOT, _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F9, KC_F8, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F10, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_F11, _______, _______, _______, _______, _______ + ) + +}; + diff --git a/keyboards/skyloong/dt40/keymaps/via/rules.mk b/keyboards/skyloong/dt40/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/skyloong/dt40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/skyloong/dt40/mcuconf.h b/keyboards/skyloong/dt40/mcuconf.h new file mode 100644 index 00000000000..a40226eaaa6 --- /dev/null +++ b/keyboards/skyloong/dt40/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This 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 diff --git a/keyboards/skyloong/dt40/readme.md b/keyboards/skyloong/dt40/readme.md new file mode 100644 index 00000000000..bbb97d39328 --- /dev/null +++ b/keyboards/skyloong/dt40/readme.md @@ -0,0 +1,32 @@ +# DT40 + +![DT40](https://i.imgur.com/3QemSZ0h.jpg) + +## The PCB features: +* QMK & VIA compatibility +* RGB Matrix backlight +* Thin body & Simple keys + + +The following is the QMK Firmware for the Destop 40% keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd +* Keyboard Maintainer: [JZ-Skyloong](https://github.com/JZ-Skyloong) +* Hardware Supported: DestopPCB for Skyloong keylayout 40%, STM32F103C8T6 +* Hardware Availability: http://www.skyloong.com.cn + +Make example for this keyboard (after setting up your build environment): + + make skyloong/dt40:default + +Flashing example for this keyboard: + + make skyloong/dt40: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/skyloong/dt40/rules.mk b/keyboards/skyloong/dt40/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/skyloong/dt40/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/smallkeyboard/info.json b/keyboards/smallkeyboard/info.json index a19bf295971..9fb889d28e1 100644 --- a/keyboards/smallkeyboard/info.json +++ b/keyboards/smallkeyboard/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["F7", "F6", "F5"], diff --git a/keyboards/smithrune/iron160/iron160_h/info.json b/keyboards/smithrune/iron160/iron160_h/info.json index 5bef6852376..ae65246d26e 100644 --- a/keyboards/smithrune/iron160/iron160_h/info.json +++ b/keyboards/smithrune/iron160/iron160_h/info.json @@ -21,71 +21,150 @@ "led_count": 1 }, "diode_direction": "COL2ROW", + "layout_aliases": { + "LAYOUT": "LAYOUT_60_tsangan_hhkb" + }, + "community_layouts": [ + "60_tsangan_hhkb" + ], "layouts": { - "LAYOUT": { + "LAYOUT_60_ansi_tsangan_split_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO(1)", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { "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": "Bspc", "matrix": [0, 13], "w": 1, "x": 13, "y": 0}, - {"label": "Bspc", "matrix": [4, 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": [1, 13], "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": 1.25, "x": 12.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3}, - {"label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3}, - {"label": "MO(1)", "matrix": [3, 13], "w": 1, "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4}, - {"label": "Win", "matrix": [4, 1], "w": 1, "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4}, - {"label": "Space", "matrix": [4, 6], "w": 7, "x": 4, "y": 4}, - {"label": "Alt", "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4}, - {"label": "Win", "matrix": [4, 11], "w": 1, "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 12], "w": 1.5, "x": 13.5, "y": 4} + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bspc", "matrix": [4, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO(1)", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] } } diff --git a/keyboards/smithrune/iron160/iron160_h/keymaps/default/keymap.c b/keyboards/smithrune/iron160/iron160_h/keymaps/default/keymap.c index b39e8d72eb4..b8dc909c947 100755 --- a/keyboards/smithrune/iron160/iron160_h/keymaps/default/keymap.c +++ b/keyboards/smithrune/iron160/iron160_h/keymaps/default/keymap.c @@ -18,18 +18,18 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, + [0] = LAYOUT_60_tsangan_hhkb( + QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_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_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, MO(1) , KC_RCTL + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, KC_RCTL ), - [1] = LAYOUT( - QK_BOOT , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [1] = LAYOUT_60_tsangan_hhkb( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/smithrune/iron160/iron160_h/keymaps/via/keymap.c b/keyboards/smithrune/iron160/iron160_h/keymaps/via/keymap.c index 5a700c2ee87..653a3dcd32a 100755 --- a/keyboards/smithrune/iron160/iron160_h/keymaps/via/keymap.c +++ b/keyboards/smithrune/iron160/iron160_h/keymaps/via/keymap.c @@ -18,32 +18,32 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, + [0] = LAYOUT_60_tsangan_hhkb( + QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_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_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, KC_RCTL, KC_BSPC + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, KC_RCTL ), - [1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [1] = LAYOUT_60_tsangan_hhkb( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [2] = LAYOUT_60_tsangan_hhkb( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [3] = LAYOUT_60_tsangan_hhkb( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), + _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/smithrune/iron160/iron160_h/rules.mk b/keyboards/smithrune/iron160/iron160_h/rules.mk index 4c6ba89ef9d..c889da168d6 100644 --- a/keyboards/smithrune/iron160/iron160_h/rules.mk +++ b/keyboards/smithrune/iron160/iron160_h/rules.mk @@ -16,5 +16,3 @@ LTO_ENABLE = no EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = legacy -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/smithrune/iron160/iron160_s/info.json b/keyboards/smithrune/iron160/iron160_s/info.json index f5d80be1788..91c66a3d4fb 100644 --- a/keyboards/smithrune/iron160/iron160_s/info.json +++ b/keyboards/smithrune/iron160/iron160_s/info.json @@ -24,74 +24,650 @@ "indicators": { "caps_lock": "B0" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], "layouts": { - "LAYOUT": { + "LAYOUT_all": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bspc", "matrix": [4, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO(1)", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bspc", "matrix": [4, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO(1)", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bspc", "matrix": [4, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO(1)", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bspc", "matrix": [4, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO(1)", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { "layout": [ - {"label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0}, - {"label": ")", "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": "Bspc", "matrix": [0, 13], "w": 1, "x": 13, "y": 0}, - {"label": "Bspc", "matrix": [4, 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": [1, 13], "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": "~", "matrix": [2, 12], "w": 1, "x": 12.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2}, - {"label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3}, - {"label": "|", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3}, - {"label": "MO(1)", "matrix": [3, 13], "w": 1, "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4}, - {"label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4}, - {"label": "Space", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4}, - {"label": "Alt", "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4}, - {"label": "Win", "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4}, - {"label": "Menu", "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 12], "w": 1.25, "x": 13.75, "y": 4} + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bspc", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bspc", "matrix": [4, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "]", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO(1)", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} ] } } diff --git a/keyboards/smithrune/iron160/iron160_s/keymaps/default/keymap.c b/keyboards/smithrune/iron160/iron160_s/keymaps/default/keymap.c index 1cc3dea2f6d..a8efb9749dd 100755 --- a/keyboards/smithrune/iron160/iron160_s/keymaps/default/keymap.c +++ b/keyboards/smithrune/iron160/iron160_s/keymaps/default/keymap.c @@ -18,18 +18,18 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, + [0] = LAYOUT_all( + QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_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_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_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, MO(1) , KC_RCTL, KC_BSPC + 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_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, MO(1) , KC_RCTL ), - [1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [1] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/smithrune/iron160/iron160_s/keymaps/via/keymap.c b/keyboards/smithrune/iron160/iron160_s/keymaps/via/keymap.c index f8790cc6007..0bbaa7e8456 100755 --- a/keyboards/smithrune/iron160/iron160_s/keymaps/via/keymap.c +++ b/keyboards/smithrune/iron160/iron160_s/keymaps/via/keymap.c @@ -18,32 +18,32 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, + [0] = LAYOUT_all( + QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_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_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_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, MO(1) , KC_RCTL, KC_BSPC + 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_LWIN, KC_LALT, KC_SPC , KC_RALT, KC_RWIN, MO(1) , KC_RCTL ), - [1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [1] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/smithrune/iron160/iron160_s/matrix_diagram.md b/keyboards/smithrune/iron160/iron160_s/matrix_diagram.md new file mode 100644 index 00000000000..3b4d9bc5789 --- /dev/null +++ b/keyboards/smithrune/iron160/iron160_s/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for SmithRune I160-S + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │4D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │49 │4A │4B │4C │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4A │4B │4C │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/smithrune/iron160/iron160_s/rules.mk b/keyboards/smithrune/iron160/iron160_s/rules.mk index b7824fcbdf7..2c863bbe31a 100644 --- a/keyboards/smithrune/iron160/iron160_s/rules.mk +++ b/keyboards/smithrune/iron160/iron160_s/rules.mk @@ -16,5 +16,3 @@ LTO_ENABLE = no EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = legacy -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/smithrune/iron165r2/f072/config.h b/keyboards/smithrune/iron165r2/f072/config.h index 9f86b9e55c7..e53468c2a75 100644 --- a/keyboards/smithrune/iron165r2/f072/config.h +++ b/keyboards/smithrune/iron165r2/f072/config.h @@ -19,16 +19,4 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 1 - -#define RGBLED_NUM 22 -#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 BACKLIGHT_PAL_MODE 1 \ No newline at end of file diff --git a/keyboards/smithrune/iron165r2/f072/info.json b/keyboards/smithrune/iron165r2/f072/info.json index 8ced3df7758..209266ad102 100644 --- a/keyboards/smithrune/iron165r2/f072/info.json +++ b/keyboards/smithrune/iron165r2/f072/info.json @@ -4,6 +4,21 @@ "levels": 20, "breathing": true }, + "rgblight": { + "led_count": 22, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/smithrune/iron165r2/f072/rules.mk b/keyboards/smithrune/iron165r2/f072/rules.mk index 8b584c9a42e..b524e61f4bb 100644 --- a/keyboards/smithrune/iron165r2/f072/rules.mk +++ b/keyboards/smithrune/iron165r2/f072/rules.mk @@ -13,5 +13,3 @@ LTO_ENABLE = no ENCODER_ENABLE = no BACKLIGHT_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/smithrune/iron165r2/f411/config.h b/keyboards/smithrune/iron165r2/f411/config.h index fa904fdabb9..8ed73d3ff48 100644 --- a/keyboards/smithrune/iron165r2/f411/config.h +++ b/keyboards/smithrune/iron165r2/f411/config.h @@ -19,19 +19,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 2 - -#define RGBLED_NUM 22 -#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 WS2812_PWM_COMPLEMENTARY_OUTPUT #define WS2812_PWM_DRIVER PWMD1 diff --git a/keyboards/smithrune/iron165r2/f411/info.json b/keyboards/smithrune/iron165r2/f411/info.json index 7fd45874f22..c499958255d 100644 --- a/keyboards/smithrune/iron165r2/f411/info.json +++ b/keyboards/smithrune/iron165r2/f411/info.json @@ -4,6 +4,21 @@ "levels": 20, "breathing": true }, + "rgblight": { + "led_count": 22, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "pwm" diff --git a/keyboards/smithrune/iron165r2/f411/rules.mk b/keyboards/smithrune/iron165r2/f411/rules.mk index 5d4fe45457b..e38a7a71b3d 100644 --- a/keyboards/smithrune/iron165r2/f411/rules.mk +++ b/keyboards/smithrune/iron165r2/f411/rules.mk @@ -14,5 +14,3 @@ ENCODER_ENABLE = no EEPROM_DRIVER = i2c BACKLIGHT_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/smithrune/iron165r2/iron165r2.c b/keyboards/smithrune/iron165r2/iron165r2.c index 7406c0029cf..6f1606f89d3 100644 --- a/keyboards/smithrune/iron165r2/iron165r2.c +++ b/keyboards/smithrune/iron165r2/iron165r2.c @@ -28,8 +28,6 @@ void board_init(void) { #endif } -#define LED_PIN_ON_STATE 1 - bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); if(res) writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock); diff --git a/keyboards/smithrune/iron180/rules.mk b/keyboards/smithrune/iron180/rules.mk index 837bececdc5..bfb4a63764f 100644 --- a/keyboards/smithrune/iron180/rules.mk +++ b/keyboards/smithrune/iron180/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no LTO_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/smk60/config.h b/keyboards/smk60/config.h deleted file mode 100644 index 9cc3f8601e0..00000000000 --- a/keyboards/smk60/config.h +++ /dev/null @@ -1,37 +0,0 @@ -/** - * config.h - * - */ -#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 - -//rgb light setting -#define RGBLED_NUM 4 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/smk60/info.json b/keyboards/smk60/info.json index f80f3f260b3..535dab67413 100644 --- a/keyboards/smk60/info.json +++ b/keyboards/smk60/info.json @@ -8,6 +8,23 @@ "pid": "0x6585", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/sneakbox/aliceclonergb/config.h b/keyboards/sneakbox/aliceclonergb/config.h deleted file mode 100644 index ceccc0915b8..00000000000 --- a/keyboards/sneakbox/aliceclonergb/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2021 Bryan Ong - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/sneakbox/aliceclonergb/info.json b/keyboards/sneakbox/aliceclonergb/info.json index e16645e7358..ecf420a10c4 100644 --- a/keyboards/sneakbox/aliceclonergb/info.json +++ b/keyboards/sneakbox/aliceclonergb/info.json @@ -26,6 +26,23 @@ "bootmagic": { "matrix": [2, 0] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D5" }, diff --git a/keyboards/sneakbox/ava/config.h b/keyboards/sneakbox/ava/config.h deleted file mode 100644 index a97d34f7f26..00000000000 --- a/keyboards/sneakbox/ava/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2021 Bryan Ong - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 \ No newline at end of file diff --git a/keyboards/sneakbox/ava/info.json b/keyboards/sneakbox/ava/info.json index 693794e0310..78be99ce6ca 100644 --- a/keyboards/sneakbox/ava/info.json +++ b/keyboards/sneakbox/ava/info.json @@ -22,6 +22,23 @@ "caps_lock": "D6", "num_lock": "D4" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/soda/cherish/config.h b/keyboards/soda/cherish/config.h index 9d07bd0dce4..f608132b5af 100644 --- a/keyboards/soda/cherish/config.h +++ b/keyboards/soda/cherish/config.h @@ -37,18 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/soda/cherish/info.json b/keyboards/soda/cherish/info.json index 71ee91e6604..1284c79ce4a 100644 --- a/keyboards/soda/cherish/info.json +++ b/keyboards/soda/cherish/info.json @@ -8,6 +8,23 @@ "pid": "0xEB52", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A13" }, diff --git a/keyboards/soda/cherish/rules.mk b/keyboards/soda/cherish/rules.mk index 4e0fe558730..a8af2d4ebca 100644 --- a/keyboards/soda/cherish/rules.mk +++ b/keyboards/soda/cherish/rules.mk @@ -14,5 +14,3 @@ 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/soda/mango/config.h b/keyboards/soda/mango/config.h new file mode 100644 index 00000000000..6e9f18cd5d2 --- /dev/null +++ b/keyboards/soda/mango/config.h @@ -0,0 +1,14 @@ +// Copyright 2023 devzhaoyou (@gevzhaoyou) +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define RGB_MATRIX_LED_COUNT 17 + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // 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 // + diff --git a/keyboards/soda/mango/info.json b/keyboards/soda/mango/info.json new file mode 100644 index 00000000000..9de040efba5 --- /dev/null +++ b/keyboards/soda/mango/info.json @@ -0,0 +1,124 @@ +{ + "manufacturer": "Soda", + "keyboard_name": "Mango", + "url": "https://github.com/gezhaoyou", + "maintainer": "JeayoKeh", + "diode_direction": "ROW2COL", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A6", "A5", "A4", "A3"], + "rows": ["B10", "B2", "B1", "B0", "A7"] + }, + "usb": { + "device_version": "1.0.0", + "force_nkro": true, + "vid": "0x3A54", + "pid": "0x4F5D" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "A2" + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "layout": [ + {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, + {"flags": 1, "matrix": [0, 1], "x": 75, "y": 0}, + {"flags": 1, "matrix": [0, 2], "x": 150, "y": 0}, + {"flags": 1, "matrix": [0, 3], "x": 224, "y": 0}, + {"flags": 1, "matrix": [1, 0], "x": 0, "y": 16}, + {"flags": 1, "matrix": [1, 1], "x": 75, "y": 16}, + {"flags": 1, "matrix": [1, 2], "x": 150, "y": 16}, + {"flags": 1, "matrix": [2, 0], "x": 0, "y": 32}, + {"flags": 1, "matrix": [2, 1], "x": 75, "y": 32}, + {"flags": 1, "matrix": [2, 2], "x": 150, "y": 32}, + {"flags": 1, "matrix": [2, 3], "x": 224, "y": 24}, + {"flags": 1, "matrix": [3, 0], "x": 0, "y": 48}, + {"flags": 1, "matrix": [3, 1], "x": 75, "y": 48}, + {"flags": 1, "matrix": [3, 2], "x": 150, "y": 48}, + {"flags": 1, "matrix": [4, 0], "x": 32, "y": 64}, + {"flags": 1, "matrix": [4, 1], "x": 150, "y": 64}, + {"flags": 1, "matrix": [4, 2], "x": 224, "y": 64} + ] + }, + "indicators": { + "caps_lock": "B15", + "on_state": 0 + }, + "community_layouts": ["numpad_5x4"], + "layouts": { + "LAYOUT_numpad_5x4": { + "layout": [ + {"label": "Num Lock", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "/", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "*", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "-", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "7", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "8", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "9", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "4", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "5", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "6", "matrix": [2, 2], "x": 2, "y": 2}, + {"h": 2, "label": "+", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "1", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "2", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "3", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "0", "matrix": [4, 0], "w": 2, "x": 0, "y": 4}, + {"label": ".", "matrix": [4, 2], "x": 2, "y": 4}, + {"h": 2, "label": "Enter", "matrix": [3, 3], "x": 3, "y": 3} + ] + } + } +} diff --git a/keyboards/soda/mango/keymaps/default/keymap.c b/keyboards/soda/mango/keymaps/default/keymap.c new file mode 100755 index 00000000000..7497c875143 --- /dev/null +++ b/keyboards/soda/mango/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* +Copyright 2012,2013 gezhaoyou + +This 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_numpad_5x4( + KC_NUM_LOCK, KC_PSLS, KC_PAST, LT(1, KC_PMNS), + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + [1] = LAYOUT_numpad_5x4( + KC_TRNS, KC_CALCULATOR, KC_BSPC, KC_TRNS, + RGB_MODE_FORWARD, RGB_VAI, RGB_HUI, + RGB_SPD, RGB_TOG, RGB_SPI, QK_BOOTLOADER, + RGB_MODE_REVERSE, RGB_VAD, RGB_HUD, + KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), +}; \ No newline at end of file diff --git a/keyboards/soda/mango/keymaps/via/keymap.c b/keyboards/soda/mango/keymaps/via/keymap.c new file mode 100755 index 00000000000..059598a6809 --- /dev/null +++ b/keyboards/soda/mango/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2012,2013 gezhaoyou + +This 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_numpad_5x4( + KC_NUM_LOCK, KC_PSLS, KC_PAST, LT(1, KC_PMNS), + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + [1] = LAYOUT_numpad_5x4( + KC_TRNS, KC_CALCULATOR, KC_BSPC, KC_TRNS, + RGB_MODE_FORWARD, RGB_VAI, RGB_HUI, + RGB_SPD, RGB_TOG, RGB_SPI, QK_BOOTLOADER, + RGB_MODE_REVERSE, RGB_VAD, RGB_HUD, + KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), +}; + diff --git a/keyboards/soda/mango/keymaps/via/rules.mk b/keyboards/soda/mango/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/soda/mango/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/soda/mango/readme.md b/keyboards/soda/mango/readme.md new file mode 100644 index 00000000000..1a1eb6bccc8 --- /dev/null +++ b/keyboards/soda/mango/readme.md @@ -0,0 +1,23 @@ +# mango-17 + +A customizable 17 keyboard, support both HOTSWAP and SOLDER. + +* Keyboard Maintainer: [gezhaoyou](https://github.com/gezhaoyou) +* Hardware Supported: [gezhaoyou](https://github.com/gezhaoyou) + +Make example for this keyboard (after setting up your build environment): + + make soda/mango:default + +Flashing example for this keyboard: + + make soda/mango: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: + +* **Physical reset button**: Briefly press the button: [boot] first, then press button: [reset] on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/soda/mango/rules.mk b/keyboards/soda/mango/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/soda/mango/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/soda/pocket/config.h b/keyboards/soda/pocket/config.h index 2387f9a000c..ce02ad5d68d 100644 --- a/keyboards/soda/pocket/config.h +++ b/keyboards/soda/pocket/config.h @@ -15,8 +15,6 @@ along with this program. If not, see . #pragma once -#define LED_NUM_LOCK_PIN B15 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/soda/pocket/info.json b/keyboards/soda/pocket/info.json index cef1aec57b0..9ae9f1b0de4 100644 --- a/keyboards/soda/pocket/info.json +++ b/keyboards/soda/pocket/info.json @@ -9,11 +9,14 @@ "device_version": "1.0.2", "force_nkro": true }, + "indicators": { + "num_lock": "B15" + }, "ws2812": { "pin": "C15" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A2", "A1", "B14", "B4", "B5", "B6", "B7"], @@ -50,25 +53,25 @@ {"matrix": [2, 3], "x": 3.25, "y": 2.25}, {"matrix": [2, 4], "x": 4.25, "y": 2.25}, {"matrix": [2, 5], "x": 5.25, "y": 2.25}, - {"matrix": [3, 3], "x": 6.25, "y": 2.25, "h": 2}, - {"matrix": [3, 4], "x": 3.25, "y": 3.25}, - {"matrix": [3, 5], "x": 4.25, "y": 3.25}, - {"matrix": [3, 6], "x": 5.25, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3.25}, + {"matrix": [3, 4], "x": 4.25, "y": 3.25}, + {"matrix": [3, 5], "x": 5.25, "y": 3.25}, + {"matrix": [3, 6], "x": 6.25, "y": 2.25, "h": 2}, {"matrix": [4, 1], "x": 1, "y": 4.25}, {"matrix": [4, 3], "x": 3.25, "y": 4.25}, {"matrix": [4, 4], "x": 4.25, "y": 4.25}, {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [5, 0], "x": 6.25, "y": 4.25, "h": 2}, - {"matrix": [5, 1], "x": 0, "y": 5.25}, - {"matrix": [5, 2], "x": 1, "y": 5.25}, - {"matrix": [5, 4], "x": 2, "y": 5.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25}, + {"matrix": [5, 1], "x": 1, "y": 5.25}, + {"matrix": [5, 2], "x": 2, "y": 5.25}, - {"matrix": [5, 5], "x": 3.25, "y": 5.25, "w": 2}, - {"matrix": [5, 6], "x": 5.25, "y": 5.25} + {"matrix": [5, 4], "x": 3.25, "y": 5.25, "w": 2}, + {"matrix": [5, 5], "x": 5.25, "y": 5.25}, + {"matrix": [5, 6], "x": 6.25, "y": 4.25, "h": 2} ] } } diff --git a/keyboards/soda/pocket/rules.mk b/keyboards/soda/pocket/rules.mk index 27092ddbc63..24a8c52e481 100644 --- a/keyboards/soda/pocket/rules.mk +++ b/keyboards/soda/pocket/rules.mk @@ -9,5 +9,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h index 9e36e1588e4..1e90cbab488 100755 --- a/keyboards/sofle/keyhive/config.h +++ b/keyboards/sofle/keyhive/config.h @@ -18,8 +18,6 @@ #pragma once -#define TAP_CODE_DELAY 10 - // OLED settings #define OLED_TIMEOUT 80000 #define OLED_BRIGHTNESS 90 @@ -27,41 +25,3 @@ #define SPLIT_WPM_ENABLE #define SPLIT_OLED_ENABLE #define SPLIT_TRANSPORT_MIRROR - -// Add RGB underglow -// by defining in the keyboard, incompatible keymaps will fail to compile. -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 74 -# define RGBLED_SPLIT {37,37} -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -//# define RGBLIGHT_LAYERS //Enable layer light indicators. Not required as updates are done in layer_state_set_user and led_update_user (+588). -# define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) - -//RGB LED Conversion macro from physical array to electric array (+146). This results in better looking animated effects. -//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping -# define LED_LAYOUT( \ - L00, L01, L02, L03, L04, L05, L08, L09, L010, L011, L012, L013, \ - L10, L12, L14, L19, L111, L113, \ - L20, L21, L22, L23, L24, L25, L28, L29, L210, L211, L212, L213, \ - L30, L31, L32, L33, L34, L35, L38, L39, L310, L311, L312, L313, \ - L40, L42, L44, L49, L411, L413, \ - L50, L51, L52, L53, L54, L55, L58, L59, L510, L511, L512, L513, \ - L62, L63, L64, L65, L66, L67, L68, L69, L610, L611, \ - L71, L76, L77, L712 )\ - { \ - L14,L12,L10,L40,L42,L44,L71,L76,L66,L65,L55,L35,L25,L05,L04,L24,L34,L54,L64,L63,L53,L33,L23,L03,L02,L22,L32,L52,L62,L51,L31,L21,L01,L00,L20,L30,L50,L19,L111,L113,L413,L411,L49,L712,L77,L67,L68,L58,L38,L28,L08,L09,L29,L39,L59,L69,L610,L510,L310,L210,L010,L011,L211,L311,L511,L611,L512,L312,L212,L012,L013,L213,L313,L513, \ - } -//RGB LED logical order map -# define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 5, 6, 17, 18, 29, 30, 43, 44, 55, 56, 67, 68, \ - 4, 16, 28, 45, 57, 69, \ - 3, 7, 15, 19, 27, 31, 42, 46, 54, 58, 66, 70, \ - 2, 8, 14, 20, 26, 32, 41, 47, 53, 59, 65, 71, \ - 1, 13, 25, 48, 60, 72, \ - 0, 9, 12, 21, 24, 33, 40, 49, 52, 61, 64, 73, \ - 11, 22, 23, 34, 35, 38, 39, 50, 51, 62, \ - 10, 36, 37, 63 ) - -#endif diff --git a/keyboards/sofle/keyhive/info.json b/keyboards/sofle/keyhive/info.json index 7a453b675e0..1f7ae8b2098 100644 --- a/keyboards/sofle/keyhive/info.json +++ b/keyboards/sofle/keyhive/info.json @@ -10,7 +10,12 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 100 + "hue_steps": 10, + "led_count": 74, + "max_brightness": 100, + "led_map": [28, 16, 4, 1, 13, 25, 10, 36, 35, 34, 33, 32, 31, 30, 29, 27, 26, 24, 23, 22, 21, 20, 19, 18, 17, 15, 14, 12, 11, 9, 8, 7, 6, 5, 3, 2, 0, 45, 57, 69, 72, 60, 48, 63, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 61, 62, 64, 65, 66, 67, 68, 70, 71, 73], + "sleep": true, + "split_count": [37, 37] }, "matrix_pins": { "cols": ["B6", "B2", "B3", "B1", "F7", "F6", null], @@ -38,6 +43,9 @@ } } }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/sofle/keyhive/rules.mk b/keyboards/sofle/keyhive/rules.mk index bb1a7f3dc2b..00719ebea0c 100755 --- a/keyboards/sofle/keyhive/rules.mk +++ b/keyboards/sofle/keyhive/rules.mk @@ -14,4 +14,3 @@ ENCODER_ENABLE = yes LTO_ENABLE = yes SPLIT_KEYBOARD = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/sofle/keymaps/default/rules.mk b/keyboards/sofle/keymaps/default/rules.mk index c21a769a2ec..ab79c07969f 100644 --- a/keyboards/sofle/keymaps/default/rules.mk +++ b/keyboards/sofle/keymaps/default/rules.mk @@ -1,6 +1,5 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes CONSOLE_ENABLE = no EXTRAKEY_ENABLE = yes diff --git a/keyboards/sofle/keymaps/devdev/rules.mk b/keyboards/sofle/keymaps/devdev/rules.mk index 92a293196f2..0d18161a0d7 100644 --- a/keyboards/sofle/keymaps/devdev/rules.mk +++ b/keyboards/sofle/keymaps/devdev/rules.mk @@ -1,8 +1,7 @@ MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = yes +CONSOLE_ENABLE = no RGBLIGHT_ENABLE = yes ENCODER_ENABLE = yes LTO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/sofle/keymaps/flare576/rules.mk b/keyboards/sofle/keymaps/flare576/rules.mk index a7505f53864..abfcc01d94b 100644 --- a/keyboards/sofle/keymaps/flare576/rules.mk +++ b/keyboards/sofle/keymaps/flare576/rules.mk @@ -3,5 +3,4 @@ ENCODER_ENABLE = yes EXTRAKEY_ENABLE = yes TAP_DANCE_ENABLE = yes WPM_ENABLE = yes -OLED_DRIVER_ENABLE = yes SRC += graphics.c diff --git a/keyboards/sofle/keymaps/helltm/rules.mk b/keyboards/sofle/keymaps/helltm/rules.mk index b905bd94fcd..8cba5309595 100644 --- a/keyboards/sofle/keymaps/helltm/rules.mk +++ b/keyboards/sofle/keymaps/helltm/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes CONSOLE_ENABLE = yes EXTRAKEY_ENABLE = yes diff --git a/keyboards/sofle/keymaps/keyhive_via/encoder.c b/keyboards/sofle/keymaps/keyhive_via/encoder.c deleted file mode 100644 index 7775cb7b86f..00000000000 --- a/keyboards/sofle/keymaps/keyhive_via/encoder.c +++ /dev/null @@ -1,48 +0,0 @@ - /* Copyright 2020 Josef Adamcik - * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang - * - * This 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 . - */ - -//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via. - -#ifdef ENCODER_ENABLE - static uint8_t encoder_state[2] = {0}; - //Use these keymap positions to specify the encoder functions on rotate. - static keypos_t encoder_ccw[2] = {{6, 3}, {6, 8}}; - static keypos_t encoder_cw[2] = {{6, 1}, {6, 6}}; - - void encoder_action_unregister(void) { - for (int index = 0; index < 2; ++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(), .type = KEY_EVENT}; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } - } - - void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = timer_read(), .type = KEY_EVENT}; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); - } - - void matrix_scan_user(void) { encoder_action_unregister(); } - - bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return false; - }; -#endif diff --git a/keyboards/sofle/keymaps/keyhive_via/keymap.c b/keyboards/sofle/keymaps/keyhive_via/keymap.c index 032c834f44c..8af870c5741 100644 --- a/keyboards/sofle/keymaps/keyhive_via/keymap.c +++ b/keyboards/sofle/keymaps/keyhive_via/keymap.c @@ -18,7 +18,6 @@ #include QMK_KEYBOARD_H #include "oled.c" -#include "encoder.c" // Base layer is the number of layers CYCLE selects from. #define BASE_LAYERS 2 @@ -35,27 +34,6 @@ enum custom_layers { _RAISE }; -// Extra keys are added for rotary encoder support in VIA -#define LAYOUT_via( \ - LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \ - LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \ - LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \ - LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \ - LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \ - ) \ - { \ - { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \ - { LB1, LB2, LB3, LB4, LB5, LB6, LB7 }, \ - { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \ - { LD1, LD2, LD3, LD4, LD5, LD6, LD7 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7 }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \ - { RD1, RD2, RD3, RD4, RD5, RD6, RD7 }, \ - { RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \ - } - //Default keymap. This can be changed in Via. Use oled.c to change beavior that Via cannot change. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -74,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' '------''---------------------------' */ -[_QWERTY] = LAYOUT_via( +[_QWERTY] = LAYOUT( KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , - KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_VOLU, KC_PGUP, 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_MUTE, KC_NO , 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_VOLD, KC_PGDN, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, + KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_MUTE, KC_NO, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_LGUI,KC_LALT ,KC_LCTL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI ), /* @@ -97,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' '------''---------------------------' */ /* -[_COLEMAK] = LAYOUT_via( +[_COLEMAK] = LAYOUT( KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_D , KC_MUTE, KC_NO , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT, @@ -121,11 +99,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | |/ / \ \ | | | | | * `-----------------------------------' '------''---------------------------' */ -[_COLEMAK] = LAYOUT_via( +[_COLEMAK] = LAYOUT( KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_GRV , - KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_VOLU, KC_PGUP, KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, - KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_G , KC_MUTE, KC_NO , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT, - KC_LSFT, KC_Z , KC_X , KC_C , KC_D , KC_V , KC_VOLD, KC_PGDN, KC_K , KC_H , KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, + KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT, + KC_LSFT, KC_Z , KC_X , KC_C , KC_D , KC_V , _______, _______, KC_K , KC_H , KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LGUI, KC_LALT,KC_LCTL,MO(_LOWER), KC_ENT , KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI ), @@ -143,11 +121,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | |/ / \ \ | | | | | * `-----------------------------------' '------''---------------------------' */ -[_LOWER] = LAYOUT_via( +[_LOWER] = LAYOUT( _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , - KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_F12 , - _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, - _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_F12 , + _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, + _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* RAISE @@ -164,11 +142,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | |/ / \ \ | | | | | * `----------------------------------' '------''---------------------------' */ -[_RAISE] = LAYOUT_via( +[_RAISE] = LAYOUT( CYCLE, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______, - _______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX, _______, _______, KC_PGUP, _______, KC_UP , _______, _______, KC_BSPC, - _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, - _______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______, + _______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX, KC_PGUP, _______, KC_UP , _______, _______, KC_BSPC, + _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC, + _______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; @@ -189,3 +167,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // this uses less memory than returning in each case. return keycode < SAFE_RANGE; }; + + #ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_BSPC, KC_DEL), ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/sofle/keymaps/keyhive_via/rules.mk b/keyboards/sofle/keymaps/keyhive_via/rules.mk index 2875254096a..c7fce92a4f6 100644 --- a/keyboards/sofle/keymaps/keyhive_via/rules.mk +++ b/keyboards/sofle/keymaps/keyhive_via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes RGBLIGHT_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/sofle/keymaps/killmaster/rules.mk b/keyboards/sofle/keymaps/killmaster/rules.mk index 38d6114506e..95b415488c2 100644 --- a/keyboards/sofle/keymaps/killmaster/rules.mk +++ b/keyboards/sofle/keymaps/killmaster/rules.mk @@ -1,4 +1,4 @@ EXTRAKEY_ENABLE = yes LTO_ENABLE = yes RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_DRIVER = ws2812 diff --git a/keyboards/sofle/keymaps/michal/rules.mk b/keyboards/sofle/keymaps/michal/rules.mk index 8088d744cd0..06a046f0736 100644 --- a/keyboards/sofle/keymaps/michal/rules.mk +++ b/keyboards/sofle/keymaps/michal/rules.mk @@ -1,7 +1,6 @@ BOOTLOADER = atmel-dfu OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # These are turned off to save space COMMAND_ENABLE = no @@ -17,4 +16,4 @@ EXTRAKEY_ENABLE = yes MOUSEKEY_ENABLE = yes # More space-saving -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes diff --git a/keyboards/sofle/keymaps/noqmk/rules.mk b/keyboards/sofle/keymaps/noqmk/rules.mk index 6685b8492ce..58813926229 100644 --- a/keyboards/sofle/keymaps/noqmk/rules.mk +++ b/keyboards/sofle/keymaps/noqmk/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes CONSOLE_ENABLE = no EXTRAKEY_ENABLE = yes diff --git a/keyboards/sofle/keymaps/rgb_default/rules.mk b/keyboards/sofle/keymaps/rgb_default/rules.mk index 860c2122da2..0d18161a0d7 100644 --- a/keyboards/sofle/keymaps/rgb_default/rules.mk +++ b/keyboards/sofle/keymaps/rgb_default/rules.mk @@ -5,4 +5,3 @@ RGBLIGHT_ENABLE = yes ENCODER_ENABLE = yes LTO_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/sofle/keymaps/via/config.h b/keyboards/sofle/keymaps/via/config.h index 439ad2c0c6d..e53881987da 100644 --- a/keyboards/sofle/keymaps/via/config.h +++ b/keyboards/sofle/keymaps/via/config.h @@ -24,7 +24,7 @@ for more options. */ #if defined(KEYBOARD_sofle_rev1) // Add RGB underglow and top facing lighting # define WS2812_DI_PIN D3 -# define RGBLED_NUM 70 +# define RGBLED_NUM 72 # define RGBLED_SPLIT \ { 36, 36 } # ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/sofle/keymaps/via/rules.mk b/keyboards/sofle/keymaps/via/rules.mk index b57a417092d..c8ca49919c8 100644 --- a/keyboards/sofle/keymaps/via/rules.mk +++ b/keyboards/sofle/keymaps/via/rules.mk @@ -1,9 +1,8 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes CONSOLE_ENABLE = no EXTRAKEY_ENABLE = yes VIA_ENABLE = yes LTO_ENABLE = yes RGBLIGHT_ENABLE = yes -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/sofle/rev1/config.h b/keyboards/sofle/rev1/config.h deleted file mode 100644 index be645497484..00000000000 --- a/keyboards/sofle/rev1/config.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#define TAPPING_TERM 100 - -#define TAP_CODE_DELAY 10 diff --git a/keyboards/sofle/rev1/info.json b/keyboards/sofle/rev1/info.json index 23d411602eb..5ab71ff1e37 100644 --- a/keyboards/sofle/rev1/info.json +++ b/keyboards/sofle/rev1/info.json @@ -28,6 +28,12 @@ } } }, + "tapping": { + "term": 100 + }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/sofle/rev1/rules.mk b/keyboards/sofle/rev1/rules.mk index 46ec39ee481..5ec06e96091 100644 --- a/keyboards/sofle/rev1/rules.mk +++ b/keyboards/sofle/rev1/rules.mk @@ -1,3 +1,2 @@ ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/sowbug/68keys/config.h b/keyboards/sowbug/68keys/config.h index 04b1fced2b6..0836a67e880 100644 --- a/keyboards/sowbug/68keys/config.h +++ b/keyboards/sowbug/68keys/config.h @@ -19,8 +19,7 @@ #pragma once #define RGB_MATRIX_KEYPRESSES -#define RGBLED_NUM 68 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 68 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/sowbug/68keys/info.json b/keyboards/sowbug/68keys/info.json index 3b4525e9f84..641ed0aa063 100644 --- a/keyboards/sowbug/68keys/info.json +++ b/keyboards/sowbug/68keys/info.json @@ -12,7 +12,7 @@ "pin": "B9" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A3", "A4", "A5", "A6", "A7", "B0", "B1", "B10", "B11", "B12", "B13", "B14", "B15", "A8", "A9", "A10"], diff --git a/keyboards/sowbug/68keys/rules.mk b/keyboards/sowbug/68keys/rules.mk index b7807ae4185..c49a369dd02 100644 --- a/keyboards/sowbug/68keys/rules.mk +++ b/keyboards/sowbug/68keys/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/sowbug/ansi_tkl/config.h b/keyboards/sowbug/ansi_tkl/config.h index 08c01e662da..4b1538b6450 100644 --- a/keyboards/sowbug/ansi_tkl/config.h +++ b/keyboards/sowbug/ansi_tkl/config.h @@ -19,8 +19,7 @@ #pragma once #define RGB_MATRIX_KEYPRESSES -#define RGBLED_NUM 87 -#define RGB_MATRIX_LED_COUNT RGBLED_NUM +#define RGB_MATRIX_LED_COUNT 87 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128 diff --git a/keyboards/sowbug/ansi_tkl/info.json b/keyboards/sowbug/ansi_tkl/info.json index 221c591738e..39cc57a8f39 100644 --- a/keyboards/sowbug/ansi_tkl/info.json +++ b/keyboards/sowbug/ansi_tkl/info.json @@ -12,7 +12,7 @@ "pin": "B9" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A4", "A5", "A6", "A7", "B0", "B1", "B10", "B11", "B12", "B13", "B14", "B15", "A8", "A9", "A10", "A15", "B3"], diff --git a/keyboards/sowbug/ansi_tkl/rules.mk b/keyboards/sowbug/ansi_tkl/rules.mk index b7807ae4185..c49a369dd02 100644 --- a/keyboards/sowbug/ansi_tkl/rules.mk +++ b/keyboards/sowbug/ansi_tkl/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/spaceholdings/nebula12/config.h b/keyboards/spaceholdings/nebula12/config.h index 9d044bb4c52..3853ebcff64 100755 --- a/keyboards/spaceholdings/nebula12/config.h +++ b/keyboards/spaceholdings/nebula12/config.h @@ -40,21 +40,6 @@ along with this program. If not, see . #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 - #define RGBLED_NUM 10 /* If number is smaller, buffer updates too fast causing glitches */ - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - /* Backlight options */ #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/spaceholdings/nebula12/info.json b/keyboards/spaceholdings/nebula12/info.json index aa5dbc1873a..6638498e0c6 100755 --- a/keyboards/spaceholdings/nebula12/info.json +++ b/keyboards/spaceholdings/nebula12/info.json @@ -8,6 +8,23 @@ "pid": "0x5337", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/spaceholdings/nebula12b/info.json b/keyboards/spaceholdings/nebula12b/info.json index 9cbfcd1f86b..f7ba574efc7 100755 --- a/keyboards/spaceholdings/nebula12b/info.json +++ b/keyboards/spaceholdings/nebula12b/info.json @@ -12,7 +12,7 @@ "pin": "D5" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F4", "F5", "D7"], diff --git a/keyboards/spaceholdings/nebula68/config.h b/keyboards/spaceholdings/nebula68/config.h index f0538478228..43dc7b0d868 100755 --- a/keyboards/spaceholdings/nebula68/config.h +++ b/keyboards/spaceholdings/nebula68/config.h @@ -23,21 +23,6 @@ along with this program. If not, see . #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. - #define RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - /* Backlight options */ #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/spaceholdings/nebula68/info.json b/keyboards/spaceholdings/nebula68/info.json index 2e1165a8107..dfc61b3a2d1 100755 --- a/keyboards/spaceholdings/nebula68/info.json +++ b/keyboards/spaceholdings/nebula68/info.json @@ -13,7 +13,22 @@ "driver": "pwm" }, "rgblight": { - "max_brightness": 210 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "max_brightness": 210, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["A13", "A10", "A9", "A14", "A15", "B8", "B9", "C13", "C14", "C15", "A0", "A1", "A2", "A3", "A5"], diff --git a/keyboards/spaceholdings/nebula68b/info.json b/keyboards/spaceholdings/nebula68b/info.json index 89ee7271727..85236629768 100755 --- a/keyboards/spaceholdings/nebula68b/info.json +++ b/keyboards/spaceholdings/nebula68b/info.json @@ -12,7 +12,7 @@ "pin": "B7" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], diff --git a/keyboards/spaceman/2_milk/config.h b/keyboards/spaceman/2_milk/config.h deleted file mode 100644 index 6a3ec9c5c13..00000000000 --- a/keyboards/spaceman/2_milk/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2019 Spaceman - * - * This 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 RGBLIGHT_ENABLE -#define RGBLED_NUM 1 -#endif diff --git a/keyboards/spaceman/2_milk/info.json b/keyboards/spaceman/2_milk/info.json index 333bad3b87e..a703c8f8903 100644 --- a/keyboards/spaceman/2_milk/info.json +++ b/keyboards/spaceman/2_milk/info.json @@ -8,6 +8,9 @@ "pid": "0x3225", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 1 + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/spaceman/2_milk/keymaps/emoji/keymap.c b/keyboards/spaceman/2_milk/keymaps/emoji/keymap.c index 8859573ce5d..26ac20ad5ce 100644 --- a/keyboards/spaceman/2_milk/keymaps/emoji/keymap.c +++ b/keyboards/spaceman/2_milk/keymaps/emoji/keymap.c @@ -11,7 +11,7 @@ void dance_key_one (tap_dance_state_t *state, void *user_data) { tap_code(KC_ENTER); reset_tap_dance (state); } else if (state->count == 2) { - cycle_unicode_input_mode(+1); + unicode_input_mode_step(); reset_tap_dance (state); } } diff --git a/keyboards/spaceman/2_milk/keymaps/vial/config.h b/keyboards/spaceman/2_milk/keymaps/vial/config.h new file mode 100644 index 00000000000..76a196c1384 --- /dev/null +++ b/keyboards/spaceman/2_milk/keymaps/vial/config.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x50, 0xB8, 0x6D, 0x63, 0x19, 0xE1, 0xC6, 0xEC} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 0 } + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/spaceman/2_milk/keymaps/vial/keymap.c b/keyboards/spaceman/2_milk/keymaps/vial/keymap.c new file mode 100644 index 00000000000..02bc67b9f8d --- /dev/null +++ b/keyboards/spaceman/2_milk/keymaps/vial/keymap.c @@ -0,0 +1,8 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Z, + KC_X + ) +}; diff --git a/keyboards/spaceman/2_milk/keymaps/vial/rules.mk b/keyboards/spaceman/2_milk/keymaps/vial/rules.mk new file mode 100644 index 00000000000..7de9783aed3 --- /dev/null +++ b/keyboards/spaceman/2_milk/keymaps/vial/rules.mk @@ -0,0 +1,8 @@ +MOUSEKEY_ENABLE = no # Mouse keys +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +VIA_ENABLE = yes # Enable VIA +VIAL_ENABLE = yes # Enable VIAL +OLED_ENABLE = no +LTO_ENABLE = yes +QMK_SETTINGS = no +COMBO_ENABLE = yes diff --git a/keyboards/spaceman/2_milk/keymaps/vial/vial.json b/keyboards/spaceman/2_milk/keymaps/vial/vial.json new file mode 100644 index 00000000000..027c36e2384 --- /dev/null +++ b/keyboards/spaceman/2_milk/keymaps/vial/vial.json @@ -0,0 +1,13 @@ +{ + "name": "spaceman_2_milk", + "vendorId": "0x5342", + "productId": "0x3225", + "lighting": "qmk_rgblight", + "matrix": { + "rows": 2, + "cols": 1 + }, + "layouts": { + "keymap": [["0,0"], ["1,0"]] + } +} diff --git a/keyboards/spaceman/pancake/rev1/feather/config.h b/keyboards/spaceman/pancake/rev1/feather/config.h deleted file mode 100644 index 9ff72156da9..00000000000 --- a/keyboards/spaceman/pancake/rev1/feather/config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright 2019 Spaceman - * - * This 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 VIA_HAS_BROKEN_KEYCODES diff --git a/keyboards/spaceman/pancake/rev1/feather/info.json b/keyboards/spaceman/pancake/rev1/feather/info.json index 2d8072e7f18..85f95a011bb 100644 --- a/keyboards/spaceman/pancake/rev1/feather/info.json +++ b/keyboards/spaceman/pancake/rev1/feather/info.json @@ -3,5 +3,8 @@ "cols": ["C7", "D6", "B7", "B6", "F0", "D2", "D3", "F1", "F4", "F5", "F6", "F7"], "rows": ["B5", "D7", "C6", "D0"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "bluetooth": { + "driver": "bluefruit_le" + } } diff --git a/keyboards/spaceman/pancake/rev1/feather/rules.mk b/keyboards/spaceman/pancake/rev1/feather/rules.mk index 822ab9971bc..35ad61d4a17 100644 --- a/keyboards/spaceman/pancake/rev1/feather/rules.mk +++ b/keyboards/spaceman/pancake/rev1/feather/rules.mk @@ -14,7 +14,6 @@ BACKLIGHT_ENABLE = no # Custom backlighting code is used, so this should not b AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expansion port. Not compatible with RGBLIGHT below RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port. BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE # Disable unsupported hardware RGBLIGHT_SUPPORTED = no diff --git a/keyboards/spaceman/pancake/rev2/rules.mk b/keyboards/spaceman/pancake/rev2/rules.mk index c085de5a4a2..a7cc2bfee46 100644 --- a/keyboards/spaceman/pancake/rev2/rules.mk +++ b/keyboards/spaceman/pancake/rev2/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/spacetime/keymaps/kyleterry/keymap.c b/keyboards/spacetime/keymaps/kyleterry/keymap.c index fd91fafbd22..5aaab878145 100644 --- a/keyboards/spacetime/keymaps/kyleterry/keymap.c +++ b/keyboards/spacetime/keymaps/kyleterry/keymap.c @@ -98,22 +98,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} - void td_common(tap_dance_state_t *state, void *user_data) { switch (state->count) { case 1: diff --git a/keyboards/spacetime/rev2/rev2.c b/keyboards/spacetime/rev2/rev2.c deleted file mode 100644 index 3ecef1c1d88..00000000000 --- a/keyboards/spacetime/rev2/rev2.c +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2019 Kyle Terry - * - * This 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 "rev2.h" - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { -#ifdef SSD1306OLED - return process_record_gfx(keycode,record) && process_record_user(keycode, record); -#else - return process_record_user(keycode, record); -#endif -} diff --git a/keyboards/spacetime/rev2/rules.mk b/keyboards/spacetime/rev2/rules.mk index d34d066ded9..dd68e9d3b09 100644 --- a/keyboards/spacetime/rev2/rules.mk +++ b/keyboards/spacetime/rev2/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/spiderisland/split78/info.json b/keyboards/spiderisland/split78/info.json index 7b87c2b7135..e507a668b1d 100644 --- a/keyboards/spiderisland/split78/info.json +++ b/keyboards/spiderisland/split78/info.json @@ -15,6 +15,9 @@ "ws2812": { "driver": "i2c" }, + "build": { + "debounce_type": "sym_eager_pr" + }, "processor": "atmega32a", "bootloader": "bootloadhid", "debounce": 50, diff --git a/keyboards/spiderisland/split78/rules.mk b/keyboards/spiderisland/split78/rules.mk index e77cf060bed..edddf67abc8 100644 --- a/keyboards/spiderisland/split78/rules.mk +++ b/keyboards/spiderisland/split78/rules.mk @@ -8,7 +8,6 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -DEBOUNCE_TYPE = sym_eager_pr # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/spleeb/info.json b/keyboards/spleeb/info.json index 10cd0e35b8a..e03faa7c3e9 100644 --- a/keyboards/spleeb/info.json +++ b/keyboards/spleeb/info.json @@ -54,6 +54,7 @@ {"matrix": [0, 4], "x": 4, "y": 0.2}, {"matrix": [0, 5], "x": 5, "y": 0.4}, {"matrix": [0, 6], "x": 6, "y": 0.9}, + {"matrix": [5, 6], "x": 9.75, "y": 0.9}, {"matrix": [5, 5], "x": 10.75, "y": 0.4}, {"matrix": [5, 4], "x": 11.75, "y": 0.2}, @@ -61,6 +62,7 @@ {"matrix": [5, 2], "x": 13.75, "y": 0.2}, {"matrix": [5, 1], "x": 14.75, "y": 0.6}, {"matrix": [5, 0], "x": 15.75, "y": 0.6}, + {"matrix": [1, 0], "x": 0, "y": 1.6}, {"matrix": [1, 1], "x": 1, "y": 1.6}, {"matrix": [1, 2], "x": 2, "y": 1.2}, @@ -68,6 +70,7 @@ {"matrix": [1, 4], "x": 4, "y": 1.2}, {"matrix": [1, 5], "x": 5, "y": 1.4}, {"matrix": [1, 6], "x": 6, "y": 1.9}, + {"matrix": [6, 6], "x": 9.75, "y": 1.9}, {"matrix": [6, 5], "x": 10.75, "y": 1.4}, {"matrix": [6, 4], "x": 11.75, "y": 1.2}, @@ -75,6 +78,7 @@ {"matrix": [6, 2], "x": 13.75, "y": 1.2}, {"matrix": [6, 1], "x": 14.75, "y": 1.6}, {"matrix": [6, 0], "x": 15.75, "y": 1.6}, + {"matrix": [2, 0], "x": 0, "y": 2.6}, {"matrix": [2, 1], "x": 1, "y": 2.6}, {"matrix": [2, 2], "x": 2, "y": 2.2}, @@ -82,6 +86,7 @@ {"matrix": [2, 4], "x": 4, "y": 2.2}, {"matrix": [2, 5], "x": 5, "y": 2.4}, {"matrix": [2, 6], "x": 6, "y": 2.9}, + {"matrix": [7, 6], "x": 9.75, "y": 2.9}, {"matrix": [7, 5], "x": 10.75, "y": 2.4}, {"matrix": [7, 4], "x": 11.75, "y": 2.2}, @@ -89,26 +94,30 @@ {"matrix": [7, 2], "x": 13.75, "y": 2.2}, {"matrix": [7, 1], "x": 14.75, "y": 2.6}, {"matrix": [7, 0], "x": 15.75, "y": 2.6}, + {"matrix": [3, 1], "x": 1, "y": 3.6}, {"matrix": [3, 2], "x": 2, "y": 3.2}, {"matrix": [3, 3], "x": 3, "y": 3}, {"matrix": [3, 4], "x": 4, "y": 3.2}, {"matrix": [3, 5], "x": 5, "y": 3.4}, {"matrix": [3, 6], "x": 7.2, "y": 3.15}, + {"matrix": [8, 6], "x": 8.6, "y": 3.15}, {"matrix": [8, 5], "x": 10.75, "y": 3.4}, {"matrix": [8, 4], "x": 11.75, "y": 3.2}, {"matrix": [8, 3], "x": 12.75, "y": 3}, {"matrix": [8, 2], "x": 13.75, "y": 3.2}, {"matrix": [8, 1], "x": 14.75, "y": 3.6}, + {"matrix": [4, 2], "x": 3, "y": 4.45}, {"matrix": [4, 3], "x": 4, "y": 4.45}, - {"matrix": [4, 4], "x": -0.15, "y": 4.65}, - {"h": 1.25, "matrix": [4, 5], "x": 0.85, "y": 4.4}, - {"h": 1.25, "matrix": [4, 6], "x": 1.85, "y": 4.4}, - {"h": 1.25, "matrix": [9, 6], "x": -3.1, "y": 4.6}, - {"h": 1.25, "matrix": [9, 5], "x": -2.1, "y": 4.6}, - {"matrix": [9, 4], "x": -1.1, "y": 4.85}, + {"matrix": [4, 4], "x": 5, "y": 4.45}, + {"matrix": [4, 5], "x": 6, "y": 4.3, "h": 1.25}, + {"matrix": [4, 6], "x": 7, "y": 4.4, "h": 1.25}, + + {"matrix": [9, 6], "x": 8.75, "y": 4.4, "h": 1.25}, + {"matrix": [9, 5], "x": 9.75, "y": 4.3, "h": 1.25}, + {"matrix": [9, 4], "x": 10.75, "y": 4.45}, {"matrix": [9, 3], "x": 11.75, "y": 4.45}, {"matrix": [9, 2], "x": 12.75, "y": 4.45} ] diff --git a/keyboards/spleeb/keymaps/chrishoage/rules.mk b/keyboards/spleeb/keymaps/chrishoage/rules.mk index 117c55fd8b8..271c920da89 100644 --- a/keyboards/spleeb/keymaps/chrishoage/rules.mk +++ b/keyboards/spleeb/keymaps/chrishoage/rules.mk @@ -8,4 +8,3 @@ POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/splitkb/aurora/corne/rev1/info.json b/keyboards/splitkb/aurora/corne/rev1/info.json index b6f05cfbcbd..7d82577b00a 100644 --- a/keyboards/splitkb/aurora/corne/rev1/info.json +++ b/keyboards/splitkb/aurora/corne/rev1/info.json @@ -108,7 +108,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 93, "y": 17}, // L RGB1 {"flags": 2, "x": 59, "y": 3}, // L RGB2 diff --git a/keyboards/splitkb/aurora/lily58/rev1/config.h b/keyboards/splitkb/aurora/lily58/rev1/config.h index 57a420d49c7..1356c62ea17 100644 --- a/keyboards/splitkb/aurora/lily58/rev1/config.h +++ b/keyboards/splitkb/aurora/lily58/rev1/config.h @@ -28,7 +28,7 @@ // Not yet available in `info.json` #ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 68 +# define RGB_MATRIX_SPLIT { 34, 34 } # define SPLIT_TRANSPORT_MIRROR #endif diff --git a/keyboards/splitkb/aurora/lily58/rev1/info.json b/keyboards/splitkb/aurora/lily58/rev1/info.json index 76b0edc116c..2d251b96b22 100644 --- a/keyboards/splitkb/aurora/lily58/rev1/info.json +++ b/keyboards/splitkb/aurora/lily58/rev1/info.json @@ -119,7 +119,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 51, "y": 13}, // L RGB1 {"flags": 2, "x": 22, "y": 18}, // L RGB2 diff --git a/keyboards/splitkb/aurora/sofle_v2/config.h b/keyboards/splitkb/aurora/sofle_v2/config.h new file mode 100644 index 00000000000..7b00c716459 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/config.h @@ -0,0 +1,21 @@ +/* Copyright 2023 splitkb.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 + +#ifdef OLED_ENABLE +# define OLED_FONT_H "keyboards/splitkb/aurora/sofle_v2/glcdfont.c" +#endif \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/glcdfont.c b/keyboards/splitkb/aurora/sofle_v2/glcdfont.c new file mode 100644 index 00000000000..e75b1b4df6a --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/glcdfont.c @@ -0,0 +1,250 @@ +/* Copyright 2023 splitkb.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 "progmem.h" + +// NOTE: This file is a copy of `crkbd/soundmonster/glcdfont.c` + +// Corne 8x6 font with QMK Firmware Logo +// Online editor: https://helixfonteditor.netlify.com/ +// See also: https://github.com/soundmonster/glcdfont_converter + +const unsigned char font[] PROGMEM = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, +0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, +0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, +0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, +0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, +0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, +0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, +0x00, 0x18, 0x24, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, +0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, +0x26, 0x29, 0x79, 0x29, 0x26, 0x00, +0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, +0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, +0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, +0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, +0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, +0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, +0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, +0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, +0x60, 0x60, 0x60, 0x60, 0x60, 0x00, +0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, +0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, +0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, +0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, +0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, +0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, +0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, +0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, +0x00, 0x07, 0x00, 0x07, 0x00, 0x00, +0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, +0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, +0x23, 0x13, 0x08, 0x64, 0x62, 0x00, +0x36, 0x49, 0x56, 0x20, 0x50, 0x00, +0x00, 0x08, 0x07, 0x03, 0x00, 0x00, +0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, +0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, +0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, +0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, +0x00, 0x80, 0x70, 0x30, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, 0x00, +0x00, 0x00, 0x60, 0x60, 0x00, 0x00, +0x20, 0x10, 0x08, 0x04, 0x02, 0x00, +0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, +0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, +0x72, 0x49, 0x49, 0x49, 0x46, 0x00, +0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, +0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, +0x27, 0x45, 0x45, 0x45, 0x39, 0x00, +0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, +0x41, 0x21, 0x11, 0x09, 0x07, 0x00, +0x36, 0x49, 0x49, 0x49, 0x36, 0x00, +0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, +0x00, 0x00, 0x14, 0x00, 0x00, 0x00, +0x00, 0x40, 0x34, 0x00, 0x00, 0x00, +0x00, 0x08, 0x14, 0x22, 0x41, 0x00, +0x14, 0x14, 0x14, 0x14, 0x14, 0x00, +0x00, 0x41, 0x22, 0x14, 0x08, 0x00, +0x02, 0x01, 0x59, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, +0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, +0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, +0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, +0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, +0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, +0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, +0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, +0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, +0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, +0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, +0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, +0x26, 0x49, 0x49, 0x49, 0x32, 0x00, +0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, +0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, +0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, +0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, +0x63, 0x14, 0x08, 0x14, 0x63, 0x00, +0x03, 0x04, 0x78, 0x04, 0x03, 0x00, +0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, +0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, +0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, +0x04, 0x02, 0x01, 0x02, 0x04, 0x00, +0x40, 0x40, 0x40, 0x40, 0x40, 0x00, +0x00, 0x03, 0x07, 0x08, 0x00, 0x00, +0x20, 0x54, 0x54, 0x78, 0x40, 0x00, +0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, +0x38, 0x44, 0x44, 0x44, 0x28, 0x00, +0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, +0x38, 0x54, 0x54, 0x54, 0x18, 0x00, +0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, +0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, +0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, +0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, +0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, +0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, +0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, +0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, +0x38, 0x44, 0x44, 0x44, 0x38, 0x00, +0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, +0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, +0x48, 0x54, 0x54, 0x54, 0x24, 0x00, +0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, +0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, +0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, +0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, +0x44, 0x28, 0x10, 0x28, 0x44, 0x00, +0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, +0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, +0x00, 0x08, 0x36, 0x41, 0x00, 0x00, +0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +0x00, 0x41, 0x36, 0x08, 0x00, 0x00, +0x02, 0x01, 0x02, 0x04, 0x02, 0x00, +0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, +0xF8, 0x18, 0x00, 0xC0, 0xF0, 0xFC, +0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, +0x00, 0xF8, 0x04, 0x22, 0x52, 0xE2, +0x42, 0x42, 0x42, 0xE2, 0x52, 0x22, +0x22, 0x22, 0x42, 0x82, 0x02, 0x02, +0x22, 0x22, 0x02, 0x04, 0xF8, 0x00, +0x00, 0xF8, 0x04, 0x02, 0x02, 0x82, +0x42, 0x22, 0x42, 0x82, 0x02, 0x02, +0x02, 0x82, 0x42, 0x22, 0x12, 0x22, +0x42, 0x82, 0x02, 0x04, 0xF8, 0x00, +0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E, +0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE, +0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, +0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00, +0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E, +0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x80, 0x80, 0x40, 0x40, 0x20, 0x20, +0x10, 0x10, 0x08, 0x08, 0x10, 0x10, +0x20, 0x20, 0x40, 0x40, 0x80, 0x80, +0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, +0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0, +0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, +0x80, 0x80, 0x40, 0x40, 0x20, 0x20, +0x10, 0x10, 0x08, 0x08, 0x10, 0x10, +0x20, 0x20, 0x40, 0x40, 0x80, 0x80, +0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0, +0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0, +0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80, +0x00, 0xF8, 0xFC, 0xFE, 0xFF, 0xE0, +0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, +0x07, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47, +0x42, 0x42, 0x42, 0x47, 0x4A, 0x44, +0x40, 0x40, 0x40, 0x40, 0x41, 0x42, +0x44, 0x44, 0x40, 0x20, 0x1F, 0x00, +0x00, 0x1F, 0x20, 0x40, 0x41, 0x40, +0x40, 0x40, 0x40, 0x40, 0x41, 0x40, +0x41, 0x41, 0x4F, 0x48, 0x48, 0x48, +0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00, +0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78, +0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B, +0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D, +0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00, +0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F, +0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E, +0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C, +0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88, +0x88, 0x88, 0x55, 0x55, 0x23, 0x23, +0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47, +0x23, 0x23, 0x55, 0x55, 0x88, 0x88, +0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2, +0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4, +0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88, +0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6, +0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6, +0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88, +0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3F, +0x3F, 0x3F, 0x1F, 0x1F, 0x3F, 0x3F, +0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, +0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7C, +0x78, 0x78, 0x38, 0x1C, 0x0F, 0x00, +0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04, +0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20, +0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04, +0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20, +0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC, +0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F, +0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC, +0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F, +0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE, +0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00, +0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77, +0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x02, 0x02, +0x04, 0x04, 0x08, 0x08, 0x04, 0x04, +0x02, 0x02, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x02, 0x02, +0x04, 0x04, 0x08, 0x08, 0x04, 0x04, +0x02, 0x02, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x03, 0x03, +0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07, +0x03, 0x03, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x03, 0x02, +0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06, +0x03, 0x02, 0x01, 0x01, 0x00, 0x00 +}; diff --git a/keyboards/splitkb/aurora/sofle_v2/info.json b/keyboards/splitkb/aurora/sofle_v2/info.json new file mode 100644 index 00000000000..4782d0da8f6 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/info.json @@ -0,0 +1,16 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb", + "build": { + "lto": true + }, + "development_board": "elite_c", + "split": { + "enabled": true + }, + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + } +} diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h new file mode 100644 index 00000000000..a15def3fb91 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h @@ -0,0 +1,19 @@ +/* Copyright 2023 splitkb.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 + +#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c new file mode 100644 index 00000000000..b9383db3251 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _DEFAULT = 0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DEFAULT] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, S(KC_F), S(KC_E), S(KC_D), S(KC_C), S(KC_B), S(KC_A), + KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, S(KC_L), S(KC_K), S(KC_J), S(KC_I), S(KC_H), S(KC_G), + KC_M, KC_N, KC_O, KC_P, KC_Q, KC_R, S(KC_R), S(KC_Q), S(KC_P), S(KC_O), S(KC_N), S(KC_M), + KC_S, KC_T, KC_U, KC_V, KC_W, KC_X, KC_Y, S(KC_Y), S(KC_X), S(KC_W), S(KC_V), S(KC_U), S(KC_T), S(KC_S), + KC_Z, KC_1, KC_2, KC_3, KC_4, S(KC_4), S(KC_3), S(KC_2), S(KC_1), S(KC_Z) + + ) +}; + +#ifdef RGBLIGHT_ENABLE +void keyboard_post_init_user(void) { + rgblight_enable_noeeprom(); // enables RGB, without saving settings + rgblight_sethsv_noeeprom(HSV_RED); // sets the color to red without saving + rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); // sets mode to Fast breathing without saving +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + // 0 is left-half encoder + // 1 is right-half encoder + if (index == 0) { + tap_code(KC_0); + } else if (index == 1) { + tap_code(KC_1); + } + + if (clockwise) { + tap_code16(KC_PLUS); + } else { + tap_code(KC_MINUS); + } + + return false; +} +#endif + +#ifdef OLED_ENABLE +bool oled_task_user(void) { + // A 128x32 OLED rotated 90 degrees is 5 characters wide and 16 characters tall + // This example string should fill that neatly + oled_write_P(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?"), false); + return false; +} +#endif \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md new file mode 100644 index 00000000000..c429b0246db --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md @@ -0,0 +1,24 @@ +# Aurora Sofle's Debug Keymap + +To make debugging your build as easy as possible, we have provided a special debugging keymap. It is not intended to actually type on, it is just here to make sure that your hardware is working correctly. + +## Keys + +![Keys](https://i.imgur.com/1qRAV6sh.png) + +The left side uses lowercase letters, the right side uses uppercase ones. + +## Encoders + +Encoders output a number of 0 or 1, depending on the installed position. +These correspond to the index used for custom encoder code: the left half uses index 0, the right half uses index 1. + +The number is followed by either a `+` or a `-`, depending on the direction turned. + +## LEDs + +Both underglow and per-key RGB should be fading between red and off. + +## OLEDs + +Both the primary and secondary side should be filled with characters. \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk new file mode 100644 index 00000000000..9c9df9b126e --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk @@ -0,0 +1,8 @@ +# NOTE: These are already enabled by default at the revision level +#ENCODER_ENABLE = yes +#OLED_ENABLE = yes + +# RGB Matrix is enabled at the revision level, +# while we use the regular RGB underglow for testing +RGB_MATRIX_ENABLE = no +RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h new file mode 100644 index 00000000000..353c0ee3495 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2023 splitkb.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 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json new file mode 100644 index 00000000000..226952964b9 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json @@ -0,0 +1,52 @@ +{ + "keyboard": "splitkb/aurora/sofle_v2/rev1", + "keymap": "default", + "version": 1, + "layout": "LAYOUT", + "layers": [ + [ + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_GRV" , + "KC_ESC" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC" , + "KC_TAB" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN" , "KC_QUOT" , + "KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_MUTE" , "XXXXXXX" , "KC_N" , "KC_M" , "KC_COMM" , "KC_DOT" , "KC_SLSH" , "KC_RSFT" , + "KC_LGUI" , "KC_LALT" , "KC_LCTL" , "MO(1)" , "KC_ENT" , "KC_SPC" , "MO(2)" , "KC_RCTL" , "KC_RALT" , "KC_RGUI" + ], + [ + "_______" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_F12" , + "_______" , "KC_EXLM" , "KC_AT" , "KC_HASH" , "KC_DLR" , "KC_PERC" , "KC_CIRC" , "KC_AMPR" , "KC_ASTR" , "KC_LPRN" , "KC_RPRN" , "KC_PIPE" , + "_______" , "KC_EQL" , "KC_MINS" , "KC_PLUS" , "KC_LCBR" , "KC_RCBR" , "_______" , "_______" , "KC_LBRC" , "KC_RBRC" , "KC_SCLN" , "KC_COLN" , "KC_BSLS" , "_______" , + "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "MO(3)" , "_______" , "_______" , "_______" + ], + [ + "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , + "_______" , "KC_INS" , "KC_PSCR" , "KC_APP" , "XXXXXXX" , "XXXXXXX" , "KC_PGUP" , "C(KC_LEFT)", "KC_UP" , "C(KC_RGHT)", "C(KC_BSPC)", "KC_BSPC" , + "_______" , "KC_LALT" , "KC_LCTL" , "KC_LSFT" , "XXXXXXX" , "KC_CAPS" , "KC_PGDN" , "KC_LEFT" , "KC_DOWN" , "KC_RGHT" , "KC_DEL" , "KC_BSPC" , + "_______" , "C(KC_Z)" , "C(KC_X)" , "C(KC_C)" , "C(KC_V)" , "XXXXXXX" , "_______" , "_______" , "XXXXXXX" , "KC_HOME" , "XXXXXXX" , "KC_END" , "XXXXXXX" , "_______" , + "_______" , "_______" , "_______" , "MO(3)" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" + ], + [ + "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "XXXXXXX" , "RGB_TOG" , "RGB_HUI" , "RGB_SAI" , "RGB_VAI" , "XXXXXXX" , "XXXXXXX" , "KC_VOLD" , "KC_MUTE" , "KC_VOLU" , "XXXXXXX" , "XXXXXXX" , + "XXXXXXX" , "RGB_MOD" , "RGB_HUD" , "RGB_SAD" , "RGB_VAD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MPRV" , "KC_MPLY" , "KC_MNXT" , "XXXXXXX" , "XXXXXXX" , + "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" + ] + ], + "config": { + "features": { + "oled": true, + "rgb_matrix": true, + "rgblight": false + }, + "encoder": { + "enabled": true + }, + "rgblight": { + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8, + "sleep": true + } + } +} \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md new file mode 100644 index 00000000000..6ff79a4f993 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md @@ -0,0 +1,88 @@ +# Aurora Sofle v2's Default Keymap +_This keymap is a copy of the [Sofle default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/sofle/keymaps/default), with some modifications._ + +A simple default keymap for the Aurora Sofle v2 +=============================================== + +Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. We hope this keymap serves as a good starting point for your own - although it should be fairly usable out-of-the-box. + +What do all these layers do? +---------------------------- + +### Layer 0: Base layer + +![Layer 0](https://i.imgur.com/uk6ckvfh.png) + +This is where your basic letters live. + +The homing thumb fingers are used to access the different layers. + +* The homing left thumb finger gives access to the Symbols (or lower) layer +* The homing right thumb finger gives access to the Navigation (or raise) layer +* Pressing both homing thumb fingers gives access to the Adjust layer + +### Layer 1: Lower + +![Layer 1](https://i.imgur.com/6t0ErtEh.png) + +The Lower layer gives access to the F keys on the top row row, number keys on the second row, and shifted number keys on the home row. The bottom role contains the remaining symbol keys and some shifted symbol keys. + +### Layer 2: Raise + +![Layer 2](https://i.imgur.com/URCBKfqh.png) + +The Raise layer gives access the arrow keys on the right hand, in addition to some other navigation keys. The left hand provides easy acces to Undo/Cut/Copy/Paste. + +### Layer 3: Adjust + +![Layer 3](https://i.imgur.com/b4tacMeh.png) + +The Adjust layer exposes RGB adjustment keys on the left hand, and media controls on the right hand. + +Where is the keymap.c? +---------------------- + +The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. + +This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. + +How do I edit and update the keymap? +------------------------------------ + +The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. + +To edit it, you may: +* Edit it directly from a text editor. +* Edit it from the QMK Configurator. + +If you decide to use the latter workflow, here are the steps to follow: + +* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/aurora/sofle/rev1/LAYOUT), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). +* Browse to the location of your keymap (for example, `/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json`) +* Perform any modification to the keymap in the web UI +* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) +* Replace your original keymap with the one you just downloaded + +_**Note:** At the time of writing (the 24th of October 2022), not every feature used in the default keymap is supported by the QMK Configurator. You cannot yet upload the default `keymap.json` due to a file format mismatch - use the "Load Default" button to load the default keymap instead. Additionally, custom configuration options are still being worked on: if your keymap depends on them, please compile your firmware offline for now._ + +I want to do more than the JSON format supports! +------------------------------------------------- + +While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour. + +To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. + +First, from the root of your qmk repo, move to your keymap folder + +```bash +cd ./keyboards/splitkb/aurora/sofle_v2/keymaps/my_personal_keymap +``` + +Next, convert your `keymap.json` to a `keymap.c` + +```bash +qmk json2c -o keymap.c keymap.json +``` + +You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! +**If a JSON file is present, the C file is ignored.** \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/readme.md b/keyboards/splitkb/aurora/sofle_v2/readme.md new file mode 100644 index 00000000000..13f1d84bbbb --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/readme.md @@ -0,0 +1,48 @@ +![Aurora Sofle v2](https://i.imgur.com/8MlWV7h.jpg) + +# Aurora Sofle v2 +The Aurora Sofle v2 is a redesign by splitkb.com of the popular Sofle v2 by Josef Adamcik. + +Keyboard Maintainer: [splitkb.com](https://github.com/splitkb) +Hardware Supported: Pro Micro 5V/16MHz and compatible. +Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/aurora/sofle_v2/rev1:default + +Example of flashing this keyboard: + + make splitkb/aurora/sofle_v2/rev1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader +You can enter the bootloader in 3 ways: + +* **Physical reset button**: Briefly press the button on the side of the PCB, next to the TRRS socket. +* **Bootmagic reset**: Hold down the bootmagic key and plug in the keyboard. For the left half, this is the top-left button. For the right half, this is the top-right button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. + +# Assembly +A build guide for the entire Aurora series is available at [https://splitkb.com/aurora-build](https://splitkb.com/aurora-build). + +# Features +The Aurora Sofle supports the following features: + +- Support for MX or Kailh Choc (v1 sold at splitkb.com, not v2) switches; +- Top mounted controllers for a lower profile; +- Up to two 128×32 pixel OLED displays; +- Up to one EC11 rotary encoder per half in one of three possible positions; +- Per-key RGB backlight by individual RGB LEDs; +- Underglow by individual RGB LEDs; +- Support for a power switch for wireless controllers; +- Support for the splitkb.com tenting puck. + +# What is the Aurora Series? + +The Aurora series were designed as a homage to open source keyboard kits that have carved their space into the community. Kits that provided something new and unique, kits that resonated with the community and that have both received and have given a lot of love in return. + +With the Aurora series, we aim to make these kits available to the community in a way that both honors the original, while also offering the best possible feature set and a consistent, well-documented build experience. + +For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/rev1/config.h b/keyboards/splitkb/aurora/sofle_v2/rev1/config.h new file mode 100644 index 00000000000..1896af3cb5c --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/rev1/config.h @@ -0,0 +1,24 @@ +/* Copyright 2023 splitkb.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 + +#define SPLIT_HAND_PIN F4 + +#define OLED_DISPLAY_128X32 +#define SPLIT_OLED_ENABLE + +#define RGB_MATRIX_LED_COUNT 70 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/rev1/info.json b/keyboards/splitkb/aurora/sofle_v2/rev1/info.json new file mode 100644 index 00000000000..b9b8b9da6b2 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/rev1/info.json @@ -0,0 +1,196 @@ +{ + "keyboard_name": "Aurora Sofle v2 rev1", + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "B2", "pin_b": "B6"} + ] + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "oled": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F5", "B1", "F7", "F6", "B3"] + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"x": 67, "y": 18, "flags": 2}, + {"x": 24, "y": 16, "flags": 2}, + {"x": 5, "y": 22, "flags": 2}, + {"x": 5, "y": 52, "flags": 2}, + {"x": 41, "y": 60, "flags": 2}, + {"x": 63, "y": 59, "flags": 2}, + {"matrix": [0, 0], "x": 72, "y": 4, "flags": 4}, + {"matrix": [0, 1], "x": 58, "y": 2, "flags": 4}, + {"matrix": [0, 2], "x": 43, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 29, "y": 2, "flags": 4}, + {"matrix": [0, 4], "x": 14, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 0, "y": 7, "flags": 4}, + {"matrix": [1, 0], "x": 72, "y": 18, "flags": 4}, + {"matrix": [1, 1], "x": 58, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 43, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 29, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 14, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 0, "y": 22, "flags": 4}, + {"matrix": [2, 0], "x": 72, "y": 33, "flags": 4}, + {"matrix": [2, 1], "x": 58, "y": 31, "flags": 4}, + {"matrix": [2, 2], "x": 43, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 29, "y": 31, "flags": 4}, + {"matrix": [2, 4], "x": 14, "y": 35, "flags": 4}, + {"matrix": [2, 5], "x": 0, "y": 37, "flags": 4}, + {"matrix": [3, 0], "x": 72, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 58, "y": 46, "flags": 4}, + {"matrix": [3, 2], "x": 43, "y": 44, "flags": 4}, + {"matrix": [3, 3], "x": 29, "y": 46, "flags": 4}, + {"matrix": [3, 4], "x": 14, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 0, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 87, "y": 62, "flags": 4}, + {"matrix": [4, 2], "x": 65, "y": 62, "flags": 4}, + {"matrix": [4, 3], "x": 51, "y": 61, "flags": 4}, + {"matrix": [4, 4], "x": 36, "y": 60, "flags": 4}, + {"matrix": [4, 5], "x": 22, "y": 64, "flags": 4}, + {"x": 157, "y": 22, "flags": 2}, + {"x": 190, "y": 15, "flags": 2}, + {"x": 219, "y": 18, "flags": 2}, + {"x": 219, "y": 55, "flags": 2}, + {"x": 183, "y": 60, "flags": 2}, + {"x": 149, "y": 62, "flags": 2}, + {"matrix": [5, 0], "x": 152, "y": 7, "flags": 4}, + {"matrix": [5, 1], "x": 166, "y": 5, "flags": 4}, + {"matrix": [5, 2], "x": 181, "y": 2, "flags": 4}, + {"matrix": [5, 3], "x": 195, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 210, "y": 2, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 4, "flags": 4}, + {"matrix": [6, 0], "x": 152, "y": 22, "flags": 4}, + {"matrix": [6, 1], "x": 166, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 181, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 195, "y": 15, "flags": 4}, + {"matrix": [6, 4], "x": 210, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 224, "y": 18, "flags": 4}, + {"matrix": [7, 0], "x": 152, "y": 37, "flags": 4}, + {"matrix": [7, 1], "x": 166, "y": 35, "flags": 4}, + {"matrix": [7, 2], "x": 181, "y": 31, "flags": 4}, + {"matrix": [7, 3], "x": 195, "y": 29, "flags": 4}, + {"matrix": [7, 4], "x": 210, "y": 31, "flags": 4}, + {"matrix": [7, 5], "x": 224, "y": 33, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 49, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 46, "flags": 4}, + {"matrix": [8, 2], "x": 181, "y": 44, "flags": 4}, + {"matrix": [8, 3], "x": 195, "y": 46, "flags": 4}, + {"matrix": [8, 4], "x": 210, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 224, "y": 55, "flags": 4}, + {"matrix": [9, 1], "x": 137, "y": 62, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 62, "flags": 4}, + {"matrix": [9, 3], "x": 173, "y": 61, "flags": 4}, + {"matrix": [9, 4], "x": 188, "y": 60, "flags": 4}, + {"matrix": [9, 5], "x": 202, "y": 64, "flags": 4} + ], + "max_brightness": 128, + "split_count": [35, 35] + }, + "rgblight": { + "led_count": 70, + "max_brightness": 128, + "split": true, + "split_count": [35, 35] + }, + "split": { + "bootmagic": { + "matrix": [5, 0] + }, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "B2", "pin_b": "B6"} + ] + } + }, + "main": "matrix_grid", + "matrix_pins": { + "right": { + "cols": ["D7", "E6", "B4", "B5", "D4", "C6"], + "rows": ["B3", "B1", "F7", "F6", "F5"] + } + }, + "soft_serial_pin": "D2" + }, + "usb": { + "pid": "0xEC32" + }, + "ws2812": { + "pin": "D3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "L06", "matrix": [0, 5], "x": 0, "y": 0.5}, + {"label": "L05", "matrix": [0, 4], "x": 1, "y": 0.375}, + {"label": "L04", "matrix": [0, 3], "x": 2, "y": 0.125}, + {"label": "L03", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "L02", "matrix": [0, 1], "x": 4, "y": 0.125}, + {"label": "L01", "matrix": [0, 0], "x": 5, "y": 0.25}, + {"label": "R01", "matrix": [5, 0], "x": 10.5, "y": 0.25}, + {"label": "R02", "matrix": [5, 1], "x": 11.5, "y": 0.125}, + {"label": "R03", "matrix": [5, 2], "x": 12.5, "y": 0}, + {"label": "R04", "matrix": [5, 3], "x": 13.5, "y": 0.125}, + {"label": "R05", "matrix": [5, 4], "x": 14.5, "y": 0.375}, + {"label": "R06", "matrix": [5, 5], "x": 15.5, "y": 0.5}, + {"label": "L12", "matrix": [1, 5], "x": 0, "y": 1.5}, + {"label": "L11", "matrix": [1, 4], "x": 1, "y": 1.375}, + {"label": "L10", "matrix": [1, 3], "x": 2, "y": 1.125}, + {"label": "L09", "matrix": [1, 2], "x": 3, "y": 1}, + {"label": "L08", "matrix": [1, 1], "x": 4, "y": 1.125}, + {"label": "L07", "matrix": [1, 0], "x": 5, "y": 1.25}, + {"label": "R07", "matrix": [6, 0], "x": 10.5, "y": 1.25}, + {"label": "R08", "matrix": [6, 1], "x": 11.5, "y": 1.125}, + {"label": "R09", "matrix": [6, 2], "x": 12.5, "y": 1}, + {"label": "R10", "matrix": [6, 3], "x": 13.5, "y": 1.125}, + {"label": "R11", "matrix": [6, 4], "x": 14.5, "y": 1.375}, + {"label": "R12", "matrix": [6, 5], "x": 15.5, "y": 1.5}, + {"label": "L18", "matrix": [2, 5], "x": 0, "y": 2.5}, + {"label": "L17", "matrix": [2, 4], "x": 1, "y": 2.375}, + {"label": "L16", "matrix": [2, 3], "x": 2, "y": 2.125}, + {"label": "L15", "matrix": [2, 2], "x": 3, "y": 2}, + {"label": "L14", "matrix": [2, 1], "x": 4, "y": 2.125}, + {"label": "L13", "matrix": [2, 0], "x": 5, "y": 2.25}, + {"label": "R13", "matrix": [7, 0], "x": 10.5, "y": 2.25}, + {"label": "R14", "matrix": [7, 1], "x": 11.5, "y": 2.125}, + {"label": "R15", "matrix": [7, 2], "x": 12.5, "y": 2}, + {"label": "R16", "matrix": [7, 3], "x": 13.5, "y": 2.125}, + {"label": "R17", "matrix": [7, 4], "x": 14.5, "y": 2.375}, + {"label": "R18", "matrix": [7, 5], "x": 15.5, "y": 2.5}, + {"label": "L24", "matrix": [3, 5], "x": 0, "y": 3.5}, + {"label": "L23", "matrix": [3, 4], "x": 1, "y": 3.375}, + {"label": "L22", "matrix": [3, 3], "x": 2, "y": 3.125}, + {"label": "L21", "matrix": [3, 2], "x": 3, "y": 3}, + {"label": "L20", "matrix": [3, 1], "x": 4, "y": 3.125}, + {"label": "L19", "matrix": [3, 0], "x": 5, "y": 3.25}, + {"label": "L25", "matrix": [4, 0], "x": 6, "y": 2.75}, + {"label": "R25", "matrix": [9, 0], "x": 9.5, "y": 2.75}, + {"label": "R19", "matrix": [8, 0], "x": 10.5, "y": 3.25}, + {"label": "R20", "matrix": [8, 1], "x": 11.5, "y": 3.125}, + {"label": "R21", "matrix": [8, 2], "x": 12.5, "y": 3}, + {"label": "R22", "matrix": [8, 3], "x": 13.5, "y": 3.125}, + {"label": "R23", "matrix": [8, 4], "x": 14.5, "y": 3.375}, + {"label": "R24", "matrix": [8, 5], "x": 15.5, "y": 3.5}, + {"label": "L30", "matrix": [4, 5], "x": 1.5, "y": 4.375}, + {"label": "L29", "matrix": [4, 4], "x": 2.5, "y": 4.125}, + {"label": "L28", "matrix": [4, 3], "x": 3.5, "y": 4.15}, + {"label": "L27", "matrix": [4, 2], "x": 4.5, "y": 4.25}, + {"label": "L26", "matrix": [4, 1], "x": 6, "y": 4.25, "h": 1.5}, + {"label": "R26", "matrix": [9, 1], "x": 9.5, "y": 4.25, "h": 1.5}, + {"label": "R27", "matrix": [9, 2], "x": 11, "y": 4.25}, + {"label": "R28", "matrix": [9, 3], "x": 12, "y": 4.15}, + {"label": "R29", "matrix": [9, 4], "x": 13, "y": 4.125}, + {"label": "R30", "matrix": [9, 5], "x": 14, "y": 4.375} + ] + } + } +} diff --git a/keyboards/splitkb/aurora/sofle_v2/rev1/rev1.c b/keyboards/splitkb/aurora/sofle_v2/rev1/rev1.c new file mode 100644 index 00000000000..b0de2b93f23 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/rev1/rev1.c @@ -0,0 +1,37 @@ +/* Copyright 2023 splitkb.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 + +#ifdef SWAP_HANDS_ENABLE +// clang-format off + __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}}, + {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}}, + {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}}, + {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}}, + {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}}, + {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}}, + {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}}, + {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}}, + {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}}, + {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}} + }; +// clang-format on +# ifdef ENCODER_MAP_ENABLE + const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1,0}; +# endif +#endif diff --git a/keyboards/splitkb/aurora/sofle_v2/rev1/rules.mk b/keyboards/splitkb/aurora/sofle_v2/rev1/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/splitkb/aurora/sofle_v2/rules.mk b/keyboards/splitkb/aurora/sofle_v2/rules.mk new file mode 100644 index 00000000000..4a50c4dbb13 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = splitkb/aurora/sofle_v2/rev1 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sofle_v2/sofle_v2.c b/keyboards/splitkb/aurora/sofle_v2/sofle_v2.c new file mode 100644 index 00000000000..f5cb0573ce4 --- /dev/null +++ b/keyboards/splitkb/aurora/sofle_v2/sofle_v2.c @@ -0,0 +1,308 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// The first four layers gets a name for readability, which is then used in the OLED below. +enum layers { + _DEFAULT, + _LOWER, + _RAISE, + _ADJUST +}; + +#ifdef OLED_ENABLE +// NOTE: Most of the OLED code was originally written by Soundmonster for the Corne, +// and has been copied directly from `crkbd/soundmonster/keymap.c` + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +void render_space(void) { + oled_write_P(PSTR(" "), false); +} + +void render_mod_status_gui_alt(uint8_t modifiers) { + static const char PROGMEM gui_off_1[] = {0x85, 0x86, 0}; + static const char PROGMEM gui_off_2[] = {0xa5, 0xa6, 0}; + static const char PROGMEM gui_on_1[] = {0x8d, 0x8e, 0}; + static const char PROGMEM gui_on_2[] = {0xad, 0xae, 0}; + + static const char PROGMEM alt_off_1[] = {0x87, 0x88, 0}; + static const char PROGMEM alt_off_2[] = {0xa7, 0xa8, 0}; + static const char PROGMEM alt_on_1[] = {0x8f, 0x90, 0}; + static const char PROGMEM alt_on_2[] = {0xaf, 0xb0, 0}; + + // fillers between the modifier icons bleed into the icon frames + static const char PROGMEM off_off_1[] = {0xc5, 0}; + static const char PROGMEM off_off_2[] = {0xc6, 0}; + static const char PROGMEM on_off_1[] = {0xc7, 0}; + static const char PROGMEM on_off_2[] = {0xc8, 0}; + static const char PROGMEM off_on_1[] = {0xc9, 0}; + static const char PROGMEM off_on_2[] = {0xca, 0}; + static const char PROGMEM on_on_1[] = {0xcb, 0}; + static const char PROGMEM on_on_2[] = {0xcc, 0}; + + if(modifiers & MOD_MASK_GUI) { + oled_write_P(gui_on_1, false); + } else { + oled_write_P(gui_off_1, false); + } + + if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + oled_write_P(on_on_1, false); + } else if(modifiers & MOD_MASK_GUI) { + oled_write_P(on_off_1, false); + } else if(modifiers & MOD_MASK_ALT) { + oled_write_P(off_on_1, false); + } else { + oled_write_P(off_off_1, false); + } + + if(modifiers & MOD_MASK_ALT) { + oled_write_P(alt_on_1, false); + } else { + oled_write_P(alt_off_1, false); + } + + if(modifiers & MOD_MASK_GUI) { + oled_write_P(gui_on_2, false); + } else { + oled_write_P(gui_off_2, false); + } + + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { + oled_write_P(on_on_2, false); + } else if(modifiers & MOD_MASK_GUI) { + oled_write_P(on_off_2, false); + } else if(modifiers & MOD_MASK_ALT) { + oled_write_P(off_on_2, false); + } else { + oled_write_P(off_off_2, false); + } + + if(modifiers & MOD_MASK_ALT) { + oled_write_P(alt_on_2, false); + } else { + oled_write_P(alt_off_2, false); + } +} + +void render_mod_status_ctrl_shift(uint8_t modifiers) { + static const char PROGMEM ctrl_off_1[] = {0x89, 0x8a, 0}; + static const char PROGMEM ctrl_off_2[] = {0xa9, 0xaa, 0}; + static const char PROGMEM ctrl_on_1[] = {0x91, 0x92, 0}; + static const char PROGMEM ctrl_on_2[] = {0xb1, 0xb2, 0}; + + static const char PROGMEM shift_off_1[] = {0x8b, 0x8c, 0}; + static const char PROGMEM shift_off_2[] = {0xab, 0xac, 0}; + static const char PROGMEM shift_on_1[] = {0xcd, 0xce, 0}; + static const char PROGMEM shift_on_2[] = {0xcf, 0xd0, 0}; + + // fillers between the modifier icons bleed into the icon frames + static const char PROGMEM off_off_1[] = {0xc5, 0}; + static const char PROGMEM off_off_2[] = {0xc6, 0}; + static const char PROGMEM on_off_1[] = {0xc7, 0}; + static const char PROGMEM on_off_2[] = {0xc8, 0}; + static const char PROGMEM off_on_1[] = {0xc9, 0}; + static const char PROGMEM off_on_2[] = {0xca, 0}; + static const char PROGMEM on_on_1[] = {0xcb, 0}; + static const char PROGMEM on_on_2[] = {0xcc, 0}; + + if(modifiers & MOD_MASK_CTRL) { + oled_write_P(ctrl_on_1, false); + } else { + oled_write_P(ctrl_off_1, false); + } + + if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + oled_write_P(on_on_1, false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_write_P(on_off_1, false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(off_on_1, false); + } else { + oled_write_P(off_off_1, false); + } + + if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(shift_on_1, false); + } else { + oled_write_P(shift_off_1, false); + } + + if(modifiers & MOD_MASK_CTRL) { + oled_write_P(ctrl_on_2, false); + } else { + oled_write_P(ctrl_off_2, false); + } + + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { + oled_write_P(on_on_2, false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_write_P(on_off_2, false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(off_on_2, false); + } else { + oled_write_P(off_off_2, false); + } + + if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(shift_on_2, false); + } else { + oled_write_P(shift_off_2, false); + } +} + +void render_logo(void) { + static const char PROGMEM aurora_logo[] = { + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, + 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, + 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, + 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, + 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, + 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, + 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, + 0xb1, 0xf1, 0xf1, 0xf2, 0xe6, 0xa4, 0xa4, 0x04, 0x04, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 + }; + oled_write_raw_P(aurora_logo, sizeof(aurora_logo)); + oled_set_cursor(0, 4); +} + +void render_logo_text(void) { + oled_write_P(PSTR("sofle"), false); +} + +void render_kb_LED_state(void) { + // Host Keyboard LED Status + led_t led_usb_state = host_keyboard_led_state(); + oled_write_P(led_usb_state.num_lock ? PSTR("N ") : PSTR(" "), false); + oled_write_P(led_usb_state.caps_lock ? PSTR("C ") : PSTR(" "), false); + oled_write_P(led_usb_state.scroll_lock ? PSTR("S ") : PSTR(" "), false); +} + +void render_layer_state(void) { + static const char PROGMEM default_layer[] = { + 0x20, 0x94, 0x95, 0x96, 0x20, + 0x20, 0xb4, 0xb5, 0xb6, 0x20, + 0x20, 0xd4, 0xd5, 0xd6, 0x20, 0}; + static const char PROGMEM raise_layer[] = { + 0x20, 0x97, 0x98, 0x99, 0x20, + 0x20, 0xb7, 0xb8, 0xb9, 0x20, + 0x20, 0xd7, 0xd8, 0xd9, 0x20, 0}; + static const char PROGMEM lower_layer[] = { + 0x20, 0x9a, 0x9b, 0x9c, 0x20, + 0x20, 0xba, 0xbb, 0xbc, 0x20, + 0x20, 0xda, 0xdb, 0xdc, 0x20, 0}; + static const char PROGMEM adjust_layer[] = { + 0x20, 0x9d, 0x9e, 0x9f, 0x20, + 0x20, 0xbd, 0xbe, 0xbf, 0x20, + 0x20, 0xdd, 0xde, 0xdf, 0x20, 0}; + if(layer_state_is(_LOWER)) { + oled_write_P(lower_layer, false); + } else if(layer_state_is(_RAISE)) { + oled_write_P(raise_layer, false); + } else if(layer_state_is(_DEFAULT)) { + oled_write_P(default_layer, false); + } else { + oled_write_P(adjust_layer, false); + } +} + + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + // Renders the current keyboard state (layers and mods) + render_logo(); + render_logo_text(); + render_space(); + render_layer_state(); + render_space(); + render_mod_status_gui_alt(get_mods()|get_oneshot_mods()); + render_mod_status_ctrl_shift(get_mods()|get_oneshot_mods()); + render_kb_LED_state(); + } else { + // clang-format off + static const char PROGMEM aurora_art[] = { + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, + 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, + 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, + 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, + 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, + 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, + 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, + 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, + 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, + 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, + 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, + 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, + 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, + 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, + 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, + 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, + 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, + 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, + 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, + 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, + 0x18, 0x09, 0xff, 0x0c, 0xea, 0x1f, 0x28, 0x60, 0x30, 0xf8, 0x20, 0xc0, 0x42, 0x33, 0x21, 0x00 + }; + // clang-format on + oled_write_raw_P(aurora_art, sizeof(aurora_art)); + } + return false; +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + // 0 is left-half encoder, + // 1 is right-half encoder + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} +#endif diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format new file mode 100644 index 00000000000..f87f20d8b68 --- /dev/null +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format @@ -0,0 +1 @@ +ColumnLimit: 110 diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h index c147d5e67fa..f14e2b17e18 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h @@ -18,23 +18,21 @@ /* Flash */ #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_TIMEOUT 200U // In ms in which the double tap can occur /* OLED */ #undef OLED_FONT_H #define OLED_FONT_H "./oled/glcdfont.c" -#define OLED_TIMEOUT 25000 -#define OLED_BRIGHTNESS 60 // Protect my eyesss +#define OLED_TIMEOUT 25000 +#define OLED_BRIGHTNESS 50 // Protect my eyesss #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_MODS_ENABLE #define SPLIT_OLED_ENABLE /* Auto shift ♥ */ #define AUTO_SHIFT_TIMEOUT 115 - -/* Redefine CTRL + space (See space cadet shift) */ -#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_SPC +#define TAPPING_TERM 155 /* Unicode */ // #define UNICODE_SELECTED_MODES UC_LNX @@ -61,7 +59,6 @@ #define MK_C_OFFSET_2 25 #define MK_C_INTERVAL_2 10 - #define MK_W_OFFSET_0 1 #define MK_W_INTERVAL_0 160 diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c index d6bd3818b42..d5bf9f02235 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c @@ -7,193 +7,498 @@ /* Only for basis letters Exceptions like Tab or Enter */ bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_TAB: + // case KC_ENT: - switch (keycode) { - - case KC_TAB: - case KC_ENT: - - // -- - case KC_A: - case KC_B: - case KC_C: - case KC_D: - case KC_E: - case KC_F: - case KC_G: - case KC_H: - case KC_I: - case KC_J: - case KC_K: - case KC_L: - case KC_M: - case KC_N: - case KC_O: - case KC_P: - case KC_Q: - case KC_R: - case KC_S: - case KC_T: - case KC_U: - case KC_V: - case KC_W: - case KC_X: - case KC_Y: - case KC_Z: - - return true; - } - - return get_custom_auto_shifted_key(keycode, record); -} + case US_EACU: + case US_CCED: + case US_AE: + case US_OE: + + // -- + case KC_A: + case KC_B: + case KC_C: + case KC_D: + case KC_E: + case KC_F: + case KC_G: + case KC_H: + case KC_I: + case KC_J: + case KC_K: + case KC_L: + case KC_M: + case KC_N: + case KC_O: + case KC_P: + case KC_Q: + case KC_R: + case KC_S: + case KC_T: + case KC_U: + case KC_V: + case KC_W: + case KC_X: + case KC_Y: + case KC_Z: + return true; + } + + return get_custom_auto_shifted_key(keycode, record); +} /* Custom auto shift I use this instead of tap dance because double tap is horrible Add here the letter or the custom enum, then add in press_user and press_release the actions */ bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { - switch(keycode) { + switch (keycode) { + case KC_BSPC: - case KC_BSPC: - case KC_LABK: // Easy indent with vim - case KC_RABK: + // Double them !!! + case KC_AMPERSAND: + case KC_AT: + case KC_BACKSLASH: + case KC_CIRCUMFLEX: + case KC_COLON: + case KC_DOLLAR: + case KC_EQUAL: + case KC_EXCLAIM: + case KC_GRAVE: + case KC_HASH: + case KC_MINUS: + case KC_PERC: + case KC_PIPE: + case KC_PLUS: + case KC_QUESTION: + case KC_QUOTE: + case KC_DOUBLE_QUOTE: + case KC_SEMICOLON: + case KC_SLASH: + case KC_ASTERISK: + case KC_TILDE: + case KC_UNDERSCORE: - /* French */ - case CS_E_ACUTE: + case KC_LEFT_ANGLE_BRACKET: // Easy indent with vim + case KC_RIGHT_ANGLE_BRACKET: - case CS_A_GRAVE: - case CS_E_GRAVE: - case CS_I_GRAVE: - case CS_O_GRAVE: - case CS_U_GRAVE: + case KC_LEFT_BRACKET: + case KC_RIGHT_BRACKET: + case KC_LEFT_CURLY_BRACE: + case KC_RIGHT_CURLY_BRACE: + case KC_LEFT_PAREN: + case KC_RIGHT_PAREN: - case CS_A_CIRCUMFLEX: - case CS_E_CIRCUMFLEX: - case CS_I_CIRCUMFLEX: - case CS_O_CIRCUMFLEX: - case CS_U_CIRCUMFLEX: + /* French */ + case CS_A_GRAVE: + case CS_E_GRAVE: + case CS_U_GRAVE: - case CS_A_DIAERESIS: - case CS_E_DIAERESIS: - case CS_I_DIAERESIS: - case CS_O_DIAERESIS: - case CS_U_DIAERESIS: - case CS_Y_DIAERESIS: + case CS_A_CIRCUMFLEX: + case CS_E_CIRCUMFLEX: + case CS_I_CIRCUMFLEX: + case CS_O_CIRCUMFLEX: + case CS_U_CIRCUMFLEX: - case CS_C_CEDILLA: - case CS_AE: - case CS_OE: + case CS_E_DIAERESIS: + case CS_I_DIAERESIS: + case CS_U_DIAERESIS: + case CS_Y_DIAERESIS: + return true; - return true; - - default: - return false; - } + default: + return false; + } } void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) { - switch(keycode) { - - case KC_BSPC: - register_code16((!shifted) ? KC_BSPC : KC_DEL); - break; - - case KC_LABK: - if (shifted) { send_unicode_string("<<"); } - else { send_unicode_string("<"); } break; - - case KC_RABK: - if (shifted) { send_unicode_string(">>"); } - else { send_unicode_string(">"); } break; - - /* French - Release is not necessary with 'send_unicode_string()' */ - case CS_E_ACUTE: - if (shifted) { send_unicode_string("É"); } - else { send_unicode_string("é"); } break; - - case CS_A_GRAVE: - if (shifted) { send_unicode_string("À"); } - else { send_unicode_string("à"); } break; - case CS_E_GRAVE: - if (shifted) { send_unicode_string("È"); } - else { send_unicode_string("è"); } break; - case CS_I_GRAVE: - if (shifted) { send_unicode_string("Ì"); } - else { send_unicode_string("ì"); } break; - case CS_O_GRAVE: - if (shifted) { send_unicode_string("Ò"); } - else { send_unicode_string("ò"); } break; - case CS_U_GRAVE: - if (shifted) { send_unicode_string("Ù"); } - else { send_unicode_string("ù"); } break; - - case CS_A_CIRCUMFLEX: - if (shifted) { send_unicode_string("Â"); } - else { send_unicode_string("â"); } break; - case CS_E_CIRCUMFLEX: - if (shifted) { send_unicode_string("Ê"); } - else { send_unicode_string("ê"); } break; - case CS_I_CIRCUMFLEX: - if (shifted) { send_unicode_string("Î"); } - else { send_unicode_string("î"); } break; - case CS_O_CIRCUMFLEX: - if (shifted) { send_unicode_string("Ô"); } - else { send_unicode_string("ô"); } break; - case CS_U_CIRCUMFLEX: - if (shifted) { send_unicode_string("Û"); } - else { send_unicode_string("û"); } break; - - case CS_A_DIAERESIS: - if (shifted) { send_unicode_string("Ä"); } - else { send_unicode_string("ä"); } break; - case CS_E_DIAERESIS: - if (shifted) { send_unicode_string("Ë"); } - else { send_unicode_string("ë"); } break; - case CS_I_DIAERESIS: - if (shifted) { send_unicode_string("Ï"); } - else { send_unicode_string("ï"); } break; - case CS_O_DIAERESIS: - if (shifted) { send_unicode_string("Ö"); } - else { send_unicode_string("ö"); } break; - case CS_U_DIAERESIS: - if (shifted) { send_unicode_string("Ü"); } - else { send_unicode_string("ü"); } break; - case CS_Y_DIAERESIS: - if (shifted) { send_unicode_string("Ÿ"); } - else { send_unicode_string("ÿ"); } break; - - case CS_C_CEDILLA: - if (shifted) { send_unicode_string("Ç"); } - else { send_unicode_string("ç"); } break; - case CS_AE: - if (shifted) { send_unicode_string("Æ"); } - else { send_unicode_string("æ"); } break; - case CS_OE: - if (shifted) { send_unicode_string("Œ"); } - else { send_unicode_string("œ"); } break; - - - default: - if (shifted) { - add_weak_mods(MOD_BIT(KC_LSFT)); - } - /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift */ - register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); + switch (keycode) { + case KC_BSPC: + if (shifted) { + tap_code16(KC_DEL); + } else { + tap_code16(KC_BSPC); } -} + break; + break; -void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) { - switch(keycode) { + case KC_AMPERSAND: + if (shifted) { + tap_code16(KC_AMPERSAND); + tap_code16(KC_AMPERSAND); + } else { + tap_code16(KC_AMPERSAND); + } + break; + case KC_AT: + if (shifted) { + tap_code16(KC_AT); + tap_code16(KC_AT); + } else { + tap_code16(KC_AT); + } + break; + case KC_BACKSLASH: + if (shifted) { + tap_code16(KC_BACKSLASH); + tap_code16(KC_BACKSLASH); + } else { + tap_code16(KC_BACKSLASH); + } + break; + case KC_CIRCUMFLEX: + if (shifted) { + tap_code16(KC_CIRCUMFLEX); + tap_code16(KC_CIRCUMFLEX); + } else { + tap_code16(KC_CIRCUMFLEX); + } + break; + case KC_COLON: + if (shifted) { + tap_code16(KC_COLON); + tap_code16(KC_COLON); + } else { + tap_code16(KC_COLON); + } + break; + case KC_DOLLAR: + if (shifted) { + tap_code16(KC_DOLLAR); + tap_code16(KC_DOLLAR); + } else { + tap_code16(KC_DOLLAR); + } + break; + case KC_EQUAL: + if (shifted) { + tap_code16(KC_EQUAL); + tap_code16(KC_EQUAL); + } else { + tap_code16(KC_EQUAL); + } + break; + case KC_EXCLAIM: + if (shifted) { + tap_code16(KC_EXCLAIM); + tap_code16(KC_EXCLAIM); + } else { + tap_code16(KC_EXCLAIM); + } + break; + case KC_GRAVE: + if (shifted) { + tap_code16(KC_GRAVE); + tap_code16(KC_GRAVE); + } else { + tap_code16(KC_GRAVE); + } + break; + case KC_HASH: + if (shifted) { + tap_code16(KC_HASH); + tap_code16(KC_HASH); + } else { + tap_code16(KC_HASH); + } + break; + case KC_MINUS: + if (shifted) { + tap_code16(KC_MINUS); + tap_code16(KC_MINUS); + } else { + tap_code16(KC_MINUS); + } + break; + case KC_PERCENT: + if (shifted) { + tap_code16(KC_PERCENT); + tap_code16(KC_PERCENT); + } else { + tap_code16(KC_PERCENT); + } + break; + case KC_PIPE: + if (shifted) { + tap_code16(KC_PIPE); + tap_code16(KC_PIPE); + } else { + tap_code16(KC_PIPE); + } + break; + case KC_PLUS: + if (shifted) { + tap_code16(KC_PLUS); + tap_code16(KC_PLUS); + } else { + tap_code16(KC_PLUS); + } + break; + case KC_QUESTION: + if (shifted) { + tap_code16(KC_QUESTION); + tap_code16(KC_QUESTION); + } else { + tap_code16(KC_QUESTION); + } + break; + case KC_QUOTE: + if (shifted) { + tap_code16(KC_QUOTE); + tap_code16(KC_QUOTE); + } else { + tap_code16(KC_QUOTE); + } + break; + case KC_DOUBLE_QUOTE: + if (shifted) { + tap_code16(KC_DOUBLE_QUOTE); + tap_code16(KC_DOUBLE_QUOTE); + } else { + tap_code16(KC_DOUBLE_QUOTE); + } + break; + case KC_SEMICOLON: + if (shifted) { + tap_code16(KC_SEMICOLON); + tap_code16(KC_SEMICOLON); + } else { + tap_code16(KC_SEMICOLON); + } + break; + case KC_SLASH: + if (shifted) { + tap_code16(KC_SLASH); + tap_code16(KC_SLASH); + } else { + tap_code16(KC_SLASH); + } + break; + case KC_ASTERISK: + if (shifted) { + tap_code16(KC_ASTERISK); + tap_code16(KC_ASTERISK); + } else { + tap_code16(KC_ASTERISK); + } + break; + case KC_TILDE: + if (shifted) { + tap_code16(KC_TILDE); + tap_code16(KC_TILDE); + } else { + tap_code16(KC_TILDE); + } + break; + case KC_UNDERSCORE: + if (shifted) { + tap_code16(KC_UNDERSCORE); + tap_code16(KC_UNDERSCORE); + } else { + tap_code16(KC_UNDERSCORE); + } + break; - case KC_BSPC: - unregister_code16((!shifted) ? KC_BSPC : KC_DEL); - break; + case KC_LEFT_ANGLE_BRACKET: + if (shifted) { + tap_code16(KC_LEFT_ANGLE_BRACKET); + tap_code16(KC_LEFT_ANGLE_BRACKET); + } else { + tap_code16(KC_LEFT_ANGLE_BRACKET); + } + break; + case KC_RIGHT_ANGLE_BRACKET: + if (shifted) { + tap_code16(KC_RIGHT_ANGLE_BRACKET); + tap_code16(KC_RIGHT_ANGLE_BRACKET); + } else { + tap_code16(KC_RIGHT_ANGLE_BRACKET); + } + break; - default: - /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift - The IS_RETRO check isn't really necessary here, always using - keycode & 0xFF would be fine. */ - unregister_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); + case KC_LEFT_BRACKET: + if (shifted) { + tap_code16(KC_LEFT_BRACKET); + tap_code16(KC_LEFT_BRACKET); + } else { + tap_code16(KC_LEFT_BRACKET); + } + break; + case KC_RIGHT_BRACKET: + if (shifted) { + tap_code16(KC_RIGHT_BRACKET); + tap_code16(KC_RIGHT_BRACKET); + } else { + tap_code16(KC_RIGHT_BRACKET); + } + break; + case KC_LEFT_CURLY_BRACE: + if (shifted) { + tap_code16(KC_LEFT_CURLY_BRACE); + tap_code16(KC_LEFT_CURLY_BRACE); + } else { + tap_code16(KC_LEFT_CURLY_BRACE); + } + break; + case KC_RIGHT_CURLY_BRACE: + if (shifted) { + tap_code16(KC_RIGHT_CURLY_BRACE); + tap_code16(KC_RIGHT_CURLY_BRACE); + } else { + tap_code16(KC_RIGHT_CURLY_BRACE); + } + break; + case KC_LEFT_PAREN: + if (shifted) { + tap_code16(KC_LEFT_PAREN); + tap_code16(KC_LEFT_PAREN); + } else { + tap_code16(KC_LEFT_PAREN); + } + break; + case KC_RIGHT_PAREN: + if (shifted) { + tap_code16(KC_RIGHT_PAREN); + tap_code16(KC_RIGHT_PAREN); + } else { + tap_code16(KC_RIGHT_PAREN); + } + break; + + /* French + Release is not necessary with 'send_unicode_string()' */ + case CS_A_GRAVE: + if (shifted) { + tap_code16(US_DGRV); + tap_code16(S(KC_A)); + } else { + tap_code16(US_DGRV); + tap_code16(KC_A); + } + break; + case CS_E_GRAVE: + if (shifted) { + tap_code16(US_DGRV); + tap_code16(S(KC_E)); + } else { + tap_code16(US_DGRV); + tap_code16(KC_E); + } + break; + case CS_U_GRAVE: + if (shifted) { + tap_code16(US_DGRV); + tap_code16(S(KC_U)); + } else { + tap_code16(US_DGRV); + tap_code16(KC_U); + } + break; + + case CS_A_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_A)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_A); + } + break; + case CS_E_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_E)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_E); } + break; + case CS_I_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_I)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_I); + } + break; + case CS_O_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_O)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_O); + } + break; + case CS_U_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_U)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_U); + } + break; + + case CS_E_DIAERESIS: + if (shifted) { + tap_code16(US_DIAE); + tap_code16(S(KC_E)); + } else { + tap_code16(US_DIAE); + tap_code16(KC_E); + } + break; + case CS_I_DIAERESIS: + if (shifted) { + tap_code16(US_DIAE); + tap_code16(S(KC_I)); + } else { + tap_code16(US_DIAE); + tap_code16(KC_I); + } + break; + case CS_U_DIAERESIS: + if (shifted) { + tap_code16(US_DIAE); + tap_code16(S(KC_U)); + } else { + tap_code16(US_DIAE); + tap_code16(KC_U); + } + break; + case CS_Y_DIAERESIS: + if (shifted) { + tap_code16(US_DIAE); + tap_code16(S(KC_Y)); + } else { + tap_code16(US_DIAE); + tap_code16(KC_Y); + } + break; + + default: + if (shifted) { + add_weak_mods(MOD_BIT(KC_LSFT)); + } + /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift */ + register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); + } +} + +void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) { + switch (keycode) { + case KC_BSPC: + unregister_code16((!shifted) ? KC_BSPC : KC_DEL); + break; + + default: + /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift + The IS_RETRO check isn't really necessary here, always using + keycode & 0xFF would be fine. */ + unregister_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); + } } diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c index c382eedddc1..de0436b361e 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c @@ -15,256 +15,231 @@ */ enum combos { - LEADER, - BOOTLOADER, - - LAYER_ADJUST, - LAYER_FN, - LAYER_LEFT_HAND, - - /* French */ - E_ACUTE, - C_CEDILLA, - E_A, - E_O, - - A_GRAVE, - E_GRAVE, - I_GRAVE, - O_GRAVE, - U_GRAVE, - - A_CIRCUMFLEX, - E_CIRCUMFLEX, - I_CIRCUMFLEX, - O_CIRCUMFLEX, - U_CIRCUMFLEX, - - A_DIAERESIS, - E_DIAERESIS, - I_DIAERESIS, - O_DIAERESIS, - U_DIAERESIS, - Y_DIAERESIS, - - /* -- */ - AMPERSAND, - AT_SIGN, - BACKSLASH, - CIRCUMFLEX, - COLON, - DOLLAR, - EQUAL, - EXCLAMATION_MARK, - GRAVE, - HASH, - MINUS, - PERCENT, - PIPE, - PLUS, - QUESTION_MARK, - QUOTE, - QUOTE_DOUBLE, - SEMICOLON, - SLASH, - STAR, - TILDE, - UNDERSCORE, - - ANGLE_BRACKET_LEFT, - ANGLE_BRACKET_RIGHT, - - BRACKET_LEFT, - BRACKET_RIGHT, - CURLY_BRACKET_LEFT, - CURLY_BRACKET_RIGHT, - PARENTHESIS_LEFT, - PARENTHESIS_RIGHT, - - /* -- */ - ALT_SHIFT, - CONTROL_SHIFT, - CONTROL_ALT, - CONTROL_SHIFT_ALT, - RIGHT_ALT, - - /* One hand special */ - CONTROL_RIGHT, - CONTROL_SHIFT_RIGHT, - - // DEL_LEFT, - SHIFT_LEFT, - ALTGR_LEFT, - CONTROL_SHIFT_LEFT, + LEADER, + BOOTLOADER, + + LAYER_ADJ, + LAYER_FN, + LAYER_LEFT_HAND, + LAYER_MOUSE, + LAYER_MOUSE_BACK, + + /* French */ + C_CEDILLA, + E_A, + E_O, + + A_GRAVE, + E_GRAVE, + U_GRAVE, + + A_CIRCUMFLEX, + E_CIRCUMFLEX, + I_CIRCUMFLEX, + O_CIRCUMFLEX, + U_CIRCUMFLEX, + + E_DIAERESIS, + I_DIAERESIS, + U_DIAERESIS, + Y_DIAERESIS, + + /* -- */ + AMPERSAND, + AT_SIGN, + BACKSLASH, + CIRCUMFLEX, + COLON, + DOLLAR, + EQUAL, + EXCLAMATION_MARK, + GRAVE, + HASH, + MINUS, + PERCENT, + PIPE, + PLUS, + QUESTION_MARK, + QUOTE, + QUOTE_DOUBLE, + SEMICOLON, + SLASH, + STAR, + TILDE, + UNDERSCORE, + + ANGLE_BRACKET_LEFT, + ANGLE_BRACKET_RIGHT, + + BRACKET_LEFT, + BRACKET_RIGHT, + CURLY_BRACKET_LEFT, + CURLY_BRACKET_RIGHT, + PARENTHESIS_LEFT, + PARENTHESIS_RIGHT, + + /* Non qwerty */ + EURO, + + /* One hand special */ + CONTROL_RIGHT, + CONTROL_SHIFT_RIGHT, + + ALT_LEFT, + SHIFT_LEFT, + CONTROL_SHIFT_LEFT, + + /* Just to replace the define in config.h */ + COMBO_LENGTH, }; +uint16_t COMBO_LEN = COMBO_LENGTH; /* Sequences fo keys */ -const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END}; -const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END}; +const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END}; +const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END}; + +const uint16_t PROGMEM combo_ADJ[] = {CTL_T(KC_SPACE), LT(_NUMERIC, KC_ENT), COMBO_END}; +const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END}; +const uint16_t PROGMEM combo_left_hand[] = {LT(_MOUSE, KC_COMM), GUI_T(KC_ESC), COMBO_END}; +const uint16_t PROGMEM combo_mouse[] = {KC_A, KC_I, KC_E, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_mouse_back[] = {KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT, COMBO_END}; +/* -- */ +const uint16_t PROGMEM combo_c_cedilla[] = {LT(_ARROWS, KC_DOT), KC_C, COMBO_END}; +const uint16_t PROGMEM combo_ea[] = {US_EACU, KC_A, COMBO_END}; +const uint16_t PROGMEM combo_eo[] = {US_EACU, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_adjust[] = {KC_LCPO, LT(_NUMERIC, KC_ENT), COMBO_END}; -const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END}; -const uint16_t PROGMEM combo_left_hand[] = {KC_LCPO, GUI_T(KC_ESC), COMBO_END}; +const uint16_t PROGMEM combo_a_grave[] = {CTL_T(KC_SPACE), KC_A, COMBO_END}; +const uint16_t PROGMEM combo_e_grave[] = {CTL_T(KC_SPACE), KC_E, COMBO_END}; +const uint16_t PROGMEM combo_u_grave[] = {CTL_T(KC_SPACE), KC_U, COMBO_END}; -/* -- */ -// const uint16_t PROGMEM combo_enter_shifted[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END}; -const uint16_t PROGMEM combo_control_shift[] = {KC_LCPO, KC_S, COMBO_END}; -const uint16_t PROGMEM combo_control_alt[] = {KC_LCPO, KC_LALT, COMBO_END}; -const uint16_t PROGMEM combo_control_shift_alt[] = {KC_LCPO, KC_S, KC_A, COMBO_END}; -const uint16_t PROGMEM combo_right_alt[] = {KC_LAPO, KC_G, COMBO_END}; -const uint16_t PROGMEM combo_alt_shift[] = {KC_LALT, KC_S, COMBO_END}; +const uint16_t PROGMEM combo_a_circumflex[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END}; +const uint16_t PROGMEM combo_e_circumflex[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END}; +const uint16_t PROGMEM combo_i_circumflex[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END}; +const uint16_t PROGMEM combo_o_circumflex[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END}; +const uint16_t PROGMEM combo_u_circumflex[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END}; -/* -- */ -const uint16_t PROGMEM combo_e_acute[] = {KC_LCPO, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_c_cedilla[] = {KC_LCPO, KC_I, COMBO_END}; -const uint16_t PROGMEM combo_ea[] = {KC_LCPO, KC_A, COMBO_END}; -const uint16_t PROGMEM combo_eo[] = {KC_LCPO, KC_O, COMBO_END}; - -const uint16_t PROGMEM combo_a_grave[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END}; -const uint16_t PROGMEM combo_e_grave[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END}; -const uint16_t PROGMEM combo_i_grave[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END}; -const uint16_t PROGMEM combo_o_grave[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END}; -const uint16_t PROGMEM combo_u_grave[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END}; - -const uint16_t PROGMEM combo_a_circumflex[] = {KC_C, KC_A, COMBO_END}; -const uint16_t PROGMEM combo_e_circumflex[] = {KC_C, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_i_circumflex[] = {KC_C, KC_I, COMBO_END}; -const uint16_t PROGMEM combo_o_circumflex[] = {KC_C, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_u_circumflex[] = {KC_C, KC_U, COMBO_END}; - -const uint16_t PROGMEM combo_a_diaeresis[] = {KC_T, KC_A, COMBO_END}; -const uint16_t PROGMEM combo_e_diaeresis[] = {KC_T, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_i_diaeresis[] = {KC_T, KC_I, COMBO_END}; -const uint16_t PROGMEM combo_o_diaeresis[] = {KC_T, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_u_diaeresis[] = {KC_T, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_y_diaeresis[] = {KC_T, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_e_diaeresis[] = {US_EACU, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_i_diaeresis[] = {US_EACU, KC_I, COMBO_END}; +const uint16_t PROGMEM combo_u_diaeresis[] = {US_EACU, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_y_diaeresis[] = {US_EACU, KC_Y, COMBO_END}; /* -- */ -const uint16_t PROGMEM combo_ampersand[] = {KC_I, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_at_sign[] = {KC_Q, KC_Y, COMBO_END}; -const uint16_t PROGMEM combo_backslash[] = {KC_D, KC_R, COMBO_END}; -const uint16_t PROGMEM combo_circumflex[] = {KC_T, KC_D, COMBO_END}; -const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END}; -const uint16_t PROGMEM combo_dollar[] = {KC_D, KC_L, COMBO_END}; -const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END}; -const uint16_t PROGMEM combo_exclamation_mark[] = {KC_O, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END}; -const uint16_t PROGMEM combo_hash[] = {KC_I, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END}; -const uint16_t PROGMEM combo_percent[] = {KC_O, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_pipe[] = {KC_E, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END}; -const uint16_t PROGMEM combo_question_mark[] = {KC_B, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END}; -const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END}; -const uint16_t PROGMEM combo_slash[] = {KC_S, KC_L, COMBO_END}; -const uint16_t PROGMEM combo_star[] = {KC_S, KC_T, COMBO_END}; -const uint16_t PROGMEM combo_tilde[] = {KC_I, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END}; - -const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END}; -const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END}; - -const uint16_t PROGMEM combo_bracket_left[] = {KC_Q, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_bracket_right[] = {KC_E, KC_Y, COMBO_END}; -const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_I, KC_Q, COMBO_END}; -const uint16_t PROGMEM combo_parenthesis_left[] = {KC_X, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_parenthesis_right[] = {KC_I, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_ampersand[] = {KC_E, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_at_sign[] = {KC_D, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_backslash[] = {KC_B, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_circumflex[] = {KC_B, KC_O, COMBO_END}; +const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END}; +const uint16_t PROGMEM combo_dollar[] = {KC_O, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END}; +const uint16_t PROGMEM combo_exclamation_mark[] = {KC_Q, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END}; +const uint16_t PROGMEM combo_hash[] = {KC_X, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END}; +const uint16_t PROGMEM combo_percent[] = {KC_B, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_pipe[] = {KC_I, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_question_mark[] = {KC_P, KC_D, COMBO_END}; +const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END}; +const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END}; +const uint16_t PROGMEM combo_slash[] = {KC_S, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_star[] = {KC_S, KC_T, COMBO_END}; +const uint16_t PROGMEM combo_tilde[] = {KC_I, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END}; + +const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END}; +const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END}; +const uint16_t PROGMEM combo_bracket_left[] = {KC_I, KC_O, COMBO_END}; +const uint16_t PROGMEM combo_bracket_right[] = {KC_O, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_E, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_parenthesis_left[] = {KC_T, KC_D, COMBO_END}; +const uint16_t PROGMEM combo_parenthesis_right[] = {KC_D, KC_R, COMBO_END}; + +/* Non qwerty */ +const uint16_t PROGMEM combo_euro[] = {KC_X, KC_Q, COMBO_END}; /* One hand special */ -const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END}; -const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END}; - -const uint16_t PROGMEM combo_shift_left[] = {KC_LCPO, KC_LALT, COMBO_END}; -// const uint16_t PROGMEM combo_altgr_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END}; -// const uint16_t PROGMEM combo_del_left[] = {GUI_T(KC_ESC), KC_K, COMBO_END}; -const uint16_t PROGMEM combo_control_shift_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END}; +const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END}; +const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END}; +const uint16_t PROGMEM combo_shift_left[] = {LT(_MOUSE, KC_COMM), US_EACU, COMBO_END}; +const uint16_t PROGMEM combo_alt_left[] = {CTL_T(KC_SPACE), US_EACU, COMBO_END}; +const uint16_t PROGMEM combo_control_shift_left[] = {CTL_T(KC_SPACE), GUI_T(KC_ESC), COMBO_END}; /* Sequences fo keys */ combo_t key_combos[] = { - [LEADER] = COMBO(combo_leader, KC_LEAD), - [BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER), + [LEADER] = COMBO(combo_leader, QK_LEAD), + [BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER), - [LAYER_ADJUST] = COMBO(combo_adjust, OSL(_ADJUST)), - [LAYER_FN] = COMBO(combo_fn, OSL(_FN)), - [LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)), - - /* -- */ - // [ENTER_SHIFTED] = COMBO(combo_enter_shifted, S(KC_ENT)), - [ALT_SHIFT] = COMBO(combo_alt_shift, A(S(XXXXXXX))), - [CONTROL_SHIFT] = COMBO(combo_control_shift, C(S(XXXXXXX))), - [CONTROL_ALT] = COMBO(combo_control_alt, C(A(XXXXXXX))), - [CONTROL_SHIFT_ALT] = COMBO(combo_control_shift_alt, C(S(A(XXXXXXX)))), - [RIGHT_ALT] = COMBO(combo_right_alt, KC_RALT), + [LAYER_ADJ] = COMBO(combo_ADJ, OSL(_ADJ)), + [LAYER_FN] = COMBO(combo_fn, OSL(_FN)), + [LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)), + [LAYER_MOUSE] = COMBO(combo_mouse, TG(_MOUSE)), + [LAYER_MOUSE_BACK] = COMBO(combo_mouse_back, TG(_MOUSE)), /* French */ - [E_ACUTE] = COMBO(combo_e_acute, CS_E_ACUTE), - [C_CEDILLA] = COMBO(combo_c_cedilla, CS_C_CEDILLA), - [E_A] = COMBO(combo_ea, CS_AE), - [E_O] = COMBO(combo_eo, CS_OE), - - [A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE), - [E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE), - [I_GRAVE] = COMBO(combo_i_grave, CS_I_GRAVE), - [O_GRAVE] = COMBO(combo_o_grave, CS_O_GRAVE), - [U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE), - - [A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX), - [E_CIRCUMFLEX] = COMBO(combo_e_circumflex, CS_E_CIRCUMFLEX), - [I_CIRCUMFLEX] = COMBO(combo_i_circumflex, CS_I_CIRCUMFLEX), - [O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX), - [U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX), - - [A_DIAERESIS] = COMBO(combo_a_diaeresis, CS_A_DIAERESIS), - [E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS), - [I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS), - [O_DIAERESIS] = COMBO(combo_o_diaeresis, CS_O_DIAERESIS), - [U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS), - [Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS), + [C_CEDILLA] = COMBO(combo_c_cedilla, US_CCED), + [E_A] = COMBO(combo_ea, US_AE), + [E_O] = COMBO(combo_eo, US_OE), + + [A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE), + [E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE), + [U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE), + + [A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX), + [E_CIRCUMFLEX] = COMBO(combo_e_circumflex, CS_E_CIRCUMFLEX), + [I_CIRCUMFLEX] = COMBO(combo_i_circumflex, CS_I_CIRCUMFLEX), + [O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX), + [U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX), + + [E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS), + [I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS), + [U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS), + [Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS), /* -- */ - [AMPERSAND] = COMBO(combo_ampersand, KC_AMPR), - [AT_SIGN] = COMBO(combo_at_sign, KC_AT), - [BACKSLASH] = COMBO(combo_backslash, KC_BSLS), - [CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRC), - [COLON] = COMBO(combo_colon, KC_COLON), - [DOLLAR] = COMBO(combo_dollar, KC_DLR), - [EQUAL] = COMBO(combo_equal, KC_EQL), - [EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM), - [GRAVE] = COMBO(combo_grave, KC_GRV), - [HASH] = COMBO(combo_hash, KC_HASH), - [MINUS] = COMBO(combo_minus, KC_MINS), - [PERCENT] = COMBO(combo_percent, KC_PERC), - [PIPE] = COMBO(combo_pipe, KC_PIPE), - [PLUS] = COMBO(combo_plus, KC_PLUS), - [QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION), - [QUOTE] = COMBO(combo_quote, KC_QUOTE), - [QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE), - [SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON), - [SLASH] = COMBO(combo_slash, KC_SLSH), - [STAR] = COMBO(combo_star, KC_ASTR), - [TILDE] = COMBO(combo_tilde, KC_TILD), - [UNDERSCORE] = COMBO(combo_underscore, KC_UNDS), - - [ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LABK), - [ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RABK), - - [BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET), - [BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET), - [CURLY_BRACKET_LEFT] = COMBO(combo_curly_bracket_left, KC_LEFT_CURLY_BRACE), - [CURLY_BRACKET_RIGHT] = COMBO(combo_curly_bracket_right, KC_RIGHT_CURLY_BRACE), - [PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN), - [PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN), + [AMPERSAND] = COMBO(combo_ampersand, KC_AMPERSAND), + [AT_SIGN] = COMBO(combo_at_sign, KC_AT), + [BACKSLASH] = COMBO(combo_backslash, KC_BACKSLASH), + [CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRCUMFLEX), + [COLON] = COMBO(combo_colon, KC_COLON), + [DOLLAR] = COMBO(combo_dollar, KC_DOLLAR), + [EQUAL] = COMBO(combo_equal, KC_EQUAL), + [EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM), + [GRAVE] = COMBO(combo_grave, KC_GRAVE), + [HASH] = COMBO(combo_hash, KC_HASH), + [MINUS] = COMBO(combo_minus, KC_MINUS), + [PERCENT] = COMBO(combo_percent, KC_PERCENT), + [PIPE] = COMBO(combo_pipe, KC_PIPE), + [PLUS] = COMBO(combo_plus, KC_PLUS), + [QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION), + [QUOTE] = COMBO(combo_quote, KC_QUOTE), + [QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE), + [SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON), + [SLASH] = COMBO(combo_slash, KC_SLASH), + [STAR] = COMBO(combo_star, KC_ASTERISK), + [TILDE] = COMBO(combo_tilde, KC_TILDE), + [UNDERSCORE] = COMBO(combo_underscore, KC_UNDERSCORE), + + [ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LEFT_ANGLE_BRACKET), + [ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RIGHT_ANGLE_BRACKET), + + [BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET), + [BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET), + [CURLY_BRACKET_LEFT] = COMBO(combo_curly_bracket_left, KC_LEFT_CURLY_BRACE), + [CURLY_BRACKET_RIGHT] = COMBO(combo_curly_bracket_right, KC_RIGHT_CURLY_BRACE), + [PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN), + [PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN), + + /* Non qwerty */ + [EURO] COMBO(combo_euro, US_EURO), /* One hand special */ - [CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL), - [CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))), + [CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL), + [CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))), - [SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT), - // [ALTGR_LEFT] = COMBO(combo_altgr_left, KC_ALGR), - [CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))), - // [DEL_LEFT] = COMBO(combo_del_left, KC_BSPC), + [ALT_LEFT] = COMBO(combo_alt_left, KC_LALT), + [SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT), + [CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))), }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c index 7cfd30af6d4..1964fb428fe 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c @@ -2,267 +2,207 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H - -LEADER_EXTERNS(); - -void matrix_scan_user(void) { - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - // SEQ_ONE_KEY(KC_F) { - // // Anything you can do in a macro. - // SEND_STRING("QMK is awesome."); } - - - SEQ_TWO_KEYS(KC_M, KC_S) { - SEND_STRING("f@linguenheld.fr"); } - SEQ_TWO_KEYS(KC_M, KC_L) { - SEND_STRING("florent@linguenheld.fr"); } - SEQ_TWO_KEYS(KC_F, KC_L) { - SEND_STRING("FLinguenheld"); } - - SEQ_THREE_KEYS(KC_T, KC_E, KC_S) { - SEND_STRING("test01234"); } - SEQ_THREE_KEYS(KC_A, KC_D, KC_M) { - SEND_STRING("admin01234"); } - - SEQ_ONE_KEY(KC_C) { - SEND_STRING(" | xclip -r -selection clipboard"); } - - /* Degree */ - SEQ_THREE_KEYS(KC_D, KC_E, KC_G) { - send_unicode_string("°"); } +#include "keycodes.h" +#include + +void leader_end_user(void) { + if (leader_sequence_two_keys(KC_M, KC_S)) { + SEND_STRING("f@linguenheld.fr"); + } else if (leader_sequence_two_keys(KC_M, KC_L)) { + SEND_STRING("florent@linguenheld.fr"); + } else if (leader_sequence_two_keys(KC_F, KC_L)) { + SEND_STRING("flinguenheld"); + + } else if (leader_sequence_three_keys(KC_D, KC_O, KC_T)) { + SEND_STRING("https://github.com/flinguenheld/dotfiles"); + } else if (leader_sequence_three_keys(KC_H, KC_U, KC_B)) { + SEND_STRING("https://github.com/flinguenheld/"); + } else if (leader_sequence_three_keys(KC_Q, KC_M, KC_K)) { + SEND_STRING("$HOME/qmk_firmware/keyboards/splitkb/aurora/sweep/keymaps/sweep_keymap"); + } else if (leader_sequence_three_keys(KC_Q, KC_M, KC_C)) { + SEND_STRING("qmk compile && qmk flash"); + + } else if (leader_sequence_three_keys(KC_T, KC_E, KC_S)) { + SEND_STRING("test01234"); + } else if (leader_sequence_three_keys(KC_A, KC_D, KC_M)) { + SEND_STRING("admin01234"); + + } else if (leader_sequence_one_key(KC_C)) { + SEND_STRING(" | xclip -r -selection clipboard"); + + /* Keyring requests, improbable combinaisons used by i3 */ + } else if (leader_sequence_three_keys(KC_G, KC_I, KC_T)) { + register_code(KC_LEFT_GUI); + register_code(KC_LEFT_SHIFT); + register_code(KC_LEFT_CTRL); + register_code(KC_0); + unregister_code(KC_0); + unregister_code(KC_LEFT_GUI); + unregister_code(KC_LEFT_SHIFT); + unregister_code(KC_LEFT_CTRL); + + } else if (leader_sequence_three_keys(KC_M, KC_A, KC_I)) { + register_code(KC_LEFT_GUI); + register_code(KC_LEFT_SHIFT); + register_code(KC_LEFT_CTRL); + register_code(KC_1); + unregister_code(KC_1); + unregister_code(KC_LEFT_GUI); + unregister_code(KC_LEFT_SHIFT); + unregister_code(KC_LEFT_CTRL); + + } else if (leader_sequence_three_keys(KC_P, KC_A, KC_S)) { + register_code(KC_LEFT_GUI); + register_code(KC_LEFT_SHIFT); + register_code(KC_LEFT_CTRL); + register_code(KC_2); + unregister_code(KC_2); + unregister_code(KC_LEFT_GUI); + unregister_code(KC_LEFT_SHIFT); + unregister_code(KC_LEFT_CTRL); + + /* ----- */ + } else if (leader_sequence_three_keys(KC_D, KC_E, KC_G)) { + tap_code16(US_DEG); // ° + } else if (leader_sequence_three_keys(KC_D, KC_I, KC_A)) { + tap_code16(US_OSTR); // ø + } else if (leader_sequence_three_keys(KC_S, KC_E, KC_C)) { + tap_code16(US_SECT); // § /* Copyright / Register */ - SEQ_THREE_KEYS(KC_C, KC_O, KC_P) { - send_unicode_string("©"); } - SEQ_THREE_KEYS(KC_R, KC_E, KC_G) { - send_unicode_string("®"); } - - /* Diameter */ - SEQ_THREE_KEYS(KC_D, KC_I, KC_A) { - send_unicode_string("ø"); } - SEQ_FOUR_KEYS(KC_D, KC_I, KC_A, KC_M) { - send_unicode_string("Ø"); } + } else if (leader_sequence_three_keys(KC_C, KC_O, KC_P)) { + tap_code16(US_COPY); // © + } else if (leader_sequence_three_keys(KC_R, KC_E, KC_G)) { + tap_code16(US_REGD); // ® /* Currency */ - SEQ_THREE_KEYS(KC_E, KC_U, KC_R) { - send_unicode_string("€"); } - SEQ_THREE_KEYS(KC_P, KC_O, KC_U) { - send_unicode_string("£"); } - SEQ_THREE_KEYS(KC_Y, KC_E, KC_N) { - send_unicode_string("¥"); } - SEQ_THREE_KEYS(KC_C, KC_E, KC_N) { - send_unicode_string("¢"); } + } else if (leader_sequence_three_keys(KC_E, KC_U, KC_R)) { + tap_code16(US_EURO); // € + } else if (leader_sequence_three_keys(KC_P, KC_O, KC_U)) { + tap_code16(US_PND); // £ + } else if (leader_sequence_three_keys(KC_Y, KC_E, KC_N)) { + tap_code16(US_YEN); // ¥ + } else if (leader_sequence_three_keys(KC_C, KC_E, KC_N)) { + tap_code16(US_CENT); // ¢ /* Fractions */ - SEQ_THREE_KEYS(KC_F, KC_C, KC_T) { - send_unicode_string("¼"); } - SEQ_THREE_KEYS(KC_F, KC_C, KC_G) { - send_unicode_string("½"); } - SEQ_THREE_KEYS(KC_F, KC_H, KC_T) { - send_unicode_string("¾"); } + } else if (leader_sequence_three_keys(KC_F, KC_C, KC_T)) { + tap_code16(US_QRTR); // ¼ + } else if (leader_sequence_three_keys(KC_F, KC_C, KC_G)) { + tap_code16(US_HALF); // ½ + } else if (leader_sequence_three_keys(KC_F, KC_H, KC_T)) { + tap_code16(US_TQTR); // ¾ /* Maths */ - SEQ_THREE_KEYS(KC_M, KC_U, KC_L) { - send_unicode_string("×"); } - SEQ_THREE_KEYS(KC_D, KC_I, KC_V) { - send_unicode_string("÷"); } - SEQ_TWO_KEYS(KC_P, KC_M) { - send_unicode_string("±"); } - SEQ_THREE_KEYS(KC_I, KC_N, KC_E) { - send_unicode_string("≠"); } - SEQ_THREE_KEYS(KC_A, KC_L, KC_M) { - send_unicode_string("≈"); } - SEQ_THREE_KEYS(KC_S, KC_Q, KC_U) { - send_unicode_string("√"); } - SEQ_THREE_KEYS(KC_I, KC_N, KC_F) { - send_unicode_string("∞"); } - SEQ_TWO_KEYS(KC_LABK, KC_LABK) { - send_unicode_string("≤"); } - SEQ_TWO_KEYS(KC_RABK, KC_RABK) { - send_unicode_string("≥"); } + } else if (leader_sequence_three_keys(KC_M, KC_U, KC_L)) { + tap_code16(US_MUL); // × + } else if (leader_sequence_three_keys(KC_D, KC_I, KC_V)) { + tap_code16(US_DIV); // ÷ + } else if (leader_sequence_two_keys(KC_P, KC_M)) { + send_unicode_string("±"); + } else if (leader_sequence_three_keys(KC_I, KC_N, KC_E)) { + send_unicode_string("≠"); + } else if (leader_sequence_three_keys(KC_A, KC_L, KC_M)) { + send_unicode_string("≈"); + } else if (leader_sequence_three_keys(KC_S, KC_Q, KC_U)) { + send_unicode_string("√"); + } else if (leader_sequence_three_keys(KC_I, KC_N, KC_F)) { + send_unicode_string("∞"); + } else if (leader_sequence_two_keys(KC_LABK, KC_LABK)) { + send_unicode_string("≤"); + } else if (leader_sequence_two_keys(KC_RABK, KC_RABK)) { + send_unicode_string("≥"); /* Greek */ - SEQ_TWO_KEYS(KC_P, KC_I) { - send_unicode_string("π"); } - SEQ_THREE_KEYS(KC_P, KC_I, KC_I) { - send_unicode_string("Π"); } - - SEQ_THREE_KEYS(KC_O, KC_M, KC_E) { - send_unicode_string("ω"); } - SEQ_FOUR_KEYS(KC_O, KC_M, KC_E, KC_G) { - send_unicode_string("Ω"); } + } else if (leader_sequence_three_keys(KC_B, KC_E, KC_T)) { + tap_code16(US_SS); // ß + } else if (leader_sequence_three_keys(KC_M, KC_I, KC_C)) { + tap_code16(US_MICR); // µ + } else if (leader_sequence_two_keys(KC_P, KC_I)) { + send_unicode_string("π"); + } else if (leader_sequence_three_keys(KC_P, KC_I, KC_I)) { + send_unicode_string("Π"); + + } else if (leader_sequence_three_keys(KC_O, KC_M, KC_E)) { + send_unicode_string("ω"); + } else if (leader_sequence_four_keys(KC_O, KC_M, KC_E, KC_G)) { + send_unicode_string("Ω"); /* Icons */ - SEQ_THREE_KEYS(KC_F, KC_L, KC_A) { - send_unicode_string("⚡"); } - SEQ_THREE_KEYS(KC_S, KC_T, KC_A) { - send_unicode_string("⭐"); } - SEQ_THREE_KEYS(KC_S, KC_P, KC_A) { - send_unicode_string("✨"); } - SEQ_THREE_KEYS(KC_P, KC_O, KC_P) { - send_unicode_string("🎉"); } - SEQ_THREE_KEYS(KC_R, KC_E, KC_C) { - send_unicode_string("♻️"); } - SEQ_THREE_KEYS(KC_L, KC_O, KC_V) { - send_unicode_string("❤️"); } - SEQ_THREE_KEYS(KC_F, KC_I, KC_R) { - send_unicode_string("🔥"); } - SEQ_THREE_KEYS(KC_B, KC_O, KC_M) { - send_unicode_string("💣"); } - SEQ_FOUR_KEYS(KC_B, KC_O, KC_U, KC_M) { - send_unicode_string("💥"); } - SEQ_THREE_KEYS(KC_R, KC_O, KC_C) { - send_unicode_string("🚀"); } - SEQ_THREE_KEYS(KC_T, KC_E, KC_L) { - send_unicode_string("🔭"); } - SEQ_THREE_KEYS(KC_M, KC_A, KC_G) { - send_unicode_string("🔎"); } - SEQ_THREE_KEYS(KC_W, KC_A, KC_R) { - send_unicode_string("⚠️"); } - - SEQ_THREE_KEYS(KC_B, KC_U, KC_L) { - send_unicode_string("💡"); } - SEQ_FOUR_KEYS(KC_I, KC_N, KC_F, KC_O) { - send_unicode_string("ℹ️"); } - SEQ_THREE_KEYS(KC_G, KC_E, KC_A) { - send_unicode_string("⚙️"); } - SEQ_THREE_KEYS(KC_L, KC_I, KC_N) { - send_unicode_string("🔗"); } - SEQ_THREE_KEYS(KC_P, KC_I, KC_N) { - send_unicode_string("📌"); } - SEQ_FOUR_KEYS(KC_F, KC_L, KC_A, KC_G) { - send_unicode_string("🚩"); } - SEQ_THREE_KEYS(KC_B, KC_A, KC_L) { - send_unicode_string("🎈"); } - SEQ_THREE_KEYS(KC_G, KC_I, KC_F) { - send_unicode_string("🎁"); } - - SEQ_THREE_KEYS(KC_P, KC_E, KC_N) { - send_unicode_string("✏️"); } - SEQ_THREE_KEYS(KC_K, KC_E, KC_Y) { - send_unicode_string("🔑"); } - SEQ_THREE_KEYS(KC_B, KC_O, KC_X) { - send_unicode_string("🧰"); } - - SEQ_TWO_KEYS(KC_O, KC_K) { - send_unicode_string("👌"); } - SEQ_THREE_KEYS(KC_O, KC_W, KC_D) { - send_unicode_string("⛔"); } - - SEQ_ONE_KEY(KC_V) { - send_unicode_string("✓"); } - SEQ_TWO_KEYS(KC_V, KC_B) { - send_unicode_string("☑"); } - SEQ_TWO_KEYS(KC_V, KC_G) { - send_unicode_string("✅"); } - - SEQ_ONE_KEY(KC_X) { - send_unicode_string("✗"); } - SEQ_TWO_KEYS(KC_X, KC_B) { - send_unicode_string("☒"); } - SEQ_TWO_KEYS(KC_X, KC_G) { - send_unicode_string("❎"); } - SEQ_TWO_KEYS(KC_X, KC_R) { - send_unicode_string("❌"); } - - SEQ_ONE_KEY(KC_QUESTION) { - send_unicode_string("❔"); } - SEQ_ONE_KEY(KC_EXCLAIM) { - send_unicode_string("❕"); } - SEQ_TWO_KEYS(KC_QUESTION, KC_QUESTION) { - send_unicode_string("❓"); } - SEQ_TWO_KEYS(KC_EXCLAIM, KC_EXCLAIM) { - send_unicode_string("❗"); } - - SEQ_THREE_KEYS(KC_C, KC_O, KC_F) { - send_unicode_string("☕"); } - SEQ_THREE_KEYS(KC_U, KC_M, KC_B) { - send_unicode_string("☔"); } - - SEQ_THREE_KEYS(KC_L, KC_O, KC_L) { - send_unicode_string("😀"); } - SEQ_THREE_KEYS(KC_M, KC_D, KC_R) { - send_unicode_string("🤣"); } - SEQ_THREE_KEYS(KC_K, KC_I, KC_S) { - send_unicode_string("😙"); } - SEQ_THREE_KEYS(KC_A, KC_N, KC_G) { - send_unicode_string("😇"); } - SEQ_THREE_KEYS(KC_G, KC_L, KC_A) { - send_unicode_string("😎"); } - SEQ_THREE_KEYS(KC_A, KC_N, KC_G) { - send_unicode_string("🤬"); } - SEQ_THREE_KEYS(KC_F, KC_E, KC_A) { - send_unicode_string("😱"); } - SEQ_THREE_KEYS(KC_N, KC_E, KC_U) { - send_unicode_string("😐"); } - SEQ_THREE_KEYS(KC_T, KC_H, KC_I) { - send_unicode_string("🤔"); } - SEQ_THREE_KEYS(KC_Z, KC_I, KC_P) { - send_unicode_string("🤐"); } - SEQ_THREE_KEYS(KC_S, KC_U, KC_R) { - send_unicode_string("😯"); } - SEQ_THREE_KEYS(KC_R, KC_O, KC_L) { - send_unicode_string("🙄"); } - SEQ_THREE_KEYS(KC_M, KC_O, KC_O) { - send_unicode_string("🌝"); } - SEQ_THREE_KEYS(KC_H, KC_U, KC_G) { - send_unicode_string("🫂"); } - - SEQ_THREE_KEYS(KC_H, KC_E, KC_N) { - send_unicode_string("🐔"); } - SEQ_THREE_KEYS(KC_R, KC_O, KC_O) { - send_unicode_string("🐓"); } - SEQ_THREE_KEYS(KC_D, KC_U, KC_C) { - send_unicode_string("🦆"); } - SEQ_THREE_KEYS(KC_P, KC_E, KC_A) { - send_unicode_string("🦚"); } - SEQ_THREE_KEYS(KC_B, KC_I, KC_R) { - send_unicode_string("🐦"); } + } else if (leader_sequence_three_keys(KC_L, KC_O, KC_V)) { + send_unicode_string("♥"); + } else if (leader_sequence_three_keys(KC_F, KC_L, KC_A)) { + send_unicode_string("⚡"); + } else if (leader_sequence_three_keys(KC_S, KC_T, KC_A)) { + send_unicode_string("✶"); + } else if (leader_sequence_three_keys(KC_B, KC_U, KC_L)) { + send_unicode_string("💡"); + } else if (leader_sequence_four_keys(KC_I, KC_N, KC_F, KC_O)) { + send_unicode_string("ℹ️"); + } else if (leader_sequence_three_keys(KC_G, KC_E, KC_A)) { + send_unicode_string("⚙️"); + + } else if (leader_sequence_one_key(KC_V)) { + send_unicode_string("✓"); + } else if (leader_sequence_two_keys(KC_V, KC_B)) { + send_unicode_string("✔"); + } else if (leader_sequence_two_keys(KC_V, KC_V)) { + send_unicode_string("✅"); + + } else if (leader_sequence_one_key(KC_X)) { + send_unicode_string("✗"); + } else if (leader_sequence_two_keys(KC_X, KC_B)) { + send_unicode_string("✘"); + + } else if (leader_sequence_one_key(KC_QUESTION)) { + send_unicode_string("❔"); + } else if (leader_sequence_one_key(KC_EXCLAIM)) { + send_unicode_string("❗"); + } else if (leader_sequence_two_keys(KC_QUESTION, KC_QUESTION)) { + send_unicode_string("❓"); + } else if (leader_sequence_two_keys(KC_EXCLAIM, KC_EXCLAIM)) { + send_unicode_string("❕"); /* Subscript / superscript */ - SEQ_THREE_KEYS(KC_U, KC_P, KC_F) { - send_unicode_string("⁰"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_F) { - send_unicode_string("₀"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_C) { - send_unicode_string("¹"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_C) { - send_unicode_string("₁"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_G) { - send_unicode_string("²"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_G) { - send_unicode_string("₂"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_H) { - send_unicode_string("³"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_H) { - send_unicode_string("₃"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_T) { - send_unicode_string("⁴"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_T) { - send_unicode_string("₄"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_S) { - send_unicode_string("⁵"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_S) { - send_unicode_string("₅"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_R) { - send_unicode_string("⁶"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_R) { - send_unicode_string("₆"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_P) { - send_unicode_string("⁷"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_P) { - send_unicode_string("₇"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_D) { - send_unicode_string("⁸"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_D) { - send_unicode_string("₈"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_L) { - send_unicode_string("⁹"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_L) { - send_unicode_string("₉"); } - + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_N)) { + send_unicode_string("⁰"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_N)) { + send_unicode_string("₀"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_C)) { + tap_code16(US_SUP1); // ¹ + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_C)) { + send_unicode_string("₁"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_G)) { + tap_code16(US_SUP2); // ² + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_G)) { + send_unicode_string("₂"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_H)) { + tap_code16(US_SUP3); // ³ + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_H)) { + send_unicode_string("₃"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_T)) { + send_unicode_string("⁴"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_T)) { + send_unicode_string("₄"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_S)) { + send_unicode_string("⁵"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_S)) { + send_unicode_string("₅"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_R)) { + send_unicode_string("⁶"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_R)) { + send_unicode_string("₆"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_P)) { + send_unicode_string("⁷"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_P)) { + send_unicode_string("₇"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_D)) { + send_unicode_string("⁸"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_D)) { + send_unicode_string("₈"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_L)) { + send_unicode_string("⁹"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_L)) { + send_unicode_string("₉"); }; } diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h index b90b28fda41..4439f958b7e 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h @@ -2,43 +2,34 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once - -enum layers { - _BASE, - _NUMERIC, - _ARROWS, - _MOUSE, - _ADJUST, - _FN, - _LEFT_HAND, +#include "keymap_us_extended.h" + +enum custom_layers { + _BASE, + _NUMERIC, + _ARROWS, + _MOUSE, + _ADJ, + _FN, + _LEFT_HAND, }; enum custom_keys { - UNICODE = SAFE_RANGE, // Shortcut to write unicodes, see numeric layer - - /* See auto-shift */ - CS_E_ACUTE, - - CS_A_GRAVE, - CS_E_GRAVE, - CS_I_GRAVE, - CS_O_GRAVE, - CS_U_GRAVE, - - CS_C_CEDILLA, - CS_AE, - CS_OE, - - CS_A_CIRCUMFLEX, - CS_E_CIRCUMFLEX, - CS_I_CIRCUMFLEX, - CS_O_CIRCUMFLEX, - CS_U_CIRCUMFLEX, - - CS_A_DIAERESIS, - CS_E_DIAERESIS, - CS_I_DIAERESIS, - CS_O_DIAERESIS, - CS_U_DIAERESIS, - CS_Y_DIAERESIS, + UNICODE = QK_KB_0, // Replace SAFE_RANGE, see pr #19909 + + /* See auto-shift */ + CS_A_GRAVE, + CS_E_GRAVE, + CS_U_GRAVE, + + CS_A_CIRCUMFLEX, + CS_E_CIRCUMFLEX, + CS_I_CIRCUMFLEX, + CS_O_CIRCUMFLEX, + CS_U_CIRCUMFLEX, + + CS_E_DIAERESIS, + CS_I_DIAERESIS, + CS_U_DIAERESIS, + CS_Y_DIAERESIS, }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c index 50fb7909f37..f024859e7cc 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c @@ -17,7 +17,7 @@ #include QMK_KEYBOARD_H #include "keycodes.h" - +// clang-format off bool process_record_user(uint16_t keycode, keyrecord_t *record) { /* Macros */ @@ -25,14 +25,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case UNICODE: if (record->event.pressed) { - register_code(KC_LCTL); - register_code(KC_LSFT); - tap_code16(KC_U); - } else { - unregister_code(KC_LCTL); - unregister_code(KC_LSFT); - } - break; + tap_code16(C(S(KC_U))); + } break; } return true; @@ -46,11 +40,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| KC_A , KC_I , KC_E , KC_U , KC_TAB , KC_V , KC_T , KC_S , KC_R , KC_N , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - KC_LALT , KC_X , KC_Q , KC_Y , KC_K , KC_Z , KC_C , KC_G , KC_H , KC_M , + US_EACU , KC_X , KC_Q , KC_Y , KC_K , KC_Z , KC_C , KC_G , KC_H , KC_M , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| // |-------------------------+-------------------------| |-------------------------+-------------------------| - LT(_MOUSE, KC_COMM) , KC_LCPO , LT(_NUMERIC, KC_ENT) , LT(_ARROWS, KC_DOT) - // |-------------------------+----/* Space ctl */------| |-------------------------+-------------------------| + LT(_MOUSE, KC_COMM) , CTL_T(KC_SPACE) , LT(_NUMERIC, KC_ENT) , LT(_ARROWS, KC_DOT) + // |-------------------------+-------------------------| |-------------------------+-------------------------| ), [_NUMERIC] = LAYOUT( @@ -59,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_4 , KC_5 , KC_6 , KC_0 , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , KC_COMM , + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , KC_COMM , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| // |-------------------------+-------------------------| |-------------------------+-------------------------| XXXXXXX , UNICODE , XXXXXXX , XXXXXXX @@ -85,21 +79,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , C(KC_D) , C(KC_U) , XXXXXXX , + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , C(KC_D) , C(KC_U) , XXXXXXX , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| // |-------------------------+-------------------------| |-------------------------+-------------------------| XXXXXXX , _______ , XXXXXXX , XXXXXXX // |-------------------------+-------------------------| |-------------------------+-------------------------| ), - [_ADJUST] = LAYOUT( - //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------| - XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PRINT_SCREEN , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_UP , - //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------| - XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,S(KC_PRINT_SCREEN), XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,KC_AUDIO_VOL_DOWN, - //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------| - XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_MUTE , - //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------| + [_ADJ] = LAYOUT( + //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------| + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PRINT_SCREEN , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_UP , XXXXXXX , + //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------| + XXXXXXX , G(C(S(KC_G))), XXXXXXX , XXXXXXX ,S(KC_PRINT_SCREEN), XXXXXXX , XXXXXXX , XXXXXXX ,KC_AUDIO_VOL_DOWN, XXXXXXX , + //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------| + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_MUTE , XXXXXXX , + //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------| // |-------------------------+-------------------------| |-------------------------+-------------------------| XXXXXXX , _______ , XXXXXXX , XXXXXXX // |-------------------------+-------------------------| |-------------------------+-------------------------| @@ -122,12 +116,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| _______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - XXXXXXX , C(KC_X) , C(KC_C) , C(KC_V) , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , + XXXXXXX , KC_CUT , KC_COPY , KC_PASTE , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - _______ , XXXXXXX , XXXXXXX , C(KC_Z) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , + XXXXXXX , XXXXXXX , XXXXXXX , C(KC_Z) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| // |-------------------------+-------------------------| |-------------------------+-------------------------| - XXXXXXX , _______ , XXXXXXX , XXXXXXX + XXXXXXX , KC_ENTER , XXXXXXX , XXXXXXX // |-------------------------+-------------------------| |-------------------------+-------------------------| ), }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c index ad4448993ff..8ca414fdd0f 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c @@ -5,228 +5,84 @@ /* Online editor: https://joric.github.io/qle/ */ static const unsigned char PROGMEM font[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, - 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6, - 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, - 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE, - 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0x7F, 0x70, 0x60, 0x67, 0x67, - 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, - 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x67, - 0x67, 0x67, 0x67, 0x67, 0x7F, 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, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, - 0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE, - 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, - 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, - 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 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, - 0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66, - 0x66, 0x66, 0xE6, 0xFE, 0xFE, 0x06, - 0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6, - 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, - 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, - 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, - 0x60, 0x60, 0x67, 0x67, 0x67, 0x67, - 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, - 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 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, - 0x3F, 0x7F, 0x67, 0x66, 0x66, 0x66, - 0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60, - 0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, - 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 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, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, - 0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x0E, - 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, - 0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, - 0x66, 0x66, 0x06, 0x0E, 0xFE, 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, - 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, - 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, - 0x06, 0xCE, 0x9E, 0x9E, 0xCE, 0x06, - 0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6, - 0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, - 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70, - 0x60, 0x67, 0x67, 0x64, 0x60, 0x70, - 0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E, - 0x78, 0x70, 0x62, 0x67, 0x7F, 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, - 0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, - 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x60, - 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, - 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67, - 0x67, 0x67, 0x70, 0x78, 0x7F, 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, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, + 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 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, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0x7F, 0x70, 0x60, 0x67, 0x67, + 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, + 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, + 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 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, 0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66, 0x66, 0x66, 0xE6, + 0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, + 0xE6, 0xE6, 0xFE, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x60, + 0x60, 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 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, 0x3F, 0x7F, 0x67, 0x66, + 0x66, 0x66, 0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0x06, + 0x0E, 0xFE, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, 0x66, + 0x66, 0x06, 0x0E, 0xFE, 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, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xCE, 0x9E, 0x9E, + 0xCE, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, + 0x60, 0x7C, 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70, 0x60, 0x67, 0x67, 0x64, 0x60, 0x70, 0x7F, 0x7F, + 0x60, 0x60, 0x7E, 0x7E, 0x78, 0x70, 0x62, 0x67, 0x7F, 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, 0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x7F, + 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67, 0x67, 0x67, 0x70, 0x78, + 0x7F, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c index 5b177acc7c1..2d00ef4e3a7 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c @@ -4,454 +4,463 @@ #include QMK_KEYBOARD_H #include "keycodes.h" -/* Leader state */ -static bool is_leader_active = false; -void leader_start(void) { - is_leader_active = true; +/* Blank space to place modifiers */ +void add_blank(void) { + + oled_write_char(0x10, false); + oled_write_char(0x11, false); + oled_write_char(0x12, false); + oled_write_char(0x13, false); + oled_write_char(0x14, false); + + oled_write_char(0x30, false); + oled_write_char(0x31, false); + oled_write_char(0x32, false); + oled_write_char(0x33, false); + oled_write_char(0x34, false); } -void leader_end(void) { - is_leader_active = false; -} - void oled_display(void) { - /* Layers */ - switch (get_highest_layer(layer_state)) { - - case _BASE: ; - if (is_keyboard_master()) { - static const char PROGMEM qmk_logo_master[] = { - // 'raven', 32x128px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 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, 0xc0, 0xc0, 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, 0x07, 0x8f, 0x5f, 0x31, 0x79, 0x33, 0x7f, - 0x3b, 0x71, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4c, 0x02, 0x01, 0x95, 0xff, 0xb5, 0x05, 0x02, 0x4c, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x01, 0x01, 0x01, 0x7e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 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, 0xe0, - 0xf0, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9, - 0xfd, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00, - 0x00, 0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33, - 0x30, 0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, - 0xfc, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30, - 0x20, 0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(qmk_logo_master, sizeof(qmk_logo_master)); - - } else { - static const char PROGMEM qmk_logo_slave[] = { - // 'birds', 32x128px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x40, 0xc0, 0xe0, 0xd0, 0x88, 0x84, 0x04, 0x04, 0xc4, 0xc4, 0x08, 0x08, 0x10, 0x60, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xf8, 0x46, 0x81, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x74, 0x84, 0x06, 0x03, 0x81, - 0x42, 0x24, 0x18, 0x10, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x06, 0x08, 0x11, 0x12, 0x24, 0x24, 0x48, 0xc8, 0x48, 0x48, 0xc9, 0x49, 0x4a, - 0x4a, 0x26, 0x25, 0x25, 0x14, 0x14, 0x14, 0x1d, 0x15, 0x2e, 0x54, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x05, 0x02, 0x03, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x88, 0xc8, 0x08, 0x30, 0xc0, 0xc0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x04, 0x03, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x70, 0x18, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x50, 0x48, 0x48, 0x24, 0x24, 0x12, 0x0a, 0x05, 0x09, 0x13, 0x12, 0x22, 0x22, - 0xe1, 0x21, 0x21, 0x20, 0xe0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x07, 0x04, 0x00, 0x04, 0x07, 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, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(qmk_logo_slave, sizeof(qmk_logo_slave)); - } - break; - - case _NUMERIC: ; - static const char PROGMEM qmk_numeric[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e, - 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0, - 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, - 0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, - 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x0e, 0x1e, 0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, - 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff, - 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric)); - break; - - case _MOUSE: ; - static const char PROGMEM qmk_mouse[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 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, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, - 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, - 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, - 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, - 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse)); - break; - - case _ARROWS: ; - static const char PROGMEM qmk_arrows[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 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, - 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff, - 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 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, 0x03, - 0x03, 0x03, 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, 0x7c, 0x3c, 0x1c, 0x0c, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, 0x9e, 0x1e, 0x1e, 0x1e, - 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0e, 0x0c, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, - 0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, - 0x78, 0x78, 0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, - 0x30, 0x38, 0x3c, 0x3e, 0x1f, 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, 0xc0, 0xc0, - 0xc0, 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, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff, - 0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, - 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, 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(qmk_arrows, sizeof(qmk_arrows)); - break; - - case _ADJUST: ; - static const char PROGMEM qmk_adjust[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, 0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe1, 0xe1, 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, 0xff, 0xff, 0xff, 0x00, - 0x00, 0x00, 0x00, 0x00, 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, 0x3f, 0x3f, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, - 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 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, 0x1f, - 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_adjust, sizeof(qmk_adjust)); - break; - - case _FN: ; - static const char PROGMEM qmk_fn[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, - 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(qmk_fn, sizeof(qmk_fn)); - break; - - case _LEFT_HAND: ; - static const char PROGMEM qmk_left_hand[] = { - // 'layers_left_hand', 32x128px - 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe1, 0xf1, 0xf1, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, - 0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1f, 0x1f, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1e, 0xfc, 0xf8, 0xf0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, 0x1f, 0x0f - }; - - oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand)); - break; + /* Layers */ + switch (get_highest_layer(layer_state)) { + + case _BASE:; + if (is_keyboard_master()) { + static const char PROGMEM qmk_logo_master[] = { + // 'raven', 32x128px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xc0, 0xc0, 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, 0x07, 0x8f, 0x5f, 0x31, 0x79, 0x33, 0x7f, + 0x3b, 0x71, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4c, 0x02, 0x01, 0x95, 0xff, 0xb5, 0x05, 0x02, 0x4c, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x01, 0x01, 0x01, 0x7e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 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, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9, 0xfd, + 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00, 0x00, + 0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33, 0x30, + 0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, + 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30, 0x20, + 0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(qmk_logo_master, sizeof(qmk_logo_master)); + + } else { + static const char PROGMEM qmk_logo_slave[] = { + // 'birds', 32x128px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0xc0, 0xe0, 0xd0, 0x88, 0x84, 0x04, 0x04, 0xc4, 0xc4, 0x08, 0x08, 0x10, 0x60, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x46, 0x81, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x74, 0x84, 0x06, 0x03, 0x81, + 0x42, 0x24, 0x18, 0x10, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x08, 0x11, 0x12, 0x24, 0x24, 0x48, 0xc8, 0x48, 0x48, 0xc9, 0x49, 0x4a, + 0x4a, 0x26, 0x25, 0x25, 0x14, 0x14, 0x14, 0x1d, 0x15, 0x2e, 0x54, 0x60, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x05, 0x02, 0x03, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x88, 0xc8, 0x08, 0x30, 0xc0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x70, 0x18, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x50, 0x48, 0x48, 0x24, 0x24, 0x12, 0x0a, 0x05, 0x09, 0x13, 0x12, 0x22, 0x22, + 0xe1, 0x21, 0x21, 0x20, 0xe0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x07, 0x04, 0x00, 0x04, 0x07, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(qmk_logo_slave, sizeof(qmk_logo_slave)); + } + break; + + case _NUMERIC:; + static const char PROGMEM qmk_numeric[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, + 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, + 0xc7, 0xc7, 0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x1e, + 0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00}; + + oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric)); + break; + + case _MOUSE:; + static const char PROGMEM qmk_mouse[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 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, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xc0, 0xe0, 0xf0, + 0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, + 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00}; + + oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse)); + break; + + case _ARROWS:; + static const char PROGMEM qmk_arrows[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xfc, 0xf8, 0xf0, + 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, + 0x0f, 0x1f, 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x03, 0x03, 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, 0x7c, 0x3c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, + 0x9e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, + 0x0e, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, + 0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, + 0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x38, 0x3c, 0x3e, + 0x1f, 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, 0xc0, 0xc0, 0xc0, 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, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, + 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x03, 0x07, 0x0f, 0x1f, 0x3f, 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, 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(qmk_arrows, sizeof(qmk_arrows)); + break; + + case _ADJ:; + static const char PROGMEM qmk_ADJ[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, + 0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 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, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x3f, + 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, + 0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, + 0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 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, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00}; + + oled_write_raw_P(qmk_ADJ, sizeof(qmk_ADJ)); + break; + + case _FN:; + static const char PROGMEM qmk_fn[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(qmk_fn, sizeof(qmk_fn)); + break; + + case _LEFT_HAND:; + static const char PROGMEM qmk_left_hand[] = { + // 'layers_left_hand', 32x128px + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf1, 0xf1, 0x71, + 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, + 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, + 0x1e, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, + 0x1f, 0x0f}; + + oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand)); + break; + } + + /* Leader */ + if (leader_sequence_active()) { + + static const char PROGMEM qmk_leader[] = { + 0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, + 0x00, 0x00}; + + oled_write_raw_P(qmk_leader, sizeof(qmk_leader)); + } + + /* Modifier keys */ + if (get_mods()) { + + if (get_mods() & MOD_MASK_GUI) { + + oled_write_char(0x8B, false); + oled_write_char(0x8C, false); + oled_write_char(0x8D, false); + oled_write_char(0x8E, false); + oled_write_char(0x8F, false); + + oled_write_char(0xAB, false); + oled_write_char(0xAC, false); + oled_write_char(0xAD, false); + oled_write_char(0xAE, false); + oled_write_char(0xAF, false); + } else { + add_blank(); + } + + if (get_mods() & MOD_MASK_CTRL) { + + oled_write_char(0x01, false); + oled_write_char(0x02, false); + oled_write_char(0x03, false); + oled_write_char(0x04, false); + oled_write_char(0x05, false); + + oled_write_char(0x21, false); + oled_write_char(0x22, false); + oled_write_char(0x23, false); + oled_write_char(0x24, false); + oled_write_char(0x25, false); + } else { + add_blank(); } - /* Leader */ - if (is_leader_active) { - - static const char PROGMEM qmk_leader[] = { - 0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70, - 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, - 0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_leader, sizeof(qmk_leader)); + if (get_mods() & MOD_BIT(KC_LALT)) { + + oled_write_char(0x41, false); + oled_write_char(0x42, false); + oled_write_char(0x43, false); + oled_write_char(0x44, false); + oled_write_char(0x45, false); + + oled_write_char(0x61, false); + oled_write_char(0x62, false); + oled_write_char(0x63, false); + oled_write_char(0x64, false); + oled_write_char(0x65, false); + } else { + add_blank(); } - /* Modifier keys */ - if (get_mods()) { - - if (get_mods() & MOD_MASK_CTRL) { - - oled_write_char(0x01, false); - oled_write_char(0x02, false); - oled_write_char(0x03, false); - oled_write_char(0x04, false); - oled_write_char(0x05, false); - - oled_write_char(0x21, false); - oled_write_char(0x22, false); - oled_write_char(0x23, false); - oled_write_char(0x24, false); - oled_write_char(0x25, false); - } - if (get_mods() & MOD_BIT(KC_LALT)) { - - oled_write_char(0x41, false); - oled_write_char(0x42, false); - oled_write_char(0x43, false); - oled_write_char(0x44, false); - oled_write_char(0x45, false); - - oled_write_char(0x61, false); - oled_write_char(0x62, false); - oled_write_char(0x63, false); - oled_write_char(0x64, false); - oled_write_char(0x65, false); - } - if (get_mods() & MOD_BIT(KC_RALT)) { - - oled_write_char(0x81, false); - oled_write_char(0x82, false); - oled_write_char(0x83, false); - oled_write_char(0x84, false); - oled_write_char(0x85, false); - - oled_write_char(0xA1, false); - oled_write_char(0xA2, false); - oled_write_char(0xA3, false); - oled_write_char(0xA4, false); - oled_write_char(0xA5, false); - } - if (get_mods() & MOD_MASK_SHIFT) { - - oled_write_char(0x4B, false); - oled_write_char(0x4C, false); - oled_write_char(0x4D, false); - oled_write_char(0x4E, false); - oled_write_char(0x4F, false); - - oled_write_char(0x6B, false); - oled_write_char(0x6C, false); - oled_write_char(0x6D, false); - oled_write_char(0x6E, false); - oled_write_char(0x6F, false); - } - if (get_mods() & MOD_MASK_GUI) { - - oled_write_char(0x8B, false); - oled_write_char(0x8C, false); - oled_write_char(0x8D, false); - oled_write_char(0x8E, false); - oled_write_char(0x8F, false); - - oled_write_char(0xAB, false); - oled_write_char(0xAC, false); - oled_write_char(0xAD, false); - oled_write_char(0xAE, false); - oled_write_char(0xAF, false); - } + if (get_mods() & MOD_MASK_SHIFT) { + + oled_write_char(0x4B, false); + oled_write_char(0x4C, false); + oled_write_char(0x4D, false); + oled_write_char(0x4E, false); + oled_write_char(0x4F, false); + + oled_write_char(0x6B, false); + oled_write_char(0x6C, false); + oled_write_char(0x6D, false); + oled_write_char(0x6E, false); + oled_write_char(0x6F, false); + } else { + add_blank(); } + + if (get_mods() & MOD_BIT(KC_RALT)) { + + oled_write_char(0x81, false); + oled_write_char(0x82, false); + oled_write_char(0x83, false); + oled_write_char(0x84, false); + oled_write_char(0x85, false); + + oled_write_char(0xA1, false); + oled_write_char(0xA2, false); + oled_write_char(0xA3, false); + oled_write_char(0xA4, false); + oled_write_char(0xA5, false); + } + + // Add a line + oled_write_char(0xC1, false); + oled_write_char(0xC2, false); + oled_write_char(0xC3, false); + oled_write_char(0xC4, false); + oled_write_char(0xC5, false); + } }; bool oled_task_user(void) { - oled_display(); - return false; + oled_display(); + return false; } diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md index 3873ca45cfb..b70b3655da7 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md @@ -1,16 +1,16 @@ ### Custom aurora sweep keymap +This keymap is inspired by [optimot](https://optimot.fr) which is a French layout. +Nonetheless it uses the US international extended keymap for French keys. -This keymap is inspired by [optimot](https://bepo.fr/) which is a French layout. -Nonetheless all French characters are sent in unicode, so it works with the standard US ANSI layout. +It uses the _best_ QMK features : -It uses the *best* qmk features : -- combos ♥ -- auto shift -- leader +- combos ♥ +- auto shift +- leader I tried to optimise key positions for neovim and i3wm while limit digrams. -The oled screens are used to display the current layout, the modifier keys and the leader key. +The oled screens are used to display the current layout, the modifier keys and the leader key. ![oledmodifiers](https://i.imgur.com/on95jx0.png) ![oledmouse](https://i.imgur.com/PwkR6P2.png) @@ -27,104 +27,71 @@ Navigate into the keymap folder and launch this command for both sides : qmk compile && qmk flash -and : +And : - Click twice on the flash button and use nautilus for instance to clic on the keyboard. + Click twice on the flash button and use nautilus for instance to clic on the keyboard. Don't forget to flash with the double tap bootloader define before soldering. +#### Layout + +Set the us altgr international to activate French keys : + + /usr/share/X11/xkb/symbols/ + localectl list-x11-keymap-variants us + + setxkbmap us altgr-intl + #### Links [qmk](https://docs.qmk.fm/#/) [ferris sweep](https://github.com/davidphilipbarr/Sweep) -[splitkb](https://splitkb.com) +[splitkb](https://splitkb.com) #### Layouts -![base](https://i.imgur.com/E3hRkxW.png) -![numeric](https://i.imgur.com/GeC0reE.png) -![mouse](https://i.imgur.com/QhsWVrE.png) -![arrows](https://i.imgur.com/4sAfGAt.png) -![adjust](https://i.imgur.com/hcoN2P8.png) -![fn](https://i.imgur.com/dVunqFF.png) -![left hand](https://i.imgur.com/fk5YJj6.png) -![combo](https://i.imgur.com/aZ8TpuY.png) -![combo2](https://i.imgur.com/QayRuFA.png) -![combo3](https://i.imgur.com/YpnbMeh.png) - -#### French - -| - | | -|------------------|------------------------| -| space + e | é | -| space + i | ç | -| space + a | æ | -| space + o | œ | -| comma + a | à | -| comma + e | è | -| comma + i | ì | -| comma + o | ò | -| comma + u | ù | -| enter + a | â | -| enter + e | ê | -| enter + i | î | -| enter + o | ô | -| enter + u | û | -| dot + a | ä | -| dot + e | ë | -| dot + i | ï | -| dot + o | ö | -| dot + u | ü | -| dot + y | ÿ | +![base](https://i.imgur.com/i7NgrCD.png) +![numeric](https://i.imgur.com/6Yso40L.png) +![mouse](https://i.imgur.com/skSL4Lo.png) +![arrows](https://i.imgur.com/NIjJR2I.png) +![adjust](https://i.imgur.com/xj6i70P.png) +![fn](https://i.imgur.com/Q41ZdQi.png) +![left hand](https://i.imgur.com/WDEGxGM.png) +![combos](https://i.imgur.com/wj6DEY0.png) #### Leader -| - | | -|--------------------|------------------------| -| M + S | mail short | -| M + L | mail long | -| D + E + G | ° | -| C + O + P | © | -| R + E + G | ® | -| D + I + A | ø | -| D + I + A + M | Ø | -| E + U + R | € | -| P + O + U | £ | -| Y + E + N | ¥ | -| C + E + N | ¢ | -| P + I | π | -| P + I + I | Π | -| O + M + E | ω | -| O + M + E + G | Ω | -| U + P + F | ⁰ | -| D + N + F | ₀ | - -| - | | -|--------------------|------------------------| -| M + U + L | × | -| D + I + V | ÷ | -| P + M | ± | -| I + N + E | ≠ | -| A + L + M | ≈ | -| S + Q + U | √ | -| I + N + F | ∞ | -| < + < | ≤ | -| > + > | ≥ | -| F + S + T | ¼ | -| F + S + G | ½ | -| F + H + T | ¾ | - -| - | | -|--------------------|------------------------| -| F + L + A | ⚡ | -| S + P + A | ✨ | -| O + W + D | ⛔ | -| C + O + F | ☕ | -| U + M + B | ☔ | -| Y + E + S | ✅ | -| N + O | ❎ | -| C + R + O | ❌ | -| ? | ❔ | -| ! | ❕ | -| ? + ? | ❓ | -| ! + ! | ❗ | +| - | | +| ------------- | ---------- | +| M + S | mail short | +| M + L | mail long | +| D + E + G | ° | +| C + O + P | © | +| R + E + G | ® | +| D + I + A | ø | +| D + I + A + M | Ø | +| E + U + R | € | +| P + O + U | £ | +| Y + E + N | ¥ | +| C + E + N | ¢ | +| P + I | π | +| P + I + I | Π | +| O + M + E | ω | +| O + M + E + G | Ω | +| U + P + F | ⁰ | +| D + N + F | ₀ | + +| - | | +| --------- | --- | +| M + U + L | × | +| D + I + V | ÷ | +| P + M | ± | +| I + N + E | ≠ | +| A + L + M | ≈ | +| S + Q + U | √ | +| I + N + F | ∞ | +| < + < | ≤ | +| > + > | ≥ | +| F + S + T | ¼ | +| F + S + G | ½ | +| F + H + T | ¾ | diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk index d854cbb16be..585c589d3aa 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk @@ -2,12 +2,11 @@ LTO_ENABLE = yes CONVERT_TO = elite_pi SRC += features/auto_shift.c -SRC += features/combo.c +INTROSPECTION_KEYMAP_C = features/combo.c # Replace SRC, see issue #21137 SRC += features/leader.c SRC += oled/oled.c OLED_ENABLE = yes -OLED_DRIVER = SSD1306 MOUSEKEY_ENABLE = yes AUTO_SHIFT_ENABLE = yes @@ -15,8 +14,5 @@ AUTO_SHIFT_MODIFIERS = no COMBO_ENABLE = yes LEADER_ENABLE = yes -# Recommended for space cadet shift -COMMAND_ENABLE = no - UNICODE_ENABLE = yes SEND_STRING_ENABLE = yes diff --git a/keyboards/splitkb/aurora/sweep/rev1/config.h b/keyboards/splitkb/aurora/sweep/rev1/config.h index aa5bd24fdee..a3b2cc893e1 100644 --- a/keyboards/splitkb/aurora/sweep/rev1/config.h +++ b/keyboards/splitkb/aurora/sweep/rev1/config.h @@ -28,7 +28,7 @@ // Not yet available in `info.json` #ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 46 +# define RGB_MATRIX_SPLIT { 23, 23 } # define SPLIT_TRANSPORT_MIRROR #endif diff --git a/keyboards/splitkb/aurora/sweep/rev1/info.json b/keyboards/splitkb/aurora/sweep/rev1/info.json index ec85447084c..7d7fec921f4 100644 --- a/keyboards/splitkb/aurora/sweep/rev1/info.json +++ b/keyboards/splitkb/aurora/sweep/rev1/info.json @@ -105,7 +105,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 71, "y": 15}, {"flags": 2, "x": 51, "y": 8}, diff --git a/keyboards/splitkb/kyria/keymaps/asapjockey/rules.mk b/keyboards/splitkb/kyria/keymaps/asapjockey/rules.mk index 65b44a2982e..a64a9f4e15f 100644 --- a/keyboards/splitkb/kyria/keymaps/asapjockey/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/asapjockey/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow LEADER_ENABLE = yes # Enable the Leader Key feature diff --git a/keyboards/splitkb/kyria/keymaps/benji/rules.mk b/keyboards/splitkb/kyria/keymaps/benji/rules.mk index 35f8ec90c6f..7b3d2303508 100644 --- a/keyboards/splitkb/kyria/keymaps/benji/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/benji/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk index e7146a16407..c58bda2c50a 100644 --- a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk @@ -1,7 +1,6 @@ BOOTMAGIC_ENABLE = no BOOTLOADER = atmel-dfu OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow COMMAND_ENABLE = no # Disables the command feature @@ -11,4 +10,3 @@ CONSOLE_ENABLE = no AUDIO_ENABLE = no CAPS_WORD_ENABLE = yes CUSTOM_ONESHOT_ENABLE = yes - diff --git a/keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk b/keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk index 71feb286dac..968012ece1c 100644 --- a/keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk @@ -3,5 +3,4 @@ EXTRAKEY_ENABLE = yes LEADER_ENABLE = yes MOUSEKEY_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 RGBLIGHT_ENABLE = no diff --git a/keyboards/splitkb/kyria/keymaps/corodiak/rules.mk b/keyboards/splitkb/kyria/keymaps/corodiak/rules.mk index 59e2da986bb..2ed0ad91c79 100644 --- a/keyboards/splitkb/kyria/keymaps/corodiak/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/corodiak/rules.mk @@ -1,5 +1,4 @@ # OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays # ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow LEADER_ENABLE = yes # Enables the Leader shortcut funtionality diff --git a/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c b/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c index 3a5aa429d5b..e93857f4cce 100644 --- a/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c @@ -384,10 +384,10 @@ static void render_status(void) { oled_write_P(PSTR("\n"), false); // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); } diff --git a/keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk b/keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk index e2e6a326890..442170ccd66 100644 --- a/keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow RAW_ENABLE = no WPM_ENABLE = no diff --git a/keyboards/splitkb/kyria/keymaps/default/rules.mk b/keyboards/splitkb/kyria/keymaps/default/rules.mk index 83010735110..36a9c313733 100644 --- a/keyboards/splitkb/kyria/keymaps/default/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/default/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGB_MATRIX_ENABLE = no # Disable keyboard RGB matrix, as it is enabled by default on rev3 RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/splitkb/kyria/keymaps/ghidalgo93/rules.mk b/keyboards/splitkb/kyria/keymaps/ghidalgo93/rules.mk index d5d64865bb5..d1f3f0f9f47 100644 --- a/keyboards/splitkb/kyria/keymaps/ghidalgo93/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/ghidalgo93/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUTO_SHIFT_ENABLE = yes # Enable auto shift diff --git a/keyboards/splitkb/kyria/keymaps/gotham/rules.mk b/keyboards/splitkb/kyria/keymaps/gotham/rules.mk index be3789ce9b0..eff9494ff15 100644 --- a/keyboards/splitkb/kyria/keymaps/gotham/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/gotham/rules.mk @@ -3,7 +3,6 @@ ENCODER_ENABLE = yes # ENables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MOUSEKEY_ENABLE = no # Mouse keys OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays THUMBSTICK_ENABLE = yes # Enables analog thumbstick code ifeq ($(strip $(ENCODER_ENABLE)), yes) diff --git a/keyboards/splitkb/kyria/keymaps/j-inc/rules.mk b/keyboards/splitkb/kyria/keymaps/j-inc/rules.mk index 453d19ab3b4..7bcef000f3a 100644 --- a/keyboards/splitkb/kyria/keymaps/j-inc/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/j-inc/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow WPM_ENABLE = yes diff --git a/keyboards/splitkb/kyria/keymaps/jhelvy/rules.mk b/keyboards/splitkb/kyria/keymaps/jhelvy/rules.mk index a987a4ded23..21b26a04a4b 100644 --- a/keyboards/splitkb/kyria/keymaps/jhelvy/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/jhelvy/rules.mk @@ -1,6 +1,5 @@ AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow LEADER_ENABLE = no # Enable the Leader Key feature diff --git a/keyboards/splitkb/kyria/keymaps/jimmysjolund/rules.mk b/keyboards/splitkb/kyria/keymaps/jimmysjolund/rules.mk index 35f8ec90c6f..7b3d2303508 100644 --- a/keyboards/splitkb/kyria/keymaps/jimmysjolund/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/jimmysjolund/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/splitkb/kyria/keymaps/john-ezra/rules.mk b/keyboards/splitkb/kyria/keymaps/john-ezra/rules.mk index 87026b87564..802e7a0f8a9 100644 --- a/keyboards/splitkb/kyria/keymaps/john-ezra/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/john-ezra/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes # Enables the use of OLED displays -OLED_DRIVER = SSD1306 RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow NKRO_ENABLE = yes # Enable N-Key Rollover ENCODER_ENABLE = no # Disable Rotary Encoder diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk b/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk index 329b41e4e5d..61577a39a52 100644 --- a/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk @@ -2,7 +2,6 @@ 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 diff --git a/keyboards/splitkb/kyria/keymaps/lw/keymap.c b/keyboards/splitkb/kyria/keymaps/lw/keymap.c index 1ff1f54d058..8cc29c84631 100644 --- a/keyboards/splitkb/kyria/keymaps/lw/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/lw/keymap.c @@ -52,8 +52,6 @@ const uint32_t unicode_map[] PROGMEM = { [SECTION] = 0x00A7, // § [DEGREE] = 0x00B0, // ° }; -// usage: X(ACUTE), XP(CEDIL,CEDIL_MAJ) - // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -74,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTZ] = LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_DEL, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XP(APOST,QUOTE), KC_BSPC, // XP(APOST,QUOTE) or KC_QUOT + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, UP(APOST,QUOTE), KC_BSPC, // UP(APOST,QUOTE) or KC_QUOT KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_BSLS, KC_GRV, KC_LPRN, KC_RPRN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SCLN, KC_CAPS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), SC_SENT, KC_MINS, KC_EXLM, KC_SLSH ), @@ -138,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NAV] = LAYOUT( _______, KC_BRIU, KC_MNXT, KC_MFFD, KC_MPLY, KC_VOLU, KC_HOME, KC_PGUP, KC_UP, KC_PGDN, _______, KC_DEL, _______, KC_BRID, KC_MPRV, KC_MRWD, KC_MSTP, KC_VOLD, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCRL, KC_BSPC, - KC_LSFT, US_ACUT, US_DGRV, US_DCIR, US_DIAE, KC_MUTE, _______, UC_NEXT, KC_RSFT, KC_APP, KC_PSCR, XP(CEDIL,CEDIL_MAJ), XP(SECTION,DEGREE), _______, LCTL(KC_S), KC_INS, + KC_LSFT, US_ACUT, US_DGRV, US_DCIR, US_DIAE, KC_MUTE, _______, UC_NEXT, KC_RSFT, KC_APP, KC_PSCR, UP(CEDIL,CEDIL_MAJ), UP(SECTION,DEGREE), _______, LCTL(KC_S), KC_INS, KC_LCTL, KC_LGUI, KC_LALT, _______, MO(1), MO(2), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V) ), diff --git a/keyboards/splitkb/kyria/keymaps/lw/rules.mk b/keyboards/splitkb/kyria/keymaps/lw/rules.mk index 41156dd41c8..36553b7b25c 100644 --- a/keyboards/splitkb/kyria/keymaps/lw/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/lw/rules.mk @@ -1,6 +1,5 @@ OLED_ENABLE = no -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = no # Enables the use of one or more encoders RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODEMAP_ENABLE = yes # Enable unicode \ No newline at end of file +UNICODEMAP_ENABLE = yes # Enable unicode diff --git a/keyboards/splitkb/kyria/keymaps/maherma-adg/rules.mk b/keyboards/splitkb/kyria/keymaps/maherma-adg/rules.mk index f37eabe3d54..2f8de3561ef 100644 --- a/keyboards/splitkb/kyria/keymaps/maherma-adg/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/maherma-adg/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = no # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -MOUSEKEY_ENABLE = yes # Enable mouse movements \ No newline at end of file +MOUSEKEY_ENABLE = yes # Enable mouse movements diff --git a/keyboards/splitkb/kyria/keymaps/mattir/rules.mk b/keyboards/splitkb/kyria/keymaps/mattir/rules.mk index 9d1a91831e2..2a9ca4aff97 100644 --- a/keyboards/splitkb/kyria/keymaps/mattir/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/mattir/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow LEADER_ENABLE = yes # Enables the use of the leader key diff --git a/keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk b/keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk index 1931861cafa..9d1a8a631ec 100644 --- a/keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow LTO_ENABLE = yes diff --git a/keyboards/splitkb/kyria/keymaps/plattfot/rules.mk b/keyboards/splitkb/kyria/keymaps/plattfot/rules.mk index 4d148481ca7..f35aee8683d 100644 --- a/keyboards/splitkb/kyria/keymaps/plattfot/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/plattfot/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow LEADER_ENABLE = yes # Enable the Leader Key feature diff --git a/keyboards/splitkb/kyria/keymaps/rmw/keymap.c b/keyboards/splitkb/kyria/keymaps/rmw/keymap.c index be7bfe4c7ac..59b18de418d 100644 --- a/keyboards/splitkb/kyria/keymaps/rmw/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/rmw/keymap.c @@ -18,100 +18,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [QWERTY] = LAYOUT_stack( - KC_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T, - OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G, - TD(FRBK2) , KC_Z, KC_X, KC_C, KC_V, KC_B, TO(EDIT), KC_ESCAPE, - TO(ADJUST), TD(SGCA), TD(AGC), KC_BSPC, TD(SHNTC), - - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOT, - KC_DEL, TO(NUMPAD), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MS_BTN1, - SFTENT, KC_SPC, TD(GCA), TD(CTLALL), KC_CAPS + [QWERTY] = LAYOUT_split_3x6_5( + KC_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G, KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOT, + TD(FRBK2) , KC_Z, KC_X, KC_C, KC_V, KC_B, TO(EDIT), KC_ESCAPE, KC_DEL, TO(NUMPAD), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MS_BTN1, + TO(ADJUST), TD(SGCA), TD(AGC), KC_BSPC, TD(SHNTC), SFTENT, KC_SPC, TD(GCA), TD(CTLALL), KC_CAPS ), - [MINIMAK4] = LAYOUT_stack( - KC_TAB , KC_Q, KC_W, KC_D, KC_R, KC_K, - OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_T, LT(FSYM,KC_F), KC_G, - OSM(MOD_LSFT) , KC_Z, KC_X, KC_C, KC_V, KC_B, TO(EDIT), KC_ESCAPE, - _______, TO(ADJUST), TD(SGCA), KC_BSPC, TD(SHNTC), - - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, - KC_H, LT(JSYM,KC_J), KC_E, KC_L, LT(EDIT,KC_SCLN), KC_QUOT, - KC_DEL, TO(NUMPAD), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MINS, - SFTENT, KC_SPC, TD(GCA), TD(CTLALL), _______ + [MINIMAK4] = LAYOUT_split_3x6_5( + KC_TAB , KC_Q, KC_W, KC_D, KC_R, KC_K, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, + OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_T, LT(FSYM,KC_F), KC_G, KC_H, LT(JSYM,KC_J), KC_E, KC_L, LT(EDIT,KC_SCLN), KC_QUOT, + OSM(MOD_LSFT) , KC_Z, KC_X, KC_C, KC_V, KC_B, TO(EDIT), KC_ESCAPE, KC_DEL, TO(NUMPAD), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MINS, + _______, TO(ADJUST), TD(SGCA), KC_BSPC, TD(SHNTC), SFTENT, KC_SPC, TD(GCA), TD(CTLALL), _______ ), - [NUMPAD] = LAYOUT_stack( - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, TO(QWERTY), _______, - _______, _______, _______, _______ , _______, - - _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______, - _______, KC_4, KC_5, KC_6, KC_KP_PLUS , _______, - _______, TO(EDIT), _______, KC_1, KC_2, KC_3, KC_KP_SLASH, LCTL(KC_RIGHT), - _______, _______, KC_0, KC_DOT, _______ + [NUMPAD] = LAYOUT_split_3x6_5( + _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, KC_KP_PLUS , _______, + _______, _______, _______, _______, _______, _______, TO(QWERTY), _______, _______, TO(EDIT), _______, KC_1, KC_2, KC_3, KC_KP_SLASH, LCTL(KC_RIGHT), + _______, _______, _______, _______ , _______, _______, _______, KC_0, KC_DOT, _______ ), - [EDIT] = LAYOUT_stack( - _______, TASK_MAN, _______, SELW_LEFT, SELW_RIGHT, _______, - _______, _______ , LGUI(KC_GRV), MVW_LEFT, MVW_RIGHT , _______, - LCTL(KC_LEFT), R_UNDO, R_CUT , R_COPY , R_PASTE, R_REDO , TO(NUMPAD), FORM_GET, - _______, _______, _______, DEL_WRD, _______, - - NEW_TAB , KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______, - R_HOME , KC_LEFT, KC_DOWN, KC_RIGHT, R_END, _______, - FORM_PUT, TO(QWERTY), SEL_HOME, S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), SEL_END, _______, - _______, _______, _______, _______, _______ + [EDIT] = LAYOUT_split_3x6_5( + _______, TASK_MAN, _______, SELW_LEFT, SELW_RIGHT, _______, NEW_TAB , KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______, + _______, _______ , LGUI(KC_GRV), MVW_LEFT, MVW_RIGHT , _______, R_HOME , KC_LEFT, KC_DOWN, KC_RIGHT, R_END, _______, + LCTL(KC_LEFT), R_UNDO, R_CUT , R_COPY , R_PASTE, R_REDO , TO(NUMPAD), FORM_GET, FORM_PUT, TO(QWERTY), SEL_HOME, S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), SEL_END, _______, + _______, _______, _______, DEL_WRD, _______, _______, _______, _______, _______, _______ ), - [ADJUST] = LAYOUT_stack( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - TO(QWERTY), TO(EDIT), TO(NUMPAD), TO(JSYM), TO(FSYM), TO(MEDIA), - DF(MINIMAK4), DF(QWERTY), RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD,_______, _______, - _______, _______, _______, _______, _______, - - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______ + [ADJUST] = LAYOUT_split_3x6_5( + 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(QWERTY), TO(EDIT), TO(NUMPAD), TO(JSYM), TO(FSYM), TO(MEDIA), _______, _______, _______, _______, _______, _______, + DF(MINIMAK4), DF(QWERTY), RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [FSYM] = LAYOUT_stack( - _______, _______, _______, _______, _______, _______, - _______, _______, KC_TILD, KC_EXLM, _______, _______, - LCTL(KC_RIGHT), _______, TO(QWERTY), _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - - KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______, - KC_EQUAL, KC_MINUS, KC_UNDS, KC_PIPE, KC_COLON, KC_DQT, - _______, _______, _______, KC_PLUS, KC_BSLS, KC_SLSH, _______, _______, - _______, _______, _______, _______, _______ + [FSYM] = LAYOUT_split_3x6_5( + _______, _______, _______, _______, _______, _______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______, + _______, _______, KC_TILD, KC_EXLM, _______, _______, KC_EQUAL, KC_MINUS, KC_UNDS, KC_PIPE, KC_COLON, KC_DQT, + LCTL(KC_RIGHT), _______, TO(QWERTY), _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_BSLS, KC_SLSH, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [JSYM] = LAYOUT_stack( - _______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, - _______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT, - _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______, _______, - _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, - _______, _______, KC_QUES, KC_SLSH, KC_COLON, _______, - _______, _______, _______, _______, _______, TO(QWERTY), _______, LCTL(KC_LEFT), - _______, _______, _______, _______, _______ + [JSYM] = LAYOUT_split_3x6_5( + _______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, + _______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT, _______, _______, KC_QUES, KC_SLSH, KC_COLON, _______, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, _______, TO(QWERTY), _______, LCTL(KC_LEFT), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [MEDIA] = LAYOUT_stack( - _______, KC_WH_U, KC_WH_L, KC_MS_UP, KC_WH_R, _______, - _______, KC_WH_D, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, - _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, - _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, - KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE, KC_MRWD, KC_MFFD, _______ + [MEDIA] = LAYOUT_split_3x6_5( + _______, KC_WH_U, KC_WH_L, KC_MS_UP, KC_WH_R, _______, _______, _______, _______, _______, _______, _______, + _______, KC_WH_D, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, + _______, _______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE, KC_MRWD, KC_MFFD, _______ ) }; diff --git a/keyboards/splitkb/kyria/keymaps/shinze/keymap.c b/keyboards/splitkb/kyria/keymaps/shinze/keymap.c index 3483410525f..ecc70055b2c 100644 --- a/keyboards/splitkb/kyria/keymaps/shinze/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/shinze/keymap.c @@ -210,10 +210,10 @@ static void render_status(void) { } // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); } bool oled_task_user(void) { diff --git a/keyboards/splitkb/kyria/keymaps/shinze/rules.mk b/keyboards/splitkb/kyria/keymaps/shinze/rules.mk index 35f8ec90c6f..7b3d2303508 100644 --- a/keyboards/splitkb/kyria/keymaps/shinze/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/shinze/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/splitkb/kyria/keymaps/squigglybob/config.h b/keyboards/splitkb/kyria/keymaps/squigglybob/config.h new file mode 100755 index 00000000000..5ed5c847939 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/squigglybob/config.h @@ -0,0 +1,35 @@ +/* Copyright 2022 Thomas Baart + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#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_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 150 +#endif + +#define TAPPING_TOGGLE 2 // can double tap into a layer if set using TT +#define TAPPING_TERM 175 diff --git a/keyboards/splitkb/kyria/keymaps/squigglybob/keymap.c b/keyboards/splitkb/kyria/keymaps/squigglybob/keymap.c new file mode 100755 index 00000000000..2b5df2a8f5a --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/squigglybob/keymap.c @@ -0,0 +1,315 @@ +/* Copyright 2019 Thomas Baart **This program is free software : you can redistribute it and / or modify *it under the terms of the GNU General Public License as published by *the Free Software Foundation, either version 2 of the License, or *(at your option)any later version.**This program is distributed in the hope that it will be useful, *but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _DVERTY = 0, + _QWERTY, + _DVORAK, + _NAV, + _SYM, + _SYM_DVERTY, + _FUNCTION, + _ADJUST, +}; + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define DVERTY DF(_DVERTY) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define SYM_DVERTY MO(_SYM_DVERTY) +#define NAV MO(_NAV) +#define FKEYS MO(_FUNCTION) +#define ADJUST MO(_ADJUST) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) +#define CTL_ENT MT(MOD_LCTL, KC_ENT) +#define SFT_SPC MT(MOD_LSFT, KC_SPC) +#define ALT KC_LEFT_ALT + +#define UK_BKSL KC_NUBS // UK backslash +#define UK_PIPE S(UK_BKSL) // UK pipe symbol +#define DV_AT S(KC_Q) // Dvorak @ symbol + +// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. +// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and +// produces the key `tap` when tapped (i.e. pressed and released) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: QWERTY (default map) + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Base Layer: DVERTY (a qwerty layout keyboard optimised for a system running UK dvorak) + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | { [ |CapsLk| |F-keys| } ] | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt |Space/| Nav | | Sym |Enter/| RGUI | AltGr| Menu | + * | | | |LShift| | | | Ctrl | | | | + * `----------------------------------' `----------------------------------' + */ + [_DVERTY] = LAYOUT( + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_SCLN, CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_MINS,KC_CAPS, FKEYS , KC_EQL , KC_N, KC_M , KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST , KC_LGUI, ALT , SFT_SPC ,NAV, SYM_DVERTY, CTL_ENT , KC_RGUI,KC_RALT,KC_APP + ), + +/* + * Base Layer: Dvorak + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Nav Layer: Media, navigation + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SYM] = LAYOUT( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols for Dverty layout + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ~ | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | CTRL | ! | " | £ | $ | % | | ^ | & | * | ( | ) | # | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | SHIFT | \ | = | + | [ | { | | | | | | } | ] | / | ? | | | @ | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | / | ? | | layer| | | | | + * | | | | | | | off | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SYM_DVERTY] = LAYOUT( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_PIPE , + CTL_ESC, KC_EXLM , KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSLS, + KC_LSFT , UK_BKSL, KC_RBRC, KC_RCBR, KC_MINS, KC_UNDS, _______, _______, _______, _______, KC_PLUS, KC_EQL, KC_LBRC, KC_LCBR, UK_PIPE, DV_AT, + _______, _______, _______, KC_LBRC, KC_LCBR, _______, _______, _______, _______, _______ + ), + +/* + * Function Layer: Function keys + * + * ,-------------------------------------------. ,-------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | F7 | F8 | F9 | F10 | F11 | F12 | | | Shift| Ctrl | Alt | GUI | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_FUNCTION] = 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_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, _______ , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Adjust Layer: Default layer settings, RGB + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | |QWERTY| | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DVERTY , _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______, + _______, _______, _______, DVORAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ + ), + +// /* +// * Layer template +// * +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +}; + +/* The default OLED and rotary encoder code can be found at the bottom of qmk_firmware/keyboards/splitkb/kyria/rev1/rev1.c + * These default settings can be overriden by your own settings in your keymap.c + * For your convenience, here's a copy of those settings so that you can uncomment them if you wish to apply your own modifications. + * DO NOT edit the rev1.c file; instead override the weakly defined default functions by your own. + */ + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; } + +bool oled_task_user(void) { + if (is_keyboard_master()) { + // QMK Logo and version information + // clang-format off + 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}; + // clang-format on + + oled_write_P(qmk_logo, false); + oled_write_P(PSTR("Kyria rev2\n\n"), false); + + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state|default_layer_state)) { + case _QWERTY: + oled_write_P(PSTR("QWERTY\n"), false); + break; + case _DVORAK: + oled_write_P(PSTR("Dvorak\n"), false); + break; + case _DVERTY: + oled_write_P(PSTR("Dverty\n"), false); + break; + case _NAV: + oled_write_P(PSTR("Nav\n"), false); + break; + case _SYM_DVERTY: + oled_write_P(PSTR("Sym\n"), false); + break; + case _SYM: + oled_write_P(PSTR("Sym\n"), false); + break; + case _FUNCTION: + oled_write_P(PSTR("Function\n"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adjust\n"), false); + break; + default: + oled_write_P(PSTR("Undefined\n"), false); + } + + // Write host Keyboard LED Status to OLEDs + led_t led_usb_state = host_keyboard_led_state(); + oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); + } else { + // clang-format off + static const char PROGMEM kyria_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 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, 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,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,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, 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,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0, + 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 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, 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, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 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, 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, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 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, 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 + }; + // clang-format on + oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); + } + return false; +} +#endif diff --git a/keyboards/splitkb/kyria/keymaps/squigglybob/rules.mk b/keyboards/splitkb/kyria/keymaps/squigglybob/rules.mk new file mode 100755 index 00000000000..7de296873af --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/squigglybob/rules.mk @@ -0,0 +1,2 @@ +ENCODER_ENABLE = no +RGBLIGHT_ENABLE = yes diff --git a/keyboards/splitkb/kyria/keymaps/tessachka/keymap.c b/keyboards/splitkb/kyria/keymaps/tessachka/keymap.c index 6720a6b35c8..87f51c4cd35 100644 --- a/keyboards/splitkb/kyria/keymaps/tessachka/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/tessachka/keymap.c @@ -225,10 +225,10 @@ static void render_status(void) { } // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); } bool oled_task_user(void) { diff --git a/keyboards/splitkb/kyria/keymaps/tessachka/rules.mk b/keyboards/splitkb/kyria/keymaps/tessachka/rules.mk index e79a5604e04..7fe734fb724 100644 --- a/keyboards/splitkb/kyria/keymaps/tessachka/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/tessachka/rules.mk @@ -1,4 +1,3 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MOUSEKEY_ENABLE = yes diff --git a/keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c b/keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c index 3ed7dbee6e5..14ce1b1a6e1 100644 --- a/keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c @@ -286,10 +286,10 @@ static void render_status(void) { } // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); } bool oled_task_user(void) { diff --git a/keyboards/splitkb/kyria/keymaps/thomasbaart/rules.mk b/keyboards/splitkb/kyria/keymaps/thomasbaart/rules.mk index 65b44a2982e..a64a9f4e15f 100644 --- a/keyboards/splitkb/kyria/keymaps/thomasbaart/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/thomasbaart/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow LEADER_ENABLE = yes # Enable the Leader Key feature diff --git a/keyboards/splitkb/kyria/keymaps/travishi/rules.mk b/keyboards/splitkb/kyria/keymaps/travishi/rules.mk index a1564cfe4ba..398b5debfa7 100644 --- a/keyboards/splitkb/kyria/keymaps/travishi/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/travishi/rules.mk @@ -2,11 +2,10 @@ LEADER_ENABLE = yes RGBLIGHT_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays WPM_ENABLE = yes # Disabled features ENCODER_ENABLE = no # Enables the use of one or more encoders -MOUSEKEY_ENABLE = no \ No newline at end of file +MOUSEKEY_ENABLE = no diff --git a/keyboards/splitkb/kyria/keymaps/uqs/keymap.c b/keyboards/splitkb/kyria/keymaps/uqs/keymap.c index 9d3d6d1f668..398b167e725 100644 --- a/keyboards/splitkb/kyria/keymaps/uqs/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/uqs/keymap.c @@ -22,16 +22,11 @@ R45, R46, R47, \ R32, R33 \ ) \ -LAYOUT_stack( \ - L00, L01, L02, L03, L04, L05, \ - L12, L13, L14, L15, L16, L17, \ - L24, L25, L26, L27, L28, L29, L30, L31, \ - L40, L41, L42, L43, L44, \ - \ - R06, R07, R08, R09, R10, R11, \ - R18, R19, R20, R21, R22, R23, \ - R32, R33, R34, R35, R36, R37, R38, R39, \ - R45, R46, R47, R48, R49 \ +LAYOUT_split_3x6_5( \ + L00, L01, L02, L03, L04, L05, R06, R07, R08, R09, R10, R11, \ + L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \ + L24, L25, L26, L27, L28, L29, L30, L31, R32, R33, R34, R35, R36, R37, R38, R39, \ + L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \ ) // clang-format off diff --git a/keyboards/splitkb/kyria/keymaps/via/rules.mk b/keyboards/splitkb/kyria/keymaps/via/rules.mk index 0f12ae88e1c..351b0740279 100644 --- a/keyboards/splitkb/kyria/keymaps/via/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/via/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more encoders VIA_ENABLE = yes NKRO_ENABLE = yes diff --git a/keyboards/splitkb/kyria/keymaps/winternebs/rules.mk b/keyboards/splitkb/kyria/keymaps/winternebs/rules.mk index 47a3988e6e2..c09579035c1 100755 --- a/keyboards/splitkb/kyria/keymaps/winternebs/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/winternebs/rules.mk @@ -1,5 +1,4 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays ENCODER_ENABLE = yes # Enables the use of one or more NKRO_ENABLE = yes WPM_ENABLE = yes diff --git a/keyboards/splitkb/kyria/rev1/config.h b/keyboards/splitkb/kyria/rev1/config.h index 3f7655d4316..6c21b12a849 100644 --- a/keyboards/splitkb/kyria/rev1/config.h +++ b/keyboards/splitkb/kyria/rev1/config.h @@ -41,10 +41,6 @@ along with this program. If not, see . # define SOFT_SERIAL_PIN D2 #endif -#define RGBLED_SPLIT \ - { 10, 10 } -#define RGBLED_NUM 20 - #ifdef OLED_ENABLE # define OLED_DISPLAY_128X64 # define SPLIT_OLED_ENABLE @@ -53,7 +49,7 @@ along with this program. If not, see . /* RGB matrix support */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define RGB_MATRIX_LED_COUNT RGBLED_NUM // Number of LEDs +# define RGB_MATRIX_LED_COUNT 20 // Number of LEDs # define RGB_MATRIX_SPLIT { 10, 10 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 # define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/splitkb/kyria/rev1/info.json b/keyboards/splitkb/kyria/rev1/info.json index 2e380145a08..aa38a7dd0c6 100644 --- a/keyboards/splitkb/kyria/rev1/info.json +++ b/keyboards/splitkb/kyria/rev1/info.json @@ -4,8 +4,12 @@ "pid": "0x9D9D", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 20, + "split_count": [10, 10] + }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], @@ -90,67 +94,6 @@ {"matrix": [7, 3], "x": 12, "y": 3.25}, {"matrix": [7, 4], "x": 13, "y": 3.25} ] - }, - "LAYOUT_stack": { - "layout": [ - {"matrix": [0, 7], "x": 0, "y": 0}, - {"matrix": [0, 6], "x": 1, "y": 0}, - {"matrix": [0, 5], "x": 2, "y": 0}, - {"matrix": [0, 4], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 2], "x": 5, "y": 0}, - - {"matrix": [1, 7], "x": 6, "y": 0}, - {"matrix": [1, 6], "x": 7, "y": 0}, - {"matrix": [1, 5], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [1, 3], "x": 10, "y": 0}, - {"matrix": [1, 2], "x": 11, "y": 0}, - - {"matrix": [2, 7], "x": 12, "y": 0}, - {"matrix": [2, 6], "x": 13, "y": 0}, - {"matrix": [2, 5], "x": 14, "y": 0}, - {"matrix": [2, 4], "x": 15, "y": 0}, - {"matrix": [2, 3], "x": 16, "y": 0}, - {"matrix": [2, 2], "x": 17, "y": 0}, - {"matrix": [2, 1], "x": 18, "y": 0}, - {"matrix": [2, 0], "x": 19, "y": 0}, - - {"matrix": [3, 4], "x": 20, "y": 0}, - {"matrix": [3, 3], "x": 21, "y": 0}, - {"matrix": [3, 2], "x": 22, "y": 0}, - {"matrix": [3, 1], "x": 23, "y": 0}, - {"matrix": [3, 0], "x": 24, "y": 0}, - - {"matrix": [4, 2], "x": 25, "y": 0}, - {"matrix": [4, 3], "x": 26, "y": 0}, - {"matrix": [4, 4], "x": 27, "y": 0}, - {"matrix": [4, 5], "x": 28, "y": 0}, - {"matrix": [4, 6], "x": 29, "y": 0}, - {"matrix": [4, 7], "x": 30, "y": 0}, - - {"matrix": [5, 2], "x": 31, "y": 0}, - {"matrix": [5, 3], "x": 32, "y": 0}, - {"matrix": [5, 4], "x": 33, "y": 0}, - {"matrix": [5, 5], "x": 34, "y": 0}, - {"matrix": [5, 6], "x": 35, "y": 0}, - {"matrix": [5, 7], "x": 36, "y": 0}, - - {"matrix": [6, 0], "x": 37, "y": 0}, - {"matrix": [6, 1], "x": 38, "y": 0}, - {"matrix": [6, 2], "x": 39, "y": 0}, - {"matrix": [6, 3], "x": 40, "y": 0}, - {"matrix": [6, 4], "x": 41, "y": 0}, - {"matrix": [6, 5], "x": 42, "y": 0}, - {"matrix": [6, 6], "x": 43, "y": 0}, - {"matrix": [6, 7], "x": 44, "y": 0}, - - {"matrix": [7, 0], "x": 45, "y": 0}, - {"matrix": [7, 1], "x": 46, "y": 0}, - {"matrix": [7, 2], "x": 47, "y": 0}, - {"matrix": [7, 3], "x": 48, "y": 0}, - {"matrix": [7, 4], "x": 49, "y": 0} - ] } } } diff --git a/keyboards/splitkb/kyria/rev2/config.h b/keyboards/splitkb/kyria/rev2/config.h index 1e8dd027279..198688772be 100644 --- a/keyboards/splitkb/kyria/rev2/config.h +++ b/keyboards/splitkb/kyria/rev2/config.h @@ -47,10 +47,6 @@ along with this program. If not, see . # define SOFT_SERIAL_PIN D2 #endif -#define RGBLED_SPLIT \ - { 10, 10 } -#define RGBLED_NUM 20 - #ifdef OLED_ENABLE # define OLED_DISPLAY_128X64 # define SPLIT_OLED_ENABLE @@ -59,7 +55,7 @@ along with this program. If not, see . /* RGB matrix support */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define RGB_MATRIX_LED_COUNT RGBLED_NUM // Number of LEDs +# define RGB_MATRIX_LED_COUNT 20 // Number of LEDs # define RGB_MATRIX_SPLIT { 10, 10 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 # define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/splitkb/kyria/rev2/info.json b/keyboards/splitkb/kyria/rev2/info.json index 9b745dc906f..6e362d95483 100644 --- a/keyboards/splitkb/kyria/rev2/info.json +++ b/keyboards/splitkb/kyria/rev2/info.json @@ -4,8 +4,12 @@ "pid": "0x9D9D", "device_version": "0.0.2" }, + "rgblight": { + "led_count": 20, + "split_count": [10, 10] + }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B2", "B6", "B5", "B4", "E6", "D7", "C6", "D4"], @@ -33,10 +37,10 @@ } }, "layout_aliases": { - "LAYOUT_split_3x6_5": "LAYOUT" + "LAYOUT": "LAYOUT_split_3x6_5" }, "layouts": { - "LAYOUT": { + "LAYOUT_split_3x6_5": { "layout": [ {"matrix": [0, 7], "x": 0, "y": 0.75}, {"matrix": [0, 6], "x": 1, "y": 0.75}, @@ -96,67 +100,6 @@ {"matrix": [7, 3], "x": 12, "y": 3.25}, {"matrix": [7, 5], "x": 13, "y": 3.25} ] - }, - "LAYOUT_stack": { - "layout": [ - {"matrix": [0, 7], "x": 0, "y": 0}, - {"matrix": [0, 6], "x": 1, "y": 0}, - {"matrix": [0, 5], "x": 2, "y": 0}, - {"matrix": [0, 4], "x": 3, "y": 0}, - {"matrix": [0, 3], "x": 4, "y": 0}, - {"matrix": [0, 2], "x": 5, "y": 0}, - - {"matrix": [1, 7], "x": 6, "y": 0}, - {"matrix": [1, 6], "x": 7, "y": 0}, - {"matrix": [1, 5], "x": 8, "y": 0}, - {"matrix": [1, 4], "x": 9, "y": 0}, - {"matrix": [1, 3], "x": 10, "y": 0}, - {"matrix": [1, 2], "x": 11, "y": 0}, - - {"matrix": [2, 7], "x": 12, "y": 0}, - {"matrix": [2, 6], "x": 13, "y": 0}, - {"matrix": [2, 5], "x": 14, "y": 0}, - {"matrix": [2, 4], "x": 15, "y": 0}, - {"matrix": [2, 3], "x": 16, "y": 0}, - {"matrix": [2, 2], "x": 17, "y": 0}, - {"matrix": [2, 1], "x": 18, "y": 0}, - {"matrix": [2, 0], "x": 19, "y": 0}, - - {"matrix": [3, 5], "x": 20, "y": 0}, - {"matrix": [3, 3], "x": 21, "y": 0}, - {"matrix": [3, 2], "x": 22, "y": 0}, - {"matrix": [3, 1], "x": 23, "y": 0}, - {"matrix": [3, 0], "x": 24, "y": 0}, - - {"matrix": [4, 2], "x": 25, "y": 0}, - {"matrix": [4, 3], "x": 26, "y": 0}, - {"matrix": [4, 4], "x": 27, "y": 0}, - {"matrix": [4, 5], "x": 28, "y": 0}, - {"matrix": [4, 6], "x": 29, "y": 0}, - {"matrix": [4, 7], "x": 30, "y": 0}, - - {"matrix": [5, 2], "x": 31, "y": 0}, - {"matrix": [5, 3], "x": 32, "y": 0}, - {"matrix": [5, 4], "x": 33, "y": 0}, - {"matrix": [5, 5], "x": 34, "y": 0}, - {"matrix": [5, 6], "x": 35, "y": 0}, - {"matrix": [5, 7], "x": 36, "y": 0}, - - {"matrix": [6, 0], "x": 37, "y": 0}, - {"matrix": [6, 1], "x": 38, "y": 0}, - {"matrix": [6, 2], "x": 39, "y": 0}, - {"matrix": [6, 3], "x": 40, "y": 0}, - {"matrix": [6, 4], "x": 41, "y": 0}, - {"matrix": [6, 5], "x": 42, "y": 0}, - {"matrix": [6, 6], "x": 43, "y": 0}, - {"matrix": [6, 7], "x": 44, "y": 0}, - - {"matrix": [7, 0], "x": 45, "y": 0}, - {"matrix": [7, 1], "x": 46, "y": 0}, - {"matrix": [7, 2], "x": 47, "y": 0}, - {"matrix": [7, 3], "x": 48, "y": 0}, - {"matrix": [7, 5], "x": 49, "y": 0} - ] } } } diff --git a/keyboards/splitkb/kyria/rev3/config.h b/keyboards/splitkb/kyria/rev3/config.h index 3c620d90197..5168e8678e5 100644 --- a/keyboards/splitkb/kyria/rev3/config.h +++ b/keyboards/splitkb/kyria/rev3/config.h @@ -28,7 +28,7 @@ // Not yet available in `info.json` #ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM -# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_LED_COUNT 62 +# define RGB_MATRIX_SPLIT { 31, 31 } # define SPLIT_TRANSPORT_MIRROR #endif diff --git a/keyboards/splitkb/kyria/rev3/info.json b/keyboards/splitkb/kyria/rev3/info.json index 97b953534d0..29bea953230 100644 --- a/keyboards/splitkb/kyria/rev3/info.json +++ b/keyboards/splitkb/kyria/rev3/info.json @@ -16,8 +16,11 @@ "oled": true, "rgb_matrix": true }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_5" + }, "layouts": { - "LAYOUT": { + "LAYOUT_split_3x6_5": { "layout": [ {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, @@ -25,6 +28,7 @@ {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, + {"label": "R01", "matrix": [4, 1], "x": 10.5, "y": 0.5}, {"label": "R02", "matrix": [4, 2], "x": 11.5, "y": 0.25}, {"label": "R03", "matrix": [4, 3], "x": 12.5, "y": 0}, @@ -38,6 +42,7 @@ {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, + {"label": "R07", "matrix": [5, 1], "x": 10.5, "y": 1.5}, {"label": "R08", "matrix": [5, 2], "x": 11.5, "y": 1.25}, {"label": "R09", "matrix": [5, 3], "x": 12.5, "y": 1}, @@ -53,6 +58,7 @@ {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5}, {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3}, {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25}, + {"label": "R13", "matrix": [6, 0], "x": 8.5, "y": 3.25}, {"label": "R14", "matrix": [7, 3], "x": 9.5, "y": 3}, {"label": "R15", "matrix": [6, 1], "x": 10.5, "y": 2.5}, @@ -67,66 +73,6 @@ {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5}, {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4}, {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25}, - {"label": "R21", "matrix": [7, 0], "x": 9, "y": 4.25}, - {"label": "R22", "matrix": [7, 5], "x": 10, "y": 4}, - {"label": "R23", "matrix": [7, 1], "x": 11, "y": 3.5}, - {"label": "R24", "matrix": [7, 2], "x": 12, "y": 3.25}, - {"label": "R25", "matrix": [7, 4], "x": 13, "y": 3.25} - ] - }, - "LAYOUT_stack": { - "layout": [ - {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, - {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, - {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25}, - {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, - {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, - - {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75}, - {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75}, - {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25}, - {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, - {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, - - {"label": "L20", "matrix": [2, 6], "x": 0, "y": 2.75}, - {"label": "L19", "matrix": [2, 5], "x": 1, "y": 2.75}, - {"label": "L18", "matrix": [2, 4], "x": 2, "y": 2.25}, - {"label": "L17", "matrix": [2, 3], "x": 3, "y": 2}, - {"label": "L16", "matrix": [2, 2], "x": 4, "y": 2.25}, - {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5}, - {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3}, - {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25}, - - {"label": "L25", "matrix": [3, 4], "x": 2.5, "y": 3.25}, - {"label": "L24", "matrix": [3, 2], "x": 3.5, "y": 3.25}, - {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5}, - {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4}, - {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25}, - - {"label": "R01", "matrix": [4, 1], "x": 10.5, "y": 0.5}, - {"label": "R02", "matrix": [4, 2], "x": 11.5, "y": 0.25}, - {"label": "R03", "matrix": [4, 3], "x": 12.5, "y": 0}, - {"label": "R04", "matrix": [4, 4], "x": 13.5, "y": 0.25}, - {"label": "R05", "matrix": [4, 5], "x": 14.5, "y": 0.75}, - {"label": "R06", "matrix": [4, 6], "x": 15.5, "y": 0.75}, - - {"label": "R07", "matrix": [5, 1], "x": 10.5, "y": 1.5}, - {"label": "R08", "matrix": [5, 2], "x": 11.5, "y": 1.25}, - {"label": "R09", "matrix": [5, 3], "x": 12.5, "y": 1}, - {"label": "R10", "matrix": [5, 4], "x": 13.5, "y": 1.25}, - {"label": "R11", "matrix": [5, 5], "x": 14.5, "y": 1.75}, - {"label": "R12", "matrix": [5, 6], "x": 15.5, "y": 1.75}, - - {"label": "R13", "matrix": [6, 0], "x": 8.5, "y": 3.25}, - {"label": "R14", "matrix": [7, 3], "x": 9.5, "y": 3}, - {"label": "R15", "matrix": [6, 1], "x": 10.5, "y": 2.5}, - {"label": "R16", "matrix": [6, 2], "x": 11.5, "y": 2.25}, - {"label": "R17", "matrix": [6, 3], "x": 12.5, "y": 2}, - {"label": "R18", "matrix": [6, 4], "x": 13.5, "y": 2.25}, - {"label": "R19", "matrix": [6, 5], "x": 14.5, "y": 2.75}, - {"label": "R20", "matrix": [6, 6], "x": 15.5, "y": 2.75}, {"label": "R21", "matrix": [7, 0], "x": 9, "y": 4.25}, {"label": "R22", "matrix": [7, 5], "x": 10, "y": 4}, @@ -177,7 +123,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 2, "x": 75, "y": 2}, // L RGB1 {"flags": 2, "x": 50, "y": 1}, // L RGB2 diff --git a/keyboards/splitkb/zima/config.h b/keyboards/splitkb/zima/config.h index fca70ae030c..ec6e8f3171d 100644 --- a/keyboards/splitkb/zima/config.h +++ b/keyboards/splitkb/zima/config.h @@ -21,24 +21,13 @@ along with this program. If not, see . #define AUDIO_CLICKY #define NO_MUSIC_MODE -#define RGBLED_NUM 5 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_TWINKLE - -#define FB_ERM_LRA 0 -#define FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 0 +#define DRV2605L_FB_BRAKEFACTOR 3 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* Please refer to your datasheet for the optimal setting for your specific motor. */ -#define RATED_VOLTAGE 3 -#define V_PEAK 5 +#define DRV2605L_RATED_VOLTAGE 3 +#define DRV2605L_V_PEAK 5 -#define DRV_GREETING alert_750ms -#define DRV_MODE_DEFAULT buzz +#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 +#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_BUZZ_1_100 diff --git a/keyboards/splitkb/zima/info.json b/keyboards/splitkb/zima/info.json index 6cb53f372fb..0c6a104c528 100644 --- a/keyboards/splitkb/zima/info.json +++ b/keyboards/splitkb/zima/info.json @@ -8,6 +8,19 @@ "pid": "0xF75B", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/splitkb/zima/rules.mk b/keyboards/splitkb/zima/rules.mk index fb9a5856566..3bcfccdd7bd 100644 --- a/keyboards/splitkb/zima/rules.mk +++ b/keyboards/splitkb/zima/rules.mk @@ -13,8 +13,7 @@ AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes # ENables the use of one or more encoders OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enables the use of OLED displays HAPTIC_ENABLE = yes # Supported but not included by defaut -HAPTIC_DRIVER = DRV2605L +HAPTIC_DRIVER = drv2605l LTO_ENABLE = yes diff --git a/keyboards/star75/config.h b/keyboards/star75/config.h index 980009fe0bd..056ee84a8f3 100644 --- a/keyboards/star75/config.h +++ b/keyboards/star75/config.h @@ -9,20 +9,5 @@ SPDX-License-Identifier: GPL-2.0-or-later */ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 1 #define RGBLIGHT_LAYERS -#define RGBLIGHT_LED_MAP { 0, 1 } -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/star75/info.json b/keyboards/star75/info.json index c6368ca5682..b42341ad30c 100644 --- a/keyboards/star75/info.json +++ b/keyboards/star75/info.json @@ -12,7 +12,22 @@ "pin": "B3" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "max_brightness": 180, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "E6"], diff --git a/keyboards/stello65/beta/beta.c b/keyboards/stello65/beta/beta.c deleted file mode 100644 index fa191358149..00000000000 --- a/keyboards/stello65/beta/beta.c +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2021 @wekey (@@wekey) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#if defined(ENCODER_ENABLE) -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code_delay(KC_VOLU, 10); - } else { - tap_code_delay(KC_VOLD, 10); - } - } - return true; -} -#endif diff --git a/keyboards/stello65/beta/info.json b/keyboards/stello65/beta/info.json index 0eee3caad32..9236d322b9f 100644 --- a/keyboards/stello65/beta/info.json +++ b/keyboards/stello65/beta/info.json @@ -8,6 +8,9 @@ "pid": "0x0003", "device_version": "0.0.1" }, + "build": { + "debounce_type": "sym_defer_pk" + }, "matrix_pins": { "cols": ["C7", "B6", "B5", "B4", "D7", "D6", "D4", "D5"], "rows": ["F0", "E6", "D0", "D1", "C6", "F7", "F6", "F5", "F4", "F1"] diff --git a/keyboards/stello65/beta/rules.mk b/keyboards/stello65/beta/rules.mk index 0e8233e5dab..131aa72aeb5 100644 --- a/keyboards/stello65/beta/rules.mk +++ b/keyboards/stello65/beta/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes -DEBOUNCE_TYPE = sym_defer_pk diff --git a/keyboards/stello65/hs_rev1/config.h b/keyboards/stello65/hs_rev1/config.h index 88bc32e8ae6..81fc04139c7 100644 --- a/keyboards/stello65/hs_rev1/config.h +++ b/keyboards/stello65/hs_rev1/config.h @@ -3,23 +3,6 @@ #pragma once -# define RGBLED_NUM 4 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/stello65/hs_rev1/info.json b/keyboards/stello65/hs_rev1/info.json index 5b426cfa090..cccaf7ccee3 100644 --- a/keyboards/stello65/hs_rev1/info.json +++ b/keyboards/stello65/hs_rev1/info.json @@ -8,6 +8,21 @@ "pid": "0x0004", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/stello65/sl_rev1/config.h b/keyboards/stello65/sl_rev1/config.h index 88bc32e8ae6..81fc04139c7 100644 --- a/keyboards/stello65/sl_rev1/config.h +++ b/keyboards/stello65/sl_rev1/config.h @@ -3,23 +3,6 @@ #pragma once -# define RGBLED_NUM 4 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/stello65/sl_rev1/info.json b/keyboards/stello65/sl_rev1/info.json index 36ae9191716..e89c5a5bdf2 100644 --- a/keyboards/stello65/sl_rev1/info.json +++ b/keyboards/stello65/sl_rev1/info.json @@ -8,6 +8,21 @@ "pid": "0x0005", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/stratos/config.h b/keyboards/stratos/config.h deleted file mode 100644 index 0dfaee1d903..00000000000 --- a/keyboards/stratos/config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright 2021 kb-elmo - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB LEDs */ -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/stratos/info.json b/keyboards/stratos/info.json index c44e46a1f90..e4f6c808fd5 100644 --- a/keyboards/stratos/info.json +++ b/keyboards/stratos/info.json @@ -12,7 +12,23 @@ "pin": "D2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["F4", "F7", "F5", "F6", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3"], diff --git a/keyboards/stront/config.h b/keyboards/stront/config.h new file mode 100644 index 00000000000..4c88e411acc --- /dev/null +++ b/keyboards/stront/config.h @@ -0,0 +1,95 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_PIN_SWAP +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +/* any side can be master by default, enable split sync to support it */ +#define EE_HANDS +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_MODS_ENABLE +#define SPLIT_POINTING_ENABLE + +/* SPI config for display/touchpad */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP10 +#define SPI_MOSI_PIN GP11 +#define SPI_MISO_PIN GP12 + +/* touchpad config */ +#define POINTING_DEVICE_RIGHT +#define POINTING_DEVICE_CS_PIN GP9 +#define POINTING_DEVICE_ROTATION_180 +#define CIRQUE_PINNACLE_DIAMETER_MM 40 + +/* LCD config */ +#define LCD_DC_PIN GP12 +#define LCD_CS_PIN GP9 +#define LCD_RST_PIN GP13 +#define BACKLIGHT_PWM_DRIVER PWMD7 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A +#define QUANTUM_PAINTER_LVGL_USE_CUSTOM_CONF + +/* RGB config */ +#ifdef RGB_MATRIX_ENABLE +# define SPLIT_TRANSPORT_MIRROR +# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_MATRIX_KEYPRESSES + +# define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes +# define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +# define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +# define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +# define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient Chevron shaped scrolling left to right +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +# define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +# define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +# define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back +# define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left +# define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Single hue fractal filled keys pulsing horizontally out to edges +# define ENABLE_RGB_MATRIX_PIXEL_FLOW // Pulsing RGB flow along LED wiring with random hues +# define ENABLE_RGB_MATRIX_PIXEL_RAIN // Randomly light keys with random hues +# if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +# endif +# if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +# define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +# define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +# define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out +# endif +#endif diff --git a/keyboards/stront/display.c b/keyboards/stront/display.c new file mode 100644 index 00000000000..f7b071d1a9a --- /dev/null +++ b/keyboards/stront/display.c @@ -0,0 +1,125 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "display.h" +#include "qp.h" +#include "lvgl_helpers.h" + +/* shared styles */ +lv_style_t style_screen; +lv_style_t style_container; +lv_style_t style_button; +lv_style_t style_button_active; + +/* screens */ +static lv_obj_t *screen_home; + +/* home screen content */ +static lv_obj_t *label_shift; +static lv_obj_t *label_ctrl; +static lv_obj_t *label_alt; +static lv_obj_t *label_gui; +static lv_obj_t *label_caps; + +void init_styles(void) { + lv_style_init(&style_screen); + lv_style_set_bg_color(&style_screen, lv_color_black()); + + lv_style_init(&style_container); + lv_style_set_pad_top(&style_container, 0); + lv_style_set_pad_bottom(&style_container, 0); + lv_style_set_pad_left(&style_container, 0); + lv_style_set_pad_right(&style_container, 0); + lv_style_set_bg_opa(&style_container, 0); + lv_style_set_border_width(&style_container, 0); + lv_style_set_width(&style_container, lv_pct(100)); + lv_style_set_height(&style_container, LV_SIZE_CONTENT); + + lv_style_init(&style_button); + lv_style_set_pad_top(&style_button, 4); + lv_style_set_pad_bottom(&style_button, 4); + lv_style_set_pad_left(&style_button, 4); + lv_style_set_pad_right(&style_button, 4); + lv_style_set_radius(&style_button, 6); + lv_style_set_text_color(&style_button, lv_palette_main(LV_PALETTE_AMBER)); + + lv_style_init(&style_button_active); + lv_style_set_bg_color(&style_button_active, lv_palette_main(LV_PALETTE_AMBER)); + lv_style_set_bg_opa(&style_button_active, LV_OPA_100); + lv_style_set_text_color(&style_button_active, lv_color_black()); +} + +void init_screen_home(void) { + screen_home = lv_scr_act(); + + lv_obj_add_style(screen_home, &style_screen, 0); + use_flex_column(screen_home); + + lv_obj_t *mods = lv_obj_create(screen_home); + lv_obj_add_style(mods, &style_container, 0); + use_flex_column(mods); + + lv_obj_t *mods_row1 = lv_obj_create(mods); + lv_obj_add_style(mods_row1, &style_container, 0); + use_flex_row(mods_row1); + label_gui = create_button(mods_row1, "GUI", &style_button, &style_button_active); + label_alt = create_button(mods_row1, "ALT", &style_button, &style_button_active); + + lv_obj_t *mods_row2 = lv_obj_create(mods); + lv_obj_add_style(mods_row2, &style_container, 0); + use_flex_row(mods_row2); + label_ctrl = create_button(mods_row2, "CTL", &style_button, &style_button_active); + label_shift = create_button(mods_row2, "SFT", &style_button, &style_button_active); + + lv_obj_t *label_stront = lv_label_create(screen_home); + lv_label_set_text(label_stront, "stront"); +#if LV_FONT_MONTSERRAT_48 + lv_obj_set_style_text_font(label_stront, &lv_font_montserrat_48, LV_PART_MAIN); +#endif + + label_caps = create_button(screen_home, "CAPS", &style_button, &style_button_active); +} + +bool display_init_kb(void) { + dprint("display_init_kb - start\n"); + + backlight_enable(); + + painter_device_t display = qp_st7789_make_spi_device(240, 300, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 16, 3); + qp_set_viewport_offsets(display, 0, 20); + + if (!qp_init(display, QP_ROTATION_180) || !qp_power(display, true) || !qp_lvgl_attach(display)) return false; + + dprint("display_init_kb - initialised\n"); + + lv_disp_t *lv_display = lv_disp_get_default(); + lv_theme_t *lv_theme = lv_theme_default_init(lv_display, lv_palette_main(LV_PALETTE_AMBER), lv_palette_main(LV_PALETTE_BLUE), true, LV_FONT_DEFAULT); + lv_disp_set_theme(lv_display, lv_theme); + init_styles(); + + bool res = display_init_user(); + if (res) { + dprint("display_init_kb - adding default home screen\n"); + init_screen_home(); + } + + return true; +} + +__attribute__((weak)) bool display_init_user(void) { + return true; +} + +__attribute__((weak)) void display_housekeeping_task(void) { + dprint("display_housekeeping_task_kb\n"); + + toggle_state(label_shift, LV_STATE_PRESSED, MODS_SHIFT); + toggle_state(label_ctrl, LV_STATE_PRESSED, MODS_CTRL); + toggle_state(label_alt, LV_STATE_PRESSED, MODS_ALT); + toggle_state(label_gui, LV_STATE_PRESSED, MODS_GUI); +} + +__attribute__((weak)) void display_process_caps(bool active) { + dprint("display_process_caps\n"); + toggle_state(label_caps, LV_STATE_PRESSED, active); +} diff --git a/keyboards/stront/display.h b/keyboards/stront/display.h new file mode 100644 index 00000000000..4249ff468ee --- /dev/null +++ b/keyboards/stront/display.h @@ -0,0 +1,20 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "qp_lvgl.h" + +#define MODS_SHIFT ((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) +#define MODS_CTRL ((get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) +#define MODS_ALT ((get_mods() | get_oneshot_mods()) & MOD_MASK_ALT) +#define MODS_GUI ((get_mods() | get_oneshot_mods()) & MOD_MASK_GUI) + +/* shared styles */ +extern lv_style_t style_screen; +extern lv_style_t style_container; +extern lv_style_t style_button; +extern lv_style_t style_button_active; + +bool display_init_kb(void); +bool display_init_user(void); +void display_housekeeping_task(void); +void display_process_caps(bool active); diff --git a/keyboards/stront/halconf.h b/keyboards/stront/halconf.h new file mode 100644 index 00000000000..0aa1ff58d8a --- /dev/null +++ b/keyboards/stront/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/stront/info.json b/keyboards/stront/info.json new file mode 100644 index 00000000000..c3435b1f5d5 --- /dev/null +++ b/keyboards/stront/info.json @@ -0,0 +1,147 @@ +{ + "keyboard_name": "stront", + "manufacturer": "zzeneg", + "url": "https://github.com/zzeneg/stront", + "maintainer": "zzeneg", + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 1], "x": 2, "y": 0 }, + { "matrix": [0, 2], "x": 3, "y": 0 }, + { "matrix": [0, 3], "x": 4, "y": 0 }, + { "matrix": [0, 4], "x": 5, "y": 0 }, + + { "matrix": [4, 4], "x": 8, "y": 0 }, + { "matrix": [4, 3], "x": 9, "y": 0 }, + { "matrix": [4, 2], "x": 10, "y": 0 }, + { "matrix": [4, 1], "x": 11, "y": 0 }, + + { "matrix": [0, 0], "x": 0, "y": 1 }, + { "matrix": [1, 0], "x": 1, "y": 1 }, + { "matrix": [1, 1], "x": 2, "y": 1 }, + { "matrix": [1, 2], "x": 3, "y": 1 }, + { "matrix": [1, 3], "x": 4, "y": 1 }, + { "matrix": [1, 4], "x": 5, "y": 1 }, + + { "matrix": [5, 4], "x": 8, "y": 1 }, + { "matrix": [5, 3], "x": 9, "y": 1 }, + { "matrix": [5, 2], "x": 10, "y": 1 }, + { "matrix": [5, 1], "x": 11, "y": 1 }, + { "matrix": [5, 0], "x": 12, "y": 1 }, + { "matrix": [4, 0], "x": 13, "y": 1 }, + + { "matrix": [3, 0], "x": 0, "y": 2 }, + { "matrix": [2, 0], "x": 1, "y": 2 }, + { "matrix": [2, 1], "x": 2, "y": 2 }, + { "matrix": [2, 2], "x": 3, "y": 2 }, + { "matrix": [2, 3], "x": 4, "y": 2 }, + { "matrix": [2, 4], "x": 5, "y": 2 }, + + { "matrix": [6, 4], "x": 8, "y": 2 }, + { "matrix": [6, 3], "x": 9, "y": 2 }, + { "matrix": [6, 2], "x": 10, "y": 2 }, + { "matrix": [6, 1], "x": 11, "y": 2 }, + { "matrix": [6, 0], "x": 12, "y": 2 }, + { "matrix": [7, 0], "x": 13, "y": 2 }, + + { "matrix": [3, 2], "x": 4, "y": 3 }, + { "matrix": [3, 3], "x": 5, "y": 3 }, + { "matrix": [3, 4], "x": 6, "y": 3 }, + { "matrix": [7, 4], "x": 7, "y": 3 }, + { "matrix": [7, 3], "x": 8, "y": 3 }, + { "matrix": [7, 2], "x": 9, "y": 3 } + ] + } + }, + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6"], + "rows": ["GP28", "GP27", "GP26", "GP15"] + }, + "split": { + "enabled": true + }, + "encoder": { + "rotary": [ + { + "pin_a": "GP7", + "pin_b": "GP8", + "resolution": 4 + } + ] + }, + "features": { + "bootmagic": true, + "console": false, + "encoder": true, + "backlight": true, + "extrakey": true, + "rgblight": false, + "rgb_matrix": true, + "nkro": false + }, + "backlight": { + "pin": "GP14" + }, + "ws2812": { + "pin": "GP29" + }, + "rgblight": { + "led_count": 38, + "split": true, + "split_count": [19, 19] + }, + "rgb_matrix": { + "driver": "ws2812", + "led_count": 38, + "split_count": [19, 19], + "layout": [ + { "flags": 4, "matrix": [0, 4], "x": 71, "y": 7 }, + { "flags": 4, "matrix": [0, 3], "x": 57, "y": 5 }, + { "flags": 4, "matrix": [0, 2], "x": 44, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 27, "y": 5 }, + { "flags": 4, "matrix": [1, 1], "x": 29, "y": 22 }, + { "flags": 4, "matrix": [1, 0], "x": 14, "y": 26 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 26 }, + { "flags": 4, "matrix": [3, 0], "x": 2, "y": 43 }, + { "flags": 4, "matrix": [2, 0], "x": 16, "y": 43 }, + { "flags": 4, "matrix": [2, 1], "x": 30, "y": 38 }, + { "flags": 4, "matrix": [2, 2], "x": 44, "y": 33 }, + { "flags": 4, "matrix": [1, 2], "x": 44, "y": 17 }, + { "flags": 4, "matrix": [1, 3], "x": 57, "y": 22 }, + { "flags": 4, "matrix": [1, 4], "x": 71, "y": 24 }, + { "flags": 4, "matrix": [2, 4], "x": 71, "y": 40 }, + { "flags": 4, "matrix": [2, 3], "x": 57, "y": 38 }, + { "flags": 4, "matrix": [3, 2], "x": 56, "y": 57 }, + { "flags": 4, "matrix": [3, 3], "x": 71, "y": 59 }, + { "flags": 4, "matrix": [3, 4], "x": 85, "y": 64 }, + + { "flags": 4, "matrix": [7, 4], "x": 139, "y": 64 }, + { "flags": 4, "matrix": [7, 3], "x": 153, "y": 59 }, + { "flags": 4, "matrix": [7, 2], "x": 168, "y": 57 }, + { "flags": 4, "matrix": [6, 3], "x": 167, "y": 38 }, + { "flags": 4, "matrix": [6, 4], "x": 153, "y": 40 }, + { "flags": 4, "matrix": [5, 4], "x": 153, "y": 24 }, + { "flags": 4, "matrix": [5, 3], "x": 167, "y": 22 }, + { "flags": 4, "matrix": [5, 2], "x": 180, "y": 17 }, + { "flags": 4, "matrix": [6, 2], "x": 180, "y": 33 }, + { "flags": 4, "matrix": [6, 1], "x": 194, "y": 38 }, + { "flags": 4, "matrix": [6, 0], "x": 208, "y": 43 }, + { "flags": 4, "matrix": [7, 0], "x": 222, "y": 43 }, + { "flags": 4, "matrix": [4, 0], "x": 224, "y": 26 }, + { "flags": 4, "matrix": [5, 0], "x": 210, "y": 26 }, + { "flags": 4, "matrix": [5, 1], "x": 195, "y": 22 }, + { "flags": 4, "matrix": [4, 1], "x": 197, "y": 5 }, + { "flags": 4, "matrix": [4, 2], "x": 180, "y": 0 }, + { "flags": 4, "matrix": [4, 3], "x": 167, "y": 5 }, + { "flags": 4, "matrix": [4, 4], "x": 153, "y": 7 } + ] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0844", + "vid": "0xFEED" + } +} diff --git a/keyboards/stront/keymaps/default/keymap.c b/keyboards/stront/keymaps/default/keymap.c new file mode 100644 index 00000000000..793a2495c7c --- /dev/null +++ b/keyboards/stront/keymaps/default/keymap.c @@ -0,0 +1,107 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_number { + // clang-format off + _QWERTY = 0, + _GAME, + _NAV, + _NUMBER, + _SYMBOL, + _FUNC, + _SYS + // clang-format on +}; + +// Left-hand home row mods +#define HOME_A LGUI_T(KC_A) +#define HOME_S LALT_T(KC_S) +#define HOME_D LCTL_T(KC_D) +#define HOME_F LSFT_T(KC_F) + +// Right-hand home row mods +#define HOME_J RSFT_T(KC_J) +#define HOME_K RCTL_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_SCLN RGUI_T(KC_SCLN) + +// bottom mods +#define SYM_SPC LT(_SYMBOL, KC_SPC) +#define NUM_TAB LT(_NUMBER, KC_TAB) +#define FUNC_ESC LT(_FUNC, KC_ESC) +#define FUNC_ENT LT(_FUNC, KC_ENT) +#define NAV_BSPC LT(_NAV, KC_BSPC) +#define RALT_DEL LALT_T(KC_DEL) + +// game layer mods +#define LALT_Q LALT_T(KC_Q) +#define LSFT_MINS LSFT_T(KC_MINS) +#define LCTL_ESC LCTL_T(KC_ESC) +#define LGUI_QUOT LGUI_T(KC_QUOT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * .---------------------------. .---------------------------. + * | W | E | R | T | | Y | U | I | O | + * .------+------+------+------+------+------| |------+------+------+------+------+------. + * | Q | A | S | D | F | G | | H | J | K | L | P | ; | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | - | Z | X | C | V | B |--------. .--------| N | M | , | . | / | ' | + * '-----------------------------------------/ / \ \-----------------------------------------' + * | Esc | Tab | / Space / \ Enter \ | Bsps | Del | + * |_FUNC | _NUM | /_SYMBOL/ \ _FUNC \ | _NAV | RAlt | + * `-------------''-------' '-------''-------------' + */ + // clang-format off + [_QWERTY] = LAYOUT( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + KC_Q, HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN, KC_P, + KC_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + FUNC_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_GAME] = LAYOUT( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + LALT_Q, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_P, + LSFT_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LGUI_QUOT, + LCTL_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_NAV] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, + XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PAUS, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, KC_INS, KC_APP, XXXXXXX, + FUNC_ESC, NUM_TAB, SYM_SPC, XXXXXXX, _______, RALT_DEL + ), + + [_NUMBER] = LAYOUT( + KC_7, KC_8, KC_9, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_EQL, KC_0, KC_4, KC_5, KC_6, KC_LBRC, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_MINS, KC_BSLS, KC_1, KC_2, KC_3, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_ENT, _______, TG(_GAME), FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_SYMBOL] = LAYOUT( + LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_GRV), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + LSFT(KC_EQL), LSFT(KC_0), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_LBRC), XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + LSFT(KC_MINS), LSFT(KC_BSLS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + MO(_SYS), KC_BSPC, _______, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_FUNC] = LAYOUT( + KC_F7, KC_F8, KC_F9, KC_CAPS, XXXXXXX, KC_PSCR, KC_SCRL, KC_NUM, + KC_F12, KC_F11, KC_F4, KC_F5, KC_F6, KC_F12, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + XXXXXXX, KC_F10, KC_F1, KC_F2, KC_F3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_MNXT, KC_MPLY, _______, XXXXXXX, MO(_SYS) + ), + + [_SYS] = LAYOUT( + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, + _______, QK_BOOT, _______, _______, QK_BOOT, _______ + ) + // clang-format on +}; diff --git a/keyboards/stront/keymaps/hid/config.h b/keyboards/stront/keymaps/hid/config.h new file mode 100644 index 00000000000..e96512f93ff --- /dev/null +++ b/keyboards/stront/keymaps/hid/config.h @@ -0,0 +1,7 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SPLIT_TRANSACTION_IDS_USER RPC_ID_USER_HID_SYNC, RPC_ID_USER_CAPS_WORD_SYNC, RPC_ID_USER_LAYER_SYNC +#define QUANTUM_PAINTER_DISPLAY_TIMEOUT 0 diff --git a/keyboards/stront/keymaps/hid/hid_display.c b/keyboards/stront/keymaps/hid/hid_display.c new file mode 100644 index 00000000000..a1e13117130 --- /dev/null +++ b/keyboards/stront/keymaps/hid/hid_display.c @@ -0,0 +1,240 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "hid_display.h" +#include "display.h" +#include "raw_hid.h" +#include "lvgl_helpers.h" + +uint16_t home_screen_timer = 0; + +/* screens */ +static lv_obj_t *screen_home; +static lv_obj_t *screen_volume; +static lv_obj_t *screen_media; + +/* home screen content */ +static lv_obj_t *label_time; +static lv_obj_t *label_volume_home; +static lv_obj_t *label_shift; +static lv_obj_t *label_ctrl; +static lv_obj_t *label_alt; +static lv_obj_t *label_gui; +static lv_obj_t *label_layer; +static lv_obj_t *label_caps; +#ifdef CAPS_WORD_ENABLE +static lv_obj_t *label_caps_word; +#endif +static lv_obj_t *label_layout; + +/* volume screen content */ +static lv_obj_t *arc_volume; +static lv_obj_t *label_volume_arc; + +/* media screen content */ +static lv_obj_t *label_media_artist; +static lv_obj_t *label_media_title; + +enum layout { _EN = 0, _RU }; +void set_layout_label(uint8_t layout) { + switch (layout) { + case _EN: + lv_label_set_text(label_layout, "EN"); + break; + + case _RU: + lv_label_set_text(label_layout, "RU"); + break; + } +} + +void read_string(uint8_t *data, char *string_data) { + uint8_t data_length = data[1]; + memcpy(string_data, data + 2, data_length); + string_data[data_length] = '\0'; +} + +void start_home_screen_timer(void) { + dprint("start_home_screen_timer\n"); + home_screen_timer = timer_read(); +} + +void init_screen_home_custom(void) { + screen_home = lv_scr_act(); + lv_obj_add_style(screen_home, &style_screen, 0); + use_flex_column(screen_home); + + label_volume_home = lv_label_create(screen_home); + lv_label_set_text(label_volume_home, ""); + + lv_obj_t *mods = lv_obj_create(screen_home); + lv_obj_add_style(mods, &style_container, 0); + use_flex_row(mods); + + label_gui = create_button(mods, "GUI", &style_button, &style_button_active); + label_alt = create_button(mods, "ALT", &style_button, &style_button_active); + label_ctrl = create_button(mods, "CTL", &style_button, &style_button_active); + label_shift = create_button(mods, "SFT", &style_button, &style_button_active); + + label_time = lv_label_create(screen_home); + lv_label_set_text(label_time, "00:00"); + lv_obj_set_style_text_font(label_time, &lv_font_montserrat_48, LV_PART_MAIN); + + lv_obj_t *caps = lv_obj_create(screen_home); + lv_obj_add_style(caps, &style_container, 0); + use_flex_row(caps); + + label_caps = create_button(caps, "CAPS", &style_button, &style_button_active); +#ifdef CAPS_WORD_ENABLE + label_caps_word = create_button(caps, "CAPS WORD", &style_button, &style_button_active); +#endif + + lv_obj_t *bottom_row = lv_obj_create(screen_home); + lv_obj_add_style(bottom_row, &style_container, 0); + + label_layer = lv_label_create(bottom_row); + lv_label_set_text(label_layer, ""); + lv_obj_align(label_layer, LV_ALIGN_LEFT_MID, 10, 0); + display_process_layer_state(0); + + label_layout = lv_label_create(bottom_row); + lv_label_set_text(label_layout, ""); + lv_obj_align(label_layout, LV_ALIGN_RIGHT_MID, -10, 0); + set_layout_label(0); +} + +void init_screen_volume(void) { + screen_volume = lv_obj_create(NULL); + lv_obj_add_style(screen_volume, &style_screen, 0); + + arc_volume = lv_arc_create(screen_volume); + lv_obj_set_size(arc_volume, 200, 200); + lv_obj_center(arc_volume); + + label_volume_arc = lv_label_create(screen_volume); + lv_label_set_text(label_volume_arc, "00"); + lv_obj_set_style_text_font(label_volume_arc, &lv_font_montserrat_48, LV_PART_MAIN); + lv_obj_center(label_volume_arc); + + lv_obj_t *volume_text_label = lv_label_create(screen_volume); + lv_label_set_text(volume_text_label, "Volume"); + lv_obj_align(volume_text_label, LV_ALIGN_BOTTOM_MID, 0, -10); +} + +void init_screen_media(void) { + screen_media = lv_obj_create(NULL); + lv_obj_add_style(screen_media, &style_screen, 0); + use_flex_column(screen_media); + lv_obj_set_flex_align(screen_media, LV_FLEX_ALIGN_SPACE_EVENLY, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + + label_media_artist = lv_label_create(screen_media); + lv_label_set_text(label_media_artist, "N/A"); + lv_label_set_long_mode(label_media_artist, LV_LABEL_LONG_WRAP); + lv_obj_set_width(label_media_artist, lv_pct(90)); + lv_obj_set_style_text_align(label_media_artist, LV_TEXT_ALIGN_CENTER, 0); + + label_media_title = lv_label_create(screen_media); + lv_label_set_text(label_media_title, "N/A"); + lv_label_set_long_mode(label_media_title, LV_LABEL_LONG_WRAP); + lv_obj_set_width(label_media_title, lv_pct(90)); + lv_obj_set_style_text_align(label_media_title, LV_TEXT_ALIGN_CENTER, 0); +} + +bool display_init_user(void) { + init_screen_home_custom(); + init_screen_volume(); + init_screen_media(); + + return false; +} + +void display_process_raw_hid_data(uint8_t *data, uint8_t length) { + uint8_t data_type = data[0]; + char string_data[length - 2]; + dprintf("display_process_raw_hid_data - received data_type %u \n", data_type); + switch (data_type) { + case _TIME: + dprintf("time %02d:%02d\n", data[1], data[2]); + lv_label_set_text_fmt(label_time, "%02d:%02d", data[1], data[2]); + break; + + case _VOLUME: + dprintf("volume %d\n", data[1]); + lv_label_set_text_fmt(label_volume_home, "Volume: %02d%%", data[1]); + lv_label_set_text_fmt(label_volume_arc, "%02d", data[1]); + lv_arc_set_value(arc_volume, data[1]); + lv_scr_load(screen_volume); + start_home_screen_timer(); + break; + + case _LAYOUT: + dprintf("layout %d\n", data[1]); + set_layout_label(data[1]); + break; + + case _MEDIA_ARTIST: + read_string(data, string_data); + dprintf("media artist %s\n", string_data); + lv_label_set_text(label_media_artist, string_data); + lv_scr_load(screen_media); + start_home_screen_timer(); + break; + + case _MEDIA_TITLE: + read_string(data, string_data); + dprintf("media title %s\n", string_data); + lv_label_set_text(label_media_title, string_data); + lv_scr_load(screen_media); + start_home_screen_timer(); + break; + } +} + +void display_process_layer_state(uint8_t layer) { + switch (layer) { + case _QWERTY: + lv_label_set_text(label_layer, "QWERTY"); + break; + case _GAME: + lv_label_set_text(label_layer, "GAME"); + break; + case _NAV: + lv_label_set_text(label_layer, "NAV"); + break; + case _NUMBER: + lv_label_set_text(label_layer, "NUMBER"); + break; + case _SYMBOL: + lv_label_set_text(label_layer, "SYMBOL"); + break; + case _FUNC: + lv_label_set_text(label_layer, "FUNC"); + break; + case _SYS: + lv_label_set_text(label_layer, "SYSTEM"); + break; + } +} + +void display_housekeeping_task(void) { + if (home_screen_timer && timer_elapsed(home_screen_timer) > 5000) { + home_screen_timer = 0; + lv_scr_load(screen_home); + } + + toggle_state(label_shift, LV_STATE_PRESSED, MODS_SHIFT); + toggle_state(label_ctrl, LV_STATE_PRESSED, MODS_CTRL); + toggle_state(label_alt, LV_STATE_PRESSED, MODS_ALT); + toggle_state(label_gui, LV_STATE_PRESSED, MODS_GUI); +} + +void display_process_caps(bool active) { + toggle_state(label_caps, LV_STATE_PRESSED, active); +} + +#ifdef CAPS_WORD_ENABLE +void display_process_caps_word(bool active) { + dprint("display_process_caps_word\n"); + toggle_state(label_caps_word, LV_STATE_PRESSED, active); +} +#endif diff --git a/keyboards/stront/keymaps/hid/hid_display.h b/keyboards/stront/keymaps/hid/hid_display.h new file mode 100644 index 00000000000..b93bf647169 --- /dev/null +++ b/keyboards/stront/keymaps/hid/hid_display.h @@ -0,0 +1,29 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +typedef enum { + _QWERTY = 0, + _GAME, + _EU, + _NAV, + _NUMBER, + _SYMBOL, + _FUNC, + _SYS, +} layer_number; + +typedef enum { + _TIME = 0, + _VOLUME, + _LAYOUT, + _MEDIA_ARTIST, + _MEDIA_TITLE, +} hid_data_type; + +void display_process_raw_hid_data(uint8_t *data, uint8_t length); +void display_process_layer_state(uint8_t layer); +#ifdef CAPS_WORD_ENABLE +void display_process_caps_word(bool active); +#endif diff --git a/keyboards/stront/keymaps/hid/keymap.c b/keyboards/stront/keymaps/hid/keymap.c new file mode 100644 index 00000000000..11cb89c48ee --- /dev/null +++ b/keyboards/stront/keymaps/hid/keymap.c @@ -0,0 +1,187 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#include "hid_display.h" +#include "raw_hid.h" +#include "transactions.h" + +// Left-hand home row mods +#define HOME_A LGUI_T(KC_A) +#define HOME_S LALT_T(KC_S) +#define HOME_D LCTL_T(KC_D) +#define HOME_F LSFT_T(KC_F) + +// Right-hand home row mods +#define HOME_J RSFT_T(KC_J) +#define HOME_K RCTL_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_SCLN RGUI_T(KC_SCLN) + +// bottom mods +#define SYM_SPC LT(_SYMBOL, KC_SPC) +#define NUM_TAB LT(_NUMBER, KC_TAB) +#define FUNC_ESC LT(_FUNC, KC_ESC) +#define FUNC_ENT LT(_FUNC, KC_ENT) +#define NAV_BSPC LT(_NAV, KC_BSPC) +#define RALT_DEL LALT_T(KC_DEL) + +// game layer mods +#define LALT_Q LALT_T(KC_Q) +#define LSFT_MINS LSFT_T(KC_MINS) +#define LCTL_ESC LCTL_T(KC_ESC) +#define LGUI_QUOT LGUI_T(KC_QUOT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * .---------------------------. .---------------------------. + * | W | E | R | T | | Y | U | I | O | + * .------+------+------+------+------+------| |------+------+------+------+------+------. + * | Q | A | S | D | F | G | | H | J | K | L | P | ; | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | - | Z | X | C | V | B |--------. .--------| N | M | , | . | / | ' | + * '-----------------------------------------/ / \ \-----------------------------------------' + * | Esc | Tab | / Space / \ Enter \ | Bsps | Del | + * |_FUNC | _NUM | /_SYMBOL/ \ _FUNC \ | _NAV | RAlt | + * `-------------''-------' '-------''-------------' + */ + // clang-format off + [_QWERTY] = LAYOUT( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + KC_Q, HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN, KC_P, + KC_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + FUNC_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_GAME] = LAYOUT( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + LALT_Q, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_P, + LSFT_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LGUI_QUOT, + LCTL_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_NAV] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, + XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PAUS, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, KC_INS, KC_APP, XXXXXXX, + FUNC_ESC, NUM_TAB, SYM_SPC, XXXXXXX, _______, RALT_DEL + ), + + [_NUMBER] = LAYOUT( + KC_7, KC_8, KC_9, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_EQL, KC_0, KC_4, KC_5, KC_6, KC_LBRC, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_MINS, KC_BSLS, KC_1, KC_2, KC_3, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_ENT, _______, TG(_GAME), FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_SYMBOL] = LAYOUT( + LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_GRV), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + LSFT(KC_EQL), LSFT(KC_0), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_LBRC), XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + LSFT(KC_MINS), LSFT(KC_BSLS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + MO(_SYS), KC_BSPC, _______, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_FUNC] = LAYOUT( + KC_F7, KC_F8, KC_F9, KC_CAPS, XXXXXXX, KC_PSCR, KC_SCRL, KC_NUM, + KC_F12, KC_F11, KC_F4, KC_F5, KC_F6, KC_F12, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + XXXXXXX, KC_F10, KC_F1, KC_F2, KC_F3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_MNXT, KC_MPLY, _______, XXXXXXX, MO(_SYS) + ), + + [_SYS] = LAYOUT( + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, + _______, QK_BOOT, _______, _______, QK_BOOT, _______ + ) + // clang-format on +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + dprintf("process_record_user %u %s %s %d\n", keycode, record->event.pressed ? "pressed" : "depressed", record->tap.interrupted ? "interrupted" : "not interrupted", record->tap.count); + + if (record->event.pressed) { + uint8_t data[32]; + data[0] = 0; + + switch (keycode) { + // send hid commands + case KC_VOLU: + case KC_VOLD: + data[0] = _VOLUME; + break; + } + + if (data[0]) { + dprintf("raw_hid_send %u\n", data[0]); + raw_hid_send(data, sizeof(data)); + } + } + + return true; +} + +/* Caps Word processing */ +#ifdef CAPS_WORD_ENABLE +void caps_word_set_user(bool active) { + if (is_display_enabled()) { + display_process_caps_word(active); + } else if (is_keyboard_master() && !is_keyboard_left()) { + dprintf("RPC_ID_USER_CAPS_WORD_SYNC: %s\n", active ? "active" : "inactive"); + transaction_rpc_send(RPC_ID_USER_CAPS_WORD_SYNC, 1, &active); + } +} +#endif + +/* Active Layer processing */ +layer_state_t layer_state_set_user(layer_state_t state) { + if (is_display_enabled()) { + display_process_layer_state(get_highest_layer(state)); + } else if (is_keyboard_master() && !is_keyboard_left()) { + uint8_t layer = get_highest_layer(state); + dprintf("RPC_ID_USER_LAYER_SYNC: %u\n", layer); + transaction_rpc_send(RPC_ID_USER_LAYER_SYNC, 1, &layer); + } + + return state; +} + +/* Raw HID processing*/ +void raw_hid_receive(uint8_t *data, uint8_t length) { + dprintf("raw_hid_receive - received %u bytes \n", length); + + if (is_display_enabled()) { + display_process_raw_hid_data(data, length); + } else if (is_keyboard_master() && !is_keyboard_left()) { + dprint("RPC_ID_USER_HID_SYNC \n"); + transaction_rpc_send(RPC_ID_USER_HID_SYNC, length, data); + } +} + +void hid_sync(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { + if (is_display_enabled()) { + display_process_raw_hid_data((uint8_t *)initiator2target_buffer, initiator2target_buffer_size); + } +} + +void layer_sync(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { + if (is_display_enabled()) { + display_process_layer_state(*(uint8_t *)initiator2target_buffer); + } +} + +void caps_word_sync(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { + if (is_display_enabled()) { + display_process_caps_word(*(bool *)initiator2target_buffer); + } +} + +void keyboard_post_init_user() { + // sync received hid data + transaction_register_rpc(RPC_ID_USER_HID_SYNC, hid_sync); + // sync highest layer (a bit more performant than standard SPLIT_LAYER_STATE_ENABLE) + transaction_register_rpc(RPC_ID_USER_LAYER_SYNC, layer_sync); + // sync caps word state + transaction_register_rpc(RPC_ID_USER_CAPS_WORD_SYNC, caps_word_sync); +} diff --git a/keyboards/stront/keymaps/hid/lv_conf.h b/keyboards/stront/keymaps/hid/lv_conf.h new file mode 100644 index 00000000000..f8f93b7c9ef --- /dev/null +++ b/keyboards/stront/keymaps/hid/lv_conf.h @@ -0,0 +1,15 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef LV_FONT_DEFAULT +#define LV_FONT_DEFAULT &lv_font_montserrat_20 + +#undef LV_FONT_MONTSERRAT_20 +#define LV_FONT_MONTSERRAT_20 1 + +#undef LV_FONT_MONTSERRAT_28 +#define LV_FONT_MONTSERRAT_28 0 diff --git a/keyboards/stront/keymaps/hid/rules.mk b/keyboards/stront/keymaps/hid/rules.mk new file mode 100644 index 00000000000..beaf344b665 --- /dev/null +++ b/keyboards/stront/keymaps/hid/rules.mk @@ -0,0 +1,5 @@ +CAPS_WORD_ENABLE = yes + +RAW_ENABLE = yes + +SRC += hid_display.c diff --git a/keyboards/stront/keymaps/i2c/config.h b/keyboards/stront/keymaps/i2c/config.h new file mode 100644 index 00000000000..8c71dad8355 --- /dev/null +++ b/keyboards/stront/keymaps/i2c/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP10 +#define I2C1_SCL_PIN GP11 diff --git a/keyboards/stront/keymaps/i2c/halconf.h b/keyboards/stront/keymaps/i2c/halconf.h new file mode 100644 index 00000000000..46c5a48c9a9 --- /dev/null +++ b/keyboards/stront/keymaps/i2c/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/stront/keymaps/i2c/keymap.c b/keyboards/stront/keymaps/i2c/keymap.c new file mode 100644 index 00000000000..793a2495c7c --- /dev/null +++ b/keyboards/stront/keymaps/i2c/keymap.c @@ -0,0 +1,107 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_number { + // clang-format off + _QWERTY = 0, + _GAME, + _NAV, + _NUMBER, + _SYMBOL, + _FUNC, + _SYS + // clang-format on +}; + +// Left-hand home row mods +#define HOME_A LGUI_T(KC_A) +#define HOME_S LALT_T(KC_S) +#define HOME_D LCTL_T(KC_D) +#define HOME_F LSFT_T(KC_F) + +// Right-hand home row mods +#define HOME_J RSFT_T(KC_J) +#define HOME_K RCTL_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_SCLN RGUI_T(KC_SCLN) + +// bottom mods +#define SYM_SPC LT(_SYMBOL, KC_SPC) +#define NUM_TAB LT(_NUMBER, KC_TAB) +#define FUNC_ESC LT(_FUNC, KC_ESC) +#define FUNC_ENT LT(_FUNC, KC_ENT) +#define NAV_BSPC LT(_NAV, KC_BSPC) +#define RALT_DEL LALT_T(KC_DEL) + +// game layer mods +#define LALT_Q LALT_T(KC_Q) +#define LSFT_MINS LSFT_T(KC_MINS) +#define LCTL_ESC LCTL_T(KC_ESC) +#define LGUI_QUOT LGUI_T(KC_QUOT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * .---------------------------. .---------------------------. + * | W | E | R | T | | Y | U | I | O | + * .------+------+------+------+------+------| |------+------+------+------+------+------. + * | Q | A | S | D | F | G | | H | J | K | L | P | ; | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | - | Z | X | C | V | B |--------. .--------| N | M | , | . | / | ' | + * '-----------------------------------------/ / \ \-----------------------------------------' + * | Esc | Tab | / Space / \ Enter \ | Bsps | Del | + * |_FUNC | _NUM | /_SYMBOL/ \ _FUNC \ | _NAV | RAlt | + * `-------------''-------' '-------''-------------' + */ + // clang-format off + [_QWERTY] = LAYOUT( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + KC_Q, HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN, KC_P, + KC_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + FUNC_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_GAME] = LAYOUT( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + LALT_Q, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_P, + LSFT_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LGUI_QUOT, + LCTL_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_NAV] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, + XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PAUS, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, KC_INS, KC_APP, XXXXXXX, + FUNC_ESC, NUM_TAB, SYM_SPC, XXXXXXX, _______, RALT_DEL + ), + + [_NUMBER] = LAYOUT( + KC_7, KC_8, KC_9, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_EQL, KC_0, KC_4, KC_5, KC_6, KC_LBRC, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_MINS, KC_BSLS, KC_1, KC_2, KC_3, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_ENT, _______, TG(_GAME), FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_SYMBOL] = LAYOUT( + LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_GRV), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + LSFT(KC_EQL), LSFT(KC_0), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_LBRC), XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + LSFT(KC_MINS), LSFT(KC_BSLS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + MO(_SYS), KC_BSPC, _______, FUNC_ENT, NAV_BSPC, RALT_DEL + ), + + [_FUNC] = LAYOUT( + KC_F7, KC_F8, KC_F9, KC_CAPS, XXXXXXX, KC_PSCR, KC_SCRL, KC_NUM, + KC_F12, KC_F11, KC_F4, KC_F5, KC_F6, KC_F12, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + XXXXXXX, KC_F10, KC_F1, KC_F2, KC_F3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_MNXT, KC_MPLY, _______, XXXXXXX, MO(_SYS) + ), + + [_SYS] = LAYOUT( + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, + _______, QK_BOOT, _______, _______, QK_BOOT, _______ + ) + // clang-format on +}; diff --git a/keyboards/stront/keymaps/i2c/mcuconf.h b/keyboards/stront/keymaps/i2c/mcuconf.h new file mode 100644 index 00000000000..47ee67119de --- /dev/null +++ b/keyboards/stront/keymaps/i2c/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/stront/keymaps/i2c/rules.mk b/keyboards/stront/keymaps/i2c/rules.mk new file mode 100644 index 00000000000..fedac72e2e2 --- /dev/null +++ b/keyboards/stront/keymaps/i2c/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/stront/keymaps/zzeneg/config.h b/keyboards/stront/keymaps/zzeneg/config.h new file mode 100644 index 00000000000..38fad1c0fdd --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/config.h @@ -0,0 +1,30 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// #define DEBUG_MATRIX_SCAN_RATE + +#define SPLIT_TRANSACTION_IDS_USER RPC_ID_USER_HID_SYNC, RPC_ID_USER_CAPS_WORD_SYNC, RPC_ID_USER_LAYER_SYNC +#define QUANTUM_PAINTER_DISPLAY_TIMEOUT 0 + +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP10 +#define I2C1_SCL_PIN GP11 + +#define CIRQUE_PINNACLE_TAP_ENABLE +#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE +#define POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE +#define MOUSE_EXTENDED_REPORT + +#define TAPPING_TERM 150 +#define TAPPING_TERM_PER_KEY +#define QUICK_TAP_TERM 0 + +#define CAPS_WORD_IDLE_TIMEOUT 2500 +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_TIMEOUT 300000 +# define RGB_TRIGGER_ON_KEYDOWN +#endif diff --git a/keyboards/stront/keymaps/zzeneg/fonts/montserrat_20_en_ru.c b/keyboards/stront/keymaps/zzeneg/fonts/montserrat_20_en_ru.c new file mode 100644 index 00000000000..f03a7835a61 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/fonts/montserrat_20_en_ru.c @@ -0,0 +1,782 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* + * Size: 20 px + * Bpp: 4 + * Opts: + ******************************************************************************/ + +#ifdef __has_include +# if __has_include("lvgl.h") +# ifndef LV_LVGL_H_INCLUDE_SIMPLE +# define LV_LVGL_H_INCLUDE_SIMPLE +# endif +# endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) +# include "lvgl.h" +#else +# include "lvgl/lvgl.h" +#endif + +#ifndef MONTSERRAT_20_EN_RU +# define MONTSERRAT_20_EN_RU 1 +#endif + +#if MONTSERRAT_20_EN_RU + +/*----------------- + * BITMAPS + *----------------*/ + +/*Store the image of the glyphs*/ +static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { + /* U+0020 " " */ + + /* U+0021 "!" */ + 0x3f, 0x63, 0xf6, 0x2f, 0x52, 0xf5, 0x1f, 0x41, 0xf4, 0xf, 0x40, 0xf3, 0xf, 0x30, 0xf2, 0x2, 0x0, 0x0, 0x1, 0x5, 0xf8, 0x3f, 0x60, + + /* U+0022 "\"" */ + 0x9a, 0x3, 0xf0, 0x99, 0x2, 0xf0, 0x99, 0x2, 0xf0, 0x89, 0x2, 0xf0, 0x89, 0x1, 0xf0, 0x44, 0x0, 0x70, + + /* U+0023 "#" */ + 0x0, 0x0, 0x6b, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x79, 0x0, 0x4, 0xc0, 0x0, 0x0, 0x0, 0x97, 0x0, 0x6, 0xa0, 0x0, 0x0, 0x0, 0xb6, 0x0, 0x8, 0x80, 0x0, 0xc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x1, 0x22, 0xf4, 0x22, 0x2c, 0x62, 0x20, 0x0, 0x1, 0xf0, 0x0, 0xd, 0x30, 0x0, 0x0, 0x2, 0xe0, 0x0, 0xf, 0x10, 0x0, 0x0, 0x4, 0xc0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x6, 0xa0, 0x0, 0x3d, 0x0, 0x0, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x12, 0x2b, 0x82, 0x22, 0x8b, 0x22, 0x10, 0x0, 0xc, 0x50, 0x0, 0x88, 0x0, 0x0, 0x0, 0xe, 0x30, 0x0, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x10, 0x0, 0xc4, 0x0, 0x0, + + /* U+0024 "$" */ + 0x0, 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0x6, 0xcf, 0xfe, 0xb6, 0x0, 0x0, 0xbf, 0x98, 0xd6, 0xaf, 0x90, 0x6, 0xf4, 0x4, 0xb0, 0x1, 0x20, 0xa, 0xc0, 0x4, 0xb0, 0x0, 0x0, 0xb, 0xc0, 0x4, 0xb0, 0x0, 0x0, 0x7, 0xf6, 0x4, 0xb0, 0x0, 0x0, 0x0, 0xcf, 0xca, 0xb0, 0x0, 0x0, 0x0, 0x6, 0xcf, 0xfe, 0x92, 0x0, 0x0, 0x0, 0x5, 0xda, 0xff, 0x60, 0x0, 0x0, 0x4, 0xb0, 0x1b, 0xf1, 0x0, 0x0, 0x4, 0xb0, 0x3, 0xf5, 0x0, 0x0, 0x4, 0xb0, 0x2, 0xf4, 0xb, 0x50, 0x4, 0xb0, 0x9, 0xf1, 0x9, 0xfd, 0x88, 0xd7, 0xcf, 0x50, 0x0, 0x29, 0xdf, 0xfe, 0xa3, 0x0, 0x0, 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x50, 0x0, 0x0, + + /* U+0025 "%" */ + 0x0, 0x9d, 0xd9, 0x0, 0x0, 0x0, 0xd5, 0x0, 0x8, 0x90, 0x9, 0x80, 0x0, 0x7, 0xb0, 0x0, 0xe, 0x10, 0x1, 0xe0, 0x0, 0x2e, 0x10, 0x0, 0x2d, 0x0, 0x0, 0xd2, 0x0, 0xb6, 0x0, 0x0, 0x2e, 0x0, 0x0, 0xe2, 0x6, 0xc0, 0x0, 0x0, 0xe, 0x10, 0x1, 0xe0, 0x1e, 0x20, 0x0, 0x0, 0x8, 0xb1, 0x1b, 0x80, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x8e, 0xe8, 0x4, 0xd0, 0x2b, 0xfd, 0x40, 0x0, 0x0, 0x0, 0xe, 0x30, 0xe5, 0x3, 0xe2, 0x0, 0x0, 0x0, 0x99, 0x6, 0xa0, 0x0, 0x88, 0x0, 0x0, 0x3, 0xe1, 0x8, 0x70, 0x0, 0x4b, 0x0, 0x0, 0xd, 0x50, 0x8, 0x70, 0x0, 0x4b, 0x0, 0x0, 0x7b, 0x0, 0x6, 0xa0, 0x0, 0x78, 0x0, 0x2, 0xe1, 0x0, 0x0, 0xe3, 0x2, 0xe2, 0x0, 0xc, 0x60, 0x0, 0x0, 0x2c, 0xdd, 0x40, + + /* U+0026 "&" */ + 0x0, 0x1, 0xae, 0xfd, 0x50, 0x0, 0x0, 0x0, 0xd, 0xc3, 0x16, 0xf3, 0x0, 0x0, 0x0, 0x3f, 0x20, 0x0, 0xc8, 0x0, 0x0, 0x0, 0x3f, 0x10, 0x0, 0xc7, 0x0, 0x0, 0x0, 0xf, 0x70, 0x6, 0xf2, 0x0, 0x0, 0x0, 0x6, 0xf4, 0x9f, 0x50, 0x0, 0x0, 0x0, 0x0, 0xcf, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x1b, 0xfc, 0xe2, 0x0, 0x0, 0x0, 0x1, 0xdc, 0x10, 0xcd, 0x10, 0xa, 0x20, 0x9, 0xd0, 0x0, 0xd, 0xd1, 0x1f, 0x10, 0xf, 0x70, 0x0, 0x1, 0xdc, 0x8c, 0x0, 0xf, 0x60, 0x0, 0x0, 0x2e, 0xf6, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x1c, 0xfa, 0x0, 0x3, 0xfd, 0x63, 0x48, 0xec, 0x4f, 0x90, 0x0, 0x29, 0xef, 0xfc, 0x60, 0x4, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+0027 "'" */ + 0x9a, 0x99, 0x99, 0x89, 0x89, 0x44, + + /* U+0028 "(" */ + 0x0, 0xd8, 0x5, 0xf1, 0xc, 0x90, 0x1f, 0x40, 0x5f, 0x0, 0x9d, 0x0, 0xba, 0x0, 0xd9, 0x0, 0xe8, 0x0, 0xe7, 0x0, 0xe8, 0x0, 0xd9, 0x0, 0xba, 0x0, 0x9d, 0x0, 0x5f, 0x0, 0x1f, 0x40, 0xc, 0x90, 0x5, 0xf1, 0x0, 0xd8, + + /* U+0029 ")" */ + 0xe, 0x70, 0x0, 0x7e, 0x0, 0x1, 0xf5, 0x0, 0xb, 0xb0, 0x0, 0x7f, 0x0, 0x3, 0xf2, 0x0, 0x1f, 0x40, 0x0, 0xf6, 0x0, 0xe, 0x70, 0x0, 0xe7, 0x0, 0xe, 0x70, 0x0, 0xf6, 0x0, 0x1f, 0x40, 0x3, 0xf2, 0x0, 0x7f, 0x0, 0xb, 0xa0, 0x1, 0xf5, 0x0, 0x7e, 0x0, 0xe, 0x60, 0x0, + + /* U+002A "*" */ + 0x0, 0x9, 0x50, 0x0, 0x23, 0x9, 0x50, 0x50, 0x3e, 0x9a, 0x7c, 0xc1, 0x0, 0x9f, 0xf5, 0x0, 0x6, 0xed, 0xdd, 0x30, 0x5b, 0x29, 0x54, 0xd1, 0x0, 0x9, 0x50, 0x0, 0x0, 0x4, 0x20, 0x0, + + /* U+002B "+" */ + 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff, 0xf1, 0x13, 0x33, 0xe8, 0x33, 0x30, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, + + /* U+002C "," */ + 0x12, 0xd, 0xf1, 0xaf, 0x15, 0xc0, 0x88, 0xc, 0x30, + + /* U+002D "-" */ + 0x0, 0x0, 0x0, 0xcf, 0xff, 0xf7, 0x33, 0x33, 0x31, + + /* U+002E "." */ + 0x12, 0xd, 0xf1, 0xad, 0x0, + + /* U+002F "/" */ + 0x0, 0x0, 0x0, 0x7, 0x20, 0x0, 0x0, 0x3, 0xf1, 0x0, 0x0, 0x0, 0x9b, 0x0, 0x0, 0x0, 0xe, 0x60, 0x0, 0x0, 0x4, 0xf1, 0x0, 0x0, 0x0, 0x9b, 0x0, 0x0, 0x0, 0xe, 0x60, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0, 0x9b, 0x0, 0x0, 0x0, 0xe, 0x50, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0xf, 0x50, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0xf, 0x50, 0x0, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x0, + + /* U+0030 "0" */ + 0x0, 0x8, 0xdf, 0xea, 0x20, 0x0, 0x1, 0xdf, 0x86, 0x7d, 0xf3, 0x0, 0xb, 0xe2, 0x0, 0x0, 0xce, 0x10, 0x3f, 0x50, 0x0, 0x0, 0x1f, 0x70, 0x9e, 0x0, 0x0, 0x0, 0xa, 0xd0, 0xca, 0x0, 0x0, 0x0, 0x7, 0xf0, 0xe8, 0x0, 0x0, 0x0, 0x4, 0xf2, 0xf8, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xe8, 0x0, 0x0, 0x0, 0x4, 0xf2, 0xca, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x9e, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x3f, 0x50, 0x0, 0x0, 0x1f, 0x70, 0xb, 0xe2, 0x0, 0x0, 0xce, 0x10, 0x1, 0xdf, 0x96, 0x7e, 0xf3, 0x0, 0x0, 0x8, 0xdf, 0xea, 0x20, 0x0, + + /* U+0031 "1" */ + 0xdf, 0xff, 0xe4, 0x55, 0xae, 0x0, 0x8, 0xe0, 0x0, 0x8e, 0x0, 0x8, 0xe0, 0x0, 0x8e, 0x0, 0x8, 0xe0, 0x0, 0x8e, 0x0, 0x8, 0xe0, 0x0, 0x8e, 0x0, 0x8, 0xe0, 0x0, 0x8e, 0x0, 0x8, 0xe0, 0x0, 0x8e, 0x0, 0x8, 0xe0, + + /* U+0032 "2" */ + 0x0, 0x7c, 0xff, 0xea, 0x20, 0x2, 0xdf, 0x96, 0x68, 0xef, 0x20, 0x4c, 0x10, 0x0, 0x1, 0xea, 0x0, 0x0, 0x0, 0x0, 0x9, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0, 0x0, 0xc, 0xb0, 0x0, 0x0, 0x0, 0x4, 0xf5, 0x0, 0x0, 0x0, 0x2, 0xea, 0x0, 0x0, 0x0, 0x2, 0xec, 0x0, 0x0, 0x0, 0x1, 0xdc, 0x0, 0x0, 0x0, 0x1, 0xdd, 0x10, 0x0, 0x0, 0x1, 0xdd, 0x10, 0x0, 0x0, 0x0, 0xce, 0x10, 0x0, 0x0, 0x0, 0xcf, 0x75, 0x55, 0x55, 0x53, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x90, + + /* U+0033 "3" */ + 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x1, 0x55, 0x55, 0x55, 0x8f, 0x70, 0x0, 0x0, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0, 0x8, 0xf2, 0x0, 0x0, 0x0, 0x3, 0xf6, 0x0, 0x0, 0x0, 0x0, 0xdc, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x20, 0x0, 0x0, 0x0, 0xf, 0xff, 0xb4, 0x0, 0x0, 0x0, 0x33, 0x5b, 0xf6, 0x0, 0x0, 0x0, 0x0, 0xa, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x40, 0x0, 0x0, 0x0, 0x4, 0xf3, 0x67, 0x0, 0x0, 0x0, 0xbf, 0x6, 0xfe, 0x96, 0x68, 0xdf, 0x50, 0x2, 0x8d, 0xff, 0xea, 0x30, 0x0, + + /* U+0034 "4" */ + 0x0, 0x0, 0x0, 0x2, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9e, 0x10, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2e, 0x90, 0x0, 0x0, 0x0, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xf2, 0x0, 0x2a, 0x10, 0x0, 0x4, 0xf6, 0x0, 0x4, 0xf2, 0x0, 0x1, 0xea, 0x0, 0x0, 0x4f, 0x20, 0x0, 0xbe, 0x21, 0x11, 0x15, 0xf3, 0x10, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x44, 0x44, 0x44, 0x47, 0xf5, 0x43, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x20, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x20, 0x0, + + /* U+0035 "5" */ + 0x0, 0xef, 0xff, 0xff, 0xfc, 0x0, 0xf, 0x95, 0x55, 0x55, 0x40, 0x1, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x20, 0x0, 0x0, 0x0, 0x4, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x11, 0x0, 0x0, 0x0, 0x8, 0xff, 0xff, 0xeb, 0x40, 0x0, 0x24, 0x44, 0x47, 0xcf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x9f, 0x20, 0x0, 0x0, 0x0, 0x1, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x1, 0xf6, 0x3c, 0x20, 0x0, 0x0, 0xaf, 0x13, 0xef, 0xb7, 0x67, 0xdf, 0x60, 0x0, 0x7c, 0xef, 0xeb, 0x40, 0x0, + + /* U+0036 "6" */ + 0x0, 0x5, 0xbe, 0xfe, 0xb4, 0x0, 0xa, 0xfa, 0x64, 0x6a, 0x60, 0x9, 0xf3, 0x0, 0x0, 0x0, 0x2, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x0, 0x0, 0xc, 0xa0, 0x0, 0x0, 0x0, 0x0, 0xe8, 0x7, 0xdf, 0xfc, 0x50, 0xf, 0x8c, 0xc5, 0x35, 0xaf, 0x80, 0xee, 0xb0, 0x0, 0x0, 0x8f, 0x2d, 0xf2, 0x0, 0x0, 0x0, 0xf7, 0xaf, 0x0, 0x0, 0x0, 0xe, 0x85, 0xf3, 0x0, 0x0, 0x0, 0xf7, 0xd, 0xb0, 0x0, 0x0, 0x8f, 0x20, 0x2e, 0xd6, 0x45, 0xbf, 0x60, 0x0, 0x19, 0xdf, 0xfb, 0x40, 0x0, + + /* U+0037 "7" */ + 0x5f, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xf6, 0x55, 0x55, 0x55, 0xeb, 0x5f, 0x10, 0x0, 0x0, 0x3f, 0x55, 0xf1, 0x0, 0x0, 0xa, 0xe0, 0x2, 0x0, 0x0, 0x1, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x10, 0x0, 0x0, 0x0, 0xe, 0xa0, 0x0, 0x0, 0x0, 0x5, 0xf3, 0x0, 0x0, 0x0, 0x0, 0xcc, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x60, 0x0, 0x0, 0x0, 0x9, 0xe0, 0x0, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x20, 0x0, 0x0, 0x0, 0xd, 0xb0, 0x0, 0x0, 0x0, 0x4, 0xf4, 0x0, 0x0, 0x0, + + /* U+0038 "8" */ + 0x0, 0x5, 0xcf, 0xfe, 0xa3, 0x0, 0x0, 0x9f, 0xa5, 0x46, 0xcf, 0x50, 0x3, 0xf7, 0x0, 0x0, 0xb, 0xe0, 0x7, 0xf0, 0x0, 0x0, 0x4, 0xf3, 0x8, 0xf0, 0x0, 0x0, 0x3, 0xf4, 0x5, 0xf3, 0x0, 0x0, 0x7, 0xf1, 0x0, 0xce, 0x40, 0x0, 0x7f, 0x80, 0x0, 0x1e, 0xff, 0xff, 0xfb, 0x0, 0x2, 0xed, 0x63, 0x33, 0x7e, 0xc0, 0xc, 0xd0, 0x0, 0x0, 0x2, 0xf7, 0xf, 0x70, 0x0, 0x0, 0x0, 0xbc, 0xf, 0x80, 0x0, 0x0, 0x0, 0xcb, 0xb, 0xe1, 0x0, 0x0, 0x4, 0xf7, 0x2, 0xee, 0x85, 0x45, 0xaf, 0xc0, 0x0, 0x18, 0xdf, 0xfe, 0xb6, 0x0, + + /* U+0039 "9" */ + 0x0, 0x2a, 0xef, 0xea, 0x20, 0x0, 0x4, 0xfc, 0x64, 0x6c, 0xf4, 0x0, 0xe, 0xb0, 0x0, 0x0, 0x9e, 0x10, 0x3f, 0x30, 0x0, 0x0, 0x1f, 0x80, 0x5f, 0x10, 0x0, 0x0, 0xd, 0xd0, 0x4f, 0x20, 0x0, 0x0, 0xf, 0xf0, 0x1f, 0x90, 0x0, 0x0, 0x7f, 0xf1, 0x7, 0xf9, 0x21, 0x28, 0xf7, 0xf2, 0x0, 0x6e, 0xff, 0xfc, 0x35, 0xf1, 0x0, 0x0, 0x23, 0x10, 0x7, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x50, 0x0, 0x0, 0x0, 0x2, 0xdc, 0x0, 0x3, 0xb6, 0x55, 0x9f, 0xc1, 0x0, 0x3, 0xae, 0xff, 0xc6, 0x0, 0x0, + + /* U+003A ":" */ + 0xbe, 0x1d, 0xf1, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0xd, 0xf1, 0xad, 0x0, + + /* U+003B ";" */ + 0xbe, 0x1d, 0xf1, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0xd, 0xf1, 0xaf, 0x15, 0xc0, 0x88, 0xc, 0x30, + + /* U+003C "<" */ + 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x1, 0x7e, 0xe1, 0x0, 0x3, 0xaf, 0xc5, 0x0, 0x6, 0xdf, 0x93, 0x0, 0x0, 0x9f, 0x70, 0x0, 0x0, 0x0, 0x5d, 0xe8, 0x20, 0x0, 0x0, 0x0, 0x4b, 0xfb, 0x40, 0x0, 0x0, 0x0, 0x28, 0xee, 0x70, 0x0, 0x0, 0x0, 0x5, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+003D "=" */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff, 0xf1, 0x13, 0x33, 0x33, 0x33, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff, 0xf1, 0x13, 0x33, 0x33, 0x33, 0x30, + + /* U+003E ">" */ + 0x41, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xb4, 0x0, 0x0, 0x0, 0x2, 0x9f, 0xd7, 0x10, 0x0, 0x0, 0x0, 0x6c, 0xf9, 0x30, 0x0, 0x0, 0x0, 0x3c, 0xf1, 0x0, 0x0, 0x5, 0xbf, 0xa0, 0x0, 0x18, 0xee, 0x81, 0x0, 0x3b, 0xfb, 0x50, 0x0, 0x0, 0x89, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+003F "?" */ + 0x1, 0x7c, 0xff, 0xe9, 0x20, 0x2e, 0xe8, 0x55, 0x8e, 0xe2, 0x5b, 0x10, 0x0, 0x2, 0xfa, 0x0, 0x0, 0x0, 0x0, 0xbd, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x2, 0xf6, 0x0, 0x0, 0x0, 0x2e, 0xc0, 0x0, 0x0, 0x2, 0xec, 0x0, 0x0, 0x0, 0xc, 0xd0, 0x0, 0x0, 0x0, 0x3f, 0x50, 0x0, 0x0, 0x0, 0x27, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x50, 0x0, 0x0, 0x0, 0x5f, 0x40, 0x0, + + /* U+0040 "@" */ + 0x0, 0x0, 0x4, 0x9d, 0xff, 0xec, 0x82, 0x0, 0x0, 0x0, 0x0, 0x2c, 0xe8, 0x31, 0x1, 0x49, 0xe9, 0x0, 0x0, 0x0, 0x4f, 0x80, 0x0, 0x0, 0x0, 0x1, 0xad, 0x10, 0x0, 0x2f, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0xb, 0x80, 0x0, 0x4b, 0xff, 0xc5, 0xf, 0x50, 0xc7, 0x3, 0xf0, 0x0, 0x6f, 0x83, 0x25, 0xd7, 0xf5, 0x3, 0xe0, 0x89, 0x0, 0x2f, 0x50, 0x0, 0x0, 0xdf, 0x50, 0xd, 0x4c, 0x50, 0x9, 0xc0, 0x0, 0x0, 0x4, 0xf5, 0x0, 0x97, 0xe3, 0x0, 0xd8, 0x0, 0x0, 0x0, 0xf, 0x50, 0x7, 0x9f, 0x20, 0xe, 0x60, 0x0, 0x0, 0x0, 0xf5, 0x0, 0x69, 0xe3, 0x0, 0xd8, 0x0, 0x0, 0x0, 0x1f, 0x50, 0x7, 0x9c, 0x50, 0x9, 0xd0, 0x0, 0x0, 0x5, 0xf5, 0x0, 0x96, 0x89, 0x0, 0x2f, 0x70, 0x0, 0x1, 0xdf, 0x50, 0xe, 0x23, 0xf0, 0x0, 0x6f, 0xa4, 0x36, 0xe7, 0xcc, 0x39, 0xb0, 0xb, 0x80, 0x0, 0x4b, 0xff, 0xc5, 0x3, 0xdf, 0xb1, 0x0, 0x2e, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0xe8, 0x31, 0x12, 0x5a, 0x40, 0x0, 0x0, 0x0, 0x0, 0x4, 0x9d, 0xff, 0xeb, 0x71, 0x0, 0x0, 0x0, + + /* U+0041 "A" */ + 0x0, 0x0, 0x0, 0xcf, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xc7, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf6, 0x1f, 0x60, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xe, 0x80, 0x3, 0xf4, 0x0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0xd, 0xa0, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x6f, 0x10, 0x0, 0x0, 0x3f, 0x40, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x9, 0xe0, 0x0, 0x0, 0x9, 0xe0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x0, 0x7f, 0x33, 0x33, 0x33, 0x33, 0xcc, 0x0, 0xd, 0xa0, 0x0, 0x0, 0x0, 0x4, 0xf3, 0x5, 0xf3, 0x0, 0x0, 0x0, 0x0, 0xe, 0xa0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x10, + + /* U+0042 "B" */ + 0xbf, 0xff, 0xff, 0xfe, 0xb4, 0x0, 0xbd, 0x44, 0x44, 0x46, 0xcf, 0x60, 0xbc, 0x0, 0x0, 0x0, 0xb, 0xf0, 0xbc, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xbc, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xbc, 0x0, 0x0, 0x0, 0x9, 0xe0, 0xbc, 0x0, 0x0, 0x2, 0x8f, 0x50, 0xbf, 0xff, 0xff, 0xff, 0xf9, 0x0, 0xbd, 0x33, 0x33, 0x34, 0x7d, 0xe2, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xda, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x8e, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xbc, 0x0, 0x0, 0x0, 0x1, 0xeb, 0xbd, 0x44, 0x44, 0x45, 0x7e, 0xf3, 0xbf, 0xff, 0xff, 0xff, 0xd9, 0x20, + + /* U+0043 "C" */ + 0x0, 0x0, 0x7c, 0xff, 0xeb, 0x50, 0x0, 0x3, 0xef, 0xa7, 0x57, 0xbf, 0xc1, 0x3, 0xfc, 0x20, 0x0, 0x0, 0x3d, 0x20, 0xdd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x30, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x20, 0x0, 0x0, 0x4e, 0x30, 0x4, 0xef, 0xa7, 0x67, 0xbf, 0xb0, 0x0, 0x0, 0x7c, 0xff, 0xeb, 0x50, 0x0, + + /* U+0044 "D" */ + 0xbf, 0xff, 0xff, 0xfd, 0xa3, 0x0, 0x0, 0xbd, 0x55, 0x55, 0x58, 0xdf, 0xa0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x5, 0xfb, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x70, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xa, 0xe0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf4, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf6, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf6, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf4, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xa, 0xe0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x70, 0xbc, 0x0, 0x0, 0x0, 0x5, 0xfb, 0x0, 0xbd, 0x55, 0x55, 0x58, 0xdf, 0xa0, 0x0, 0xbf, 0xff, 0xff, 0xfd, 0xa3, 0x0, 0x0, + + /* U+0045 "E" */ + 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xb, 0xd5, 0x55, 0x55, 0x55, 0x40, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0x0, 0xbd, 0x33, 0x33, 0x33, 0x30, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xb, 0xd5, 0x55, 0x55, 0x55, 0x51, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x30, + + /* U+0046 "F" */ + 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xbd, 0x55, 0x55, 0x55, 0x54, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x11, 0x11, 0x11, 0x10, 0xbf, 0xff, 0xff, 0xff, 0xf0, 0xbd, 0x44, 0x44, 0x44, 0x40, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, + + /* U+0047 "G" */ + 0x0, 0x0, 0x6c, 0xef, 0xec, 0x60, 0x0, 0x3, 0xef, 0xa7, 0x57, 0xaf, 0xd2, 0x3, 0xfc, 0x20, 0x0, 0x0, 0x2c, 0x40, 0xdd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x30, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x64, 0xe9, 0x0, 0x0, 0x0, 0x0, 0xd, 0x9b, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x6f, 0x30, 0x0, 0x0, 0x0, 0xd, 0x90, 0xdd, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x3, 0xfc, 0x20, 0x0, 0x0, 0x2f, 0x90, 0x3, 0xef, 0xb7, 0x67, 0xbf, 0xe3, 0x0, 0x0, 0x7c, 0xff, 0xeb, 0x60, 0x0, + + /* U+0048 "H" */ + 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x11, 0x11, 0x11, 0x11, 0x8f, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x44, 0x44, 0x44, 0x44, 0xaf, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x7f, + + /* U+0049 "I" */ + 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, + + /* U+004A "J" */ + 0x0, 0xbf, 0xff, 0xff, 0xd0, 0x3, 0x55, 0x55, 0xbd, 0x0, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x0, 0x9d, 0x0, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x0, 0x9d, 0x0, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x0, 0x9d, 0x0, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x0, 0x9d, 0x0, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x0, 0xbc, 0xb, 0x50, 0x0, 0x1f, 0x80, 0x9f, 0xa5, 0x6d, 0xf1, 0x0, 0x6d, 0xff, 0xb2, 0x0, + + /* U+004B "K" */ + 0xbc, 0x0, 0x0, 0x0, 0x7, 0xf4, 0xb, 0xc0, 0x0, 0x0, 0x6, 0xf5, 0x0, 0xbc, 0x0, 0x0, 0x4, 0xf7, 0x0, 0xb, 0xc0, 0x0, 0x3, 0xf9, 0x0, 0x0, 0xbc, 0x0, 0x2, 0xea, 0x0, 0x0, 0xb, 0xc0, 0x1, 0xec, 0x0, 0x0, 0x0, 0xbc, 0x1, 0xde, 0x10, 0x0, 0x0, 0xb, 0xc0, 0xcf, 0xf3, 0x0, 0x0, 0x0, 0xbc, 0xbe, 0x3d, 0xe1, 0x0, 0x0, 0xb, 0xff, 0x30, 0x2f, 0xb0, 0x0, 0x0, 0xbf, 0x40, 0x0, 0x5f, 0x80, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x7f, 0x50, 0x0, 0xbc, 0x0, 0x0, 0x0, 0xaf, 0x20, 0xb, 0xc0, 0x0, 0x0, 0x0, 0xdd, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x2, 0xeb, 0x0, + + /* U+004C "L" */ + 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0xbd, 0x55, 0x55, 0x55, 0x53, 0xbf, 0xff, 0xff, 0xff, 0xf9, + + /* U+004D "M" */ + 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xdb, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfd, 0xbf, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xcf, 0xdb, 0xef, 0x60, 0x0, 0x0, 0x0, 0x4f, 0xed, 0xbb, 0xbe, 0x0, 0x0, 0x0, 0xd, 0xc9, 0xdb, 0xb2, 0xf7, 0x0, 0x0, 0x5, 0xf3, 0x9d, 0xbb, 0x9, 0xf1, 0x0, 0x0, 0xda, 0x9, 0xdb, 0xb0, 0x1e, 0x90, 0x0, 0x6f, 0x10, 0x9d, 0xbb, 0x0, 0x6f, 0x20, 0xe, 0x80, 0x9, 0xdb, 0xb0, 0x0, 0xda, 0x8, 0xe0, 0x0, 0x9d, 0xbb, 0x0, 0x4, 0xf4, 0xf6, 0x0, 0x9, 0xdb, 0xb0, 0x0, 0xb, 0xfd, 0x0, 0x0, 0x9d, 0xbb, 0x0, 0x0, 0x2f, 0x40, 0x0, 0x9, 0xdb, 0xb0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x9d, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xd0, + + /* U+004E "N" */ + 0xbd, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xbf, 0xa0, 0x0, 0x0, 0x0, 0x7f, 0xbf, 0xf6, 0x0, 0x0, 0x0, 0x7f, 0xbd, 0xef, 0x30, 0x0, 0x0, 0x7f, 0xbc, 0x4f, 0xd1, 0x0, 0x0, 0x7f, 0xbc, 0x7, 0xfb, 0x0, 0x0, 0x7f, 0xbc, 0x0, 0xbf, 0x70, 0x0, 0x7f, 0xbc, 0x0, 0x1e, 0xf3, 0x0, 0x7f, 0xbc, 0x0, 0x3, 0xfe, 0x10, 0x7f, 0xbc, 0x0, 0x0, 0x7f, 0xc0, 0x7f, 0xbc, 0x0, 0x0, 0xa, 0xf8, 0x7f, 0xbc, 0x0, 0x0, 0x0, 0xdf, 0xcf, 0xbc, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xbc, 0x0, 0x0, 0x0, 0x6, 0xff, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x9f, + + /* U+004F "O" */ + 0x0, 0x0, 0x7c, 0xff, 0xeb, 0x50, 0x0, 0x0, 0x3, 0xef, 0xa6, 0x57, 0xbf, 0xc1, 0x0, 0x3, 0xfc, 0x20, 0x0, 0x0, 0x3e, 0xe1, 0x0, 0xdd, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xa0, 0x6f, 0x30, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x2b, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xaf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xab, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x6f, 0x30, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x20, 0xdd, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xa0, 0x3, 0xfc, 0x20, 0x0, 0x0, 0x3e, 0xe1, 0x0, 0x3, 0xef, 0xa7, 0x67, 0xcf, 0xc1, 0x0, 0x0, 0x0, 0x7c, 0xff, 0xeb, 0x50, 0x0, 0x0, + + /* U+0050 "P" */ + 0xbf, 0xff, 0xff, 0xec, 0x60, 0x0, 0xbd, 0x55, 0x55, 0x6a, 0xfc, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x3f, 0x90, 0xbc, 0x0, 0x0, 0x0, 0x8, 0xf0, 0xbc, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xbc, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xbc, 0x0, 0x0, 0x0, 0x7, 0xf1, 0xbc, 0x0, 0x0, 0x0, 0x1e, 0xb0, 0xbc, 0x11, 0x11, 0x26, 0xee, 0x20, 0xbf, 0xff, 0xff, 0xff, 0xa1, 0x0, 0xbd, 0x44, 0x44, 0x30, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+0051 "Q" */ + 0x0, 0x0, 0x7c, 0xff, 0xeb, 0x50, 0x0, 0x0, 0x0, 0x3e, 0xfa, 0x65, 0x7b, 0xfc, 0x10, 0x0, 0x3, 0xfc, 0x20, 0x0, 0x0, 0x3e, 0xe1, 0x0, 0xd, 0xd0, 0x0, 0x0, 0x0, 0x2, 0xfa, 0x0, 0x6f, 0x30, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x20, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xa0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xb0, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xa0, 0xbd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x70, 0x6f, 0x30, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x20, 0xd, 0xd0, 0x0, 0x0, 0x0, 0x2, 0xfa, 0x0, 0x3, 0xfc, 0x20, 0x0, 0x0, 0x3e, 0xe1, 0x0, 0x0, 0x3e, 0xfa, 0x76, 0x7c, 0xfc, 0x10, 0x0, 0x0, 0x0, 0x7c, 0xff, 0xfb, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf7, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x81, 0x18, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x5, 0xef, 0xfe, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x20, 0x0, + + /* U+0052 "R" */ + 0xbf, 0xff, 0xff, 0xec, 0x60, 0x0, 0xbd, 0x55, 0x55, 0x6a, 0xfc, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x3f, 0x90, 0xbc, 0x0, 0x0, 0x0, 0x8, 0xf0, 0xbc, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xbc, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xbc, 0x0, 0x0, 0x0, 0x7, 0xf1, 0xbc, 0x0, 0x0, 0x0, 0x1e, 0xb0, 0xbc, 0x11, 0x11, 0x26, 0xee, 0x20, 0xbf, 0xff, 0xff, 0xff, 0xa1, 0x0, 0xbd, 0x44, 0x43, 0x4f, 0x70, 0x0, 0xbc, 0x0, 0x0, 0x7, 0xf2, 0x0, 0xbc, 0x0, 0x0, 0x0, 0xcc, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x2f, 0x70, 0xbc, 0x0, 0x0, 0x0, 0x7, 0xf2, + + /* U+0053 "S" */ + 0x0, 0x6, 0xcf, 0xfe, 0xb6, 0x0, 0x0, 0xbf, 0x95, 0x46, 0xaf, 0x90, 0x6, 0xf4, 0x0, 0x0, 0x1, 0x20, 0xa, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcf, 0xc7, 0x20, 0x0, 0x0, 0x0, 0x6, 0xcf, 0xfe, 0x92, 0x0, 0x0, 0x0, 0x1, 0x5a, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x1b, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf4, 0xb, 0x50, 0x0, 0x0, 0x9, 0xf1, 0x9, 0xfd, 0x85, 0x57, 0xcf, 0x50, 0x0, 0x29, 0xdf, 0xfe, 0xa3, 0x0, + + /* U+0054 "T" */ + 0xef, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x45, 0x55, 0x5f, 0xa5, 0x55, 0x52, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, + + /* U+0055 "U" */ + 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xda, 0x0, 0x0, 0x0, 0x0, 0xca, 0xcb, 0x0, 0x0, 0x0, 0x0, 0xd9, 0xad, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x6f, 0x30, 0x0, 0x0, 0x5, 0xf3, 0xe, 0xd1, 0x0, 0x0, 0x2e, 0xb0, 0x3, 0xee, 0x96, 0x69, 0xfd, 0x10, 0x0, 0x19, 0xdf, 0xfd, 0x80, 0x0, + + /* U+0056 "V" */ + 0xbd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcb, 0x5f, 0x40, 0x0, 0x0, 0x0, 0x3, 0xf4, 0xe, 0xa0, 0x0, 0x0, 0x0, 0x9, 0xe0, 0x7, 0xf1, 0x0, 0x0, 0x0, 0x1f, 0x70, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x7f, 0x10, 0x0, 0xae, 0x0, 0x0, 0x0, 0xda, 0x0, 0x0, 0x4f, 0x50, 0x0, 0x4, 0xf3, 0x0, 0x0, 0xd, 0xb0, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x6, 0xf2, 0x0, 0x1f, 0x60, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x8f, 0x0, 0x0, 0x0, 0x0, 0x9e, 0x0, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x65, 0xf2, 0x0, 0x0, 0x0, 0x0, 0xc, 0xcc, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xee, 0x0, 0x0, 0x0, + + /* U+0057 "W" */ + 0x1f, 0x60, 0x0, 0x0, 0x0, 0xaf, 0x0, 0x0, 0x0, 0x1, 0xf5, 0xc, 0xb0, 0x0, 0x0, 0x0, 0xff, 0x50, 0x0, 0x0, 0x6, 0xf0, 0x7, 0xf1, 0x0, 0x0, 0x5, 0xfd, 0xa0, 0x0, 0x0, 0xb, 0xb0, 0x2, 0xf5, 0x0, 0x0, 0xa, 0xb7, 0xf0, 0x0, 0x0, 0xf, 0x60, 0x0, 0xda, 0x0, 0x0, 0xf, 0x62, 0xf4, 0x0, 0x0, 0x5f, 0x10, 0x0, 0x8f, 0x0, 0x0, 0x4f, 0x10, 0xd9, 0x0, 0x0, 0xac, 0x0, 0x0, 0x3f, 0x40, 0x0, 0x9b, 0x0, 0x8e, 0x0, 0x0, 0xf7, 0x0, 0x0, 0xe, 0x90, 0x0, 0xe6, 0x0, 0x2f, 0x30, 0x4, 0xf2, 0x0, 0x0, 0x9, 0xe0, 0x4, 0xf1, 0x0, 0xd, 0x80, 0x9, 0xd0, 0x0, 0x0, 0x4, 0xf3, 0x9, 0xc0, 0x0, 0x8, 0xd0, 0xe, 0x80, 0x0, 0x0, 0x0, 0xf8, 0xe, 0x70, 0x0, 0x3, 0xf3, 0x3f, 0x30, 0x0, 0x0, 0x0, 0xad, 0x3f, 0x20, 0x0, 0x0, 0xe8, 0x8e, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xbc, 0x0, 0x0, 0x0, 0x9d, 0xd9, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf7, 0x0, 0x0, 0x0, 0x4f, 0xf4, 0x0, 0x0, 0x0, 0x0, 0xb, 0xf2, 0x0, 0x0, 0x0, 0xe, 0xe0, 0x0, 0x0, + + /* U+0058 "X" */ + 0x1e, 0xb0, 0x0, 0x0, 0x0, 0x8f, 0x20, 0x4f, 0x60, 0x0, 0x0, 0x3f, 0x60, 0x0, 0x9f, 0x20, 0x0, 0xd, 0xb0, 0x0, 0x0, 0xec, 0x0, 0x9, 0xe1, 0x0, 0x0, 0x4, 0xf7, 0x4, 0xf5, 0x0, 0x0, 0x0, 0x9, 0xf4, 0xea, 0x0, 0x0, 0x0, 0x0, 0xd, 0xfe, 0x10, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xcf, 0x50, 0x0, 0x0, 0x0, 0xd, 0xc0, 0xbe, 0x10, 0x0, 0x0, 0x8, 0xf2, 0x1, 0xeb, 0x0, 0x0, 0x4, 0xf6, 0x0, 0x5, 0xf6, 0x0, 0x0, 0xeb, 0x0, 0x0, 0xa, 0xf2, 0x0, 0x9f, 0x20, 0x0, 0x0, 0x1e, 0xb0, 0x5f, 0x60, 0x0, 0x0, 0x0, 0x4f, 0x60, + + /* U+0059 "Y" */ + 0xbd, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x62, 0xf7, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x8, 0xf1, 0x0, 0x0, 0x3, 0xf4, 0x0, 0x1e, 0x90, 0x0, 0x0, 0xca, 0x0, 0x0, 0x6f, 0x20, 0x0, 0x5f, 0x20, 0x0, 0x0, 0xdb, 0x0, 0xe, 0x80, 0x0, 0x0, 0x4, 0xf4, 0x8, 0xe0, 0x0, 0x0, 0x0, 0xb, 0xd2, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xed, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0x40, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x10, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x10, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0x0, 0x0, 0x0, + + /* U+005A "Z" */ + 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x55, 0x55, 0x55, 0x55, 0x6f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0x20, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x60, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xa0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x1, 0xeb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcf, 0x65, 0x55, 0x55, 0x55, 0x52, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, + + /* U+005B "[" */ + 0xbf, 0xff, 0xbc, 0x33, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbb, 0x0, 0xbc, 0x33, 0xbf, 0xff, + + /* U+005C "\\" */ + 0x45, 0x0, 0x0, 0x0, 0x5, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xa9, 0x0, 0x0, 0x0, 0x5, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x50, 0x0, 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0, 0xe, 0x50, 0x0, 0x0, 0x0, 0x9a, 0x0, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0, 0xe, 0x50, 0x0, 0x0, 0x0, 0x9b, 0x0, 0x0, 0x0, 0x4, 0xf0, + + /* U+005D "]" */ + 0x9f, 0xff, 0x12, 0x37, 0xf1, 0x0, 0x5f, 0x10, 0x5, 0xf1, 0x0, 0x5f, 0x10, 0x5, 0xf1, 0x0, 0x5f, 0x10, 0x5, 0xf1, 0x0, 0x5f, 0x10, 0x5, 0xf1, 0x0, 0x5f, 0x10, 0x5, 0xf1, 0x0, 0x5f, 0x10, 0x5, 0xf1, 0x0, 0x5f, 0x10, 0x5, 0xf1, 0x0, 0x5f, 0x12, 0x37, 0xf1, 0x9f, 0xff, 0x10, + + /* U+005E "^" */ + 0x0, 0x0, 0x73, 0x0, 0x0, 0x0, 0x4f, 0xc0, 0x0, 0x0, 0xa, 0x7e, 0x30, 0x0, 0x1, 0xf1, 0x89, 0x0, 0x0, 0x7a, 0x2, 0xf0, 0x0, 0xe, 0x40, 0xb, 0x60, 0x5, 0xd0, 0x0, 0x5d, 0x0, 0xb7, 0x0, 0x0, 0xe3, 0x2f, 0x10, 0x0, 0x8, 0xa0, + + /* U+005F "_" */ + 0xff, 0xff, 0xff, 0xff, 0xff, + + /* U+0060 "`" */ + 0x7, 0x60, 0x0, 0x2, 0xda, 0x0, 0x0, 0xb, 0xb0, + + /* U+0061 "a" */ + 0x4, 0xae, 0xff, 0xb3, 0x6, 0xfb, 0x64, 0x6d, 0xf3, 0x14, 0x0, 0x0, 0xe, 0xa0, 0x0, 0x0, 0x0, 0x9e, 0x0, 0x0, 0x0, 0x8, 0xe0, 0x6c, 0xef, 0xff, 0xfe, 0x7f, 0x73, 0x22, 0x29, 0xed, 0x90, 0x0, 0x0, 0x8e, 0xd9, 0x0, 0x0, 0xd, 0xe7, 0xf7, 0x11, 0x4c, 0xde, 0x6, 0xdf, 0xfc, 0x57, 0xe0, + + /* U+0062 "b" */ + 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf, 0x61, 0x9e, 0xfe, 0x91, 0x0, 0xf, 0x9e, 0xb6, 0x47, 0xee, 0x30, 0xf, 0xf7, 0x0, 0x0, 0x1d, 0xd0, 0xf, 0xc0, 0x0, 0x0, 0x3, 0xf5, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe8, 0xf, 0x60, 0x0, 0x0, 0x0, 0xca, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe8, 0xf, 0xc0, 0x0, 0x0, 0x3, 0xf5, 0xf, 0xf8, 0x0, 0x0, 0x1d, 0xd0, 0xf, 0x8e, 0xb6, 0x58, 0xee, 0x20, 0xf, 0x52, 0x9e, 0xfe, 0x91, 0x0, + + /* U+0063 "c" */ + 0x0, 0x4, 0xbe, 0xfe, 0x91, 0x0, 0x7, 0xfb, 0x64, 0x7e, 0xe1, 0x4, 0xf7, 0x0, 0x0, 0x1a, 0x20, 0xcc, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x1, 0xf5, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf8, 0x0, 0x0, 0x1a, 0x20, 0x7, 0xfb, 0x65, 0x8e, 0xd1, 0x0, 0x3, 0xbe, 0xfe, 0x91, 0x0, + + /* U+0064 "d" */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x0, 0x4, 0xbf, 0xfd, 0x60, 0xd9, 0x0, 0x8f, 0xb5, 0x47, 0xea, 0xd9, 0x5, 0xf7, 0x0, 0x0, 0x1d, 0xf9, 0xc, 0xc0, 0x0, 0x0, 0x3, 0xf9, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe9, 0x1f, 0x50, 0x0, 0x0, 0x0, 0xd9, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe9, 0xc, 0xc0, 0x0, 0x0, 0x4, 0xf9, 0x4, 0xf7, 0x0, 0x0, 0x1d, 0xf9, 0x0, 0x8f, 0xb6, 0x58, 0xea, 0xc9, 0x0, 0x4, 0xbf, 0xfd, 0x60, 0xc9, + + /* U+0065 "e" */ + 0x0, 0x5, 0xcf, 0xfc, 0x50, 0x0, 0x0, 0x8f, 0x95, 0x49, 0xf9, 0x0, 0x4, 0xf4, 0x0, 0x0, 0x4f, 0x50, 0xc, 0xa0, 0x0, 0x0, 0x9, 0xc0, 0xf, 0x60, 0x0, 0x0, 0x4, 0xf0, 0x1f, 0xfe, 0xee, 0xee, 0xef, 0xf2, 0xf, 0x71, 0x11, 0x11, 0x11, 0x10, 0xb, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf7, 0x0, 0x0, 0x5, 0x0, 0x0, 0x7f, 0xc6, 0x56, 0xcf, 0x30, 0x0, 0x3, 0xbe, 0xfe, 0xa2, 0x0, + + /* U+0066 "f" */ + 0x0, 0x7, 0xef, 0xd3, 0x0, 0x6f, 0x74, 0x72, 0x0, 0xbb, 0x0, 0x0, 0x0, 0xc9, 0x0, 0x0, 0xaf, 0xff, 0xff, 0xd0, 0x23, 0xdb, 0x33, 0x30, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, + + /* U+0067 "g" */ + 0x0, 0x4, 0xbf, 0xfd, 0x70, 0xab, 0x0, 0x8f, 0xa4, 0x35, 0xcc, 0xab, 0x4, 0xf6, 0x0, 0x0, 0xb, 0xfb, 0xc, 0xc0, 0x0, 0x0, 0x1, 0xfb, 0xf, 0x70, 0x0, 0x0, 0x0, 0xcb, 0x1f, 0x50, 0x0, 0x0, 0x0, 0xbb, 0xf, 0x70, 0x0, 0x0, 0x0, 0xcb, 0xc, 0xc0, 0x0, 0x0, 0x2, 0xfb, 0x4, 0xf7, 0x0, 0x0, 0xc, 0xfb, 0x0, 0x8f, 0xb6, 0x57, 0xeb, 0xbb, 0x0, 0x4, 0xbf, 0xfd, 0x70, 0xba, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe8, 0x0, 0x50, 0x0, 0x0, 0x6, 0xf2, 0x3, 0xfd, 0x85, 0x46, 0xaf, 0x80, 0x0, 0x18, 0xcf, 0xfe, 0xb5, 0x0, + + /* U+0068 "h" */ + 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf6, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf6, 0x0, 0x0, 0x0, 0x0, 0xf, 0x63, 0xbe, 0xfd, 0x80, 0x0, 0xfa, 0xfa, 0x65, 0x9f, 0xb0, 0xf, 0xf4, 0x0, 0x0, 0x6f, 0x40, 0xfb, 0x0, 0x0, 0x0, 0xe8, 0xf, 0x70, 0x0, 0x0, 0xc, 0xa0, 0xf6, 0x0, 0x0, 0x0, 0xca, 0xf, 0x60, 0x0, 0x0, 0xc, 0xa0, 0xf6, 0x0, 0x0, 0x0, 0xca, 0xf, 0x60, 0x0, 0x0, 0xc, 0xa0, 0xf6, 0x0, 0x0, 0x0, 0xca, 0xf, 0x60, 0x0, 0x0, 0xc, 0xa0, + + /* U+0069 "i" */ + 0x2f, 0x83, 0xf9, 0x0, 0x0, 0x0, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, + + /* U+006A "j" */ + 0x0, 0x1, 0xe9, 0x0, 0x1, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe8, 0x0, 0x0, 0xe7, 0x0, 0x0, 0xf6, 0x56, 0x4b, 0xf1, 0x6e, 0xfd, 0x40, + + /* U+006B "k" */ + 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf6, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf6, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0xcd, 0x10, 0xf6, 0x0, 0x1, 0xcd, 0x10, 0xf, 0x60, 0x1, 0xdd, 0x10, 0x0, 0xf6, 0x1, 0xdd, 0x10, 0x0, 0xf, 0x62, 0xef, 0x20, 0x0, 0x0, 0xf9, 0xec, 0xfb, 0x0, 0x0, 0xf, 0xfc, 0x5, 0xf7, 0x0, 0x0, 0xfc, 0x0, 0x8, 0xf3, 0x0, 0xf, 0x60, 0x0, 0xc, 0xe1, 0x0, 0xf6, 0x0, 0x0, 0x1e, 0xb0, 0xf, 0x60, 0x0, 0x0, 0x4f, 0x70, + + /* U+006C "l" */ + 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, 0xf6, 0xf, 0x60, + + /* U+006D "m" */ + 0xf, 0x53, 0xbf, 0xfd, 0x60, 0x4, 0xcf, 0xfc, 0x50, 0x0, 0xf9, 0xf9, 0x56, 0xbf, 0x77, 0xf9, 0x56, 0xbf, 0x70, 0xf, 0xf4, 0x0, 0x0, 0xaf, 0xf4, 0x0, 0x0, 0xbf, 0x0, 0xfb, 0x0, 0x0, 0x3, 0xfa, 0x0, 0x0, 0x3, 0xf3, 0xf, 0x70, 0x0, 0x0, 0x1f, 0x60, 0x0, 0x0, 0x1f, 0x50, 0xf6, 0x0, 0x0, 0x0, 0xf6, 0x0, 0x0, 0x1, 0xf5, 0xf, 0x60, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x1f, 0x50, 0xf6, 0x0, 0x0, 0x0, 0xf6, 0x0, 0x0, 0x1, 0xf5, 0xf, 0x60, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x1f, 0x50, 0xf6, 0x0, 0x0, 0x0, 0xf6, 0x0, 0x0, 0x1, 0xf5, 0xf, 0x60, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x1f, 0x50, + + /* U+006E "n" */ + 0xf, 0x53, 0xbe, 0xfd, 0x80, 0x0, 0xf9, 0xfa, 0x65, 0x9f, 0xb0, 0xf, 0xf4, 0x0, 0x0, 0x6f, 0x40, 0xfb, 0x0, 0x0, 0x0, 0xe8, 0xf, 0x70, 0x0, 0x0, 0xc, 0xa0, 0xf6, 0x0, 0x0, 0x0, 0xca, 0xf, 0x60, 0x0, 0x0, 0xc, 0xa0, 0xf6, 0x0, 0x0, 0x0, 0xca, 0xf, 0x60, 0x0, 0x0, 0xc, 0xa0, 0xf6, 0x0, 0x0, 0x0, 0xca, 0xf, 0x60, 0x0, 0x0, 0xc, 0xa0, + + /* U+006F "o" */ + 0x0, 0x4, 0xbf, 0xfd, 0x81, 0x0, 0x0, 0x8f, 0xb5, 0x47, 0xee, 0x20, 0x4, 0xf7, 0x0, 0x0, 0x1d, 0xd0, 0xc, 0xc0, 0x0, 0x0, 0x3, 0xf4, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe8, 0x1f, 0x50, 0x0, 0x0, 0x0, 0xd9, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe8, 0xb, 0xc0, 0x0, 0x0, 0x4, 0xf4, 0x4, 0xf7, 0x0, 0x0, 0x1d, 0xc0, 0x0, 0x7f, 0xb6, 0x58, 0xee, 0x20, 0x0, 0x4, 0xbf, 0xfd, 0x81, 0x0, + + /* U+0070 "p" */ + 0xf, 0x52, 0xae, 0xfe, 0x91, 0x0, 0xf, 0x8e, 0xb6, 0x47, 0xee, 0x30, 0xf, 0xf7, 0x0, 0x0, 0x1d, 0xd0, 0xf, 0xc0, 0x0, 0x0, 0x3, 0xf5, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe8, 0xf, 0x60, 0x0, 0x0, 0x0, 0xca, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe8, 0xf, 0xc0, 0x0, 0x0, 0x3, 0xf5, 0xf, 0xf8, 0x0, 0x0, 0x1d, 0xd0, 0xf, 0x8e, 0xb6, 0x58, 0xee, 0x20, 0xf, 0x61, 0x9e, 0xfe, 0x91, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0x0, + + /* U+0071 "q" */ + 0x0, 0x4, 0xbf, 0xfd, 0x60, 0xc9, 0x0, 0x8f, 0xb5, 0x47, 0xea, 0xc9, 0x5, 0xf7, 0x0, 0x0, 0x1d, 0xf9, 0xc, 0xc0, 0x0, 0x0, 0x3, 0xf9, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe9, 0x1f, 0x50, 0x0, 0x0, 0x0, 0xd9, 0xf, 0x70, 0x0, 0x0, 0x0, 0xe9, 0xc, 0xc0, 0x0, 0x0, 0x4, 0xf9, 0x4, 0xf7, 0x0, 0x0, 0x1d, 0xf9, 0x0, 0x8f, 0xb6, 0x58, 0xea, 0xd9, 0x0, 0x4, 0xbf, 0xfd, 0x60, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, + + /* U+0072 "r" */ + 0xf, 0x53, 0xbf, 0x40, 0xf9, 0xf9, 0x51, 0xf, 0xf4, 0x0, 0x0, 0xfb, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0xf6, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0xf6, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0xf6, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, + + /* U+0073 "s" */ + 0x0, 0x7d, 0xff, 0xd9, 0x20, 0x9, 0xf8, 0x44, 0x7d, 0x80, 0xf, 0x60, 0x0, 0x0, 0x0, 0xf, 0x60, 0x0, 0x0, 0x0, 0xb, 0xf8, 0x30, 0x0, 0x0, 0x0, 0x8e, 0xff, 0xc7, 0x0, 0x0, 0x0, 0x14, 0x8f, 0xb0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0x3, 0x0, 0x0, 0x6, 0xf1, 0x4f, 0xc7, 0x55, 0x8f, 0xa0, 0x4, 0xae, 0xff, 0xc7, 0x0, + + /* U+0074 "t" */ + 0x0, 0x65, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0xaf, 0xff, 0xff, 0xd0, 0x23, 0xdb, 0x33, 0x30, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x0, 0x6f, 0x84, 0x82, 0x0, 0x8, 0xef, 0xc3, + + /* U+0075 "u" */ + 0x2f, 0x40, 0x0, 0x0, 0xf, 0x72, 0xf4, 0x0, 0x0, 0x0, 0xf7, 0x2f, 0x40, 0x0, 0x0, 0xf, 0x72, 0xf4, 0x0, 0x0, 0x0, 0xf7, 0x2f, 0x40, 0x0, 0x0, 0xf, 0x72, 0xf4, 0x0, 0x0, 0x0, 0xf7, 0x1f, 0x50, 0x0, 0x0, 0xf, 0x70, 0xf7, 0x0, 0x0, 0x4, 0xf7, 0xb, 0xe1, 0x0, 0x0, 0xcf, 0x70, 0x3f, 0xd7, 0x57, 0xda, 0xe7, 0x0, 0x2b, 0xef, 0xd7, 0xe, 0x70, + + /* U+0076 "v" */ + 0xcb, 0x0, 0x0, 0x0, 0xc, 0x95, 0xf2, 0x0, 0x0, 0x3, 0xf2, 0xe, 0x80, 0x0, 0x0, 0xac, 0x0, 0x8e, 0x0, 0x0, 0x1f, 0x50, 0x1, 0xf6, 0x0, 0x7, 0xe0, 0x0, 0xa, 0xc0, 0x0, 0xe7, 0x0, 0x0, 0x3f, 0x30, 0x5f, 0x10, 0x0, 0x0, 0xca, 0xc, 0xa0, 0x0, 0x0, 0x6, 0xf4, 0xf3, 0x0, 0x0, 0x0, 0xe, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x50, 0x0, 0x0, + + /* U+0077 "w" */ + 0xab, 0x0, 0x0, 0x0, 0xf9, 0x0, 0x0, 0x1, 0xf3, 0x4f, 0x10, 0x0, 0x5, 0xfe, 0x0, 0x0, 0x6, 0xd0, 0xe, 0x60, 0x0, 0xb, 0xaf, 0x50, 0x0, 0xc, 0x80, 0x9, 0xc0, 0x0, 0x1f, 0x3a, 0xa0, 0x0, 0x2f, 0x20, 0x3, 0xf1, 0x0, 0x6d, 0x4, 0xf1, 0x0, 0x7c, 0x0, 0x0, 0xd7, 0x0, 0xc7, 0x0, 0xe6, 0x0, 0xd6, 0x0, 0x0, 0x8d, 0x2, 0xf1, 0x0, 0x8c, 0x3, 0xf1, 0x0, 0x0, 0x2f, 0x28, 0xc0, 0x0, 0x3f, 0x19, 0xb0, 0x0, 0x0, 0xc, 0x8e, 0x60, 0x0, 0xd, 0x7e, 0x50, 0x0, 0x0, 0x6, 0xff, 0x0, 0x0, 0x7, 0xff, 0x0, 0x0, 0x0, 0x1, 0xfa, 0x0, 0x0, 0x1, 0xf9, 0x0, 0x0, + + /* U+0078 "x" */ + 0x1e, 0x80, 0x0, 0x0, 0xdb, 0x0, 0x5f, 0x40, 0x0, 0x9e, 0x10, 0x0, 0x9e, 0x10, 0x5f, 0x30, 0x0, 0x0, 0xcb, 0x2e, 0x70, 0x0, 0x0, 0x2, 0xfe, 0xb0, 0x0, 0x0, 0x0, 0xa, 0xf5, 0x0, 0x0, 0x0, 0x5, 0xfc, 0xe1, 0x0, 0x0, 0x1, 0xe8, 0xd, 0xb0, 0x0, 0x0, 0xcc, 0x0, 0x2f, 0x70, 0x0, 0x8f, 0x20, 0x0, 0x6f, 0x30, 0x4f, 0x50, 0x0, 0x0, 0xad, 0x0, + + /* U+0079 "y" */ + 0xc, 0xb0, 0x0, 0x0, 0x0, 0xc9, 0x5, 0xf2, 0x0, 0x0, 0x3, 0xf2, 0x0, 0xe9, 0x0, 0x0, 0xa, 0xb0, 0x0, 0x7f, 0x0, 0x0, 0x1f, 0x40, 0x0, 0x1f, 0x60, 0x0, 0x8d, 0x0, 0x0, 0x9, 0xd0, 0x0, 0xe7, 0x0, 0x0, 0x2, 0xf4, 0x5, 0xf0, 0x0, 0x0, 0x0, 0xbb, 0xc, 0x90, 0x0, 0x0, 0x0, 0x5f, 0x5f, 0x20, 0x0, 0x0, 0x0, 0xd, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x8, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x60, 0x0, 0x0, 0x3c, 0x55, 0xdd, 0x0, 0x0, 0x0, 0x1a, 0xff, 0xb1, 0x0, 0x0, 0x0, + + /* U+007A "z" */ + 0xf, 0xff, 0xff, 0xff, 0xf4, 0x3, 0x33, 0x33, 0x3d, 0xd0, 0x0, 0x0, 0x0, 0x7f, 0x20, 0x0, 0x0, 0x3, 0xf5, 0x0, 0x0, 0x0, 0x1e, 0x90, 0x0, 0x0, 0x0, 0xbd, 0x0, 0x0, 0x0, 0x8, 0xf2, 0x0, 0x0, 0x0, 0x4f, 0x50, 0x0, 0x0, 0x1, 0xe9, 0x0, 0x0, 0x0, 0xb, 0xe4, 0x33, 0x33, 0x31, 0x2f, 0xff, 0xff, 0xff, 0xf6, + + /* U+007B "{" */ + 0x0, 0x5d, 0xf4, 0x0, 0xfb, 0x40, 0x3, 0xf4, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x6, 0xf2, 0x0, 0xcf, 0xb0, 0x0, 0x28, 0xf1, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x3, 0xf3, 0x0, 0x0, 0xfb, 0x41, 0x0, 0x5d, 0xf4, + + /* U+007C "|" */ + 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, + + /* U+007D "}" */ + 0x9f, 0xb2, 0x0, 0x25, 0xeb, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x7f, 0x20, 0x0, 0x1e, 0xf7, 0x0, 0x6f, 0x51, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x0, 0x8e, 0x0, 0x25, 0xeb, 0x0, 0x9f, 0xb2, 0x0, + + /* U+007E "~" */ + 0x9, 0xfd, 0x50, 0x0, 0xc3, 0x6c, 0x36, 0xe8, 0x4, 0xe0, 0xb4, 0x0, 0x2c, 0xff, 0x50, 0x10, 0x0, 0x0, 0x20, 0x0, + + /* U+0401 "Ё" */ + 0x0, 0x4e, 0x20, 0xba, 0x0, 0x0, 0x3, 0xb1, 0x8, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xae, 0x55, 0x55, 0x55, 0x55, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0xff, 0xff, 0xf1, 0xa, 0xe3, 0x33, 0x33, 0x33, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xae, 0x55, 0x55, 0x55, 0x55, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xf4, + + /* U+0410 "А" */ + 0x0, 0x0, 0x0, 0x8f, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf5, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xca, 0xc, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x30, 0x6f, 0x10, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0xe8, 0x0, 0x0, 0x0, 0x1, 0xf6, 0x0, 0x8, 0xe0, 0x0, 0x0, 0x0, 0x8f, 0x0, 0x0, 0x2f, 0x50, 0x0, 0x0, 0xe, 0x80, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0x5, 0xf3, 0x0, 0x0, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x0, 0x3f, 0x63, 0x33, 0x33, 0x33, 0x8f, 0x10, 0xa, 0xe0, 0x0, 0x0, 0x0, 0x1, 0xf7, 0x1, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xa, 0xe0, 0x7f, 0x10, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x50, + + /* U+0411 "Б" */ + 0xaf, 0xff, 0xff, 0xff, 0xff, 0x90, 0xad, 0x44, 0x44, 0x44, 0x44, 0x20, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0xff, 0xff, 0xc6, 0x0, 0xad, 0x33, 0x33, 0x35, 0xaf, 0xa0, 0xad, 0x0, 0x0, 0x0, 0x7, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x1, 0xf6, 0xad, 0x0, 0x0, 0x0, 0x1, 0xf6, 0xad, 0x0, 0x0, 0x0, 0x8, 0xf2, 0xad, 0x33, 0x33, 0x35, 0xaf, 0x80, 0xaf, 0xff, 0xff, 0xfe, 0xb4, 0x0, + + /* U+0412 "В" */ + 0xaf, 0xff, 0xff, 0xfe, 0xa2, 0x0, 0xad, 0x33, 0x33, 0x36, 0xdf, 0x30, 0xad, 0x0, 0x0, 0x0, 0x1e, 0xb0, 0xad, 0x0, 0x0, 0x0, 0x9, 0xe0, 0xad, 0x0, 0x0, 0x0, 0x9, 0xe0, 0xad, 0x0, 0x0, 0x0, 0xd, 0xa0, 0xad, 0x0, 0x0, 0x3, 0xbd, 0x10, 0xaf, 0xff, 0xff, 0xff, 0xf5, 0x0, 0xad, 0x33, 0x33, 0x34, 0x7e, 0xa0, 0xad, 0x0, 0x0, 0x0, 0x3, 0xf5, 0xad, 0x0, 0x0, 0x0, 0x0, 0xd9, 0xad, 0x0, 0x0, 0x0, 0x0, 0xe9, 0xad, 0x0, 0x0, 0x0, 0x4, 0xf6, 0xad, 0x33, 0x33, 0x34, 0x8f, 0xc0, 0xaf, 0xff, 0xff, 0xff, 0xc7, 0x0, + + /* U+0413 "Г" */ + 0xaf, 0xff, 0xff, 0xff, 0xf4, 0xad, 0x55, 0x55, 0x55, 0x51, 0xac, 0x0, 0x0, 0x0, 0x0, 0xac, 0x0, 0x0, 0x0, 0x0, 0xac, 0x0, 0x0, 0x0, 0x0, 0xac, 0x0, 0x0, 0x0, 0x0, 0xac, 0x0, 0x0, 0x0, 0x0, 0xac, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, + + /* U+0414 "Д" */ + 0x0, 0x5, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x0, 0x0, 0x5, 0xf5, 0x55, 0x55, 0x58, 0xf2, 0x0, 0x0, 0x6, 0xe0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0x8, 0xd0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0x8, 0xc0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0x9, 0xb0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0xb, 0xa0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0xd, 0x80, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0xf, 0x50, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0x3f, 0x20, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x0, 0xac, 0x0, 0x0, 0x0, 0x5, 0xf2, 0x0, 0x49, 0xf8, 0x55, 0x55, 0x55, 0x58, 0xf6, 0x51, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xc9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf3, 0xc9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf3, 0xc9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf3, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, + + /* U+0415 "Е" */ + 0xaf, 0xff, 0xff, 0xff, 0xff, 0xa, 0xe5, 0x55, 0x55, 0x55, 0x50, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xff, 0xff, 0xff, 0xff, 0x10, 0xae, 0x33, 0x33, 0x33, 0x30, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xa, 0xe5, 0x55, 0x55, 0x55, 0x51, 0xaf, 0xff, 0xff, 0xff, 0xff, 0x40, + + /* U+0416 "Ж" */ + 0xd, 0xb0, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x8, 0xf1, 0x4, 0xf5, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x2f, 0x70, 0x0, 0xad, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0xbd, 0x0, 0x0, 0x1f, 0x70, 0x0, 0x9, 0xd0, 0x0, 0x4, 0xf4, 0x0, 0x0, 0x7, 0xf1, 0x0, 0x9, 0xd0, 0x0, 0xd, 0xa0, 0x0, 0x0, 0x0, 0xda, 0x0, 0x9, 0xd0, 0x0, 0x7f, 0x10, 0x0, 0x0, 0x0, 0x3f, 0x41, 0x1a, 0xd1, 0x12, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x74, 0x4b, 0xe4, 0x45, 0xf9, 0x0, 0x0, 0x0, 0x1, 0xfb, 0x0, 0x9, 0xd0, 0x0, 0x7f, 0x40, 0x0, 0x0, 0xa, 0xf1, 0x0, 0x9, 0xd0, 0x0, 0xd, 0xd0, 0x0, 0x0, 0x4f, 0x60, 0x0, 0x9, 0xd0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0xec, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x9f, 0x20, 0x9, 0xf2, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0xe, 0xc0, 0x3f, 0x80, 0x0, 0x0, 0x9, 0xd0, 0x0, 0x0, 0x4, 0xf6, + + /* U+0417 "З" */ + 0x0, 0x15, 0x9a, 0x96, 0x10, 0x0, 0x7, 0xff, 0xdb, 0xcf, 0xf6, 0x0, 0x7, 0x71, 0x0, 0x1, 0xaf, 0x40, 0x0, 0x0, 0x0, 0x0, 0xe, 0xb0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x90, 0x0, 0x0, 0x0, 0x3, 0xbe, 0x10, 0x0, 0xb, 0xff, 0xff, 0xe2, 0x0, 0x0, 0x2, 0x33, 0x35, 0xaf, 0x50, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf5, 0x9, 0x10, 0x0, 0x0, 0x1c, 0xf1, 0x1c, 0xfa, 0x64, 0x59, 0xef, 0x40, 0x0, 0x5b, 0xff, 0xfe, 0x92, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, + + /* U+0418 "И" */ + 0xad, 0x0, 0x0, 0x0, 0x0, 0x9f, 0x2a, 0xd0, 0x0, 0x0, 0x0, 0x4f, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x1e, 0xff, 0x2a, 0xd0, 0x0, 0x0, 0xb, 0xe6, 0xf2, 0xad, 0x0, 0x0, 0x7, 0xf4, 0x5f, 0x2a, 0xd0, 0x0, 0x3, 0xf9, 0x5, 0xf2, 0xad, 0x0, 0x0, 0xdc, 0x0, 0x5f, 0x2a, 0xd0, 0x0, 0xaf, 0x20, 0x5, 0xf2, 0xad, 0x0, 0x5f, 0x60, 0x0, 0x5f, 0x2a, 0xd0, 0x2f, 0xa0, 0x0, 0x5, 0xf2, 0xad, 0xc, 0xe1, 0x0, 0x0, 0x5f, 0x2a, 0xd8, 0xf3, 0x0, 0x0, 0x5, 0xf2, 0xaf, 0xf8, 0x0, 0x0, 0x0, 0x5f, 0x2a, 0xfc, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xaf, 0x20, 0x0, 0x0, 0x0, 0x5f, 0x20, + + /* U+0419 "Й" */ + 0x0, 0x8, 0x0, 0x0, 0x53, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x3e, 0x30, 0x0, 0x0, 0x1, 0xad, 0xec, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x9f, 0x2a, 0xd0, 0x0, 0x0, 0x0, 0x4f, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x1e, 0xff, 0x2a, 0xd0, 0x0, 0x0, 0xb, 0xe6, 0xf2, 0xad, 0x0, 0x0, 0x7, 0xf4, 0x5f, 0x2a, 0xd0, 0x0, 0x3, 0xf9, 0x5, 0xf2, 0xad, 0x0, 0x0, 0xdc, 0x0, 0x5f, 0x2a, 0xd0, 0x0, 0xaf, 0x20, 0x5, 0xf2, 0xad, 0x0, 0x5f, 0x60, 0x0, 0x5f, 0x2a, 0xd0, 0x2f, 0xa0, 0x0, 0x5, 0xf2, 0xad, 0xc, 0xe1, 0x0, 0x0, 0x5f, 0x2a, 0xd8, 0xf3, 0x0, 0x0, 0x5, 0xf2, 0xaf, 0xf8, 0x0, 0x0, 0x0, 0x5f, 0x2a, 0xfc, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xaf, 0x20, 0x0, 0x0, 0x0, 0x5f, 0x20, + + /* U+041A "К" */ + 0xac, 0x0, 0x0, 0x0, 0x9, 0xe1, 0xac, 0x0, 0x0, 0x0, 0x4f, 0x40, 0xac, 0x0, 0x0, 0x1, 0xe9, 0x0, 0xac, 0x0, 0x0, 0xa, 0xd0, 0x0, 0xac, 0x0, 0x0, 0x5f, 0x30, 0x0, 0xac, 0x0, 0x1, 0xf7, 0x0, 0x0, 0xad, 0x11, 0x1b, 0xc0, 0x0, 0x0, 0xaf, 0xff, 0xff, 0x50, 0x0, 0x0, 0xad, 0x44, 0x4d, 0xd0, 0x0, 0x0, 0xac, 0x0, 0x2, 0xfa, 0x0, 0x0, 0xac, 0x0, 0x0, 0x5f, 0x50, 0x0, 0xac, 0x0, 0x0, 0xa, 0xf2, 0x0, 0xac, 0x0, 0x0, 0x0, 0xdc, 0x0, 0xac, 0x0, 0x0, 0x0, 0x3f, 0x80, 0xac, 0x0, 0x0, 0x0, 0x6, 0xf4, + + /* U+041B "Л" */ + 0x0, 0x2, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x0, 0x3, 0xf6, 0x55, 0x55, 0x56, 0xf5, 0x0, 0x3, 0xf1, 0x0, 0x0, 0x2, 0xf5, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x2, 0xf5, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x2, 0xf5, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x2, 0xf5, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x2, 0xf5, 0x0, 0x6, 0xe0, 0x0, 0x0, 0x2, 0xf5, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x2, 0xf5, 0x0, 0x9, 0xb0, 0x0, 0x0, 0x2, 0xf5, 0x0, 0xb, 0x90, 0x0, 0x0, 0x2, 0xf5, 0x0, 0xf, 0x60, 0x0, 0x0, 0x2, 0xf5, 0x0, 0x6f, 0x20, 0x0, 0x0, 0x2, 0xf5, 0x58, 0xfb, 0x0, 0x0, 0x0, 0x2, 0xf5, 0xbf, 0xb1, 0x0, 0x0, 0x0, 0x2, 0xf5, + + /* U+041C "М" */ + 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xea, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x2, 0xfe, 0xaf, 0xe0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xea, 0xef, 0x70, 0x0, 0x0, 0x0, 0x3f, 0xee, 0xac, 0x9f, 0x10, 0x0, 0x0, 0xb, 0xd8, 0xea, 0xc1, 0xf9, 0x0, 0x0, 0x4, 0xf4, 0x8e, 0xac, 0x7, 0xf2, 0x0, 0x0, 0xcb, 0x8, 0xea, 0xc0, 0xe, 0xa0, 0x0, 0x5f, 0x20, 0x8e, 0xac, 0x0, 0x5f, 0x30, 0xd, 0x90, 0x8, 0xea, 0xc0, 0x0, 0xcb, 0x6, 0xf1, 0x0, 0x8e, 0xac, 0x0, 0x3, 0xf5, 0xe7, 0x0, 0x8, 0xea, 0xc0, 0x0, 0xa, 0xfe, 0x0, 0x0, 0x8e, 0xac, 0x0, 0x0, 0x1f, 0x50, 0x0, 0x8, 0xea, 0xc0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x8e, 0xac, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xe0, + + /* U+041D "Н" */ + 0xad, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x1a, 0xd0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0xad, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x1a, 0xd0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0xad, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x1a, 0xd0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0xad, 0x11, 0x11, 0x11, 0x11, 0x7f, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xae, 0x44, 0x44, 0x44, 0x44, 0x9f, 0x1a, 0xd0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0xad, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x1a, 0xd0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0xad, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x1a, 0xd0, 0x0, 0x0, 0x0, 0x6, 0xf1, 0xad, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x10, + + /* U+041E "О" */ + 0x0, 0x0, 0x6b, 0xef, 0xeb, 0x60, 0x0, 0x0, 0x2, 0xdf, 0xb7, 0x57, 0xbf, 0xd2, 0x0, 0x2, 0xed, 0x20, 0x0, 0x0, 0x3d, 0xe2, 0x0, 0xce, 0x10, 0x0, 0x0, 0x0, 0x1e, 0xc0, 0x4f, 0x50, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x49, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe9, 0xca, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xcd, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0xca, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xc9, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe9, 0x4f, 0x50, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x40, 0xce, 0x10, 0x0, 0x0, 0x0, 0x1e, 0xc0, 0x2, 0xed, 0x20, 0x0, 0x0, 0x3d, 0xe2, 0x0, 0x2, 0xdf, 0xb7, 0x67, 0xbf, 0xd2, 0x0, 0x0, 0x0, 0x6b, 0xef, 0xeb, 0x60, 0x0, 0x0, + + /* U+041F "П" */ + 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2a, 0xe5, 0x55, 0x55, 0x55, 0x58, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x2a, 0xd0, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x2a, 0xd0, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x2a, 0xd0, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x2a, 0xd0, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x2a, 0xd0, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x2a, 0xd0, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xad, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x20, + + /* U+0420 "Р" */ + 0xaf, 0xff, 0xff, 0xfc, 0x70, 0x0, 0xae, 0x55, 0x55, 0x6a, 0xfd, 0x10, 0xad, 0x0, 0x0, 0x0, 0x3e, 0xa0, 0xad, 0x0, 0x0, 0x0, 0x7, 0xf1, 0xad, 0x0, 0x0, 0x0, 0x3, 0xf4, 0xad, 0x0, 0x0, 0x0, 0x2, 0xf4, 0xad, 0x0, 0x0, 0x0, 0x5, 0xf2, 0xad, 0x0, 0x0, 0x0, 0xd, 0xc0, 0xad, 0x11, 0x11, 0x26, 0xdf, 0x30, 0xaf, 0xff, 0xff, 0xff, 0xb2, 0x0, 0xae, 0x44, 0x44, 0x30, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+0421 "С" */ + 0x0, 0x0, 0x6b, 0xef, 0xeb, 0x60, 0x0, 0x2, 0xdf, 0xb7, 0x57, 0xaf, 0xd2, 0x2, 0xed, 0x30, 0x0, 0x0, 0x2d, 0x40, 0xce, 0x10, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x50, 0x0, 0x0, 0x0, 0x0, 0x9, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x10, 0x0, 0x0, 0x0, 0x0, 0x2, 0xed, 0x30, 0x0, 0x0, 0x3d, 0x40, 0x2, 0xdf, 0xb7, 0x67, 0xbf, 0xd1, 0x0, 0x0, 0x6b, 0xef, 0xeb, 0x60, 0x0, + + /* U+0422 "Т" */ + 0xcf, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x45, 0x55, 0x5e, 0xb5, 0x55, 0x52, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x0, 0x0, + + /* U+0423 "У" */ + 0x5f, 0x40, 0x0, 0x0, 0x0, 0x6, 0xf2, 0xc, 0xc0, 0x0, 0x0, 0x0, 0xd, 0x90, 0x4, 0xf3, 0x0, 0x0, 0x0, 0x6f, 0x10, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xd9, 0x0, 0x0, 0x4f, 0x30, 0x0, 0x6, 0xf1, 0x0, 0x0, 0xc, 0xb0, 0x0, 0xd, 0x80, 0x0, 0x0, 0x4, 0xf3, 0x0, 0x6f, 0x10, 0x0, 0x0, 0x0, 0xcb, 0x0, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x4f, 0x36, 0xf1, 0x0, 0x0, 0x0, 0x0, 0xc, 0xbd, 0x70, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x86, 0xaf, 0x50, 0x0, 0x0, 0x0, 0x2, 0xdf, 0xd5, 0x0, 0x0, 0x0, 0x0, + + /* U+0424 "Ф" */ + 0x0, 0x0, 0x0, 0x6, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x8c, 0xef, 0xff, 0xda, 0x50, 0x0, 0x0, 0xa, 0xfc, 0x75, 0xae, 0x46, 0xaf, 0xd3, 0x0, 0xc, 0xe4, 0x0, 0x8, 0xd0, 0x0, 0x1b, 0xf2, 0x6, 0xf3, 0x0, 0x0, 0x8d, 0x0, 0x0, 0xd, 0xc0, 0xca, 0x0, 0x0, 0x8, 0xd0, 0x0, 0x0, 0x5f, 0x2f, 0x70, 0x0, 0x0, 0x8d, 0x0, 0x0, 0x2, 0xf4, 0xf7, 0x0, 0x0, 0x8, 0xd0, 0x0, 0x0, 0x1f, 0x5d, 0xa0, 0x0, 0x0, 0x8d, 0x0, 0x0, 0x4, 0xf2, 0x8f, 0x10, 0x0, 0x8, 0xd0, 0x0, 0x0, 0xbd, 0x0, 0xdd, 0x20, 0x0, 0x8d, 0x0, 0x0, 0x9f, 0x40, 0x2, 0xdf, 0x94, 0x28, 0xd1, 0x37, 0xdf, 0x50, 0x0, 0x0, 0x6b, 0xff, 0xff, 0xff, 0xd8, 0x10, 0x0, 0x0, 0x0, 0x0, 0x19, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x59, 0x0, 0x0, 0x0, 0x0, + + /* U+0425 "Х" */ + 0xd, 0xd0, 0x0, 0x0, 0x0, 0xdd, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x9f, 0x30, 0x0, 0x9f, 0x30, 0x0, 0x3f, 0x80, 0x0, 0x0, 0xdd, 0x0, 0xd, 0xd0, 0x0, 0x0, 0x3, 0xf8, 0x9, 0xf3, 0x0, 0x0, 0x0, 0x9, 0xf7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xe, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xdf, 0x40, 0x0, 0x0, 0x0, 0xd, 0xd0, 0xde, 0x0, 0x0, 0x0, 0x9, 0xf3, 0x3, 0xf9, 0x0, 0x0, 0x3, 0xf7, 0x0, 0x8, 0xf4, 0x0, 0x0, 0xdc, 0x0, 0x0, 0xd, 0xd0, 0x0, 0x9f, 0x20, 0x0, 0x0, 0x3f, 0x90, 0x3f, 0x70, 0x0, 0x0, 0x0, 0x8f, 0x30, + + /* U+0426 "Ц" */ + 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0xae, 0x55, 0x55, 0x55, 0x55, 0xdd, 0x55, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x37, + + /* U+0427 "Ч" */ + 0xda, 0x0, 0x0, 0x0, 0x3, 0xf3, 0xda, 0x0, 0x0, 0x0, 0x3, 0xf3, 0xda, 0x0, 0x0, 0x0, 0x3, 0xf3, 0xda, 0x0, 0x0, 0x0, 0x3, 0xf3, 0xda, 0x0, 0x0, 0x0, 0x3, 0xf3, 0xca, 0x0, 0x0, 0x0, 0x3, 0xf3, 0xbd, 0x0, 0x0, 0x0, 0x3, 0xf3, 0x6f, 0x50, 0x0, 0x0, 0x4, 0xf3, 0xc, 0xf8, 0x21, 0x25, 0xaf, 0xf3, 0x1, 0x9f, 0xff, 0xff, 0xb8, 0xf3, 0x0, 0x0, 0x34, 0x20, 0x3, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf3, + + /* U+0428 "Ш" */ + 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0xae, 0x55, 0x55, 0x55, 0xdc, 0x55, 0x55, 0x55, 0xf8, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, + + /* U+0429 "Щ" */ + 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xad, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0xf8, 0x0, 0xae, 0x55, 0x55, 0x55, 0xdc, 0x55, 0x55, 0x55, 0xfa, 0x53, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x55, + + /* U+042A "Ъ" */ + 0xcf, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x55, 0x9f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0xff, 0xff, 0xc6, 0x0, 0x0, 0x0, 0x6f, 0x43, 0x33, 0x35, 0xbf, 0x90, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x8, 0xf3, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x1, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x1, 0xf6, 0x0, 0x0, 0x6f, 0x0, 0x0, 0x0, 0x9, 0xf1, 0x0, 0x0, 0x6f, 0x43, 0x33, 0x35, 0xbf, 0x60, 0x0, 0x0, 0x6f, 0xff, 0xff, 0xfe, 0xa3, 0x0, + + /* U+042B "Ы" */ + 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xaf, 0xff, 0xff, 0xfe, 0xb4, 0x0, 0x4, 0xf3, 0xad, 0x33, 0x33, 0x46, 0xcf, 0x60, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0xb, 0xf0, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x4, 0xf3, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x2, 0xf4, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x4, 0xf3, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0xc, 0xe0, 0x4, 0xf3, 0xad, 0x33, 0x33, 0x46, 0xdf, 0x40, 0x4, 0xf3, 0xaf, 0xff, 0xff, 0xfd, 0x92, 0x0, 0x4, 0xf3, + + /* U+042C "Ь" */ + 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0xff, 0xfe, 0xb4, 0x0, 0xad, 0x33, 0x33, 0x46, 0xcf, 0x60, 0xad, 0x0, 0x0, 0x0, 0xb, 0xf0, 0xad, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0x2, 0xf4, 0xad, 0x0, 0x0, 0x0, 0x4, 0xf3, 0xad, 0x0, 0x0, 0x0, 0xc, 0xe0, 0xad, 0x33, 0x33, 0x46, 0xdf, 0x40, 0xaf, 0xff, 0xff, 0xfd, 0x92, 0x0, + + /* U+042D "Э" */ + 0x0, 0x39, 0xdf, 0xfd, 0x81, 0x0, 0x0, 0x8f, 0xd8, 0x66, 0x9f, 0xf4, 0x0, 0x1e, 0x70, 0x0, 0x0, 0x1b, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdb, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xd0, 0x0, 0xc, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x23, 0x33, 0x33, 0x3b, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x60, 0x0, 0x0, 0x0, 0x0, 0xc, 0xe0, 0x1c, 0x50, 0x0, 0x0, 0x1b, 0xf4, 0x0, 0x9f, 0xd8, 0x66, 0xaf, 0xf5, 0x0, 0x0, 0x3a, 0xdf, 0xfd, 0x81, 0x0, 0x0, + + /* U+042E "Ю" */ + 0xad, 0x0, 0x0, 0x0, 0x3a, 0xef, 0xfc, 0x60, 0x0, 0xa, 0xd0, 0x0, 0x0, 0x9f, 0xb6, 0x45, 0x9f, 0xd2, 0x0, 0xad, 0x0, 0x0, 0xaf, 0x50, 0x0, 0x0, 0x2d, 0xe1, 0xa, 0xd0, 0x0, 0x5f, 0x50, 0x0, 0x0, 0x0, 0x1e, 0xa0, 0xad, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x1a, 0xd0, 0x1, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf6, 0xad, 0x11, 0x5f, 0x30, 0x0, 0x0, 0x0, 0x0, 0xe, 0x9a, 0xff, 0xff, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, 0xad, 0x44, 0x7f, 0x30, 0x0, 0x0, 0x0, 0x0, 0xe, 0x9a, 0xd0, 0x1, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf6, 0xad, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x1a, 0xd0, 0x0, 0x5f, 0x60, 0x0, 0x0, 0x0, 0x1e, 0xa0, 0xad, 0x0, 0x0, 0xaf, 0x50, 0x0, 0x0, 0x2d, 0xe1, 0xa, 0xd0, 0x0, 0x0, 0x9f, 0xb6, 0x45, 0x9f, 0xd2, 0x0, 0xad, 0x0, 0x0, 0x0, 0x3a, 0xef, 0xfc, 0x60, 0x0, 0x0, + + /* U+042F "Я" */ + 0x0, 0x29, 0xef, 0xff, 0xff, 0xf4, 0x5, 0xfd, 0x85, 0x55, 0x57, 0xf4, 0x1f, 0xb0, 0x0, 0x0, 0x3, 0xf4, 0x7f, 0x10, 0x0, 0x0, 0x3, 0xf4, 0xad, 0x0, 0x0, 0x0, 0x3, 0xf4, 0xad, 0x0, 0x0, 0x0, 0x3, 0xf4, 0x8f, 0x0, 0x0, 0x0, 0x3, 0xf4, 0x3f, 0x70, 0x0, 0x0, 0x3, 0xf4, 0x9, 0xf8, 0x31, 0x0, 0x3, 0xf4, 0x0, 0x7e, 0xff, 0xff, 0xff, 0xf4, 0x0, 0xd, 0xb3, 0x33, 0x36, 0xf4, 0x0, 0x7f, 0x10, 0x0, 0x3, 0xf4, 0x2, 0xf7, 0x0, 0x0, 0x3, 0xf4, 0xb, 0xd0, 0x0, 0x0, 0x3, 0xf4, 0x6f, 0x30, 0x0, 0x0, 0x3, 0xf4, + + /* U+0430 "а" */ + 0x4, 0xae, 0xff, 0xb3, 0x6, 0xfb, 0x64, 0x6d, 0xf3, 0x14, 0x0, 0x0, 0xe, 0xa0, 0x0, 0x0, 0x0, 0x9d, 0x0, 0x0, 0x0, 0x8, 0xe0, 0x6c, 0xef, 0xff, 0xfe, 0x7f, 0x73, 0x22, 0x29, 0xed, 0x90, 0x0, 0x0, 0x8e, 0xd9, 0x0, 0x0, 0xd, 0xe7, 0xf6, 0x11, 0x4c, 0xce, 0x6, 0xdf, 0xfc, 0x57, 0xe0, + + /* U+0431 "б" */ + 0x0, 0x0, 0x0, 0x0, 0x4, 0x30, 0x0, 0x0, 0x5, 0x9d, 0xff, 0x80, 0x0, 0x8, 0xff, 0xd9, 0x52, 0x0, 0x0, 0xcf, 0x71, 0x0, 0x0, 0x0, 0x8, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x60, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x5, 0xcf, 0xfe, 0x80, 0x0, 0x8d, 0x8e, 0x74, 0x49, 0xfd, 0x0, 0xae, 0xd1, 0x0, 0x0, 0x3f, 0x90, 0xaf, 0x50, 0x0, 0x0, 0x9, 0xf0, 0x9f, 0x10, 0x0, 0x0, 0x5, 0xf2, 0x6f, 0x10, 0x0, 0x0, 0x5, 0xf1, 0x2f, 0x60, 0x0, 0x0, 0x9, 0xe0, 0xb, 0xe2, 0x0, 0x0, 0x4f, 0x70, 0x1, 0xee, 0x74, 0x48, 0xfb, 0x0, 0x0, 0x19, 0xef, 0xfc, 0x60, 0x0, + + /* U+0432 "в" */ + 0xff, 0xff, 0xff, 0xb3, 0xf, 0x72, 0x22, 0x4b, 0xf2, 0xf6, 0x0, 0x0, 0xf, 0x7f, 0x60, 0x0, 0x0, 0xf6, 0xf6, 0x0, 0x1, 0x9e, 0x1f, 0xff, 0xff, 0xff, 0x50, 0xf7, 0x22, 0x22, 0x6f, 0x6f, 0x60, 0x0, 0x0, 0xac, 0xf6, 0x0, 0x0, 0xa, 0xdf, 0x82, 0x22, 0x37, 0xf7, 0xff, 0xff, 0xff, 0xd7, 0x0, + + /* U+0433 "г" */ + 0xff, 0xff, 0xff, 0xf7, 0xf9, 0x44, 0x44, 0x42, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, + + /* U+0434 "д" */ + 0x0, 0x2f, 0xff, 0xff, 0xff, 0xa0, 0x0, 0x2, 0xf6, 0x44, 0x44, 0xda, 0x0, 0x0, 0x3f, 0x10, 0x0, 0xc, 0xa0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x5f, 0x0, 0x0, 0xc, 0xa0, 0x0, 0x6, 0xe0, 0x0, 0x0, 0xca, 0x0, 0x0, 0x7d, 0x0, 0x0, 0xc, 0xa0, 0x0, 0xa, 0xa0, 0x0, 0x0, 0xca, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xc, 0xa0, 0x3, 0xaf, 0x44, 0x44, 0x44, 0xdb, 0x41, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4d, 0x80, 0x0, 0x0, 0x0, 0x1, 0xf4, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x46, 0x40, 0x0, 0x0, 0x0, 0x0, 0x82, + + /* U+0435 "е" */ + 0x0, 0x4b, 0xff, 0xc6, 0x0, 0x0, 0x7f, 0xa5, 0x48, 0xfa, 0x0, 0x3f, 0x50, 0x0, 0x3, 0xf6, 0xa, 0xb0, 0x0, 0x0, 0x8, 0xe0, 0xe7, 0x0, 0x0, 0x0, 0x3f, 0x2f, 0xfe, 0xee, 0xee, 0xef, 0xf3, 0xe8, 0x11, 0x11, 0x11, 0x11, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x51, 0x0, 0x6f, 0xc7, 0x56, 0xbf, 0x40, 0x0, 0x3a, 0xef, 0xea, 0x30, 0x0, + + /* U+0436 "ж" */ + 0x1f, 0x80, 0x0, 0x7, 0xf0, 0x0, 0x1, 0xe8, 0x0, 0x6f, 0x20, 0x0, 0x7f, 0x0, 0x0, 0x9e, 0x0, 0x0, 0xcb, 0x0, 0x7, 0xf0, 0x0, 0x3f, 0x40, 0x0, 0x2, 0xf5, 0x0, 0x7f, 0x0, 0xd, 0xa0, 0x0, 0x0, 0x7, 0xe1, 0x7, 0xf0, 0x7, 0xe1, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x9, 0xf4, 0x39, 0xf3, 0x39, 0xf2, 0x0, 0x0, 0x4, 0xf6, 0x0, 0x7f, 0x0, 0xd, 0xc0, 0x0, 0x1, 0xeb, 0x0, 0x7, 0xf0, 0x0, 0x3f, 0x70, 0x0, 0xaf, 0x10, 0x0, 0x7f, 0x0, 0x0, 0x8f, 0x30, 0x5f, 0x60, 0x0, 0x7, 0xf0, 0x0, 0x0, 0xdd, 0x0, + + /* U+0437 "з" */ + 0x2, 0x9e, 0xff, 0xc6, 0x0, 0xc, 0xc7, 0x56, 0xaf, 0xa0, 0x1, 0x0, 0x0, 0x8, 0xf1, 0x0, 0x0, 0x0, 0x5, 0xf1, 0x0, 0x0, 0x0, 0x3d, 0x90, 0x0, 0x9, 0xff, 0xfb, 0x0, 0x0, 0x1, 0x22, 0x4c, 0xe1, 0x0, 0x0, 0x0, 0x1, 0xf7, 0x1, 0x0, 0x0, 0x3, 0xf6, 0x3f, 0xa6, 0x45, 0x8f, 0xc0, 0x3, 0xae, 0xff, 0xc7, 0x0, + + /* U+0438 "и" */ + 0xf7, 0x0, 0x0, 0x1, 0xdb, 0xf7, 0x0, 0x0, 0xb, 0xfb, 0xf7, 0x0, 0x0, 0x8f, 0xdb, 0xf7, 0x0, 0x5, 0xf4, 0xbb, 0xf7, 0x0, 0x3f, 0x70, 0xbb, 0xf7, 0x1, 0xea, 0x0, 0xbb, 0xf7, 0xc, 0xd0, 0x0, 0xbb, 0xf7, 0x9f, 0x20, 0x0, 0xbb, 0xfc, 0xf4, 0x0, 0x0, 0xbb, 0xff, 0x70, 0x0, 0x0, 0xbb, 0xfb, 0x0, 0x0, 0x0, 0xbb, + + /* U+0439 "й" */ + 0x2, 0xe0, 0x0, 0x5b, 0x0, 0x0, 0xd7, 0x1, 0xc6, 0x0, 0x0, 0x2b, 0xed, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x1, 0xdb, 0xf7, 0x0, 0x0, 0xb, 0xfb, 0xf7, 0x0, 0x0, 0x8f, 0xdb, 0xf7, 0x0, 0x5, 0xf4, 0xbb, 0xf7, 0x0, 0x3f, 0x70, 0xbb, 0xf7, 0x1, 0xea, 0x0, 0xbb, 0xf7, 0xc, 0xd0, 0x0, 0xbb, 0xf7, 0x9f, 0x20, 0x0, 0xbb, 0xfc, 0xf4, 0x0, 0x0, 0xbb, 0xff, 0x70, 0x0, 0x0, 0xbb, 0xfb, 0x0, 0x0, 0x0, 0xbb, + + /* U+043A "к" */ + 0xf7, 0x0, 0x0, 0xc, 0xb0, 0xf7, 0x0, 0x0, 0x9e, 0x10, 0xf7, 0x0, 0x5, 0xf3, 0x0, 0xf7, 0x0, 0x2e, 0x70, 0x0, 0xf7, 0x0, 0xca, 0x0, 0x0, 0xff, 0xff, 0xf2, 0x0, 0x0, 0xf9, 0x33, 0xdc, 0x0, 0x0, 0xf7, 0x0, 0x2f, 0x90, 0x0, 0xf7, 0x0, 0x5, 0xf6, 0x0, 0xf7, 0x0, 0x0, 0x7f, 0x30, 0xf7, 0x0, 0x0, 0xa, 0xe1, + + /* U+043B "л" */ + 0x0, 0x1f, 0xff, 0xff, 0xff, 0xa0, 0x2, 0xf6, 0x44, 0x44, 0xda, 0x0, 0x3f, 0x10, 0x0, 0xc, 0xa0, 0x3, 0xf0, 0x0, 0x0, 0xca, 0x0, 0x4f, 0x0, 0x0, 0xc, 0xa0, 0x5, 0xe0, 0x0, 0x0, 0xca, 0x0, 0x7d, 0x0, 0x0, 0xc, 0xa0, 0x9, 0xb0, 0x0, 0x0, 0xca, 0x0, 0xd7, 0x0, 0x0, 0xc, 0xa3, 0x8f, 0x20, 0x0, 0x0, 0xca, 0xdf, 0x60, 0x0, 0x0, 0xc, 0xa0, + + /* U+043C "м" */ + 0xfb, 0x0, 0x0, 0x0, 0x0, 0xdc, 0xff, 0x40, 0x0, 0x0, 0x6, 0xfc, 0xfd, 0xd0, 0x0, 0x0, 0xe, 0xdc, 0xf5, 0xe6, 0x0, 0x0, 0x8c, 0x8c, 0xf5, 0x6e, 0x10, 0x2, 0xf3, 0x8c, 0xf5, 0xc, 0x80, 0xb, 0x90, 0x8c, 0xf5, 0x3, 0xf2, 0x4f, 0x10, 0x8c, 0xf5, 0x0, 0xab, 0xd7, 0x0, 0x8c, 0xf5, 0x0, 0x2f, 0xd0, 0x0, 0x8c, 0xf5, 0x0, 0x6, 0x40, 0x0, 0x8c, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x8c, + + /* U+043D "н" */ + 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf9, 0x33, 0x33, 0x33, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, + + /* U+043E "о" */ + 0x0, 0x3b, 0xef, 0xe9, 0x10, 0x0, 0x6f, 0xb6, 0x47, 0xde, 0x30, 0x3f, 0x80, 0x0, 0x0, 0xce, 0xa, 0xd0, 0x0, 0x0, 0x2, 0xf6, 0xe8, 0x0, 0x0, 0x0, 0xd, 0x9f, 0x70, 0x0, 0x0, 0x0, 0xbb, 0xe8, 0x0, 0x0, 0x0, 0xd, 0x9a, 0xd0, 0x0, 0x0, 0x2, 0xf5, 0x3f, 0x90, 0x0, 0x1, 0xcd, 0x0, 0x6f, 0xc6, 0x57, 0xee, 0x20, 0x0, 0x3b, 0xef, 0xe9, 0x10, 0x0, + + /* U+043F "п" */ + 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf9, 0x44, 0x44, 0x44, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, 0xf7, 0x0, 0x0, 0x0, 0xf7, + + /* U+0440 "р" */ + 0xf6, 0x19, 0xef, 0xe9, 0x10, 0xf, 0x8e, 0xb6, 0x47, 0xee, 0x30, 0xff, 0x80, 0x0, 0x1, 0xce, 0xf, 0xd0, 0x0, 0x0, 0x2, 0xf5, 0xf8, 0x0, 0x0, 0x0, 0xd, 0x9f, 0x70, 0x0, 0x0, 0x0, 0xba, 0xf8, 0x0, 0x0, 0x0, 0xd, 0x9f, 0xd0, 0x0, 0x0, 0x2, 0xf5, 0xff, 0x80, 0x0, 0x1, 0xcd, 0xf, 0x9e, 0xc6, 0x57, 0xee, 0x30, 0xf7, 0x19, 0xef, 0xe9, 0x10, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+0441 "с" */ + 0x0, 0x3a, 0xef, 0xe9, 0x10, 0x6, 0xfc, 0x64, 0x7d, 0xe2, 0x3f, 0x80, 0x0, 0x0, 0xa2, 0xad, 0x0, 0x0, 0x0, 0x0, 0xe8, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xe8, 0x0, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x90, 0x0, 0x0, 0xa2, 0x6, 0xfc, 0x65, 0x7e, 0xe2, 0x0, 0x3a, 0xef, 0xe9, 0x10, + + /* U+0442 "т" */ + 0xff, 0xff, 0xff, 0xff, 0xf6, 0x44, 0x44, 0xf9, 0x44, 0x42, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, + + /* U+0443 "у" */ + 0xa, 0xd0, 0x0, 0x0, 0x0, 0xab, 0x3, 0xf4, 0x0, 0x0, 0x1, 0xf4, 0x0, 0xcb, 0x0, 0x0, 0x8, 0xd0, 0x0, 0x5f, 0x20, 0x0, 0xe, 0x70, 0x0, 0xe, 0x90, 0x0, 0x5f, 0x0, 0x0, 0x7, 0xf0, 0x0, 0xc9, 0x0, 0x0, 0x1, 0xf6, 0x3, 0xf2, 0x0, 0x0, 0x0, 0x9d, 0xa, 0xb0, 0x0, 0x0, 0x0, 0x2f, 0x6f, 0x40, 0x0, 0x0, 0x0, 0xb, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x80, 0x0, 0x0, 0x1c, 0x65, 0xbe, 0x10, 0x0, 0x0, 0x9, 0xef, 0xc2, 0x0, 0x0, 0x0, + + /* U+0444 "ф" */ + 0x0, 0x0, 0x0, 0x6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x18, 0xcf, 0xff, 0xeb, 0x60, 0x0, 0x0, 0x5f, 0xe8, 0x5e, 0xa6, 0xaf, 0xd2, 0x0, 0x3f, 0x90, 0x0, 0xd8, 0x0, 0x2d, 0xd0, 0xb, 0xd0, 0x0, 0xd, 0x80, 0x0, 0x2f, 0x60, 0xe7, 0x0, 0x0, 0xd8, 0x0, 0x0, 0xca, 0xf, 0x60, 0x0, 0xd, 0x80, 0x0, 0xb, 0xb0, 0xe7, 0x0, 0x0, 0xd8, 0x0, 0x0, 0xca, 0xb, 0xd0, 0x0, 0xd, 0x80, 0x0, 0x2f, 0x60, 0x3f, 0xa0, 0x0, 0xd8, 0x0, 0x2d, 0xd0, 0x0, 0x5f, 0xe8, 0x5e, 0xa6, 0xaf, 0xd2, 0x0, 0x0, 0x18, 0xcf, 0xff, 0xeb, 0x60, 0x0, 0x0, 0x0, 0x0, 0xd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0, 0x0, + + /* U+0445 "х" */ + 0x2f, 0x70, 0x0, 0x1, 0xe9, 0x0, 0x6f, 0x30, 0x0, 0xad, 0x0, 0x0, 0xad, 0x0, 0x6f, 0x20, 0x0, 0x0, 0xda, 0x2f, 0x60, 0x0, 0x0, 0x3, 0xfe, 0xa0, 0x0, 0x0, 0x0, 0xb, 0xf3, 0x0, 0x0, 0x0, 0x6, 0xfc, 0xd0, 0x0, 0x0, 0x2, 0xf7, 0x1e, 0x90, 0x0, 0x0, 0xdb, 0x0, 0x3f, 0x50, 0x0, 0x9e, 0x10, 0x0, 0x8f, 0x20, 0x5f, 0x40, 0x0, 0x0, 0xcd, 0x0, + + /* U+0446 "ц" */ + 0xf7, 0x0, 0x0, 0x2, 0xf4, 0xf, 0x70, 0x0, 0x0, 0x2f, 0x40, 0xf7, 0x0, 0x0, 0x2, 0xf4, 0xf, 0x70, 0x0, 0x0, 0x2f, 0x40, 0xf7, 0x0, 0x0, 0x2, 0xf4, 0xf, 0x70, 0x0, 0x0, 0x2f, 0x40, 0xf7, 0x0, 0x0, 0x2, 0xf4, 0xf, 0x70, 0x0, 0x0, 0x2f, 0x40, 0xf7, 0x0, 0x0, 0x2, 0xf4, 0xf, 0x94, 0x44, 0x44, 0x6f, 0x74, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x27, + + /* U+0447 "ч" */ + 0x1f, 0x50, 0x0, 0x0, 0x7f, 0x1f, 0x50, 0x0, 0x0, 0x7f, 0x1f, 0x50, 0x0, 0x0, 0x7f, 0xf, 0x50, 0x0, 0x0, 0x7f, 0xf, 0x80, 0x0, 0x0, 0x7f, 0x9, 0xf6, 0x10, 0x26, 0xdf, 0x0, 0x9f, 0xff, 0xfc, 0xbf, 0x0, 0x0, 0x22, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x7f, + + /* U+0448 "ш" */ + 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x8f, 0x70, 0x0, 0x6, 0xf0, 0x0, 0x0, 0xe8, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x8f, 0x70, 0x0, 0x6, 0xf0, 0x0, 0x0, 0xe8, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x8f, 0x70, 0x0, 0x6, 0xf0, 0x0, 0x0, 0xe8, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x8f, 0x70, 0x0, 0x6, 0xf0, 0x0, 0x0, 0xe8, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x8f, 0x94, 0x44, 0x49, 0xf4, 0x44, 0x44, 0xe8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, + + /* U+0449 "щ" */ + 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x80, 0xf, 0x70, 0x0, 0x6, 0xf0, 0x0, 0x0, 0xe8, 0x0, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x80, 0xf, 0x70, 0x0, 0x6, 0xf0, 0x0, 0x0, 0xe8, 0x0, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x80, 0xf, 0x70, 0x0, 0x6, 0xf0, 0x0, 0x0, 0xe8, 0x0, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x80, 0xf, 0x70, 0x0, 0x6, 0xf0, 0x0, 0x0, 0xe8, 0x0, 0xf7, 0x0, 0x0, 0x6f, 0x0, 0x0, 0xe, 0x80, 0xf, 0x94, 0x44, 0x49, 0xf4, 0x44, 0x44, 0xea, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x81, + + /* U+044A "ъ" */ + 0xff, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x44, 0x4c, 0xb0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xb0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xb0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xff, 0xeb, 0x30, 0x0, 0xb, 0xc2, 0x22, 0x4b, 0xf3, 0x0, 0xb, 0xb0, 0x0, 0x0, 0xe9, 0x0, 0xb, 0xb0, 0x0, 0x0, 0xbb, 0x0, 0xb, 0xb0, 0x0, 0x0, 0xe9, 0x0, 0xb, 0xc2, 0x22, 0x4b, 0xf3, 0x0, 0xb, 0xff, 0xff, 0xeb, 0x30, + + /* U+044B "ы" */ + 0xf7, 0x0, 0x0, 0x0, 0x0, 0xbb, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xbb, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xbb, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xbb, 0xff, 0xff, 0xfd, 0x91, 0x0, 0xbb, 0xf8, 0x22, 0x25, 0xde, 0x0, 0xbb, 0xf7, 0x0, 0x0, 0x2f, 0x60, 0xbb, 0xf7, 0x0, 0x0, 0xf, 0x70, 0xbb, 0xf7, 0x0, 0x0, 0x2f, 0x50, 0xbb, 0xf7, 0x11, 0x15, 0xdd, 0x0, 0xbb, 0xff, 0xff, 0xfd, 0x91, 0x0, 0xbb, + + /* U+044C "ь" */ + 0xf7, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0xf7, 0x0, 0x0, 0x0, 0xf, 0x70, 0x0, 0x0, 0x0, 0xff, 0xff, 0xfe, 0xa2, 0xf, 0x82, 0x22, 0x4c, 0xe1, 0xf7, 0x0, 0x0, 0x1f, 0x7f, 0x70, 0x0, 0x0, 0xe9, 0xf7, 0x0, 0x0, 0x1f, 0x7f, 0x81, 0x12, 0x4c, 0xe1, 0xff, 0xff, 0xfe, 0x91, 0x0, + + /* U+044D "э" */ + 0x1, 0x9d, 0xff, 0xc6, 0x0, 0x2, 0xfc, 0x63, 0x48, 0xfb, 0x0, 0x5, 0x0, 0x0, 0x2, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf1, 0x0, 0x0, 0x0, 0x0, 0xf, 0x50, 0x0, 0x8f, 0xff, 0xff, 0xf7, 0x0, 0x1, 0x22, 0x22, 0x2f, 0x50, 0x0, 0x0, 0x0, 0x5, 0xf1, 0x3, 0x0, 0x0, 0x2, 0xe9, 0x2, 0xfb, 0x63, 0x48, 0xfb, 0x0, 0x2, 0x9d, 0xff, 0xc6, 0x0, 0x0, + + /* U+044E "ю" */ + 0xf7, 0x0, 0x0, 0x5c, 0xff, 0xc6, 0x0, 0xf, 0x70, 0x0, 0x9f, 0x84, 0x37, 0xfb, 0x0, 0xf7, 0x0, 0x6f, 0x40, 0x0, 0x2, 0xf8, 0xf, 0x70, 0xd, 0xa0, 0x0, 0x0, 0x8, 0xf0, 0xf7, 0x12, 0xf5, 0x0, 0x0, 0x0, 0x3f, 0x3f, 0xff, 0xff, 0x30, 0x0, 0x0, 0x2, 0xf4, 0xf9, 0x45, 0xf5, 0x0, 0x0, 0x0, 0x3f, 0x3f, 0x70, 0xd, 0xa0, 0x0, 0x0, 0x8, 0xe0, 0xf7, 0x0, 0x6f, 0x40, 0x0, 0x3, 0xf7, 0xf, 0x70, 0x0, 0x9f, 0x84, 0x37, 0xfb, 0x0, 0xf7, 0x0, 0x0, 0x5c, 0xff, 0xc6, 0x0, 0x0, + + /* U+044F "я" */ + 0x2, 0xae, 0xff, 0xff, 0xf1, 0x3f, 0xd7, 0x44, 0x47, 0xf1, 0xae, 0x0, 0x0, 0x3, 0xf1, 0xca, 0x0, 0x0, 0x3, 0xf1, 0xbc, 0x0, 0x0, 0x3, 0xf1, 0x4f, 0x81, 0x0, 0x3, 0xf1, 0x5, 0xdf, 0xff, 0xff, 0xf1, 0x0, 0x9d, 0x22, 0x25, 0xf1, 0x4, 0xf4, 0x0, 0x3, 0xf1, 0xd, 0x90, 0x0, 0x3, 0xf1, 0x8e, 0x10, 0x0, 0x3, 0xf1, + + /* U+0451 "ё" */ + 0x0, 0x5e, 0x10, 0xc9, 0x0, 0x0, 0x3, 0xb1, 0x9, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4b, 0xff, 0xc6, 0x0, 0x0, 0x7f, 0xa5, 0x48, 0xfa, 0x0, 0x3f, 0x50, 0x0, 0x3, 0xf6, 0xa, 0xb0, 0x0, 0x0, 0x8, 0xe0, 0xe7, 0x0, 0x0, 0x0, 0x3f, 0x2f, 0xfe, 0xee, 0xee, 0xef, 0xf3, 0xe8, 0x11, 0x11, 0x11, 0x11, 0xa, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x51, 0x0, 0x6f, 0xc7, 0x56, 0xbf, 0x40, 0x0, 0x3a, 0xef, 0xea, 0x30, 0x0}; + +/*--------------------- + * GLYPH DESCRIPTION + *--------------------*/ + +static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, + {.bitmap_index = 0, .adv_w = 84, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 0, .adv_w = 83, .box_w = 3, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 23, .adv_w = 119, .box_w = 6, .box_h = 6, .ofs_x = 1, .ofs_y = 9}, + {.bitmap_index = 41, .adv_w = 223, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 146, .adv_w = 197, .box_w = 12, .box_h = 20, .ofs_x = 0, .ofs_y = -3}, + {.bitmap_index = 266, .adv_w = 265, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 386, .adv_w = 214, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -1}, + {.bitmap_index = 498, .adv_w = 65, .box_w = 2, .box_h = 6, .ofs_x = 1, .ofs_y = 9}, + {.bitmap_index = 504, .adv_w = 105, .box_w = 4, .box_h = 19, .ofs_x = 2, .ofs_y = -4}, + {.bitmap_index = 542, .adv_w = 105, .box_w = 5, .box_h = 19, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 590, .adv_w = 124, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 7}, + {.bitmap_index = 622, .adv_w = 184, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 2}, + {.bitmap_index = 672, .adv_w = 68, .box_w = 3, .box_h = 6, .ofs_x = 1, .ofs_y = -3}, + {.bitmap_index = 681, .adv_w = 122, .box_w = 6, .box_h = 3, .ofs_x = 1, .ofs_y = 4}, + {.bitmap_index = 690, .adv_w = 68, .box_w = 3, .box_h = 3, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 695, .adv_w = 107, .box_w = 9, .box_h = 20, .ofs_x = -1, .ofs_y = -2}, + {.bitmap_index = 785, .adv_w = 212, .box_w = 12, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 875, .adv_w = 116, .box_w = 5, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 913, .adv_w = 182, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 996, .adv_w = 180, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1079, .adv_w = 212, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1177, .adv_w = 181, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1260, .adv_w = 195, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1343, .adv_w = 188, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1426, .adv_w = 204, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1516, .adv_w = 195, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1606, .adv_w = 68, .box_w = 3, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1623, .adv_w = 68, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = -3}, + {.bitmap_index = 1644, .adv_w = 184, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 2}, + {.bitmap_index = 1694, .adv_w = 184, .box_w = 10, .box_h = 8, .ofs_x = 1, .ofs_y = 3}, + {.bitmap_index = 1734, .adv_w = 184, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 2}, + {.bitmap_index = 1784, .adv_w = 181, .box_w = 10, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1859, .adv_w = 331, .box_w = 19, .box_h = 19, .ofs_x = 1, .ofs_y = -4}, + {.bitmap_index = 2040, .adv_w = 229, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 2153, .adv_w = 241, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2243, .adv_w = 230, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 2341, .adv_w = 264, .box_w = 14, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2446, .adv_w = 214, .box_w = 11, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2529, .adv_w = 203, .box_w = 10, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2604, .adv_w = 247, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 2702, .adv_w = 260, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2792, .adv_w = 97, .box_w = 2, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2807, .adv_w = 160, .box_w = 9, .box_h = 15, .ofs_x = -1, .ofs_y = 0}, + {.bitmap_index = 2875, .adv_w = 228, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2973, .adv_w = 188, .box_w = 10, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3048, .adv_w = 306, .box_w = 15, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3161, .adv_w = 260, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3251, .adv_w = 268, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 3364, .adv_w = 230, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3454, .adv_w = 268, .box_w = 16, .box_h = 19, .ofs_x = 1, .ofs_y = -4}, + {.bitmap_index = 3606, .adv_w = 231, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3696, .adv_w = 197, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 3786, .adv_w = 184, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 3876, .adv_w = 253, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3966, .adv_w = 223, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4071, .adv_w = 356, .box_w = 22, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4236, .adv_w = 210, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4334, .adv_w = 203, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4432, .adv_w = 208, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4530, .adv_w = 102, .box_w = 4, .box_h = 19, .ofs_x = 2, .ofs_y = -4}, + {.bitmap_index = 4568, .adv_w = 107, .box_w = 9, .box_h = 20, .ofs_x = -1, .ofs_y = -2}, + {.bitmap_index = 4658, .adv_w = 102, .box_w = 5, .box_h = 19, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 4706, .adv_w = 184, .box_w = 9, .box_h = 9, .ofs_x = 1, .ofs_y = 3}, + {.bitmap_index = 4747, .adv_w = 160, .box_w = 10, .box_h = 1, .ofs_x = 0, .ofs_y = -1}, + {.bitmap_index = 4752, .adv_w = 192, .box_w = 6, .box_h = 3, .ofs_x = 2, .ofs_y = 13}, + {.bitmap_index = 4761, .adv_w = 189, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 4811, .adv_w = 217, .box_w = 12, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 4901, .adv_w = 180, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4962, .adv_w = 217, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 5052, .adv_w = 193, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 5118, .adv_w = 108, .box_w = 8, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 5178, .adv_w = 219, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 5268, .adv_w = 216, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 5351, .adv_w = 86, .box_w = 3, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 5374, .adv_w = 88, .box_w = 6, .box_h = 19, .ofs_x = -2, .ofs_y = -4}, + {.bitmap_index = 5431, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 5514, .adv_w = 86, .box_w = 3, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 5537, .adv_w = 340, .box_w = 19, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 5642, .adv_w = 216, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 5703, .adv_w = 201, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 5769, .adv_w = 217, .box_w = 12, .box_h = 15, .ofs_x = 1, .ofs_y = -4}, + {.bitmap_index = 5859, .adv_w = 217, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 5949, .adv_w = 128, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 5988, .adv_w = 156, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 6043, .adv_w = 130, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 6099, .adv_w = 215, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 6160, .adv_w = 173, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 6221, .adv_w = 281, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 6320, .adv_w = 171, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 6381, .adv_w = 173, .box_w = 12, .box_h = 15, .ofs_x = -1, .ofs_y = -4}, + {.bitmap_index = 6471, .adv_w = 164, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 6526, .adv_w = 107, .box_w = 6, .box_h = 19, .ofs_x = 1, .ofs_y = -4}, + {.bitmap_index = 6583, .adv_w = 94, .box_w = 2, .box_h = 19, .ofs_x = 2, .ofs_y = -4}, + {.bitmap_index = 6602, .adv_w = 107, .box_w = 6, .box_h = 19, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 6659, .adv_w = 184, .box_w = 10, .box_h = 4, .ofs_x = 1, .ofs_y = 5}, + {.bitmap_index = 6679, .adv_w = 211, .box_w = 11, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 6778, .adv_w = 238, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 6891, .adv_w = 232, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 6981, .adv_w = 240, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 7071, .adv_w = 183, .box_w = 10, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 7146, .adv_w = 254, .box_w = 16, .box_h = 19, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 7298, .adv_w = 211, .box_w = 11, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 7381, .adv_w = 324, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 7531, .adv_w = 204, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -1}, + {.bitmap_index = 7627, .adv_w = 264, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 7725, .adv_w = 264, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 7849, .adv_w = 225, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 7939, .adv_w = 251, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 8044, .adv_w = 308, .box_w = 15, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 8157, .adv_w = 263, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 8255, .adv_w = 272, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 8368, .adv_w = 264, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 8466, .adv_w = 227, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 8556, .adv_w = 229, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 8654, .adv_w = 188, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 8744, .adv_w = 218, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 8849, .adv_w = 293, .box_w = 17, .box_h = 16, .ofs_x = 1, .ofs_y = -1}, + {.bitmap_index = 8985, .adv_w = 208, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 9083, .adv_w = 265, .box_w = 14, .box_h = 19, .ofs_x = 2, .ofs_y = -4}, + {.bitmap_index = 9216, .adv_w = 234, .box_w = 12, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 9306, .adv_w = 350, .box_w = 18, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 9441, .adv_w = 357, .box_w = 20, .box_h = 19, .ofs_x = 2, .ofs_y = -4}, + {.bitmap_index = 9631, .adv_w = 262, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 9751, .adv_w = 313, .box_w = 16, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 9871, .adv_w = 227, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 9961, .adv_w = 226, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 10059, .adv_w = 349, .box_w = 19, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 10202, .adv_w = 234, .box_w = 12, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 10292, .adv_w = 187, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 10342, .adv_w = 211, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 10438, .adv_w = 195, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 10488, .adv_w = 152, .box_w = 8, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 10532, .adv_w = 208, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -3}, + {.bitmap_index = 10623, .adv_w = 198, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 10684, .adv_w = 264, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 10778, .adv_w = 171, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 10833, .adv_w = 220, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 10888, .adv_w = 220, .box_w = 10, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 10963, .adv_w = 186, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 11018, .adv_w = 202, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 11079, .adv_w = 253, .box_w = 12, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 11145, .adv_w = 216, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 11200, .adv_w = 204, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 11261, .adv_w = 216, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 11316, .adv_w = 220, .box_w = 11, .box_h = 15, .ofs_x = 2, .ofs_y = -4}, + {.bitmap_index = 11399, .adv_w = 180, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 11454, .adv_w = 151, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 11509, .adv_w = 179, .box_w = 12, .box_h = 15, .ofs_x = -1, .ofs_y = -4}, + {.bitmap_index = 11599, .adv_w = 251, .box_w = 15, .box_h = 20, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 11749, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 11810, .adv_w = 219, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -3}, + {.bitmap_index = 11887, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 11942, .adv_w = 297, .box_w = 15, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 12025, .adv_w = 297, .box_w = 17, .box_h = 14, .ofs_x = 2, .ofs_y = -3}, + {.bitmap_index = 12144, .adv_w = 199, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 12210, .adv_w = 251, .box_w = 12, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 12276, .adv_w = 180, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 12326, .adv_w = 183, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 12387, .adv_w = 277, .box_w = 15, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 12470, .adv_w = 194, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 12525, .adv_w = 198, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0}}; + +/*--------------------- + * CHARACTER MAPPING + *--------------------*/ + +/*Collect the unicode lists and glyph_id offsets*/ +static const lv_font_fmt_txt_cmap_t cmaps[] = {{.range_start = 32, .range_length = 95, .glyph_id_start = 1, .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY}, {.range_start = 1025, .range_length = 1, .glyph_id_start = 96, .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY}, {.range_start = 1040, .range_length = 64, .glyph_id_start = 97, .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY}, {.range_start = 1105, .range_length = 1, .glyph_id_start = 161, .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY}}; + +/*----------------- + * KERNING + *----------------*/ + +/*Map glyph_ids to kern left classes*/ +static const uint8_t kern_left_class_mapping[] = {0, 0, 1, 2, 0, 3, 4, 5, 2, 6, 7, 8, 9, 10, 9, 10, 11, 12, 0, 13, 14, 15, 16, 17, 18, 19, 12, 20, 20, 0, 0, 0, 21, 22, 23, 24, 25, 22, 26, 27, 28, 29, 29, 30, 31, 32, 29, 29, 22, 33, 34, 35, 3, 36, 30, 37, 37, 38, 39, 40, 41, 42, 43, 0, 44, 0, 45, 46, 47, 48, 49, 50, 51, 45, 52, 52, 53, 48, 45, 45, 46, 46, 54, 55, 56, 57, 51, 58, 58, 59, 58, 60, 41, 0, 0, 9, 26, 23, 61, 24, 62, 63, 26, 38, 24, 29, 29, 38, 29, 29, 29, 22, 29, 33, 25, 36, 37, 22, 38, 63, 29, 29, 63, 64, 29, 64, 22, 22, 29, 51, 46, 0, 65, 51, 49, 59, 0, 51, 51, 59, 51, 51, 51, 46, 51, 46, 47, 65, 58, 46, 59, 51, 51, 51, 51, 66, 51, 66, 46, 46, 51, 49}; + +/*Map glyph_ids to kern right classes*/ +static const uint8_t kern_right_class_mapping[] = {0, 0, 1, 2, 0, 3, 4, 5, 2, 6, 7, 8, 9, 10, 9, 10, 11, 12, 13, 14, 15, 16, 17, 12, 18, 19, 20, 21, 21, 0, 0, 0, 22, 23, 24, 25, 23, 25, 25, 25, 23, 25, 25, 26, 25, 25, 25, 25, 23, 25, 23, 25, 3, 27, 28, 29, 29, 30, 31, 32, 33, 34, 35, 0, 36, 0, 37, 38, 39, 39, 39, 40, 39, 38, 41, 42, 38, 38, 43, 43, 39, 43, 39, 43, 44, 45, 46, 47, 47, 48, 49, 50, 0, 0, 35, 9, 25, 24, 25, 25, 25, 51, 25, 30, 52, 25, 25, 25, 53, 25, 25, 23, 25, 25, 23, 27, 30, 23, 30, 25, 54, 25, 25, 27, 25, 25, 52, 25, 30, 37, 23, 43, 43, 55, 39, 48, 56, 43, 43, 43, 55, 43, 43, 39, 43, 43, 39, 57, 47, 39, 48, 43, 46, 43, 43, 57, 43, 43, 56, 43, 48, 39}; + +/*Kern values between classes*/ +static const int8_t kern_class_values[] = {0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 8, 6, 0, 3, 0, 6, 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, 14, 0, 9, -8, 0, 0, 6, 0, -18, -19, 3, 15, 8, 6, -13, 3, 17, 1, 14, 3, 11, 0, -14, 0, 0, 2, 0, 0, 0, 0, 0, 0, 19, 2, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, -13, 0, 0, 0, 0, 0, -10, 0, 0, 0, 0, 0, -6, 6, 6, 0, 0, -3, 0, -3, 3, 0, -3, 0, -3, -2, -6, 0, 0, 0, 0, -3, 0, 0, -4, -5, 0, 0, -3, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -3, -3, 0, -6, 0, -6, -7, 0, -1, -4, 0, -9, 0, -38, 0, 0, -6, -16, 6, 10, 0, 0, -6, 3, 3, 11, 6, -6, 6, 0, 0, -19, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -12, 0, 0, 5, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -17, 0, -13, -3, 0, 0, -10, 0, 1, 14, 0, -10, -2, 0, 0, 0, -6, 0, 0, -2, -25, 0, 5, 0, 11, -9, 0, -6, 0, -13, 5, 0, -26, -2, 14, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, -4, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 3, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, -4, -4, -7, -8, 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, 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, -11, + 0, 0, 0, 2, 6, 3, 10, -3, 0, 0, 6, -3, -10, -45, 3, 9, 6, 1, -4, 0, 13, 0, 11, 0, 11, 0, -29, 0, -4, 10, 0, 11, -3, 6, 3, 0, 0, 0, -3, 0, 0, -6, 0, 0, 0, 26, 0, 10, 0, 14, 4, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -12, 0, 0, 0, -3, 0, -2, 0, 3, -5, -4, -6, 3, 0, -3, 0, 0, 0, -13, 3, -5, 0, -6, -10, 0, -7, -5, -10, 0, 0, -21, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, -4, -7, -4, -4, -2, -5, -6, -8, -4, -6, -7, 0, -18, 3, -20, 0, 0, 0, -10, -2, 0, 33, -4, -4, 3, 3, -4, 0, -4, 3, 0, 0, -17, -6, 11, 0, 19, -10, -3, -12, 0, -12, 6, 0, -31, 0, 3, 3, 0, -5, 0, 0, 3, 0, 0, -3, -5, -11, 0, -11, 0, 8, 0, 8, -16, 6, 0, -12, 0, 19, -6, 0, -12, 0, 10, 0, -21, -31, -21, -6, 10, 0, 0, -22, 0, 5, -7, 0, -5, 0, -6, -13, + 0, -3, 10, 0, 10, 0, 10, 0, 0, 10, 10, -40, -22, 0, -22, 0, 2, 0, -22, -22, -9, -22, -10, -20, -10, -22, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 3, -4, -6, 0, 0, 0, -3, 0, 0, -3, 0, 0, 0, -6, 0, -2, 0, -7, -6, 0, -8, -10, -10, -7, 0, -6, 0, -6, 0, 0, 0, 0, 0, -3, 0, 0, 3, 0, 3, -3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, -3, 3, 3, -1, 0, 0, 0, -7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 4, -3, 0, -4, 0, -5, 0, 0, -3, 0, 10, 0, 0, -3, 0, 0, 0, 0, 0, 0, -1, 1, -3, 1, -3, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, -3, -4, 0, 0, 0, 0, 0, 1, 0, 0, -2, 0, -3, -3, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, -2, -4, -2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -10, -3, -10, 6, 0, 0, -6, 3, 6, 9, 0, -8, -1, -5, 0, -1, -16, 3, -3, 2, -17, 3, 0, 0, 0, -16, 0, -17, -2, -28, -3, 0, -16, 0, 6, 9, 0, 4, 0, 0, 0, 0, 0, 0, 0, -5, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, -3, 0, 0, 0, 0, 0, -2, -2, 0, -2, -4, 0, 0, 0, 0, 0, 0, 0, -3, -3, 0, -2, -4, -3, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, -6, 3, 0, 0, -5, 2, 3, 3, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 3, 0, 0, -3, 0, -3, -3, -5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -3, 0, 0, 0, 0, -3, -5, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, -3, 0, -11, 0, 0, 9, -16, -17, -14, -6, 3, 0, -3, -21, -6, 0, -6, 0, -6, + 5, -6, -21, 0, -9, 0, 0, 2, -1, 2, -3, 0, 3, -1, -10, -12, 0, -16, 0, 0, -7, -8, -10, -5, -9, -1, -7, -1, -10, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, -2, 0, -1, -3, 0, -5, -7, -7, -1, 0, -10, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, -3, 0, 3, 0, 12, -3, 0, -7, -2, -12, 0, 0, -5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, -3, 3, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, -7, 0, 0, 5, 0, -16, -10, 0, 0, 0, -5, -16, 0, 0, -3, 3, 0, -10, 0, -13, 0, -9, 0, 0, -4, -5, -4, -3, -6, 0, 0, -7, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 5, 0, 3, -6, -6, 0, -3, -3, -4, 0, 0, 0, 0, 0, 0, -10, 0, -3, 0, -5, -3, 0, -7, -8, -10, -3, 0, -6, 0, -10, 0, 0, 0, 0, 0, 26, 0, 0, 2, 0, 0, -4, 0, 0, -6, -6, -6, -5, -5, -6, -5, 0, -14, 0, 0, 0, 0, 0, -29, -5, 11, 10, -2, -13, 0, 3, -5, 0, -16, -2, -4, 3, -22, -3, 3, 0, 5, -11, -5, -12, -10, -13, 0, 0, -19, 0, 19, 0, 0, -2, 0, 0, 0, 0, -2, -2, -3, -8, -10, -8, 0, 0, 0, 0, -14, 0, 0, -14, 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, -3, 0, -2, -3, -5, 0, 0, -6, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -6, 0, 0, 6, 0, 4, 0, -7, 3, -3, -1, -10, -3, 0, + -4, -3, -1, 0, -5, -6, 0, 0, -3, 0, -3, -6, -5, 0, 0, -3, 0, 3, -3, 0, -7, 0, 0, 0, 0, -6, 0, -6, 0, -6, 0, -6, -6, 0, -6, -4, -8, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, -6, 3, 0, -5, 0, -3, -5, -12, -3, -3, -3, -1, -3, -5, -1, 0, 0, 0, 0, 0, -3, -3, -3, 0, 0, 0, 0, 5, -3, 0, -3, 0, 0, 0, 0, -3, -5, -3, -4, -5, -4, -4, 0, 0, 0, 0, 0, 0, 0, 2, 13, -1, 0, -10, 0, -3, 6, 0, -3, -14, -4, 5, -1, 0, -16, -6, 3, -6, 2, 0, -4, -3, -11, 0, -5, 2, 0, 0, -6, 0, 0, 0, 3, 3, -6, -7, 0, -6, 0, 0, -5, -3, -3, 0, -6, 2, -7, 2, -6, -13, -5, -13, -5, -13, -8, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, -4, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, -4, 0, 0, -3, -3, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, -3, 0, 0, -7, 0, -7, -8, -5, -5, -5, 0, 0, -5, 0, -6, 0, 0, 0, -10, 0, 3, -7, 6, 0, -3, -15, 0, 0, -7, -3, 0, -13, -8, -9, 0, 0, -13, -3, -13, -12, -15, 0, -10, 0, 2, 22, -4, 0, -8, 0, 0, -1, -3, -6, -9, -6, -12, -12, -12, -7, -1, -8, -1, -11, 0, -8, -13, 0, 0, -3, 0, 0, 0, 0, -22, -4, 10, 8, -8, -12, 0, 0, + -12, 0, -16, -3, -3, 6, -30, -4, 0, 0, 0, -21, -4, -17, -3, -24, 0, 0, -22, 0, 20, 0, 0, -3, 0, 0, 0, 0, 0, -2, -3, -12, -3, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, -4, 0, 0, -9, -15, 0, 0, -2, -5, -10, -3, 0, -2, 0, 0, 0, 0, -14, -3, -11, -11, -2, -5, -8, -3, -6, 0, -6, -4, -10, -5, 0, -4, 0, 0, -3, -7, 0, 2, 0, -3, -11, -3, 0, -11, -6, -11, -6, -14, -6, -4, 0, -6, 0, 0, 0, 0, 5, 0, 3, -6, 12, 0, -3, -3, -4, 0, 0, 0, 0, 0, 0, -10, 0, -3, 0, -5, -3, 0, -7, -8, -10, -3, 0, -6, 2, 13, 0, 0, 0, 0, 0, 26, 0, 0, 2, 0, 0, -4, 0, 0, -6, -6, -6, -5, -5, -6, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -6, 0, 0, 0, 0, 0, -2, 0, 0, 0, -3, -3, 0, 0, -6, -3, 0, 0, -6, 0, 6, -2, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, -4, 0, -11, -6, 0, 10, -10, -10, -6, -6, 13, 5, 3, -28, -2, 6, -3, 0, -3, 2, -3, -11, 0, -3, 3, -4, -2, -10, -2, 0, 0, 10, 6, 0, -9, 0, -18, 0, 0, 7, -4, -12, 0, -4, -11, -11, -11, -3, -12, 0, -12, -5, -22, -15, -7, 3, 0, -5, 0, -9, 0, 2, 11, -7, -12, -13, -8, 10, 0, 0, -23, -2, 3, -5, -2, -7, 0, -7, -12, -5, -5, -2, 0, 0, -7, -6, -3, 0, 10, 7, -3, -18, 0, -18, 0, -6, -6, -11, -18, 0, -10, -5, -11, -5, -9, -7, -1, -7, 0, -11, -15, -6, 0, 0, -4, 0, -6, -4, 0, -3, -5, 0, 6, -10, 3, 0, 0, -17, 0, -3, -7, -5, -2, -10, -8, -10, -8, 0, -10, -3, -7, -7, -10, -3, 0, 0, 0, 15, -5, 0, -10, 0, 0, 0, -3, -6, -7, -8, -8, -11, -8, -4, -4, -17, -4, -12, -5, -12, -16, 6, 0, -5, 0, -16, -5, 1, 6, -10, -12, -6, -10, + 10, -3, 2, -29, -5, 6, -7, -5, -12, 0, -10, -13, -5, -3, -2, -3, -6, -10, 0, 0, 0, 10, 8, -3, -21, 0, -19, 0, -4, 6, -12, -21, -6, -11, -13, -16, -13, -10, -9, 0, -9, -5, -18, -18, -7, 0, 0, 0, 0, -5, 0, 0, 3, -5, 6, 3, -7, 6, 0, 0, -12, -1, 0, -1, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 2, 10, 0, 0, -5, 0, 0, 0, 0, 0, -3, -3, -5, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, -3, 0, 11, 0, 5, 0, 0, -4, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 6, 0, 7, 0, 8, 0, 0, 10, 0, 8, -4, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 3, -4, -4, -4, -6, -5, -3, 0, -19, 0, -3, 6, 0, 10, -45, 0, 33, 5, -6, -6, 3, 3, -3, 0, -16, 0, 0, 14, -19, -6, 10, 0, 10, -6, -3, -13, 6, -6, 0, 0, -21, 11, 45, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 0, 6, 0, 6, 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, -6, 0, 0, -7, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -5, -4, -5, -4, -4, 0, 0, -3, 6, -9, 0, 0, 0, -3, 0, 3, 43, -6, -3, 11, 9, -9, 3, 0, 0, 3, 3, -3, -10, 19, 10, 27, 0, -3, -3, 15, -3, 6, 0, -42, 8, 0, -3, 0, -9, 0, 0, 34, 0, 3, -6, -9, -4, 12, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, -9, 0, 0, 0, 0, -7, -2, 0, 0, 0, -7, 0, -5, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, -3, 0, 0, 0, 0, -18, 0, 0, -3, 0, -5, 0, -9, 0, 0, 0, -6, 3, + -5, 0, 0, -9, -3, -8, 0, 0, -9, 0, -3, 0, -15, 0, -2, 0, 0, -27, -7, -13, -2, -11, 0, 0, -22, 0, -9, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -6, -5, -3, -3, -8, -3, -8, -1, -1, -6, 0, 0, 0, 0, -8, 0, -7, 4, -2, 6, 0, -3, -8, -3, -6, -7, 0, -5, -2, -3, 2, -9, 0, 0, 0, 0, -30, -2, -3, 0, -5, 0, -3, -15, -4, 0, 0, -3, -3, 0, -3, 0, 0, 0, 2, 0, -3, -6, -3, -3, 0, 0, 0, 0, -6, -6, -3, 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, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, -3, 0, 0, 0, -6, 3, 0, 0, 0, -9, -3, -6, 0, 0, -9, 0, -3, 0, -15, 0, 0, 0, 0, -31, 0, -6, -12, -16, 0, 0, -22, 0, -2, + -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -5, -3, -2, -6, 0, -6, -7, -4, -5, -7, 0, 0, 0, 6, -4, 0, 9, 17, -3, -3, -10, 5, 17, 6, 8, -9, 5, 14, 5, 10, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 15, -5, -3, 0, -3, 1, 0, 13, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, -29, -5, -2, -14, -17, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, -14, 0, -4, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, -29, -5, -2, -14, -17, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, -14, 0, -4, 0, 0, 0, 0, 0, -2, 0, + 0, 0, -7, 3, 0, -3, 2, 5, 3, -10, 0, -1, -2, 3, 0, 2, 0, 0, 0, 0, -10, 0, -4, -3, -6, 0, -4, -13, 0, 21, -3, 0, -7, 0, 0, 0, -3, -5, 0, -3, -9, -6, -9, -4, 0, 0, 0, -6, 2, -7, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, -29, -5, -2, -14, -17, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, -14, 0, -4, 0, 0, 0, -6, 0, -11, -5, -4, 10, -4, -3, -13, 0, -3, 0, -3, -10, 0, 7, 0, 2, 0, 2, -8, -12, -5, 0, -14, -7, -9, -14, -13, 0, -6, -6, -5, -4, -15, -3, -4, 0, -3, 0, -3, -1, 5, 0, 5, -3, 5, 0, -13, -7, -13, -6, -12, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -3, -3, 0, 0, -9, 0, -2, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -3, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, -6, -3, 3, 0, -6, -7, -3, 0, -11, -3, -8, -2, -5, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 11, 0, 0, -6, 0, 0, 0, 0, 0, -4, 0, -3, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, -7, 0, 0, 14, -4, -11, -9, 3, 2, 2, -1, -8, 3, 5, 3, 10, 3, 10, -3, -8, 0, 0, -16, 0, 0, -10, -9, 0, 0, -6, 0, -4, -5, 0, -5, 0, 0, -5, 0, -2, 5, 0, -2, -10, -2, -3, -8, 0, -8, -5, -7, -4, 0, 0, 0, -4, 0, -6, 0, 0, 4, -7, 0, 3, -3, 2, -1, 0, -10, 0, -3, 0, 0, -3, 2, -2, 0, 0, 0, -16, -5, -7, 0, -10, 0, 0, -15, 0, 12, -3, 0, -6, 0, 0, -1, 0, -3, 0, -3, -10, 0, -10, -3, 0, -2, 0, -8, 0, -10, -4, 0, 0, 0, + 0, -3, 0, 0, 3, -4, 0, 0, 0, -5, -3, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 8, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, -3, -3, -3, 0, 0, 0, 0, 0, 0, 0, 0, -3, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, -13, -5, -11, -7, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -6, -5, 0, -6, 0, -6, -11, -4, -5, -9, 0, 0, 0, 0, 0, 0, 0, 0, -65, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -49, 0, -3, 0, -38, 0, 0, 0, -38, -38, -38, 0, -28, 0, -28, -6, -50, -45, -36, 0, -6, 0, 0, 0, 0, 0, 0, -8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, -8, 0, -8, 0, + -9, 0, 0, 0, 1, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, -11, -7, -11, 0, 0, 0, 0, -7, 0, -6, -10, 0, -9, -6, 0, 0, 0, -5, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, -2, 0, 0, -21, 0, -10, -14, -13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -5, -6, 0, -8, -6, -8, -2, -5, -5, -8, 0, 0, 0, 0, 0, 0, -2, 0, -7, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 0, -2, -11, -7, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -13, 0, -13, -3, -10, -5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, 0, -35, 0, -12, -10, -10, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -12, -10, 0, -5, 0, -5, -24, -6, -2, -17}; + +/*Collect the kern class' data in one place*/ +static const lv_font_fmt_txt_kern_classes_t kern_classes = { + .class_pair_values = kern_class_values, + .left_class_mapping = kern_left_class_mapping, + .right_class_mapping = kern_right_class_mapping, + .left_class_cnt = 66, + .right_class_cnt = 57, +}; + +/*-------------------- + * ALL CUSTOM DATA + *--------------------*/ + +# if LV_VERSION_CHECK(8, 0, 0) +/*Store all the custom data of the font*/ +static lv_font_fmt_txt_glyph_cache_t cache; +static const lv_font_fmt_txt_dsc_t font_dsc = { +# else +static lv_font_fmt_txt_dsc_t font_dsc = { +# endif + .glyph_bitmap = glyph_bitmap, + .glyph_dsc = glyph_dsc, + .cmaps = cmaps, + .kern_dsc = &kern_classes, + .kern_scale = 16, + .cmap_num = 4, + .bpp = 4, + .kern_classes = 1, + .bitmap_format = 0, +# if LV_VERSION_CHECK(8, 0, 0) + .cache = &cache +# endif +}; + +/*----------------- + * PUBLIC FONT + *----------------*/ + +/*Initialize a public general font descriptor*/ +# if LV_VERSION_CHECK(8, 0, 0) +const lv_font_t montserrat_20_en_ru = { +# else +lv_font_t montserrat_20_en_ru = { +# endif + .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ + .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ + .line_height = 23, /*The maximum line height required by the font*/ + .base_line = 4, /*Baseline measured from the bottom of the line*/ +# if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) + .subpx = LV_FONT_SUBPX_NONE, +# endif +# if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 + .underline_position = -2, + .underline_thickness = 1, +# endif + .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ +}; + +#endif /*#if MONTSERRAT_20_EN_RU*/ diff --git a/keyboards/stront/keymaps/zzeneg/fonts/montserrat_48_digits.c b/keyboards/stront/keymaps/zzeneg/fonts/montserrat_48_digits.c new file mode 100644 index 00000000000..ed0c74797d4 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/fonts/montserrat_48_digits.c @@ -0,0 +1,189 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* + * Size: 48 px + * Bpp: 4 + * Opts: + ******************************************************************************/ + +#ifdef __has_include +# if __has_include("lvgl.h") +# ifndef LV_LVGL_H_INCLUDE_SIMPLE +# define LV_LVGL_H_INCLUDE_SIMPLE +# endif +# endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) +# include "lvgl.h" +#else +# include "lvgl/lvgl.h" +#endif + +#ifndef MONTSERRAT_48_DIGITS +# define MONTSERRAT_48_DIGITS 1 +#endif + +#if MONTSERRAT_48_DIGITS + +/*----------------- + * BITMAPS + *----------------*/ + +/*Store the image of the glyphs*/ +static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { + /* U+002E "." */ + 0x0, 0x44, 0x0, 0xc, 0xff, 0xd1, 0x5f, 0xff, 0xf8, 0x6f, 0xff, 0xf9, 0x2f, 0xff, 0xf5, 0x6, 0xef, 0x80, + + /* U+0030 "0" */ + 0x0, 0x0, 0x0, 0x0, 0x3, 0x9c, 0xef, 0xfe, 0xb8, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xff, 0xe8, 0x54, 0x45, 0x9e, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x7, 0xff, 0xfd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x3, 0xef, 0xff, 0x40, 0x0, 0x0, 0x1f, 0xff, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xd0, 0x0, 0x0, 0x9f, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf6, 0x0, 0x1, 0xff, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xfd, 0x0, 0x6, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x30, 0xb, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x80, 0xf, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff, 0xc0, 0x2f, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xf0, 0x4f, 0xff, + 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf1, 0x6f, 0xff, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xf3, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xf4, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf5, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf5, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xf4, 0x6f, 0xff, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xf3, 0x4f, 0xff, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf1, 0x2f, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xf0, 0xf, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff, 0xc0, 0xb, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x80, 0x6, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x30, 0x1, 0xff, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xfd, 0x0, 0x0, 0x9f, 0xff, 0x40, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xff, 0xf6, 0x0, 0x0, 0x1f, 0xff, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xd0, 0x0, 0x0, 0x7, 0xff, 0xfd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x3, 0xef, 0xff, 0x40, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xff, 0xd8, 0x54, 0x45, 0x9e, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x9c, 0xef, 0xfe, 0xb8, 0x20, 0x0, 0x0, 0x0, 0x0, + + /* U+0031 "1" */ + 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x12, 0x22, 0x22, 0x22, 0xbf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, + 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfd, + + /* U+0032 "2" */ + 0x0, 0x0, 0x0, 0x4, 0x8b, 0xef, 0xff, 0xec, 0x95, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xb8, 0x54, 0x34, 0x69, 0xdf, 0xff, 0xfe, 0x10, 0x0, 0xc, 0xff, 0xff, 0x71, 0x0, 0x0, 0x0, 0x0, 0x5, 0xef, 0xff, 0xb0, 0x0, 0x6, 0xff, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xf3, 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xef, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcf, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xcf, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xdf, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xdf, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xdf, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xef, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x2, 0xef, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xf7, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x21, 0x1, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, + + /* U+0033 "3" */ + 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x0, 0x2, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x28, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xef, 0xfe, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcf, 0xff, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xff, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xec, 0xa6, + 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x59, 0xef, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdf, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xff, 0x60, 0x5c, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xf1, 0xe, 0xfe, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xff, 0xfa, 0x5, 0xff, 0xff, 0xd6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xff, + 0xff, 0x10, 0x8, 0xff, 0xff, 0xff, 0xb8, 0x54, 0x34, 0x58, 0xcf, 0xff, 0xff, 0x40, 0x0, 0x3, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x0, 0x0, 0x0, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0x69, 0xce, 0xff, 0xfe, 0xc9, 0x50, 0x0, 0x0, 0x0, + + /* U+0034 "4" */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xef, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcf, 0xff, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, + 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0xff, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xf3, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x1, 0xdf, 0xfe, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xff, 0xc2, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x2f, 0xff, 0x72, 0x22, 0x22, 0x20, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x11, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x1f, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0x50, 0x0, 0x0, 0x0, + + /* U+0035 "5" */ + 0x0, 0x0, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0x3f, 0xff, 0x32, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x21, 0x0, 0x0, 0x5, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdf, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xff, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf2, 0x22, 0x22, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x83, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x60, 0x0, 0x0, 0x0, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x36, 0xae, 0xff, 0xff, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xef, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xdf, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xff, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0x0, 0x96, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xa0, 0x4f, 0xfa, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xf3, 0xb, 0xff, 0xff, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, + 0xff, 0xf9, 0x0, 0x2d, 0xff, 0xff, 0xfd, 0x96, 0x44, 0x34, 0x6a, 0xef, 0xff, 0xfc, 0x0, 0x0, 0x8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x0, 0x0, 0x0, 0x1, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x7a, 0xdf, 0xff, 0xfd, 0xb8, 0x30, 0x0, 0x0, 0x0, + + /* U+0036 "6" */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x37, 0xbd, 0xff, 0xfe, 0xda, 0x73, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc4, 0x0, 0x0, 0x0, 0x0, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x5, 0xff, 0xff, 0xfc, 0x74, 0x21, 0x12, 0x47, 0xbf, 0xe0, 0x0, 0x0, 0x0, 0x5f, 0xff, 0xfa, 0x20, 0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x2, 0xff, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0xff, 0x30, 0x0, 0x1, 0x7b, 0xdf, 0xff, 0xdb, 0x61, 0x0, 0x0, 0x0, 0x5f, 0xff, 0x10, 0x1, + 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0x0, 0x0, 0x7f, 0xff, 0x0, 0x4e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x0, 0x7f, 0xff, 0x4, 0xff, 0xfe, 0x84, 0x10, 0x1, 0x49, 0xef, 0xff, 0xf4, 0x0, 0x7f, 0xff, 0x2f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xfe, 0x10, 0x7f, 0xff, 0xbf, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xa0, 0x6f, 0xff, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xf1, 0x5f, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf6, 0x3f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xf9, 0xf, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xfb, 0xd, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xfb, 0x8, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xfb, 0x3, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xf9, 0x0, 0xdf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf5, 0x0, 0x5f, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xf0, 0x0, 0xb, 0xff, 0xf5, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff, 0x80, 0x0, 0x1, 0xef, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x19, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x3e, 0xff, 0xfe, 0x84, 0x10, 0x1, 0x48, 0xef, 0xff, 0xe2, 0x0, 0x0, 0x0, 0x2, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x7, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x9c, 0xef, 0xff, 0xda, 0x50, 0x0, 0x0, 0x0, + + /* U+0037 "7" */ + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x7f, 0xff, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x2f, 0xff, 0xc0, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0x40, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdf, 0xfd, 0x0, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xf6, 0x0, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xe0, 0x0, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x80, 0x0, 0x37, 0x77, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xff, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x40, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf9, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+0038 "8" */ + 0x0, 0x0, 0x0, 0x2, 0x6a, 0xde, 0xff, 0xfe, 0xb8, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x10, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x0, 0x0, 0x0, 0xaf, 0xff, 0xfd, 0x73, 0x10, 0x0, 0x25, 0x9f, 0xff, 0xff, 0x40, 0x0, 0x0, 0x6f, 0xff, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x19, 0xff, 0xfe, 0x10, 0x0, 0xe, 0xff, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xff, 0xf8, 0x0, 0x4, 0xff, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff, 0xe0, 0x0, 0x7f, 0xff, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff, 0x10, 0x7, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xf1, 0x0, 0x6f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x0, 0x3, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xd0, 0x0, 0xe, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xf8, 0x0, 0x0, 0x5f, 0xff, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xfe, 0x10, 0x0, 0x0, 0x8f, 0xff, 0xf9, 0x40, 0x0, 0x0, + 0x1, 0x6c, 0xff, 0xfe, 0x30, 0x0, 0x0, 0x0, 0x5e, 0xff, 0xff, 0xfe, 0xdc, 0xdf, 0xff, 0xff, 0xfb, 0x20, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x30, 0x0, 0x0, 0x1, 0xcf, 0xff, 0xfb, 0x63, 0x10, 0x0, 0x24, 0x8e, 0xff, 0xff, 0x60, 0x0, 0x0, 0xcf, 0xff, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xff, 0x60, 0x0, 0x8f, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xef, 0xff, 0x20, 0x1f, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xfa, 0x6, 0xff, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xf0, 0x9f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0x3a, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xf4, 0xbf, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0xff, 0x49, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xf3, 0x6f, 0xff, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0x1, + 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xb0, 0xa, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xf3, 0x0, 0x1e, 0xff, 0xfc, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0xf9, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xb6, 0x31, 0x0, 0x2, 0x48, 0xef, 0xff, 0xfb, 0x0, 0x0, 0x0, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x6, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x37, 0xbd, 0xef, 0xff, 0xec, 0x95, 0x10, 0x0, 0x0, 0x0, + + /* U+0039 "9" */ + 0x0, 0x0, 0x0, 0x5, 0x9c, 0xef, 0xfe, 0xda, 0x51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0x0, 0x0, 0x0, 0x0, 0x1, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xff, 0x94, 0x10, 0x1, 0x37, 0xcf, 0xff, 0xf5, 0x0, 0x0, 0x0, 0xcf, 0xff, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x4, 0xef, 0xff, 0x40, 0x0, 0x7, 0xff, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xff, 0xe1, 0x0, 0xe, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf9, 0x0, 0x3f, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff, 0x10, 0x6f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x70, 0x7f, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xc0, 0x8f, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xf1, 0x6f, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xf4, 0x4f, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff, 0xf7, 0xf, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff, 0xf9, 0x8, + 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xff, 0xff, 0xfa, 0x1, 0xef, 0xff, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x4, 0xdf, 0xf7, 0xdf, 0xfb, 0x0, 0x3f, 0xff, 0xff, 0x95, 0x20, 0x0, 0x36, 0xcf, 0xff, 0xa0, 0xcf, 0xfb, 0x0, 0x3, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x0, 0xcf, 0xfb, 0x0, 0x0, 0x8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x40, 0x0, 0xcf, 0xfa, 0x0, 0x0, 0x0, 0x16, 0xad, 0xff, 0xfe, 0xc8, 0x30, 0x0, 0x0, 0xef, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xff, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4, 0xef, 0xff, 0x60, 0x0, 0x0, 0x4, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1, 0x9f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xc, 0xfd, 0x85, 0x31, 0x12, 0x47, 0xbf, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16, 0xac, 0xef, 0xff, 0xeb, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+003A ":" */ + 0x6, 0xef, 0x80, 0x3f, 0xff, 0xf5, 0x6f, 0xff, 0xf9, 0x4f, 0xff, 0xf7, 0xb, 0xff, 0xd1, 0x0, 0x44, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44, 0x0, 0xc, 0xff, 0xd1, 0x5f, 0xff, 0xf8, 0x6f, 0xff, 0xf9, 0x2f, 0xff, 0xf5, 0x6, 0xef, 0x80}; + +/*--------------------- + * GLYPH DESCRIPTION + *--------------------*/ + +static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, + {.bitmap_index = 0, .adv_w = 163, .box_w = 6, .box_h = 6, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 18, .adv_w = 508, .box_w = 28, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 494, .adv_w = 277, .box_w = 12, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 698, .adv_w = 436, .box_w = 26, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1140, .adv_w = 433, .box_w = 25, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1565, .adv_w = 508, .box_w = 31, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 2092, .adv_w = 435, .box_w = 25, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 2517, .adv_w = 468, .box_w = 26, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2959, .adv_w = 452, .box_w = 26, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 3401, .adv_w = 490, .box_w = 27, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3860, .adv_w = 468, .box_w = 26, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 4302, .adv_w = 163, .box_w = 6, .box_h = 26, .ofs_x = 2, .ofs_y = 0}}; + +/*--------------------- + * CHARACTER MAPPING + *--------------------*/ + +static const uint8_t glyph_id_ofs_list_0[] = {0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; + +/*Collect the unicode lists and glyph_id offsets*/ +static const lv_font_fmt_txt_cmap_t cmaps[] = {{.range_start = 46, .range_length = 13, .glyph_id_start = 1, .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 13, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL}}; + +/*----------------- + * KERNING + *----------------*/ + +/*Map glyph_ids to kern left classes*/ +static const uint8_t kern_left_class_mapping[] = {0, 1, 2, 0, 3, 4, 5, 6, 7, 8, 9, 2, 10}; + +/*Map glyph_ids to kern right classes*/ +static const uint8_t kern_right_class_mapping[] = {0, 1, 2, 3, 4, 5, 6, 7, 2, 8, 9, 10, 11}; + +/*Kern values between classes*/ +static const int8_t kern_class_values[] = {0, -8, -9, 8, 8, -10, 0, -9, 8, 0, 0, -8, 0, 0, 0, -8, 0, 0, -6, 0, 0, 0, 8, -2, 0, 0, 0, -18, 0, -2, 0, 0, 0, 0, 0, 0, -4, -4, 0, -8, -10, 0, 0, 0, 15, 0, -19, -2, -12, 0, -2, -38, 8, -6, 5, 0, 0, 0, -4, -4, 0, -4, -11, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, -41, -15, 8, 0, -7, -50, -15, 0, -15, 0, -15, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0}; + +/*Collect the kern class' data in one place*/ +static const lv_font_fmt_txt_kern_classes_t kern_classes = { + .class_pair_values = kern_class_values, + .left_class_mapping = kern_left_class_mapping, + .right_class_mapping = kern_right_class_mapping, + .left_class_cnt = 10, + .right_class_cnt = 11, +}; + +/*-------------------- + * ALL CUSTOM DATA + *--------------------*/ + +# if LV_VERSION_CHECK(8, 0, 0) +/*Store all the custom data of the font*/ +static lv_font_fmt_txt_glyph_cache_t cache; +static const lv_font_fmt_txt_dsc_t font_dsc = { +# else +static lv_font_fmt_txt_dsc_t font_dsc = { +# endif + .glyph_bitmap = glyph_bitmap, + .glyph_dsc = glyph_dsc, + .cmaps = cmaps, + .kern_dsc = &kern_classes, + .kern_scale = 16, + .cmap_num = 1, + .bpp = 4, + .kern_classes = 1, + .bitmap_format = 0, +# if LV_VERSION_CHECK(8, 0, 0) + .cache = &cache +# endif +}; + +/*----------------- + * PUBLIC FONT + *----------------*/ + +/*Initialize a public general font descriptor*/ +# if LV_VERSION_CHECK(8, 0, 0) +const lv_font_t montserrat_48_digits = { +# else +lv_font_t montserrat_48_digits = { +# endif + .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ + .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ + .line_height = 34, /*The maximum line height required by the font*/ + .base_line = 0, /*Baseline measured from the bottom of the line*/ +# if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) + .subpx = LV_FONT_SUBPX_NONE, +# endif +# if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 + .underline_position = -5, + .underline_thickness = 2, +# endif + .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ +}; + +#endif /*#if MONTSERRAT_48_DIGITS*/ diff --git a/keyboards/stront/keymaps/zzeneg/halconf.h b/keyboards/stront/keymaps/zzeneg/halconf.h new file mode 100644 index 00000000000..46c5a48c9a9 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/stront/keymaps/zzeneg/icons/flag_pl.c b/keyboards/stront/keymaps/zzeneg/icons/flag_pl.c new file mode 100644 index 00000000000..cac55d0eea6 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/icons/flag_pl.c @@ -0,0 +1,42 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef __has_include +# if __has_include("lvgl.h") +# ifndef LV_LVGL_H_INCLUDE_SIMPLE +# define LV_LVGL_H_INCLUDE_SIMPLE +# endif +# endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) +# include "lvgl.h" +#else +# include "lvgl/lvgl.h" +#endif + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +# define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_FLAG_PL +# define LV_ATTRIBUTE_IMG_FLAG_PL +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FLAG_PL uint8_t flag_pl_map[] = { + 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/ + 0x3c, 0x14, 0xdc, 0xff, /*Color of index 1*/ + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, +}; + +const lv_img_dsc_t flag_pl = { + .header.cf = LV_IMG_CF_INDEXED_1BIT, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 60, + .header.h = 40, + .data_size = 328, + .data = flag_pl_map, +}; diff --git a/keyboards/stront/keymaps/zzeneg/icons/flag_ru.c b/keyboards/stront/keymaps/zzeneg/icons/flag_ru.c new file mode 100644 index 00000000000..8019b0b4183 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/icons/flag_ru.c @@ -0,0 +1,42 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef __has_include +# if __has_include("lvgl.h") +# ifndef LV_LVGL_H_INCLUDE_SIMPLE +# define LV_LVGL_H_INCLUDE_SIMPLE +# endif +# endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) +# include "lvgl.h" +#else +# include "lvgl/lvgl.h" +#endif + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +# define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_FLAG_RU +# define LV_ATTRIBUTE_IMG_FLAG_RU +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FLAG_RU uint8_t flag_ru_map[] = { + 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/ + 0xd8, 0x88, 0x0c, 0xff, /*Color of index 1*/ + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +const lv_img_dsc_t flag_ru = { + .header.cf = LV_IMG_CF_INDEXED_1BIT, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 60, + .header.h = 40, + .data_size = 328, + .data = flag_ru_map, +}; diff --git a/keyboards/stront/keymaps/zzeneg/icons/flag_uk.c b/keyboards/stront/keymaps/zzeneg/icons/flag_uk.c new file mode 100644 index 00000000000..8bf82348296 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/icons/flag_uk.c @@ -0,0 +1,46 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef __has_include +# if __has_include("lvgl.h") +# ifndef LV_LVGL_H_INCLUDE_SIMPLE +# define LV_LVGL_H_INCLUDE_SIMPLE +# endif +# endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) +# include "lvgl.h" +#else +# include "lvgl/lvgl.h" +#endif + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +# define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_FLAG_UK +# define LV_ATTRIBUTE_IMG_FLAG_UK +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FLAG_UK uint8_t flag_uk_map[] = { + 0xfe, 0xfe, 0xfe, 0xff, /*Color of index 0*/ + 0x32, 0x15, 0xc9, 0xff, /*Color of index 1*/ + 0x6c, 0x25, 0x06, 0xff, /*Color of index 2*/ + 0xcd, 0xbd, 0xca, 0xff, /*Color of index 3*/ + + 0x40, 0x02, 0xaa, 0xaa, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xaa, 0xaa, 0xcd, 0x57, 0x50, 0x00, 0xea, 0xaa, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xaa, 0xab, 0xd5, 0x50, 0x55, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xaa, 0xb3, 0x55, 0xc0, 0xd5, 0x40, 0x03, 0xaa, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xaa, 0xf5, 0x54, 0x00, 0xc5, 0x54, 0x00, 0x2a, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xac, 0xd5, 0x70, 0x03, 0xb3, 0x55, 0x00, 0x0e, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xbd, 0x55, 0x00, 0x0a, 0xab, 0x15, 0x50, 0x00, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xab, 0x35, 0x5c, 0x00, 0xea, 0xaa, 0xcd, 0x54, 0x00, 0x3a, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaf, 0x55, 0x40, 0x02, 0xaa, 0xaa, 0xac, 0x55, 0x40, 0x02, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xcd, 0x57, 0x00, 0x3a, 0xaa, 0xaa, 0xab, 0x35, 0x50, 0x00, 0xea, 0x81, 0x55, 0x4e, 0xab, 0xd5, 0x50, 0x00, 0xaa, 0xaa, + 0xaa, 0xaa, 0xb1, 0x55, 0x00, 0x0a, 0x81, 0x55, 0x4e, 0xb3, 0x55, 0xc0, 0x0e, 0xaa, 0xaa, 0xaa, 0xaa, 0xac, 0xd5, 0x40, 0x03, 0x81, 0x55, 0x4e, 0xf5, 0x54, 0x00, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xc5, 0x54, 0x00, 0x01, 0x55, 0x40, 0xd5, 0x70, 0x03, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xc3, 0xfc, 0x00, 0x01, 0x55, 0x40, 0xff, 0x00, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0x01, 0x55, 0x40, 0x00, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0xc0, 0x0d, 0x54, 0x01, 0x55, 0x40, 0x00, 0xd5, 0x53, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xac, 0x00, 0x15, 0x53, 0x81, 0x55, 0x4e, 0xc0, 0x0d, 0x57, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xb0, 0x03, 0x55, 0x0a, 0x81, 0x55, 0x4e, 0xb0, 0x03, 0x55, 0x4e, 0xaa, 0xaa, + 0xaa, 0xab, 0x00, 0x05, 0x54, 0xea, 0x81, 0x55, 0x4e, 0xab, 0x00, 0x35, 0x5c, 0xaa, 0xaa, 0xaa, 0xac, 0x00, 0xd5, 0x42, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xc0, 0x0d, 0x55, 0x3a, 0xaa, 0xaa, 0xc0, 0x01, 0x55, 0x3a, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xac, 0x00, 0xd5, 0x72, 0xaa, 0xab, 0x00, 0x35, 0x50, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xab, 0x00, 0x35, 0x54, 0xea, 0xb0, 0x00, 0x55, 0x4e, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xb0, 0x03, 0x55, 0xca, 0xc0, 0x0d, 0x54, 0x2a, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xac, 0x00, 0xd5, 0x53, 0x00, 0x15, 0x53, 0xaa, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xaa, 0xc0, 0x0d, 0x57, 0x03, 0x55, 0x0a, 0xaa, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xaa, 0xb0, 0x03, 0x55, 0x05, 0x54, 0xea, 0xaa, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xaa, 0xab, 0x00, 0x35, 0xd5, 0x42, 0xaa, 0xaa, 0xaa, 0xaa, 0x81, 0x55, 0x4e, 0xaa, 0xaa, 0xaa, 0xaa, 0xc0, 0x0d, +}; + +const lv_img_dsc_t flag_uk = { + .header.cf = LV_IMG_CF_INDEXED_2BIT, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 60, + .header.h = 40, + .data_size = 616, + .data = flag_uk_map, +}; diff --git a/keyboards/stront/keymaps/zzeneg/keymap.c b/keyboards/stront/keymaps/zzeneg/keymap.c new file mode 100644 index 00000000000..67cc52e142c --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/keymap.c @@ -0,0 +1,305 @@ +// Copyright 2022 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#include "zzeneg_display.h" +#include "raw_hid.h" +#include "transactions.h" + +// Left-hand home row mods +#define HOME_A LGUI_T(KC_A) +#define HOME_S LALT_T(KC_S) +#define HOME_D LCTL_T(KC_D) +#define HOME_F LSFT_T(KC_F) + +// Right-hand home row mods +#define HOME_J RSFT_T(KC_J) +#define HOME_K RCTL_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_P RGUI_T(KC_P) + +// bottom mods +#define SYM_SPC LT(_SYMBOL, KC_SPC) +#define NUM_TAB LT(_NUMBER, KC_TAB) +#define FUNC_ESC LT(_FUNC, KC_ESC) +#define FUNC_ENT LT(_FUNC, KC_ENT) +#define NAV_BSPC LT(_NAV, KC_BSPC) +#define EU_DEL LT(_EU, KC_DEL) + +// game layer mods +#define LALT_Q LALT_T(KC_Q) +#define LSFT_MINS LSFT_T(KC_MINS) +#define LCTL_ESC LCTL_T(KC_ESC) +#define LGUI_QUOT LGUI_T(KC_QUOT) + +enum custom_keycodes { + M_EMAIL = SAFE_RANGE, + M_CBR, + M_PRN, + M_BRC, + M_ARROW, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * .---------------------------. .---------------------------. + * | W | E | R | T | | Y | U | I | O | + * .------+------+------+------+------+------| |------+------+------+------+------+------. + * | Q | A | S | D | F | G | | H | J | K | L | P | ; | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | - | Z | X | C | V | B |--------. .--------| N | M | , | . | / | ' | + * '-----------------------------------------/ / \ \-----------------------------------------' + * | Esc | Tab | / Space / \ Enter \ | Bsps | Del | + * |_FUNC | _NUM | /_SYMBOL/ \ _FUNC \ | _NAV | _EU | + * `-------------''-------' '-------''-------------' + */ + // clang-format off + [_QWERTY] = LAYOUT( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + KC_Q, HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_P, KC_SCLN, + KC_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + FUNC_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, EU_DEL + ), + + [_GAME] = LAYOUT( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + LALT_Q, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_P, KC_SCLN, + LSFT_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LGUI_QUOT, + LCTL_ESC, NUM_TAB, SYM_SPC, FUNC_ENT, NAV_BSPC, EU_DEL + ), + + [_EU] = LAYOUT( + XXXXXXX, RALT(KC_E), XXXXXXX, M_CBR, KC_MUTE, RALT(KC_U), XXXXXXX, RALT(KC_O), + XXXXXXX, RALT(KC_A), RALT(KC_S), LCTL(KC_C), KC_LSFT, M_PRN, M_EMAIL, KC_RSFT, M_ARROW, RALT(KC_L), XXXXXXX, XXXXXXX, + XXXXXXX, RALT(KC_Z), RALT(KC_X), RALT(KC_C), LCTL(KC_V), M_BRC, RALT(KC_N), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + FUNC_ESC, NUM_TAB, SYM_SPC, XXXXXXX, XXXXXXX, _______ + ), + + [_NAV] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, + XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, LALT(KC_UP), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PAUS, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LALT(KC_DOWN), KC_HOME, KC_END, KC_INS, KC_APP, XXXXXXX, + FUNC_ESC, NUM_TAB, SYM_SPC, XXXXXXX, _______, EU_DEL + ), + + [_NUMBER] = LAYOUT( + KC_7, KC_8, KC_9, KC_PLUS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_GRV, KC_0, KC_4, KC_5, KC_6, KC_DOT, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_BSPC, KC_AT, KC_1, KC_2, KC_3, KC_ASTR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_ENT, _______, TG(_GAME), FUNC_ENT, NAV_BSPC, EU_DEL + ), + + [_SYMBOL] = LAYOUT( + KC_PERC, KC_PLUS, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_DLR, KC_AMPR, KC_EXLM, KC_EQL, KC_LPRN, KC_RPRN, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_BSLS, KC_PIPE, KC_HASH, KC_ASTR, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + MO(_SYS), KC_BSPC, _______, FUNC_ENT, NAV_BSPC, EU_DEL + ), + + [_FUNC] = LAYOUT( + KC_F7, KC_F8, KC_F9, KC_CAPS, XXXXXXX, KC_PSCR, KC_SCRL, KC_NUM, + KC_LCTL, KC_F11, KC_F4, KC_F5, KC_F6, KC_F12, XXXXXXX, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, XXXXXXX, + KC_CIRC, KC_F10, KC_F1, KC_F2, KC_F3, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_MNXT, KC_MPLY, _______, XXXXXXX, MO(_SYS) + ), + + [_SYS] = LAYOUT( + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, + XXXXXXX, XXXXXXX, DT_UP, DT_DOWN, DT_PRNT, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, + _______, QK_BOOT, _______, _______, QK_BOOT, _______ + ) + // clang-format on +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + // clang-format off + [_QWERTY] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_GAME] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_EU] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_NAV] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_NUMBER] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_SYMBOL] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_FUNC] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_SYS] = { ENCODER_CCW_CW(BL_DOWN, BL_UP), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } + // clang-format on +}; +#endif // ENCODER_MAP_ENABLE + +/* different tapping term for different fingers */ +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // pinkies + case HOME_A: + case HOME_P: + return 250; + // ring + case HOME_S: + case HOME_L: + return 200; + // middle + case HOME_D: + case HOME_K: + return 160; + // index + case HOME_F: + case HOME_J: + return 140; + // thumb and game + default: + return TAPPING_TERM; + } +} + +/* helper function for custom increased tapping term for home row CTRL + other keys */ +uint16_t HOME_CTRL_pressed_time = 0; +void custom_home_row_ctrl(keyrecord_t *record, uint16_t time) { + if (record->tap.count && get_mods() & MOD_MASK_CTRL) { + if (TIMER_DIFF_16(record->event.time, HOME_CTRL_pressed_time) < time) { + del_mods(MOD_MASK_CTRL); + tap_code(KC_D); + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + dprintf("process_record_user %u %s %s %d\n", keycode, record->event.pressed ? "pressed" : "depressed", record->tap.interrupted ? "interrupted" : "not interrupted", record->tap.count); + + if (record->event.pressed) { + uint8_t data[32]; + data[0] = 0; + + switch (keycode) { + // send hid commands + case KC_VOLU: + case KC_VOLD: + data[0] = _VOLUME; + break; + + // handle macros + case M_EMAIL: + SEND_STRING("zzeneg@gmail.com"); + break; + case M_CBR: + SEND_STRING("{}" SS_TAP(X_LEFT)); + break; + case M_PRN: + SEND_STRING("()" SS_TAP(X_LEFT)); + break; + case M_BRC: + SEND_STRING("[]" SS_TAP(X_LEFT)); + break; + case M_ARROW: + SEND_STRING("=>"); + break; + + // custom increased tapping term for home row CTRL + other keys + case HOME_D: + // save time when CTRL from D key is pressed + if (!record->tap.count) { + HOME_CTRL_pressed_time = record->event.time; + } + break; + case HOME_S: + // if S is pressed and CTRL is active, and < 150 passed since CTRL was pressed, cancel CTRL and send D instead + custom_home_row_ctrl(record, 150); + break; + case HOME_A: + // if A is pressed and CTRL is active, and < 180 passed since CTRL was pressed, cancel CTRL and send D instead + custom_home_row_ctrl(record, 180); + break; + } + + if (data[0]) { + dprintf("raw_hid_send %u\n", data[0]); + raw_hid_send(data, sizeof(data)); + } + } + + return true; +} + +/* Active Layer processing */ +layer_state_t layer_state_set_user(layer_state_t state) { + if (is_display_enabled()) { + display_process_layer_state(get_highest_layer(state)); + } else if (is_keyboard_master() && !is_keyboard_left()) { + uint8_t layer = get_highest_layer(state); + dprintf("RPC_ID_USER_LAYER_SYNC: %u\n", layer); + transaction_rpc_send(RPC_ID_USER_LAYER_SYNC, 1, &layer); + } + + return state; +} + +/* Caps Word processing */ +void caps_word_set_user(bool active) { + if (is_display_enabled()) { + display_process_caps_word(active); + } else if (is_keyboard_master() && !is_keyboard_left()) { + dprintf("RPC_ID_USER_CAPS_WORD_SYNC: %s\n", active ? "active" : "inactive"); + transaction_rpc_send(RPC_ID_USER_CAPS_WORD_SYNC, 1, &active); + } +} + +/* default caps word logic that allows KC_MINS. Underscore can be typed with KC_RSFT + KC_MINS */ +bool caps_word_press_user(uint16_t keycode) { + switch (keycode) { + // Keycodes that continue Caps Word, with shift applied. + case KC_A ... KC_Z: + add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key. + return true; + + // Keycodes that continue Caps Word, without shifting. + case KC_1 ... KC_0: + case KC_BSPC: + case KC_DEL: + case KC_MINS: + case KC_RSFT: + return true; + + default: + return false; // Deactivate Caps Word. + } +} + +/* Raw HID processing*/ +void raw_hid_receive(uint8_t *data, uint8_t length) { + dprintf("raw_hid_receive - received %u bytes \n", length); + + if (is_display_enabled()) { + display_process_raw_hid_data(data, length); + } else if (is_keyboard_master() && !is_keyboard_left()) { + dprint("RPC_ID_USER_HID_SYNC \n"); + transaction_rpc_send(RPC_ID_USER_HID_SYNC, length, data); + } +} + +void hid_sync(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { + if (is_display_enabled()) { + display_process_raw_hid_data((uint8_t *)initiator2target_buffer, initiator2target_buffer_size); + } +} + +void layer_sync(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { + if (is_display_enabled()) { + display_process_layer_state(*(uint8_t *)initiator2target_buffer); + } +} + +void caps_word_sync(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { + if (is_display_enabled()) { + display_process_caps_word(*(bool *)initiator2target_buffer); + } +} + +void keyboard_post_init_user() { + // sync received hid data + transaction_register_rpc(RPC_ID_USER_HID_SYNC, hid_sync); + // sync highest layer (a bit more performant than standard SPLIT_LAYER_STATE_ENABLE) + transaction_register_rpc(RPC_ID_USER_LAYER_SYNC, layer_sync); + // sync caps word state + transaction_register_rpc(RPC_ID_USER_CAPS_WORD_SYNC, caps_word_sync); +} diff --git a/keyboards/stront/keymaps/zzeneg/lv_conf.h b/keyboards/stront/keymaps/zzeneg/lv_conf.h new file mode 100644 index 00000000000..8b0c1f3f833 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/lv_conf.h @@ -0,0 +1,148 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* disable some things before lv_conf include */ +#define LV_USE_CALENDAR 0 +#define LV_USE_SPAN 0 +#define LV_USE_ROLLER 0 +#define LV_USE_TEXTAREA 0 + +#include_next + +/* Custom fonts: + - montserrat_20_en_ru - english/cyrillic symbols, range 0x20-0x7F,0x0410-0x044F,0x0401,0x0451 + - montserrat_48_digits - digits, dot and colon only, range 0x2E,0x30-0x3A + */ + +#undef LV_FONT_CUSTOM_DECLARE +#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(montserrat_20_en_ru) LV_FONT_DECLARE(montserrat_48_digits) + +#undef LV_FONT_DEFAULT +#define LV_FONT_DEFAULT &montserrat_20_en_ru + +#undef LV_FONT_MONTSERRAT_20 +#define LV_FONT_MONTSERRAT_20 0 + +#undef LV_FONT_MONTSERRAT_48 +#define LV_FONT_MONTSERRAT_48 0 + +// #undef LV_FONT_MONTSERRAT_16 +// #define LV_FONT_MONTSERRAT_16 1 + +// #undef LV_FONT_MONTSERRAT_18 +// #define LV_FONT_MONTSERRAT_18 1 + +// #undef LV_FONT_MONTSERRAT_20 +// #define LV_FONT_MONTSERRAT_20 1 + +// #undef LV_FONT_MONTSERRAT_22 +// #define LV_FONT_MONTSERRAT_22 1 + +// #undef LV_FONT_MONTSERRAT_24 +// #define LV_FONT_MONTSERRAT_24 1 + +// #undef LV_FONT_MONTSERRAT_26 +// #define LV_FONT_MONTSERRAT_26 1 + +// #undef LV_FONT_MONTSERRAT_28 +// #define LV_FONT_MONTSERRAT_28 1 + +// #undef LV_FONT_MONTSERRAT_30 +// #define LV_FONT_MONTSERRAT_30 1 + +// #undef LV_FONT_MONTSERRAT_32 +// #define LV_FONT_MONTSERRAT_32 1 + +// #undef LV_FONT_MONTSERRAT_34 +// #define LV_FONT_MONTSERRAT_34 1 + +// #undef LV_FONT_MONTSERRAT_36 +// #define LV_FONT_MONTSERRAT_36 1 + +// #undef LV_FONT_MONTSERRAT_38 +// #define LV_FONT_MONTSERRAT_38 1 + +// #undef LV_FONT_MONTSERRAT_40 +// #define LV_FONT_MONTSERRAT_40 1 + +// #undef LV_FONT_MONTSERRAT_42 +// #define LV_FONT_MONTSERRAT_42 1 + +// #undef LV_FONT_MONTSERRAT_44 +// #define LV_FONT_MONTSERRAT_44 1 + +// #undef LV_FONT_MONTSERRAT_46 +// #define LV_FONT_MONTSERRAT_46 1 + +// #undef LV_FONT_MONTSERRAT_48 +// #define LV_FONT_MONTSERRAT_48 1 + +/* disable widgets*/ +#undef LV_USE_ANIMIMG +#define LV_USE_ANIMIMG 0 +#undef LV_USE_BAR +#define LV_USE_BAR 0 +#undef LV_USE_BTN +#define LV_USE_BTN 0 +#undef LV_USE_BTNMATRIX +#define LV_USE_BTNMATRIX 0 +#undef LV_USE_CANVAS +#define LV_USE_CANVAS 0 +#undef LV_USE_CHECKBOX +#define LV_USE_CHECKBOX 0 +#undef LV_USE_DROPDOWN +#define LV_USE_DROPDOWN 0 +#undef LV_USE_LINE +#define LV_USE_LINE 0 +#undef LV_USE_SLIDER +#define LV_USE_SLIDER 0 +#undef LV_USE_SWITCH +#define LV_USE_SWITCH 0 +#undef LV_USE_TABLE +#define LV_USE_TABLE 0 + +/* disable extra components */ +#undef LV_USE_CHART +#define LV_USE_CHART 0 +#undef LV_USE_COLORWHEEL +#define LV_USE_COLORWHEEL 0 +#undef LV_USE_IMGBTN +#define LV_USE_IMGBTN 0 +#undef LV_USE_KEYBOARD +#define LV_USE_KEYBOARD 0 +#undef LV_USE_LED +#define LV_USE_LED 0 +#undef LV_USE_LIST +#define LV_USE_LIST 0 +#undef LV_USE_MENU +#define LV_USE_MENU 0 +#undef LV_USE_METER +#define LV_USE_METER 0 +#undef LV_USE_MSGBOX +#define LV_USE_MSGBOX 0 +#undef LV_USE_SPINBOX +#define LV_USE_SPINBOX 0 +#undef LV_USE_SPINNER +#define LV_USE_SPINNER 0 +#undef LV_USE_TABVIEW +#define LV_USE_TABVIEW 0 +#undef LV_USE_TILEVIEW +#define LV_USE_TILEVIEW 0 +#undef LV_USE_WIN +#define LV_USE_WIN 0 + +/* disable themes */ +#undef LV_USE_THEME_BASIC +#define LV_USE_THEME_BASIC 0 +#undef LV_USE_THEME_MONO +#define LV_USE_THEME_MONO 0 + +/* disable layouts */ +#undef LV_USE_GRID +#define LV_USE_GRID 0 + +/* disable build examples */ +#undef LV_BUILD_EXAMPLES +#define LV_BUILD_EXAMPLES 0 diff --git a/keyboards/stront/keymaps/zzeneg/mcuconf.h b/keyboards/stront/keymaps/zzeneg/mcuconf.h new file mode 100644 index 00000000000..47ee67119de --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/stront/keymaps/zzeneg/rules.mk b/keyboards/stront/keymaps/zzeneg/rules.mk new file mode 100644 index 00000000000..26ddf778031 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/rules.mk @@ -0,0 +1,17 @@ +# CONSOLE_ENABLE = yes + +EXTRAKEY_ENABLE = yes +MOUSEKEY_ENABLE = yes +CAPS_WORD_ENABLE = yes +ENCODER_MAP_ENABLE = yes +DYNAMIC_TAPPING_TERM_ENABLE = yes + +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c + +RAW_ENABLE = yes + +SRC += zzeneg_display.c \ + fonts/montserrat_20_en_ru.c \ + fonts/montserrat_48_digits.c \ + icons/flag_uk.c \ + icons/flag_ru.c diff --git a/keyboards/stront/keymaps/zzeneg/zzeneg_display.c b/keyboards/stront/keymaps/zzeneg/zzeneg_display.c new file mode 100644 index 00000000000..d8d6f4d70be --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/zzeneg_display.c @@ -0,0 +1,242 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "zzeneg_display.h" +#include "display.h" +#include "raw_hid.h" +#include "lvgl_helpers.h" + +uint16_t home_screen_timer = 0; + +/* screens */ +static lv_obj_t *screen_home; +static lv_obj_t *screen_volume; +static lv_obj_t *screen_media; + +/* home screen content */ +static lv_obj_t *label_time; +static lv_obj_t *label_volume_home; +static lv_obj_t *label_shift; +static lv_obj_t *label_ctrl; +static lv_obj_t *label_alt; +static lv_obj_t *label_gui; +static lv_obj_t *label_layer; +static lv_obj_t *label_caps; +static lv_obj_t *label_caps_word; +static lv_obj_t *icon_layout; + +/* volume screen content */ +static lv_obj_t *arc_volume; +static lv_obj_t *label_volume_arc; + +/* media screen content */ +static lv_obj_t *label_media_artist; +static lv_obj_t *label_media_title; + +LV_IMG_DECLARE(flag_ru); +LV_IMG_DECLARE(flag_uk); +/* can be replaced with PL flag (update rules.mk as well) */ +// LV_IMG_DECLARE(flag_pl); + +enum layout { _EN = 0, _RU }; +void set_layout_icon(uint8_t layout) { + switch (layout) { + case _EN: + lv_img_set_src(icon_layout, &flag_uk); + break; + + case _RU: + lv_img_set_src(icon_layout, &flag_ru); + break; + } +} + +void read_string(uint8_t *data, char *string_data) { + uint8_t data_length = data[1]; + memcpy(string_data, data + 2, data_length); + string_data[data_length] = '\0'; +} + +void start_home_screen_timer(void) { + dprint("reset home screen\n"); + home_screen_timer = timer_read(); +} + +void init_screen_home_custom(void) { + screen_home = lv_scr_act(); + lv_obj_add_style(screen_home, &style_screen, 0); + use_flex_column(screen_home); + + label_volume_home = lv_label_create(screen_home); + lv_label_set_text(label_volume_home, ""); + + lv_obj_t *mods = lv_obj_create(screen_home); + lv_obj_add_style(mods, &style_container, 0); + use_flex_row(mods); + + label_gui = create_button(mods, "GUI", &style_button, &style_button_active); + label_alt = create_button(mods, "ALT", &style_button, &style_button_active); + label_ctrl = create_button(mods, "CTL", &style_button, &style_button_active); + label_shift = create_button(mods, "SFT", &style_button, &style_button_active); + + label_time = lv_label_create(screen_home); + lv_label_set_text(label_time, "00:00"); + lv_obj_set_style_text_font(label_time, &montserrat_48_digits, LV_PART_MAIN); + + lv_obj_t *caps = lv_obj_create(screen_home); + lv_obj_add_style(caps, &style_container, 0); + use_flex_row(caps); + + label_caps = create_button(caps, "CAPS", &style_button, &style_button_active); + label_caps_word = create_button(caps, "CAPS WORD", &style_button, &style_button_active); + + lv_obj_t *bottom_row = lv_obj_create(screen_home); + lv_obj_add_style(bottom_row, &style_container, 0); + + label_layer = lv_label_create(bottom_row); + lv_label_set_text(label_layer, ""); + lv_obj_align(label_layer, LV_ALIGN_LEFT_MID, 10, 0); + display_process_layer_state(0); + + icon_layout = lv_img_create(bottom_row); + lv_obj_set_style_radius(icon_layout, 4, 0); + lv_obj_set_style_clip_corner(icon_layout, true, 0); + lv_obj_align(icon_layout, LV_ALIGN_RIGHT_MID, -10, 0); +} + +void init_screen_volume(void) { + screen_volume = lv_obj_create(NULL); + lv_obj_add_style(screen_volume, &style_screen, 0); + + arc_volume = lv_arc_create(screen_volume); + lv_obj_set_size(arc_volume, 200, 200); + lv_obj_center(arc_volume); + + label_volume_arc = lv_label_create(screen_volume); + lv_label_set_text(label_volume_arc, "00"); + lv_obj_set_style_text_font(label_volume_arc, &montserrat_48_digits, LV_PART_MAIN); + lv_obj_center(label_volume_arc); + + lv_obj_t *volume_text_label = lv_label_create(screen_volume); + lv_label_set_text(volume_text_label, "Volume"); + lv_obj_align(volume_text_label, LV_ALIGN_BOTTOM_MID, 0, -10); +} + +void init_screen_media(void) { + screen_media = lv_obj_create(NULL); + lv_obj_add_style(screen_media, &style_screen, 0); + use_flex_column(screen_media); + lv_obj_set_flex_align(screen_media, LV_FLEX_ALIGN_SPACE_EVENLY, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); + + label_media_artist = lv_label_create(screen_media); + lv_label_set_text(label_media_artist, "N/A"); + lv_label_set_long_mode(label_media_artist, LV_LABEL_LONG_WRAP); + lv_obj_set_width(label_media_artist, lv_pct(90)); + lv_obj_set_style_text_align(label_media_artist, LV_TEXT_ALIGN_CENTER, 0); + + label_media_title = lv_label_create(screen_media); + lv_label_set_text(label_media_title, "N/A"); + lv_label_set_long_mode(label_media_title, LV_LABEL_LONG_WRAP); + lv_obj_set_width(label_media_title, lv_pct(90)); + lv_obj_set_style_text_align(label_media_title, LV_TEXT_ALIGN_CENTER, 0); +} + +bool display_init_user(void) { + init_screen_home_custom(); + init_screen_volume(); + init_screen_media(); + + return false; +} + +void display_process_raw_hid_data(uint8_t *data, uint8_t length) { + uint8_t data_type = data[0]; + char string_data[length - 2]; + dprintf("display_process_raw_hid_data - received data_type %u \n", data_type); + switch (data_type) { + case _TIME: + dprintf("time %02d:%02d\n", data[1], data[2]); + lv_label_set_text_fmt(label_time, "%02d:%02d", data[1], data[2]); + break; + + case _VOLUME: + dprintf("volume %d\n", data[1]); + lv_label_set_text_fmt(label_volume_home, "Volume: %02d%%", data[1]); + lv_label_set_text_fmt(label_volume_arc, "%02d", data[1]); + lv_arc_set_value(arc_volume, data[1]); + lv_scr_load(screen_volume); + start_home_screen_timer(); + break; + + case _LAYOUT: + dprintf("layout %d\n", data[1]); + set_layout_icon(data[1]); + break; + + case _MEDIA_ARTIST: + read_string(data, string_data); + dprintf("media artist %s\n", string_data); + lv_label_set_text(label_media_artist, string_data); + lv_scr_load(screen_media); + start_home_screen_timer(); + break; + + case _MEDIA_TITLE: + read_string(data, string_data); + dprintf("media title %s\n", string_data); + lv_label_set_text(label_media_title, string_data); + lv_scr_load(screen_media); + start_home_screen_timer(); + break; + } +} + +void display_process_layer_state(uint8_t layer) { + switch (layer) { + case _QWERTY: + lv_label_set_text(label_layer, "QWERTY"); + break; + case _GAME: + lv_label_set_text(label_layer, "GAME"); + break; + case _EU: + lv_label_set_text(label_layer, "EU"); + break; + case _NAV: + lv_label_set_text(label_layer, "NAV"); + break; + case _NUMBER: + lv_label_set_text(label_layer, "NUMBER"); + break; + case _SYMBOL: + lv_label_set_text(label_layer, "SYMBOL"); + break; + case _FUNC: + lv_label_set_text(label_layer, "FUNC"); + break; + case _SYS: + lv_label_set_text(label_layer, "SYSTEM"); + break; + } +} + +void display_housekeeping_task(void) { + if (home_screen_timer && timer_elapsed(home_screen_timer) > 5000) { + home_screen_timer = 0; + lv_scr_load(screen_home); + } + + toggle_state(label_shift, LV_STATE_PRESSED, MODS_SHIFT); + toggle_state(label_ctrl, LV_STATE_PRESSED, MODS_CTRL); + toggle_state(label_alt, LV_STATE_PRESSED, MODS_ALT); + toggle_state(label_gui, LV_STATE_PRESSED, MODS_GUI); +} + +void display_process_caps(bool active) { + toggle_state(label_caps, LV_STATE_PRESSED, active); +} + +void display_process_caps_word(bool active) { + dprint("display_process_caps_word\n"); + toggle_state(label_caps_word, LV_STATE_PRESSED, active); +} diff --git a/keyboards/stront/keymaps/zzeneg/zzeneg_display.h b/keyboards/stront/keymaps/zzeneg/zzeneg_display.h new file mode 100644 index 00000000000..22b36793f40 --- /dev/null +++ b/keyboards/stront/keymaps/zzeneg/zzeneg_display.h @@ -0,0 +1,27 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +typedef enum { + _QWERTY = 0, + _GAME, + _EU, + _NAV, + _NUMBER, + _SYMBOL, + _FUNC, + _SYS, +} layer_number; + +typedef enum { + _TIME = 0, + _VOLUME, + _LAYOUT, + _MEDIA_ARTIST, + _MEDIA_TITLE, +} hid_data_type; + +void display_process_raw_hid_data(uint8_t *data, uint8_t length); +void display_process_layer_state(uint8_t layer); +void display_process_caps_word(bool active); diff --git a/keyboards/stront/lv_conf.h b/keyboards/stront/lv_conf.h new file mode 100644 index 00000000000..57b093d500a --- /dev/null +++ b/keyboards/stront/lv_conf.h @@ -0,0 +1,18 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef LV_FONT_DEFAULT +#define LV_FONT_DEFAULT &lv_font_montserrat_28 + +#undef LV_FONT_MONTSERRAT_14 +#define LV_FONT_MONTSERRAT_14 0 + +#undef LV_FONT_MONTSERRAT_28 +#define LV_FONT_MONTSERRAT_28 1 + +#undef LV_FONT_MONTSERRAT_48 +#define LV_FONT_MONTSERRAT_48 1 diff --git a/keyboards/stront/lvgl_helpers.c b/keyboards/stront/lvgl_helpers.c new file mode 100644 index 00000000000..f4f06983215 --- /dev/null +++ b/keyboards/stront/lvgl_helpers.c @@ -0,0 +1,113 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "lvgl_helpers.h" + +lv_obj_t *create_button(lv_obj_t *parent, const char *text, lv_style_t *style, lv_style_t *style_pressed) { + lv_obj_t *label = lv_label_create(parent); + lv_label_set_text(label, text); + lv_obj_add_style(label, style, 0); + lv_obj_add_style(label, style_pressed, LV_STATE_PRESSED); + return label; +} + +void use_flex_row(void *obj) { + lv_obj_set_layout(obj, LV_LAYOUT_FLEX); + lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW); + lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_SPACE_AROUND, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); +} + +void use_flex_column(void *obj) { + lv_obj_set_layout(obj, LV_LAYOUT_FLEX); + lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN); + lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_SPACE_AROUND, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); +} + +void toggle_state(void *obj, lv_state_t state, bool enabled) { + if (enabled) { + lv_obj_add_state(obj, state); + } else { + lv_obj_clear_state(obj, state); + } +} + +void toggle_hidden(void *obj, bool visible) { + if (visible) { + lv_obj_clear_flag(obj, LV_OBJ_FLAG_HIDDEN); + } else { + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); + } +} + +void resize_font(void *label, int32_t font_size) { + dprintf("font size %ld\n", font_size); +#if LV_FONT_MONTSERRAT_8 + if (font_size == 8) return lv_obj_set_style_text_font(label, &lv_font_montserrat_8, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_10 + if (font_size <= 10) return lv_obj_set_style_text_font(label, &lv_font_montserrat_8, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_12 + if (font_size <= 12) return lv_obj_set_style_text_font(label, &lv_font_montserrat_12, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_14 + if (font_size <= 14) return lv_obj_set_style_text_font(label, &lv_font_montserrat_14, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_16 + if (font_size <= 16) return lv_obj_set_style_text_font(label, &lv_font_montserrat_16, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_18 + if (font_size <= 18) return lv_obj_set_style_text_font(label, &lv_font_montserrat_18, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_20 + if (font_size <= 20) return lv_obj_set_style_text_font(label, &lv_font_montserrat_20, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_22 + if (font_size <= 22) return lv_obj_set_style_text_font(label, &lv_font_montserrat_22, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_24 + if (font_size <= 24) return lv_obj_set_style_text_font(label, &lv_font_montserrat_24, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_26 + if (font_size <= 26) return lv_obj_set_style_text_font(label, &lv_font_montserrat_26, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_28 + if (font_size <= 28) return lv_obj_set_style_text_font(label, &lv_font_montserrat_28, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_30 + if (font_size <= 30) return lv_obj_set_style_text_font(label, &lv_font_montserrat_30, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_32 + if (font_size <= 32) return lv_obj_set_style_text_font(label, &lv_font_montserrat_32, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_34 + if (font_size <= 34) return lv_obj_set_style_text_font(label, &lv_font_montserrat_34, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_36 + if (font_size <= 36) return lv_obj_set_style_text_font(label, &lv_font_montserrat_36, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_38 + if (font_size <= 38) return lv_obj_set_style_text_font(label, &lv_font_montserrat_38, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_40 + if (font_size <= 40) return lv_obj_set_style_text_font(label, &lv_font_montserrat_40, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_42 + if (font_size <= 42) return lv_obj_set_style_text_font(label, &lv_font_montserrat_42, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_44 + if (font_size <= 44) return lv_obj_set_style_text_font(label, &lv_font_montserrat_44, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_46 + if (font_size <= 46) return lv_obj_set_style_text_font(label, &lv_font_montserrat_46, LV_PART_MAIN); +#endif +#if LV_FONT_MONTSERRAT_48 + if (font_size <= 48) return lv_obj_set_style_text_font(label, &lv_font_montserrat_48, LV_PART_MAIN); +#endif +} + +void debug_set_obj_border(lv_obj_t *obj) { + lv_color_t red = lv_color_hex(0xFF0000); + lv_obj_set_style_border_color(obj, red, 0); + lv_obj_set_style_border_width(obj, 1, 0); +} diff --git a/keyboards/stront/lvgl_helpers.h b/keyboards/stront/lvgl_helpers.h new file mode 100644 index 00000000000..671f6cccd2d --- /dev/null +++ b/keyboards/stront/lvgl_helpers.h @@ -0,0 +1,13 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "qp_lvgl.h" + +lv_obj_t *create_button(lv_obj_t *parent, const char *text, lv_style_t *style, lv_style_t *style_pressed); + +void use_flex_row(void *obj); +void use_flex_column(void *obj); +void toggle_state(void *obj, lv_state_t state, bool enabled); +void toggle_hidden(void *obj, bool visible); +void resize_font(void *label, int32_t v); +void debug_set_obj_border(lv_obj_t *obj); diff --git a/keyboards/stront/mcuconf.h b/keyboards/stront/mcuconf.h new file mode 100644 index 00000000000..f35384aa286 --- /dev/null +++ b/keyboards/stront/mcuconf.h @@ -0,0 +1,12 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE + +#undef RP_PWM_USE_PWM7 +#define RP_PWM_USE_PWM7 TRUE diff --git a/keyboards/stront/readme.md b/keyboards/stront/readme.md new file mode 100644 index 00000000000..1da6f0bdd1a --- /dev/null +++ b/keyboards/stront/readme.md @@ -0,0 +1,45 @@ +# stront + +![stront](https://i.imgur.com/FOPnWhch.jpg) + +Split keyboard with 38 keys, LCD display and Cirque trackpad. + +- Keyboard Maintainer: [zzeneg](https://github.com/zzeneg) +- Hardware Supported: Stront PCBs, Waveshare RP2040 Zero +- Hardware Availability: [GitHub](https://github.com/zzeneg/stront) + +Make example for this keyboard (after setting up your build environment): + + make stront:default + +Flashing example for this keyboard: + + make stront: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). + +## Keymaps + +- `default` - sample keymap with home row mods. Not recommended for longer use - create your own. +- `hid` - default keymap with HID support. Requires additional software running on computer, see https://github.com/zzeneg/qmk-hid-host. +- `i2c` - default keymap with I2C Cirque instead of default SPI +- `zzeneg` - my highly customized layout, you can use as a reference + +Keymaps have [EE_HANDS](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom) enabled, so any side can be master (though using side with touchpad as master is recommended). You have to specify left/right side by flashing with different commands: + +`qmk flash -kb stront -km default -bl uf2-split-left` + +or + +`qmk flash -kb stront -km default -bl uf2-split-right` + +If your keyboard is flashed already, you can do it by pressing key combinations - hold inner thumb key, then hold outer thumb key to activate SYSTEM layer. Now press outer bottom pinky key for left side or inner bottom index key for right side. See [keymap](./keymaps/default/keymap.c) for better understanding. Reconnect the keyboard to apply changes. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (outer top pinky key) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` - by default you need to hold inner thumb key, then hold outer thumb key and press middle thumb key (see [keymap.c](./keymaps/default/keymap.c) for details). It's a complicated combination to avoid accidental activations. + +RP2040 Zero has physical boot/reset buttons but they are unaccessible after the keyboards is assembled, so always keep a `QK_BOOT` key and/or bootmagic feature in your keymaps. diff --git a/keyboards/stront/rules.mk b/keyboards/stront/rules.mk new file mode 100644 index 00000000000..940a592d11d --- /dev/null +++ b/keyboards/stront/rules.mk @@ -0,0 +1,12 @@ +SERIAL_DRIVER = vendor +WS2812_DRIVER = vendor + +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi + +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += st7789_spi +QUANTUM_PAINTER_LVGL_INTEGRATION = yes + +SRC += lvgl_helpers.c \ + display.c diff --git a/keyboards/stront/stront.c b/keyboards/stront/stront.c new file mode 100644 index 00000000000..dc1f588c9b8 --- /dev/null +++ b/keyboards/stront/stront.c @@ -0,0 +1,61 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "stront.h" +#include "display.h" + +static bool display_enabled; + +/* public function to be used in keymaps */ +bool is_display_enabled(void) { + return display_enabled; +} + +/* default encoder keys */ +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } else if (index == 1) { + if (clockwise) { + tap_code_delay(KC_RIGHT, 10); + } else { + tap_code_delay(KC_LEFT, 10); + } + } + return true; +} + +/* Caps Lock processing */ +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res && display_enabled) { + display_process_caps(led_state.caps_lock); + } + + return res; +} + +void housekeeping_task_kb(void) { + if (display_enabled) { + display_housekeeping_task(); + } + + housekeeping_task_user(); +} + +void keyboard_post_init_kb(void) { + display_enabled = false; + + if (is_keyboard_left()) { + display_enabled = display_init_kb(); + } + + keyboard_post_init_user(); +} diff --git a/keyboards/stront/stront.h b/keyboards/stront/stront.h new file mode 100644 index 00000000000..9ca618a6fbb --- /dev/null +++ b/keyboards/stront/stront.h @@ -0,0 +1,6 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +bool is_display_enabled(void); diff --git a/keyboards/studiokestra/bourgeau/config.h b/keyboards/studiokestra/bourgeau/config.h index 04f426d913f..91e152a0981 100644 --- a/keyboards/studiokestra/bourgeau/config.h +++ b/keyboards/studiokestra/bourgeau/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 24 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/studiokestra/bourgeau/info.json b/keyboards/studiokestra/bourgeau/info.json index 835b0e60a86..e14cfc9fc4f 100644 --- a/keyboards/studiokestra/bourgeau/info.json +++ b/keyboards/studiokestra/bourgeau/info.json @@ -8,6 +8,24 @@ "pid": "0x7501", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 24, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/studiokestra/cascade/config.h b/keyboards/studiokestra/cascade/config.h index 12337a485d5..91e152a0981 100644 --- a/keyboards/studiokestra/cascade/config.h +++ b/keyboards/studiokestra/cascade/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/studiokestra/cascade/info.json b/keyboards/studiokestra/cascade/info.json index 3f48e07c1f6..823eebad6e9 100644 --- a/keyboards/studiokestra/cascade/info.json +++ b/keyboards/studiokestra/cascade/info.json @@ -8,6 +8,24 @@ "pid": "0x6001", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/studiokestra/frl84/config.h b/keyboards/studiokestra/frl84/config.h index df0bf3307b7..70ff15e35cf 100644 --- a/keyboards/studiokestra/frl84/config.h +++ b/keyboards/studiokestra/frl84/config.h @@ -3,21 +3,6 @@ #pragma once -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/studiokestra/frl84/info.json b/keyboards/studiokestra/frl84/info.json index af0e3407838..c0b05dec46d 100644 --- a/keyboards/studiokestra/frl84/info.json +++ b/keyboards/studiokestra/frl84/info.json @@ -21,7 +21,22 @@ "pin": "B0" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "processor": "atmega32u4", "url": "", diff --git a/keyboards/studiokestra/galatea/readme.md b/keyboards/studiokestra/galatea/readme.md index 580815fa630..d336855bc26 100644 --- a/keyboards/studiokestra/galatea/readme.md +++ b/keyboards/studiokestra/galatea/readme.md @@ -9,6 +9,7 @@ TKL H87/88c compatible PCB with support for the most common layouts. * Hardware Availability: https://RNDKBD.com; https://geon.works/ * Rev1 firmware is used for Galatea PCBs with no RGB underglow. * Rev2 firmware is used for Galatea PCBs with RGB underglow. +* Rev3 firmware is used for Galatea PCBs with RP2040 chip w/ RGB underglow. Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/studiokestra/galatea/rev2/config.h b/keyboards/studiokestra/galatea/rev2/config.h deleted file mode 100644 index 7199179a4de..00000000000 --- a/keyboards/studiokestra/galatea/rev2/config.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2023 studiokestra (@studiokestra) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGBLED_NUM 24 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_MODE_TWINKLE diff --git a/keyboards/studiokestra/galatea/rev2/info.json b/keyboards/studiokestra/galatea/rev2/info.json index a050f88d7dc..5c1363f750c 100644 --- a/keyboards/studiokestra/galatea/rev2/info.json +++ b/keyboards/studiokestra/galatea/rev2/info.json @@ -33,7 +33,23 @@ "pin": "D4" }, "rgblight": { - "max_brightness": 200 + "led_count": 24, + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8, + "max_brightness": 200, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } }, "layouts": { "LAYOUT": { diff --git a/keyboards/studiokestra/galatea/rev2/keymaps/vial/rules.mk b/keyboards/studiokestra/galatea/rev2/keymaps/vial/rules.mk index 2e8e13d7124..122060da88b 100644 --- a/keyboards/studiokestra/galatea/rev2/keymaps/vial/rules.mk +++ b/keyboards/studiokestra/galatea/rev2/keymaps/vial/rules.mk @@ -4,3 +4,4 @@ LTO_ENABLE = yes TAP_DANCE_ENABLE = no KEY_OVERRIDE_ENABLE = no +QMK_SETTINGS = no diff --git a/keyboards/studiokestra/galatea/rev3/info.json b/keyboards/studiokestra/galatea/rev3/info.json new file mode 100644 index 00000000000..1669e3a1836 --- /dev/null +++ b/keyboards/studiokestra/galatea/rev3/info.json @@ -0,0 +1,374 @@ +{ + "manufacturer": "Studio Kestra", + "keyboard_name": "Galatea", + "maintainer": "studiokestra", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP14", "GP6"], + "rows": ["GP3", "GP4", "GP1", "GP2", "GP5", "GP29", "GP20", "GP19", "GP17", "GP16", "GP13", "GP12"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x8803", + "vid": "0x7C10" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP15" + }, + "rgblight": { + "led_count": 24, + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8, + "max_brightness": 200, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [1, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [1, 2], "x": 4.25, "y": 0}, + + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [1, 3], "x": 6.5, "y": 0}, + {"matrix": [0, 4], "x": 7.5, "y": 0}, + {"matrix": [1, 4], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [1, 5], "x": 10.75, "y": 0}, + {"matrix": [0, 6], "x": 11.75, "y": 0}, + {"matrix": [1, 6], "x": 12.75, "y": 0}, + + {"matrix": [0, 7], "x": 14, "y": 0}, + + {"matrix": [1, 7], "x": 15.25, "y": 0}, + {"matrix": [0, 8], "x": 16.25, "y": 0}, + {"matrix": [1, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25}, + {"matrix": [2, 7], "x": 14, "y": 1.25}, + + {"matrix": [3, 7], "x": 15.25, "y": 1.25}, + {"matrix": [2, 8], "x": 16.25, "y": 1.25}, + {"matrix": [3, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [5, 7], "x": 15.25, "y": 2.25}, + {"matrix": [4, 8], "x": 16.25, "y": 2.25}, + {"matrix": [5, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 6], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [8, 7], "x": 14, "y": 4.25}, + + {"matrix": [8, 8], "x": 16.25, "y": 4.25}, + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 3], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [10, 5], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 7], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [11, 7], "x": 15.25, "y": 5.25}, + {"matrix": [10, 8], "x": 16.25, "y": 5.25}, + {"matrix": [11, 8], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [1, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [1, 2], "x": 4.25, "y": 0}, + + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [1, 3], "x": 6.5, "y": 0}, + {"matrix": [0, 4], "x": 7.5, "y": 0}, + {"matrix": [1, 4], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [1, 5], "x": 10.75, "y": 0}, + {"matrix": [0, 6], "x": 11.75, "y": 0}, + {"matrix": [1, 6], "x": 12.75, "y": 0}, + + {"matrix": [0, 7], "x": 14, "y": 0}, + + {"matrix": [1, 7], "x": 15.25, "y": 0}, + {"matrix": [0, 8], "x": 16.25, "y": 0}, + {"matrix": [1, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [3, 7], "x": 15.25, "y": 1.25}, + {"matrix": [2, 8], "x": 16.25, "y": 1.25}, + {"matrix": [3, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [5, 7], "x": 15.25, "y": 2.25}, + {"matrix": [4, 8], "x": 16.25, "y": 2.25}, + {"matrix": [5, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 6], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [8, 8], "x": 16.25, "y": 4.25}, + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 3], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [10, 5], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 7], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [11, 7], "x": 15.25, "y": 5.25}, + {"matrix": [10, 8], "x": 16.25, "y": 5.25}, + {"matrix": [11, 8], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [1, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [1, 2], "x": 4.25, "y": 0}, + + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [1, 3], "x": 6.5, "y": 0}, + {"matrix": [0, 4], "x": 7.5, "y": 0}, + {"matrix": [1, 4], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [1, 5], "x": 10.75, "y": 0}, + {"matrix": [0, 6], "x": 11.75, "y": 0}, + {"matrix": [1, 6], "x": 12.75, "y": 0}, + + {"matrix": [0, 7], "x": 14, "y": 0}, + + {"matrix": [1, 7], "x": 15.25, "y": 0}, + {"matrix": [0, 8], "x": 16.25, "y": 0}, + {"matrix": [1, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [3, 7], "x": 15.25, "y": 1.25}, + {"matrix": [2, 8], "x": 16.25, "y": 1.25}, + {"matrix": [3, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + + {"matrix": [5, 7], "x": 15.25, "y": 2.25}, + {"matrix": [4, 8], "x": 16.25, "y": 2.25}, + {"matrix": [5, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 6], "x": 12.75, "y": 3.25}, + {"matrix": [4, 7], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [8, 8], "x": 16.25, "y": 4.25}, + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 3], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [10, 5], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 7], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [11, 7], "x": 15.25, "y": 5.25}, + {"matrix": [10, 8], "x": 16.25, "y": 5.25}, + {"matrix": [11, 8], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/studiokestra/galatea/rev3/keymaps/default/keymap.c b/keyboards/studiokestra/galatea/rev3/keymaps/default/keymap.c new file mode 100644 index 00000000000..32db99b386d --- /dev/null +++ b/keyboards/studiokestra/galatea/rev3/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +// Copyright 2023 studiokestra (@studiokestra) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13│ │PSc│Scr│Pse│ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │LBk│RBk│ │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 │ ; │ ' │ Enter │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Mo1│ │ ↑ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [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_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), + + [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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/studiokestra/galatea/rev3/keymaps/via/keymap.c b/keyboards/studiokestra/galatea/rev3/keymaps/via/keymap.c new file mode 100644 index 00000000000..c0d09333493 --- /dev/null +++ b/keyboards/studiokestra/galatea/rev3/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2023 studiokestra (@studiokestra) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13│ │PSc│Scr│Pse│ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │LBk│RBk│ │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 │ ; │ ' │ Enter │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Mo1│ │ ↑ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + + [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_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), + + [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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/studiokestra/galatea/rev3/keymaps/via/rules.mk b/keyboards/studiokestra/galatea/rev3/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/studiokestra/galatea/rev3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/studiokestra/galatea/rev3/rules.mk b/keyboards/studiokestra/galatea/rev3/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/studiokestra/galatea/rev3/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/suavity/ehan/rules.mk b/keyboards/suavity/ehan/rules.mk index e7b278b4b23..5a44d1732f8 100644 --- a/keyboards/suavity/ehan/rules.mk +++ b/keyboards/suavity/ehan/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/subrezon/la_nc/keymaps/default/rules.mk b/keyboards/subrezon/la_nc/keymaps/default/rules.mk index b7c57d87b9e..9f00574d5d0 100644 --- a/keyboards/subrezon/la_nc/keymaps/default/rules.mk +++ b/keyboards/subrezon/la_nc/keymaps/default/rules.mk @@ -1,3 +1,2 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 LTO_ENABLE = yes diff --git a/keyboards/swiftrax/retropad/config.h b/keyboards/swiftrax/retropad/config.h index b737022959d..092f2ba0e99 100644 --- a/keyboards/swiftrax/retropad/config.h +++ b/keyboards/swiftrax/retropad/config.h @@ -17,20 +17,5 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /*EEPROM for via*/ #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/swiftrax/retropad/info.json b/keyboards/swiftrax/retropad/info.json index 57ce8bd79e4..8d6431fdde0 100644 --- a/keyboards/swiftrax/retropad/info.json +++ b/keyboards/swiftrax/retropad/info.json @@ -21,6 +21,23 @@ "bootmagic": { "matrix": [1, 0] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/switchplate/southpaw_65/config.h b/keyboards/switchplate/southpaw_65/config.h index 790d70d9c81..8fe96fc5dd3 100644 --- a/keyboards/switchplate/southpaw_65/config.h +++ b/keyboards/switchplate/southpaw_65/config.h @@ -21,18 +21,6 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 19 -#define RGBLED_NUM 9 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/switchplate/southpaw_65/info.json b/keyboards/switchplate/southpaw_65/info.json index 245b3ab02a7..19d08ee61a5 100644 --- a/keyboards/switchplate/southpaw_65/info.json +++ b/keyboards/switchplate/southpaw_65/info.json @@ -12,6 +12,21 @@ "pin": "B5", "levels": 10 }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/synthandkeys/bento_box/bento_box.c b/keyboards/synthandkeys/bento_box/bento_box.c new file mode 100644 index 00000000000..5ef0678f5ec --- /dev/null +++ b/keyboards/synthandkeys/bento_box/bento_box.c @@ -0,0 +1,37 @@ +// Copyright 2023 Synth-and-Keys (@Synth-and-Keys) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + /*Main Encoder*/ + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + /* TOP LEFT*/ + else if (index == 1) { + if (clockwise) { + tap_code16(C(KC_EQUAL)); + } else { + tap_code16(C(KC_MINUS)); + } + } + /* TOP RIGHT*/ + else if (index == 2) { + if (clockwise) { + tap_code16(C(KC_Y)); + } else { + tap_code16(C(KC_Z)); + } + } + return true; +} +#endif \ No newline at end of file diff --git a/keyboards/synthandkeys/bento_box/info.json b/keyboards/synthandkeys/bento_box/info.json new file mode 100644 index 00000000000..3cdc7a58708 --- /dev/null +++ b/keyboards/synthandkeys/bento_box/info.json @@ -0,0 +1,64 @@ +{ + "manufacturer": "Synth-and-Keys", + "keyboard_name": "bento_box", + "maintainer": "Synth-and-Keys", + "bootloader": "stm32-dfu", + "bootmagic": { + "matrix": [2, 0] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B2","pin_b": "B1"}, + {"pin_a": "A13","pin_b": "A14"}, + {"pin_a": "A15","pin_b": "B3"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + [ "A9", "A8", "B10", "B9", "B6", "B0"], + [ "A5", "A2", "A7", "A4", "A1", "B8"], + [ "B5", "A6", "A3", "A0", "B7", "B4"] + ] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 3.5, "y": 0 }, + { "matrix": [0, 1], "x": 4.5, "y": 0 }, + { "matrix": [0, 2], "x": 1, "y": 0.5 }, + { "matrix": [0, 3], "x": 3.5, "y": 1 }, + { "matrix": [0, 4], "x": 4.5, "y": 1 }, + { "matrix": [0, 5], "x": 0, "y": 2 }, + { "matrix": [1, 0], "x": 1, "y": 2 }, + { "matrix": [1, 1], "x": 2, "y": 2 }, + { "matrix": [1, 2], "x": 0, "y": 3 }, + { "matrix": [1, 3], "x": 1, "y": 3 }, + { "matrix": [1, 4], "x": 2, "y": 3 }, + { "matrix": [1, 5], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 0], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 1], "x": 0, "y": 4 }, + { "matrix": [2, 2], "x": 1, "y": 4 }, + { "matrix": [2, 3], "x": 2, "y": 4 }, + { "matrix": [2, 4], "x": 3.5, "y": 3.5, "h": 1.5}, + { "matrix": [2, 5], "x": 4.5, "y": 3.5, "h": 1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c b/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c new file mode 100644 index 00000000000..bf8f26984bf --- /dev/null +++ b/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2023 Synth-and-Keys (@Synth-and-Keys) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ---------------------------------------------------------------- + * | | | | Ctrl+0 | GUI+Shift+S | + * ---------------------------------------------------------------- + * | | Mute | | Copy | Paste | + * ---------------------------------------------------------------- + * | Prev | Pause | Next | | | + * ---------------------------------------------------------------- + * | Home | Up | End | Ctrl+T | Ctrl+W | + * ---------------------------------------------------------------- + * | Left | Down | Right | Shift+Alt+Tab | Alt+Tab | + * ---------------------------------------------------------------- + */ + [0] = LAYOUT( + C(KC_0), G(S(KC_S)), + KC_MUTE, C(KC_C), C(KC_V), + KC_MPRV, KC_MPLY, KC_MNXT, + KC_HOME, KC_UP, KC_END, C(KC_T), C(KC_W), + KC_LEFT, KC_DOWN, KC_RIGHT, S(C(KC_TAB)), C(KC_TAB) + ) +}; + + /* LAYER TEMPLATE + * ------------------------------------ + * | | | | | | + * ------------------------------------ + * | | | | | | + * ------------------------------------ + * | | | | | | + * ------------------------------------ + * | | | | | | + * ------------------------------------ + * | | | | | | + * ------------------------------------ + */ \ No newline at end of file diff --git a/keyboards/synthandkeys/bento_box/readme.md b/keyboards/synthandkeys/bento_box/readme.md new file mode 100644 index 00000000000..32ce47a0137 --- /dev/null +++ b/keyboards/synthandkeys/bento_box/readme.md @@ -0,0 +1,26 @@ +# synthandkeys/bento_box + +![synthandkeys/bento_box](https://i.imgur.com/J8NkYO8h.jpeg) + +The Bento Box is a 15-key, 3-encoder macropad running on QMK. + +* Keyboard Maintainer: [Synth-and-Keys](https://github.com/Synth-and-Keys) +* Hardware Supported: Bento Box PCB +* Hardware Availability: https://www.etsy.com/shop/SynthandKeys + +Make example for this keyboard (after setting up your build environment): + + make synthandkeys/bento_box:default + +Flashing example for this keyboard: + + make synthandkeys/bento_box: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 in the group of 9 and plug in the keyboard +* **Physical reset button**: Hold down the reset button on the back of the PCB for 5 seconds and release diff --git a/keyboards/synthandkeys/bento_box/rules.mk b/keyboards/synthandkeys/bento_box/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/synthandkeys/bento_box/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/synthlabs/060/config.h b/keyboards/synthlabs/060/config.h index 1870286c810..4a475316ede 100644 --- a/keyboards/synthlabs/060/config.h +++ b/keyboards/synthlabs/060/config.h @@ -31,8 +31,8 @@ #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 +// #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 diff --git a/keyboards/synthlabs/060/info.json b/keyboards/synthlabs/060/info.json index 1953af10e7b..b816b18027b 100644 --- a/keyboards/synthlabs/060/info.json +++ b/keyboards/synthlabs/060/info.json @@ -30,7 +30,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, {"flags": 4, "matrix": [0, 1], "x": 16, "y": 0}, diff --git a/keyboards/synthlabs/solo/config.h b/keyboards/synthlabs/solo/config.h index 71170a12cea..779b85a7c33 100644 --- a/keyboards/synthlabs/solo/config.h +++ b/keyboards/synthlabs/solo/config.h @@ -3,9 +3,6 @@ #pragma once -#define ENCODERS_CW_KEY { { 2, 1 } } -#define ENCODERS_CCW_KEY { { 0, 1 } } - #define JOYSTICK_BUTTON_COUNT 13 #define JOYSTICK_AXIS_COUNT 1 #define JOYSTICK_AXIS_RESOLUTION 16 diff --git a/keyboards/synthlabs/solo/info.json b/keyboards/synthlabs/solo/info.json index 168d2d06dc2..613ace72657 100644 --- a/keyboards/synthlabs/solo/info.json +++ b/keyboards/synthlabs/solo/info.json @@ -29,41 +29,33 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label": "P2 1", "x": 3, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 0]}, - {"label": "P1 2", "x": 3.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 1]}, - {"label": "P2 3", "x": 4, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 2]}, - {"label": "P1 4", "x": 4.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 3]}, - {"label": "P2 5", "x": 5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 4]}, - {"label": "P1 6", "x": 5.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 5]}, - {"label": "P2 7", "x": 6, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 6]}, - - {"label": "Knob CCW", "x": 0, "y": 1.25, "w": 0.5, "matrix": [1, 0]}, - {"label": "Knob Press", "x": 0.5, "y": 1, "w": 1.5, "h": 1.5, "matrix": [1, 1]}, - {"label": "Knob CW", "x": 2, "y": 1.25, "w": 0.5, "matrix": [1, 2]}, - - {"label": "P1 1", "x": 3, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 0]}, - {"label": "P2 2", "x": 3.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 1]}, - {"label": "P1 3", "x": 4, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 2]}, - {"label": "P2 4", "x": 4.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 3]}, - {"label": "P1 5", "x": 5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 4]}, - {"label": "P2 6", "x": 5.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 5]}, - {"label": "P1 7", "x": 6, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 6]} + {"label": "P2 1", "x": 2.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 0]}, + {"label": "P1 2", "x": 3, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 1]}, + {"label": "P2 3", "x": 3.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 2]}, + {"label": "P1 4", "x": 4, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 3]}, + {"label": "P2 5", "x": 4.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 4]}, + {"label": "P1 6", "x": 5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 5]}, + {"label": "P2 7", "x": 5.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 6]}, + {"label":"Knob Press", "x":0, "y":1, "w":1.5, "h":1.5, "matrix":[1,1]}, + {"label": "P1 1", "x": 2.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 0]}, + {"label": "P2 2", "x": 3, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 1]}, + {"label": "P1 3", "x": 3.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 2]}, + {"label": "P2 4", "x": 4, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 3]}, + {"label": "P1 5", "x": 4.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 4]}, + {"label": "P2 6", "x": 5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 5]}, + {"label": "P1 7", "x": 5.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 6]} ] }, "LAYOUT_left": { "layout": [ - {"label": "P1 2", "x": 3.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 1]}, - {"label": "P1 4", "x": 4.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 3]}, - {"label": "P1 6", "x": 5.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 5]}, - - {"label": "Knob CCW", "x": 0, "y": 1.25, "w": 0.5, "matrix": [1, 0]}, - {"label": "Knob Press", "x": 0.5, "y": 1, "w": 1.5, "h": 1.5, "matrix": [1, 1]}, - {"label": "Knob CW", "x": 2, "y": 1.25, "w": 0.5, "matrix": [1, 2]}, - - {"label": "P1 1", "x": 3, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 0]}, - {"label": "P1 3", "x": 4, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 2]}, - {"label": "P1 5", "x": 5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 4]}, - {"label": "P1 7", "x": 6, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 6]} + {"label": "P1 2", "x": 3, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 1]}, + {"label": "P1 4", "x": 4, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 3]}, + {"label": "P1 6", "x": 5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [0, 5]}, + {"label":"Knob Press", "x":0, "y":1, "w":1.5, "h":1.5, "matrix":[1,1]}, + {"label": "P1 1", "x": 2.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 0]}, + {"label": "P1 3", "x": 3.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 2]}, + {"label": "P1 5", "x": 4.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 4]}, + {"label": "P1 7", "x": 5.5, "y": 2, "w": 0.5, "h": 1.5, "matrix": [2, 6]} ] }, "LAYOUT_right": { @@ -71,11 +63,7 @@ {"label": "P2 6", "x": 0.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 5]}, {"label": "P2 4", "x": 1.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 3]}, {"label": "P2 2", "x": 2.5, "y": 0, "w": 0.5, "h": 1.5, "matrix": [2, 1]}, - - {"label": "Knob CCW", "x": 4, "y": 1.25, "w": 0.5, "matrix": [1, 0]}, - {"label": "Knob Press", "x": 4.5, "y": 1, "w": 1.5, "h": 1.5, "matrix": [1, 1]}, - {"label": "Knob CW", "x": 6, "y": 1.25, "w": 0.5, "matrix": [1, 2]}, - + {"label":"Knob Press", "x":4.5, "y":1, "w":1.5, "h":1.5, "matrix":[1,1]}, {"label": "P2 7", "x": 0, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 6]}, {"label": "P2 5", "x": 1, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 4]}, {"label": "P2 3", "x": 2, "y": 2, "w": 0.5, "h": 1.5, "matrix": [0, 2]}, diff --git a/keyboards/synthlabs/solo/keymaps/default/keymap.c b/keyboards/synthlabs/solo/keymaps/default/keymap.c index fa54111fe86..2d7313b77e0 100644 --- a/keyboards/synthlabs/solo/keymaps/default/keymap.c +++ b/keyboards/synthlabs/solo/keymaps/default/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN, - _______, KC_MUTE, _______, + KC_MUTE, KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN ) }; diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c index f450769b432..7bafe6b191c 100644 --- a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c +++ b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( JS_0,JS_1,JS_2,JS_3,JS_4,JS_5,JS_6, - KC_NO, JS_7, KC_NO, + JS_7, JS_0,JS_1,JS_2,JS_3,JS_4,JS_5,JS_6 ) }; diff --git a/keyboards/synthlabs/solo/keymaps/via/keymap.c b/keyboards/synthlabs/solo/keymaps/via/keymap.c index 84f99df9abb..8f107f8a104 100644 --- a/keyboards/synthlabs/solo/keymaps/via/keymap.c +++ b/keyboards/synthlabs/solo/keymaps/via/keymap.c @@ -6,64 +6,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN, - KC_VOLD, KC_MUTE, KC_VOLU, + KC_MUTE, KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN ), [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ ) }; -#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE) -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -void matrix_scan_user(void) { - encoder_action_unregister(); -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return false; -} - +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; #endif diff --git a/keyboards/synthlabs/solo/keymaps/via/rules.mk b/keyboards/synthlabs/solo/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/synthlabs/solo/keymaps/via/rules.mk +++ b/keyboards/synthlabs/solo/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/synthlabs/solo/solo.c b/keyboards/synthlabs/solo/solo.c deleted file mode 100644 index aca82c9ea38..00000000000 --- a/keyboards/synthlabs/solo/solo.c +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2022 Aaron Hong (@hongaaronc) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#if !defined(VIA_ENABLE) && !defined(JOYSTICK_ENABLE) && defined(ENCODER_ENABLE) -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code_delay(KC_VOLU, 10); - } else { - tap_code_delay(KC_VOLD, 10); - } - } - return true; -} -#endif diff --git a/keyboards/system76/launch_1/info.json b/keyboards/system76/launch_1/info.json index 21a8c1fbd93..eba3a115b8b 100644 --- a/keyboards/system76/launch_1/info.json +++ b/keyboards/system76/launch_1/info.json @@ -11,7 +11,7 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D7", "C7", "C6", "B6", "B5", "B4", "D6", "D4", "E6", "D5", "D3", "D2", "B7", "B0"], diff --git a/keyboards/system76/launch_1/rgb_matrix_kb.inc b/keyboards/system76/launch_1/rgb_matrix_kb.inc index 02de10ed500..f29183dde0e 100644 --- a/keyboards/system76/launch_1/rgb_matrix_kb.inc +++ b/keyboards/system76/launch_1/rgb_matrix_kb.inc @@ -22,6 +22,7 @@ RGB_MATRIX_EFFECT(unlocked) #ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS #include "dynamic_keymap.h" +#include "action_layer.h" static bool active_keys_initialized = false; static uint8_t active_keys_table[RGB_MATRIX_LED_COUNT] = {0}; diff --git a/keyboards/system76/system76_ec.c b/keyboards/system76/system76_ec.c index 63016590723..1b7955e19bf 100644 --- a/keyboards/system76/system76_ec.c +++ b/keyboards/system76/system76_ec.c @@ -22,6 +22,12 @@ #include "raw_hid.h" #include "rgb_matrix.h" #include "version.h" +#include "keyboard.h" +#include "eeprom.h" +#include "matrix.h" +#include "action_layer.h" +#include "bootloader.h" +#include "wait.h" enum Command { CMD_PROBE = 1, // Probe for System76 EC protocol diff --git a/keyboards/takashicompany/baumkuchen/baumkuchen.c b/keyboards/takashicompany/baumkuchen/baumkuchen.c new file mode 100644 index 00000000000..7d4f26b73e8 --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/baumkuchen.c @@ -0,0 +1,19 @@ +// Copyright 2023 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + + if (!encoder_update_user(index, clockwise)) { + return false; + } + + if (clockwise) { + tap_code(KC_WH_D); + } else { + tap_code(KC_WH_U); + } + + return true; +} \ No newline at end of file diff --git a/keyboards/takashicompany/baumkuchen/info.json b/keyboards/takashicompany/baumkuchen/info.json new file mode 100644 index 00000000000..e2318348827 --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/info.json @@ -0,0 +1,75 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "Baumkuchen", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + { + "pin_a": "D1", + "pin_b": "D0" + } + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "direct": [ + ["B2", "B6", "D4", "C6", "F4", "F5", "D7", "E6", "F6", "F7", "B1", "B3", "B4", "B5", "B5"] + ] + }, + "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 + }, + "led_count": 6, + }, + "ws2812": { + "pin": "D3" + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0045", + "vid": "0x7463" + }, + "layouts": { + "LAYOUT": { + "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": 0, "y": 1 }, + { "matrix": [0, 5], "x": 1, "y": 1 }, + { "matrix": [0, 6], "x": 2, "y": 1 }, + { "matrix": [0, 7], "x": 3, "y": 1 }, + { "matrix": [0, 8], "x": 0, "y": 2 }, + { "matrix": [0, 9], "x": 1, "y": 2 }, + { "matrix": [0, 10], "x": 2, "y": 2 }, + { "matrix": [0, 11], "x": 3, "y": 2 }, + { "matrix": [0, 12], "x": 4, "y": 2 }, + { "matrix": [0, 13], "x": 3.5, "y": 3.25 }, + { "matrix": [0, 14], "x": 4.5, "y": 3.25 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/baumkuchen/keymaps/build_test/keymap.c b/keyboards/takashicompany/baumkuchen/keymaps/build_test/keymap.c new file mode 100644 index 00000000000..b99d3a3592b --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/keymaps/build_test/keymap.c @@ -0,0 +1,33 @@ +// Copyright 2023 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, + KC_A, KC_S, KC_D, KC_F, + KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_NO, KC_NO + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + if (record->event.pressed) { + rgblight_toggle_noeeprom(); // for test + } + + return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (clockwise) { + tap_code(KC_1); + } else { + tap_code(KC_2); + } + + return false; +} diff --git a/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c b/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c new file mode 100644 index 00000000000..7ea01cbd5d3 --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2023 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, + KC_A, KC_S, KC_D, KC_F, + KC_Z, KC_X, KC_C, LT(1, KC_V), KC_B, + KC_NO, KC_NO + ), + [1] = LAYOUT( + RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/takashicompany/baumkuchen/keymaps/via/config.h b/keyboards/takashicompany/baumkuchen/keymaps/via/config.h new file mode 100644 index 00000000000..1017b9cb4bd --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/keymaps/via/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 29 diff --git a/keyboards/takashicompany/baumkuchen/keymaps/via/keymap.c b/keyboards/takashicompany/baumkuchen/keymaps/via/keymap.c new file mode 100644 index 00000000000..1e4624ca883 --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/keymaps/via/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2023 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + LT(1, KC_ESC), KC_Q, KC_W, KC_E, + KC_TAB, KC_A, KC_S, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, + KC_WH_U, KC_WH_D + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, + KC_TRNS,KC_TRNS + ), + + [2] = LAYOUT( + RGB_TOG, RGB_MOD, KC_TRNS, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS + ) +}; diff --git a/keyboards/takashicompany/baumkuchen/keymaps/via/rules.mk b/keyboards/takashicompany/baumkuchen/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/baumkuchen/readme.md b/keyboards/takashicompany/baumkuchen/readme.md new file mode 100644 index 00000000000..adc3f2e0064 --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/readme.md @@ -0,0 +1,31 @@ +# Baumkuchen + +![takashicompany/baumkuchen](https://i.imgur.com/NS39x44h.png) + +Baumkuchen is a 13-key macropad with a radial key layout. +The board can be used as a circuit or as a switch plate by cutting out the keyswitch Pro Micro part. +It is compatible with Cherry MX compatible keyswitches, and a rotary encoder can be optionally installed. +LEDs can also be mounted to make it glow. +The board is reversible, allowing you to choose the arrangement of keys and Pro Micro according to your usage style. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: Baumkuchen PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/baumkuchen + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/baumkuchen:default + +Flashing example for this keyboard: + + make takashicompany/baumkuchen:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/baumkuchen/rules.mk b/keyboards/takashicompany/baumkuchen/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/takashicompany/baumkuchen/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/takashicompany/center_enter/config.h b/keyboards/takashicompany/center_enter/config.h index 83952009e56..7b4e38bd964 100644 --- a/keyboards/takashicompany/center_enter/config.h +++ b/keyboards/takashicompany/center_enter/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 6 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashicompany/center_enter/info.json b/keyboards/takashicompany/center_enter/info.json index 3521b242181..77c9410723e 100644 --- a/keyboards/takashicompany/center_enter/info.json +++ b/keyboards/takashicompany/center_enter/info.json @@ -8,6 +8,23 @@ "pid": "0x0012", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/takashicompany/compacx/config.h b/keyboards/takashicompany/compacx/config.h index 07287712f3b..7b4e38bd964 100644 --- a/keyboards/takashicompany/compacx/config.h +++ b/keyboards/takashicompany/compacx/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 12 -# define RGBLED_SPLIT {6, 6} -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashicompany/compacx/info.json b/keyboards/takashicompany/compacx/info.json index 2e7ef2f7a64..ba90f9fdd7d 100644 --- a/keyboards/takashicompany/compacx/info.json +++ b/keyboards/takashicompany/compacx/info.json @@ -8,6 +8,25 @@ "pid": "0x0014", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/takashicompany/dogtag/dogtag.c b/keyboards/takashicompany/dogtag/dogtag.c deleted file mode 100644 index 0ca5f7c3e89..00000000000 --- a/keyboards/takashicompany/dogtag/dogtag.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright 2021 takashicompany - * - * This 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" - -bool encoder_update_kb(uint8_t index, bool clockwise) { - keypos_t key; - if (index == 0) { - if (clockwise) { - key.row = 2; - key.col = 1; - } else { - key.row = 2; - key.col = 0; - } - uint8_t layer = layer_switch_get_layer(key); - uint16_t keycode = keymap_key_to_keycode(layer, key); - - tap_code16(keycode); - } else { - if (clockwise) { - key.row = 5; - key.col = 0; - } else { - key.row = 5; - key.col = 1; - } - uint8_t layer = layer_switch_get_layer(key); - uint16_t keycode = keymap_key_to_keycode(layer, key); - - tap_code16(keycode); - } - - return true; -} diff --git a/keyboards/takashicompany/dogtag/info.json b/keyboards/takashicompany/dogtag/info.json index 6827375d840..d65092ecca2 100644 --- a/keyboards/takashicompany/dogtag/info.json +++ b/keyboards/takashicompany/dogtag/info.json @@ -80,13 +80,7 @@ {"matrix": [4, 1], "x": 8, "y": 1}, {"matrix": [4, 2], "x": 9, "y": 1}, {"matrix": [4, 3], "x": 10, "y": 1}, - {"matrix": [4, 4], "x": 11, "y": 1}, - - {"matrix": [2, 0], "x": 3.5, "y": 3.25}, - {"matrix": [2, 1], "x": 4.5, "y": 3.25}, - - {"matrix": [5, 0], "x": 6.5, "y": 3.25}, - {"matrix": [5, 1], "x": 7.5, "y": 3.25} + {"matrix": [4, 4], "x": 11, "y": 1} ] } } diff --git a/keyboards/takashicompany/dogtag/keymaps/default/keymap.c b/keyboards/takashicompany/dogtag/keymaps/default/keymap.c index 865e6a2290c..8eb6b433b3a 100644 --- a/keyboards/takashicompany/dogtag/keymaps/default/keymap.c +++ b/keyboards/takashicompany/dogtag/keymaps/default/keymap.c @@ -16,15 +16,20 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT( + [0] = LAYOUT( LT(1, KC_ESC), KC_Q, KC_W, KC_E, KC_Y, KC_U, KC_I, KC_O, - KC_LSFT, KC_A, KC_S, KC_D, KC_SPC, KC_TAB, KC_H, KC_J, KC_K, KC_L, - KC_WH_U, KC_WH_D, KC_WH_U, KC_WH_D + KC_LSFT, KC_A, KC_S, KC_D, KC_SPC, KC_TAB, KC_H, KC_J, KC_K, KC_L ), - LAYOUT( + [1] = LAYOUT( KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_M_P, RGB_M_K, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_WH_L, KC_WH_R, KC_WH_L, KC_WH_R + KC_TRNS, RGB_M_P, RGB_M_K, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/takashicompany/dogtag/keymaps/default/rules.mk b/keyboards/takashicompany/dogtag/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/takashicompany/dogtag/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/takashicompany/dogtag/keymaps/via/keymap.c b/keyboards/takashicompany/dogtag/keymaps/via/keymap.c index 865e6a2290c..969aec92a59 100644 --- a/keyboards/takashicompany/dogtag/keymaps/via/keymap.c +++ b/keyboards/takashicompany/dogtag/keymaps/via/keymap.c @@ -18,13 +18,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( LT(1, KC_ESC), KC_Q, KC_W, KC_E, KC_Y, KC_U, KC_I, KC_O, - KC_LSFT, KC_A, KC_S, KC_D, KC_SPC, KC_TAB, KC_H, KC_J, KC_K, KC_L, - KC_WH_U, KC_WH_D, KC_WH_U, KC_WH_D + KC_LSFT, KC_A, KC_S, KC_D, KC_SPC, KC_TAB, KC_H, KC_J, KC_K, KC_L ), LAYOUT( KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_M_P, RGB_M_K, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_WH_L, KC_WH_R, KC_WH_L, KC_WH_R + KC_TRNS, RGB_M_P, RGB_M_K, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/takashicompany/dogtag/keymaps/via/rules.mk b/keyboards/takashicompany/dogtag/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/takashicompany/dogtag/keymaps/via/rules.mk +++ b/keyboards/takashicompany/dogtag/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/takashicompany/endzone34/config.h b/keyboards/takashicompany/endzone34/config.h index ccd72051a7f..7b4e38bd964 100644 --- a/keyboards/takashicompany/endzone34/config.h +++ b/keyboards/takashicompany/endzone34/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 9 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashicompany/endzone34/info.json b/keyboards/takashicompany/endzone34/info.json index 8eb5b4dd571..8e6f6c29e43 100644 --- a/keyboards/takashicompany/endzone34/info.json +++ b/keyboards/takashicompany/endzone34/info.json @@ -8,6 +8,24 @@ "pid": "0x0006", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 9, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/takashicompany/endzone34/rules.mk b/keyboards/takashicompany/endzone34/rules.mk index f8fbdec9bda..e6ed3b4b034 100644 --- a/keyboards/takashicompany/endzone34/rules.mk +++ b/keyboards/takashicompany/endzone34/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/takashicompany/heavy_left/config.h b/keyboards/takashicompany/heavy_left/config.h index df15f55f728..c7f1d860ee6 100644 --- a/keyboards/takashicompany/heavy_left/config.h +++ b/keyboards/takashicompany/heavy_left/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 6 * 2 -# define RGBLED_SPLIT {6, 6} -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashicompany/heavy_left/info.json b/keyboards/takashicompany/heavy_left/info.json index 1afa2b1280f..a13f15cb4a4 100644 --- a/keyboards/takashicompany/heavy_left/info.json +++ b/keyboards/takashicompany/heavy_left/info.json @@ -8,6 +8,25 @@ "pid": "0x0015", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/takashicompany/minidivide/info.json b/keyboards/takashicompany/minidivide/info.json new file mode 100644 index 00000000000..2234cd9b39e --- /dev/null +++ b/keyboards/takashicompany/minidivide/info.json @@ -0,0 +1,105 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "miniDivide", + "maintainer": "takashicompany", + "build": { + "lto": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4"], + "rows": ["F4", "F5", "F6", "F7"] + }, + "pin_compatible": "promicro", + "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 + }, + "led_count": 10, + "sleep": true, + "split_count": [5, 5] + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "cols": ["B4", "E6", "D7", "C6", "D4"], + "rows": ["F4", "F5", "F6", "F7"] + } + }, + "soft_serial_pin": "D2" + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x0037", + "vid": "0x7463" + }, + "ws2812": { + "pin": "D3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.42}, + {"matrix": [0, 1], "x": 0.84, "y": 0.21}, + {"matrix": [0, 2], "x": 1.68, "y": 0}, + {"matrix": [0, 3], "x": 2.52, "y": 0.21}, + {"matrix": [0, 4], "x": 3.36, "y": 0.42}, + {"matrix": [4, 0], "x": 6.3, "y": 0.42}, + {"matrix": [4, 1], "x": 7.14, "y": 0.21}, + {"matrix": [4, 2], "x": 7.98, "y": 0}, + {"matrix": [4, 3], "x": 8.82, "y": 0.21}, + {"matrix": [4, 4], "x": 9.66, "y": 0.42}, + {"matrix": [1, 0], "x": 0, "y": 1.26}, + {"matrix": [1, 1], "x": 0.84, "y": 1.05}, + {"matrix": [1, 2], "x": 1.68, "y": 0.84}, + {"matrix": [1, 3], "x": 2.52, "y": 1.05}, + {"matrix": [1, 4], "x": 3.36, "y": 1.26}, + {"matrix": [5, 0], "x": 6.3, "y": 1.26}, + {"matrix": [5, 1], "x": 7.14, "y": 1.05}, + {"matrix": [5, 2], "x": 7.98, "y": 0.84}, + {"matrix": [5, 3], "x": 8.82, "y": 1.05}, + {"matrix": [5, 4], "x": 9.66, "y": 1.26}, + {"matrix": [2, 0], "x": 0, "y": 2.1}, + {"matrix": [2, 1], "x": 0.84, "y": 1.89}, + {"matrix": [2, 2], "x": 1.68, "y": 1.68}, + {"matrix": [2, 3], "x": 2.52, "y": 1.89}, + {"matrix": [2, 4], "x": 3.36, "y": 2.1}, + {"matrix": [6, 0], "x": 6.3, "y": 2.1}, + {"matrix": [6, 1], "x": 7.14, "y": 1.89}, + {"matrix": [6, 2], "x": 7.98, "y": 1.68}, + {"matrix": [6, 3], "x": 8.82, "y": 1.89}, + {"matrix": [6, 4], "x": 9.66, "y": 2.1}, + {"matrix": [3, 1], "x": 1.68, "y": 3.15}, + {"matrix": [3, 2], "x": 2.52, "y": 3.15}, + {"matrix": [3, 3], "x": 3.36, "y": 3.15}, + {"matrix": [3, 4], "x": 4.2, "y": 3.15}, + {"matrix": [7, 0], "x": 5.46, "y": 3.15}, + {"matrix": [7, 1], "x": 6.3, "y": 3.15}, + {"matrix": [7, 2], "x": 7.14, "y": 3.15}, + {"matrix": [7, 3], "x": 7.98, "y": 3.15} + ] + } + } +} diff --git a/keyboards/takashicompany/minidivide/keymaps/default/keymap.c b/keyboards/takashicompany/minidivide/keymaps/default/keymap.c new file mode 100644 index 00000000000..38b954f38da --- /dev/null +++ b/keyboards/takashicompany/minidivide/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +// Copyright 2023 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, + KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, + KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RGUI, KC_RCTL + ), + + [4] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, + LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT( + KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, + KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT( + KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, DF(0), DF(3), + RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, + 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/takashicompany/minidivide/keymaps/via/config.h b/keyboards/takashicompany/minidivide/keymaps/via/config.h new file mode 100644 index 00000000000..f357dce3032 --- /dev/null +++ b/keyboards/takashicompany/minidivide/keymaps/via/config.h @@ -0,0 +1,5 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 \ No newline at end of file diff --git a/keyboards/takashicompany/minidivide/keymaps/via/keymap.c b/keyboards/takashicompany/minidivide/keymaps/via/keymap.c new file mode 100644 index 00000000000..38b954f38da --- /dev/null +++ b/keyboards/takashicompany/minidivide/keymaps/via/keymap.c @@ -0,0 +1,70 @@ +// Copyright 2023 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, + KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, + KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RGUI, KC_RCTL + ), + + [4] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, + LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT( + KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, + KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT( + KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, DF(0), DF(3), + RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, + 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/takashicompany/minidivide/keymaps/via/rules.mk b/keyboards/takashicompany/minidivide/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/takashicompany/minidivide/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/minidivide/minidivide.c b/keyboards/takashicompany/minidivide/minidivide.c new file mode 100644 index 00000000000..abdb91fc47e --- /dev/null +++ b/keyboards/takashicompany/minidivide/minidivide.c @@ -0,0 +1,48 @@ +// Copyright 2023 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +//Variable that stores the number of times the key was pressed +static uint16_t press_count = 0; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + // Increment the counter when a key is pressed + if (record->event.pressed) { + press_count++; + } + + return process_record_user(keycode, record); +} + +bool oled_task_kb(void) { + + if (!oled_task_user()) { return false; } + + oled_write_ln_P(PSTR("mini"), false); + oled_write_ln_P(PSTR("Divide"), false); + + oled_set_cursor(0, 5); + + oled_write_ln_P(PSTR("Layer"), false); + oled_write_ln(get_u8_str(get_highest_layer(layer_state), ' '), false); + + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + + oled_write_ln_P(PSTR("Count"), false); + oled_write_ln(get_u16_str(press_count, ' '), false); + + return false; + +} +#endif \ No newline at end of file diff --git a/keyboards/takashicompany/minidivide/readme.md b/keyboards/takashicompany/minidivide/readme.md new file mode 100644 index 00000000000..de49c2892b4 --- /dev/null +++ b/keyboards/takashicompany/minidivide/readme.md @@ -0,0 +1,43 @@ +# miniDivide + +![miniDivide](https://i.imgur.com/x91x9yjh.jpg) + +miniDivide is a split keyboard with 0.8u (16mm) key pitch. +The size of a single key is 80% of that of a conventional keyboard key. +Although the key size is more compact than usual, it has the advantage of requiring minimal finger movement. +The number of keys is 19 keys for one hand and 38 keys for two hands. + +It is small and thin, making it easy to carry around. +The option to mount a coin cell battery on the PCB is available so that the BLE Micro Pro can be installed. +OLED can also be mounted. + +miniDivideは0.8u(16mm)キーピッチの分割型のキーボードです。 +一つのキーの大きさが従来のキーボードのキーと比較すると80%のサイズとなっています。 +通常よりコンパクトなキーサイズですが、指の動きが最小限で済むという強みがあります。 +キー数は片手で19キー、両手で38キーとなります。 + +小さく、薄いので持ち運びにも便利です。 +またBLE Micro Proを搭載できるよう、コイン電池をPCBに搭載するオプションが可能です。 +OLEDも搭載できます。 + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/minidivide + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/minidivide:default + +Flashing example for this keyboard: + + make takashicompany/minidivide:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/takashicompany/minidivide/rules.mk b/keyboards/takashicompany/minidivide/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/takashicompany/minidivide/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/takashicompany/minizone/config.h b/keyboards/takashicompany/minizone/config.h index 2c494ea329f..5665732b042 100644 --- a/keyboards/takashicompany/minizone/config.h +++ b/keyboards/takashicompany/minizone/config.h @@ -3,21 +3,6 @@ #pragma once -# define RGBLED_NUM 11 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashicompany/minizone/info.json b/keyboards/takashicompany/minizone/info.json index 806a255bcb4..911b924cfc5 100644 --- a/keyboards/takashicompany/minizone/info.json +++ b/keyboards/takashicompany/minizone/info.json @@ -8,6 +8,21 @@ "pid": "0x0021", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 11, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/takashicompany/minizone/rules.mk b/keyboards/takashicompany/minizone/rules.mk index 60c7bb59b5e..e6ed3b4b034 100644 --- a/keyboards/takashicompany/minizone/rules.mk +++ b/keyboards/takashicompany/minizone/rules.mk @@ -10,6 +10,4 @@ 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 - OLED_ENABLE = yes -OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/takashicompany/qoolee/config.h b/keyboards/takashicompany/qoolee/config.h index 83952009e56..7b4e38bd964 100644 --- a/keyboards/takashicompany/qoolee/config.h +++ b/keyboards/takashicompany/qoolee/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 6 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashicompany/qoolee/info.json b/keyboards/takashicompany/qoolee/info.json index c9aacaabc2b..d4068189b3c 100644 --- a/keyboards/takashicompany/qoolee/info.json +++ b/keyboards/takashicompany/qoolee/info.json @@ -8,6 +8,23 @@ "pid": "0x0013", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/takashicompany/radialex/config.h b/keyboards/takashicompany/radialex/config.h index 34ab4a1239c..7b4e38bd964 100644 --- a/keyboards/takashicompany/radialex/config.h +++ b/keyboards/takashicompany/radialex/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 12 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashicompany/radialex/info.json b/keyboards/takashicompany/radialex/info.json index d6852033b1f..e334d2c16ca 100644 --- a/keyboards/takashicompany/radialex/info.json +++ b/keyboards/takashicompany/radialex/info.json @@ -8,6 +8,24 @@ "pid": "0x0019", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json index 1ab624ebcd2..da5a95b8957 100644 --- a/keyboards/takashicompany/spreadwriter/info.json +++ b/keyboards/takashicompany/spreadwriter/info.json @@ -105,9 +105,7 @@ {"matrix": [7, 3], "x": 12, "y": 3}, {"matrix": [7, 4], "x": 13, "y": 3.25}, {"matrix": [7, 5], "x": 14, "y": 3.5}, - {"matrix": [7, 6], "x": 15, "y": 3.5}, - {"matrix": [0, 6], "x": 7, "y": 4.25}, - {"matrix": [4, 0], "x": 8, "y": 4.25} + {"matrix": [7, 6], "x": 15, "y": 3.5} ] } } diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index f0ac6aa00b4..fb74b6ee307 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -13,56 +13,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, - KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LNG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - KC_WH_U, KC_WH_D + KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LNG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT ), LAYOUT( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), LAYOUT( KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_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_SPC + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), LAYOUT( RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, QK_BOOT, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, QK_BOOT, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), LAYOUT( KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_INT3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_TRNS ), LAYOUT( KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_INT3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_LBRC), S(KC_RBRC), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_NUHS), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_INT1), KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_INT1), KC_TRNS ), LAYOUT( KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), G(KC_INT3), KC_TRNS, KC_LCTL, S(KC_EQL), S(KC_LBRC), S(KC_SLSH), S(KC_MINS), S(KC_INT1), KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_RBRC), S(KC_NUHS), S(KC_INT3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; @@ -81,7 +74,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; } - + return true; } @@ -92,6 +85,5 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { tap_code(KC_MS_WH_UP); } - - return true; -} \ No newline at end of file + return false; +} diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/config.h b/keyboards/takashicompany/spreadwriter/keymaps/via/config.h index 9587fd7b6b8..b0e0cc3ee77 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/via/config.h +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/config.h @@ -4,14 +4,3 @@ #pragma once #define DYNAMIC_KEYMAP_LAYER_COUNT 7 - -//------------------------------------------------------------------------------ -// Rotary Encoder -//------------------------------------------------------------------------------ -// Encoder triggers specific key matrix position, -// when turn knob clockwise or counterclockwise. -// This is handy to assign key codes by VIA. - -// Mappings of encoder rotation to key position in key matrix. -#define ENCODERS_CW_KEY { { 0, 4 }} -#define ENCODERS_CCW_KEY { { 6, 0 }} \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c index c0d4a0003d9..cf031394f13 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c @@ -13,56 +13,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, - KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LNG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - KC_WH_U, KC_WH_D + KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LNG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT ), LAYOUT( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), LAYOUT( KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_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_SPC + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), LAYOUT( RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, QK_BOOT, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, QK_BOOT, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), LAYOUT( KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_INT3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_TRNS ), LAYOUT( KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_INT3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_LBRC), S(KC_RBRC), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_NUHS), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_INT1), KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_INT1), KC_TRNS ), LAYOUT( KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), G(KC_INT3), KC_TRNS, KC_LCTL, S(KC_EQL), S(KC_LBRC), S(KC_SLSH), S(KC_MINS), S(KC_INT1), KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_RBRC), S(KC_NUHS), S(KC_INT3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; @@ -81,49 +74,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; } - - return true; -} - -//------------------------------------------------------------------------------ -// Rotary Encoder -//------------------------------------------------------------------------------ -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); + return true; } -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - return true; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, + [1 ... 6] = { ENCODER_CCW_CW(_______, _______) }, }; +#endif diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk b/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk index 036bd6d1c3e..f1adcab005e 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk @@ -1 +1,2 @@ -VIA_ENABLE = yes \ No newline at end of file +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/takashiski/hecomi/alpha/config.h b/keyboards/takashiski/hecomi/alpha/config.h index ac6c077f6b2..1c14611b2b9 100644 --- a/keyboards/takashiski/hecomi/alpha/config.h +++ b/keyboards/takashiski/hecomi/alpha/config.h @@ -19,21 +19,6 @@ along with this program. If not, see . //#define USE_I2C - #define RGBLED_NUM 16 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - /*== or choose 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -60,4 +45,3 @@ along with this program. If not, see . #define MASTER_LEFT #define EEHANDS */ -#define RGBLED_SPLIT {8,8} diff --git a/keyboards/takashiski/hecomi/alpha/info.json b/keyboards/takashiski/hecomi/alpha/info.json index 19a1f057604..a7b470ce880 100644 --- a/keyboards/takashiski/hecomi/alpha/info.json +++ b/keyboards/takashiski/hecomi/alpha/info.json @@ -16,6 +16,12 @@ "split": { "soft_serial_pin": "D1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "split_count": [8, 8] + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/takashiski/hecomi/keymaps/kakunpc/keymap.c b/keyboards/takashiski/hecomi/keymaps/kakunpc/keymap.c index fb61d8ed62a..df1b1195bc0 100644 --- a/keyboards/takashiski/hecomi/keymaps/kakunpc/keymap.c +++ b/keyboards/takashiski/hecomi/keymaps/kakunpc/keymap.c @@ -50,19 +50,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LGUI,KC_NO,KC_LALT,KC_INT5,KC_NO,KC_SPC, KC_0,KC_NO,KC_HOME,KC_PGUP,KC_PGDN,KC_END ), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void keyboard_post_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/takashiski/namecard2x4/keymaps/brainfuck/keymap.c b/keyboards/takashiski/namecard2x4/keymaps/brainfuck/keymap.c index a60408366dd..4b35b084187 100644 --- a/keyboards/takashiski/namecard2x4/keymaps/brainfuck/keymap.c +++ b/keyboards/takashiski/namecard2x4/keymaps/brainfuck/keymap.c @@ -40,20 +40,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/takashiski/namecard2x4/rev1/config.h b/keyboards/takashiski/namecard2x4/rev1/config.h index c4a349580c6..8ecec41e2a9 100644 --- a/keyboards/takashiski/namecard2x4/rev1/config.h +++ b/keyboards/takashiski/namecard2x4/rev1/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 4 -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashiski/namecard2x4/rev1/info.json b/keyboards/takashiski/namecard2x4/rev1/info.json index 28781bcd0a6..aaab760be3b 100644 --- a/keyboards/takashiski/namecard2x4/rev1/info.json +++ b/keyboards/takashiski/namecard2x4/rev1/info.json @@ -1,4 +1,22 @@ { + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/takashiski/namecard2x4/rev2/config.h b/keyboards/takashiski/namecard2x4/rev2/config.h index f90b4e073c8..8ecec41e2a9 100644 --- a/keyboards/takashiski/namecard2x4/rev2/config.h +++ b/keyboards/takashiski/namecard2x4/rev2/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/takashiski/namecard2x4/rev2/info.json b/keyboards/takashiski/namecard2x4/rev2/info.json index 51fe26c555c..edef6a31b41 100644 --- a/keyboards/takashiski/namecard2x4/rev2/info.json +++ b/keyboards/takashiski/namecard2x4/rev2/info.json @@ -1,4 +1,22 @@ { + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/taleguers/taleguers75/config.h b/keyboards/taleguers/taleguers75/config.h index b62209abaad..6b1277af2ce 100644 --- a/keyboards/taleguers/taleguers75/config.h +++ b/keyboards/taleguers/taleguers75/config.h @@ -21,20 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 6 -#define RGBLIGHT_LED_MAP { 5, 4, 3, 2, 1, 0 } -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/taleguers/taleguers75/info.json b/keyboards/taleguers/taleguers75/info.json index 229894fa9d0..7ebd8707b7c 100644 --- a/keyboards/taleguers/taleguers75/info.json +++ b/keyboards/taleguers/taleguers75/info.json @@ -18,6 +18,25 @@ {"pin_a": "B6", "pin_b": "B5"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "sleep": true, + "led_map": [5, 4, 3, 2, 1, 0], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/tanuki/config.h b/keyboards/tanuki/config.h index 305eacfd35d..4b007cf387e 100644 --- a/keyboards/tanuki/config.h +++ b/keyboards/tanuki/config.h @@ -22,23 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 5 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#define RGBLIGHT_SLEEP - -#define TAPPING_TERM 200 /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/tanuki/info.json b/keyboards/tanuki/info.json index 8a858cf4f0c..e7bb9aa8985 100644 --- a/keyboards/tanuki/info.json +++ b/keyboards/tanuki/info.json @@ -8,6 +8,23 @@ "pid": "0x6464", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 10, + "led_count": 5, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/tau4/rules.mk b/keyboards/tau4/rules.mk index f27ee2a28ee..0001ae06b81 100644 --- a/keyboards/tau4/rules.mk +++ b/keyboards/tau4/rules.mk @@ -1,7 +1,2 @@ -# Build Options -# change yes to no to disable -# - -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. diff --git a/keyboards/teahouse/ayleen/config.h b/keyboards/teahouse/ayleen/config.h index 84559bb7bd6..6ff56589b3f 100644 --- a/keyboards/teahouse/ayleen/config.h +++ b/keyboards/teahouse/ayleen/config.h @@ -3,13 +3,8 @@ #pragma once - #define RGBLED_NUM 2 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_LAYERS 2 #define RGBLIGHT_LAYER_BLINK - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ // generated by KBFirmware JSON to QMK Parser // https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/teahouse/ayleen/info.json b/keyboards/teahouse/ayleen/info.json index 408b7dc8a6c..04baad7d00b 100644 --- a/keyboards/teahouse/ayleen/info.json +++ b/keyboards/teahouse/ayleen/info.json @@ -19,6 +19,12 @@ "rows": ["F0", "F1", "F4", "F5", "D4", "B0", "B1", "B2", "F7", "D5", "D3"], "cols": ["F6", "D0", "D1", "D2", "D6", "D7", "B4", "B5", "B6"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "sleep": true + }, "ws2812": { "pin": "C7" }, @@ -27,8 +33,14 @@ "pid": "0x4141", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan" + }, + "community_layouts": [ + "tkl_f13_ansi_tsangan" + ], "layouts": { - "LAYOUT": { + "LAYOUT_tkl_f13_ansi_tsangan": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, @@ -39,89 +51,89 @@ {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, - {"label": "F9", "matrix": [5, 8], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [5, 8], "x": 9.75, "y": 0}, {"label": "F10", "matrix": [5, 7], "x": 10.75, "y": 0}, {"label": "F11", "matrix": [5, 6], "x": 11.75, "y": 0}, {"label": "F12", "matrix": [5, 5], "x": 12.75, "y": 0}, - {"label": "F13", "matrix": [5, 4], "x": 13.75, "y": 0}, + {"label": "F13", "matrix": [5, 4], "x": 14, "y": 0}, {"label": "Prtsc", "matrix": [5, 3], "x": 15.25, "y": 0}, {"label": "Scrlk", "matrix": [5, 2], "x": 16.25, "y": 0}, {"label": "Pause", "matrix": [5, 1], "x": 17.25, "y": 0}, - {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, - {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.5}, - {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.5}, - {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.5}, - {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.5}, - {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.5}, - {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.5}, - {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.5}, - {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.5}, - {"label": "9", "matrix": [6, 8], "x": 9, "y": 1.5}, - {"label": "0", "matrix": [6, 7], "x": 10, "y": 1.5}, - {"label": "-", "matrix": [6, 6], "x": 11, "y": 1.5}, - {"label": "=", "matrix": [6, 5], "x": 12, "y": 1.5}, - {"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.5, "w": 2}, - {"label": "insert", "matrix": [6, 3], "x": 15.25, "y": 1.5}, - {"label": "home", "matrix": [6, 2], "x": 16.25, "y": 1.5}, - {"label": "pg up", "matrix": [6, 1], "x": 17.25, "y": 1.5}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25}, + {"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25, "w": 2}, + {"label": "insert", "matrix": [6, 3], "x": 15.25, "y": 1.25}, + {"label": "home", "matrix": [6, 2], "x": 16.25, "y": 1.25}, + {"label": "pg up", "matrix": [6, 1], "x": 17.25, "y": 1.25}, - {"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, - {"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, - {"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.5}, - {"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.5}, - {"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.5}, - {"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.5}, - {"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, - {"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.5}, - {"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.5}, - {"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.5}, - {"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.5}, - {"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.5}, - {"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.5}, - {"label": "|", "matrix": [7, 4], "x": 13.5, "y": 2.5, "w": 1.5}, - {"label": "delete", "matrix": [7, 3], "x": 15.25, "y": 2.5}, - {"label": "end", "matrix": [7, 2], "x": 16.25, "y": 2.5}, - {"label": "pg dn", "matrix": [7, 1], "x": 17.25, "y": 2.5}, + {"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25}, + {"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25}, + {"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25}, + {"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [7, 4], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "delete", "matrix": [7, 3], "x": 15.25, "y": 2.25}, + {"label": "end", "matrix": [7, 2], "x": 16.25, "y": 2.25}, + {"label": "pg dn", "matrix": [7, 1], "x": 17.25, "y": 2.25}, - {"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, - {"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.5}, - {"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.5}, - {"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.5}, - {"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.5}, - {"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.5}, - {"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.5}, - {"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.5}, - {"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.5}, - {"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.5}, - {"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.5}, - {"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.5}, - {"label": "enter", "matrix": [8, 5], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25}, + {"label": "enter", "matrix": [8, 5], "x": 12.75, "y": 3.25, "w": 2.25}, - {"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, - {"label": "z", "matrix": [4, 1], "x": 3.25, "y": 4.5}, - {"label": "x", "matrix": [4, 2], "x": 4.25, "y": 4.5}, - {"label": "c", "matrix": [4, 3], "x": 5.25, "y": 4.5}, - {"label": "v", "matrix": [4, 4], "x": 6.25, "y": 4.5}, - {"label": "b", "matrix": [4, 5], "x": 7.25, "y": 4.5}, - {"label": "n", "matrix": [4, 6], "x": 8.25, "y": 4.5}, - {"label": "m", "matrix": [4, 7], "x": 9.25, "y": 4.5}, - {"label": ",", "matrix": [4, 8], "x": 10.25, "y": 0}, - {"label": ".", "matrix": [9, 8], "x": 11.25, "y": 4.5}, - {"label": "/", "matrix": [9, 7], "x": 12.25, "y": 4.5}, - {"label": "rightshift", "matrix": [9, 6], "x": 13.25, "y": 4.5, "w": 2.75}, - {"label": "up", "matrix": [8, 2], "x": 18.25, "y": 4.5}, + {"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25}, + {"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25}, + {"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25}, + {"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25}, + {"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25}, + {"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "up", "matrix": [8, 2], "x": 16.25, "y": 4.25}, - {"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.5}, - {"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.5}, - {"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.5}, - {"label": "space", "matrix": [10, 3], "x": 4, "y": 5.5, "w": 7}, - {"label": "ralt", "matrix": [10, 4], "x": 11, "y": 5.5, "w": 1.5}, - {"label": "rwin", "matrix": [10, 5], "x": 12.5, "y": 5.5, "w": 1}, - {"label": "rctrl", "matrix": [10, 8], "x": 13.5, "y": 5.5, "w": 1.5}, - {"label": "left", "matrix": [9, 3], "x": 15.25, "y": 5.5}, - {"label": "down", "matrix": [9, 2], "x": 16.25, "y": 5.5}, - {"label": "right", "matrix": [9, 1], "x": 17.25, "y": 5.5} + {"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25}, + {"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7}, + {"label": "ralt", "matrix": [10, 4], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "rwin", "matrix": [10, 5], "x": 12.5, "y": 5.25, "w": 1}, + {"label": "rctrl", "matrix": [10, 8], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "left", "matrix": [9, 3], "x": 15.25, "y": 5.25}, + {"label": "down", "matrix": [9, 2], "x": 16.25, "y": 5.25}, + {"label": "right", "matrix": [9, 1], "x": 17.25, "y": 5.25} ] } } diff --git a/keyboards/teahouse/ayleen/keymaps/default/keymap.c b/keyboards/teahouse/ayleen/keymaps/default/keymap.c index 5a99e2955d7..e31939eb7ab 100644 --- a/keyboards/teahouse/ayleen/keymaps/default/keymap.c +++ b/keyboards/teahouse/ayleen/keymaps/default/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_tkl_f13_ansi_tsangan( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_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, diff --git a/keyboards/teahouse/ayleen/keymaps/via/keymap.c b/keyboards/teahouse/ayleen/keymaps/via/keymap.c index 36f864fafcc..030a35cd8f6 100644 --- a/keyboards/teahouse/ayleen/keymaps/via/keymap.c +++ b/keyboards/teahouse/ayleen/keymaps/via/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_tkl_f13_ansi_tsangan( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_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, @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_tkl_f13_ansi_tsangan( KC_SPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_tkl_f13_ansi_tsangan( KC_SPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_tkl_f13_ansi_tsangan( KC_SPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/teahouse/ayleen/keymaps/via_blink/keymap.c b/keyboards/teahouse/ayleen/keymaps/via_blink/keymap.c index 7b72ccbf617..a86498753d2 100644 --- a/keyboards/teahouse/ayleen/keymaps/via_blink/keymap.c +++ b/keyboards/teahouse/ayleen/keymaps/via_blink/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_tkl_f13_ansi_tsangan( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_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, @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_tkl_f13_ansi_tsangan( KC_SPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_tkl_f13_ansi_tsangan( KC_SPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_tkl_f13_ansi_tsangan( KC_SPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/team0110/p1800fl/config.h b/keyboards/team0110/p1800fl/config.h index 99f4d6ce2c7..effb62971cd 100644 --- a/keyboards/team0110/p1800fl/config.h +++ b/keyboards/team0110/p1800fl/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB Lighting */ -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 8 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/team0110/p1800fl/info.json b/keyboards/team0110/p1800fl/info.json index 2509fcdd8e9..d329c6de293 100644 --- a/keyboards/team0110/p1800fl/info.json +++ b/keyboards/team0110/p1800fl/info.json @@ -18,6 +18,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C6" }, diff --git a/keyboards/technika/config.h b/keyboards/technika/config.h index fb143fc76ac..f608132b5af 100644 --- a/keyboards/technika/config.h +++ b/keyboards/technika/config.h @@ -22,19 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 16 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/technika/info.json b/keyboards/technika/info.json index 31c0ab96b43..1b99728481e 100644 --- a/keyboards/technika/info.json +++ b/keyboards/technika/info.json @@ -22,7 +22,21 @@ "pin": "B15" }, "rgblight": { - "max_brightness": 200 + "led_count": 16, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/technika/rules.mk b/keyboards/technika/rules.mk index 98fc7315de0..4d4628146af 100644 --- a/keyboards/technika/rules.mk +++ b/keyboards/technika/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/teleport/native/info.json b/keyboards/teleport/native/info.json index 9b27514e7d6..7aec5f77ed6 100644 --- a/keyboards/teleport/native/info.json +++ b/keyboards/teleport/native/info.json @@ -11,7 +11,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "features": { "bootmagic": true, diff --git a/keyboards/tender/macrowo_pad/keymaps/default/rules.mk b/keyboards/tender/macrowo_pad/keymaps/default/rules.mk index fd3d5d7e560..dd68e9d3b09 100644 --- a/keyboards/tender/macrowo_pad/keymaps/default/rules.mk +++ b/keyboards/tender/macrowo_pad/keymaps/default/rules.mk @@ -1,2 +1 @@ OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C diff --git a/keyboards/tender/macrowo_pad/keymaps/via/rules.mk b/keyboards/tender/macrowo_pad/keymaps/via/rules.mk index d3ac2585b9e..ab9d5c6ac2f 100644 --- a/keyboards/tender/macrowo_pad/keymaps/via/rules.mk +++ b/keyboards/tender/macrowo_pad/keymaps/via/rules.mk @@ -1,3 +1,2 @@ VIA_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C diff --git a/keyboards/tenki/config.h b/keyboards/tenki/config.h index 2b7b6435ec3..5f360813239 100644 --- a/keyboards/tenki/config.h +++ b/keyboards/tenki/config.h @@ -5,21 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - -/* ws2812 RGB LED */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 3 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 -#define RGBLIGHT_SLEEP diff --git a/keyboards/tenki/info.json b/keyboards/tenki/info.json index 8acbd24f8b0..10e5a88d1c0 100644 --- a/keyboards/tenki/info.json +++ b/keyboards/tenki/info.json @@ -8,6 +8,25 @@ "pid": "0x5445", "device_version": "10.0.1" }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 3, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/terrazzo/info.json b/keyboards/terrazzo/info.json index 6e099c6e461..279c0f33242 100644 --- a/keyboards/terrazzo/info.json +++ b/keyboards/terrazzo/info.json @@ -21,7 +21,7 @@ ] }, "led_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/tetris/config.h b/keyboards/tetris/config.h index 3f0378e73c9..bc2273d5478 100755 --- a/keyboards/tetris/config.h +++ b/keyboards/tetris/config.h @@ -12,19 +12,4 @@ #define NO_MUSIC_MODE #endif -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLIGHT_SLEEP -#define RGBLED_NUM 47 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 12 diff --git a/keyboards/tetris/info.json b/keyboards/tetris/info.json index c7d90ef1489..16e9369996d 100644 --- a/keyboards/tetris/info.json +++ b/keyboards/tetris/info.json @@ -8,6 +8,24 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 47, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F5" }, diff --git a/keyboards/tg4x/config.h b/keyboards/tg4x/config.h index 20a2c414b31..b5b661bef2a 100644 --- a/keyboards/tg4x/config.h +++ b/keyboards/tg4x/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 7 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/tg4x/info.json b/keyboards/tg4x/info.json index a3e464a1109..6931f3565f4 100644 --- a/keyboards/tg4x/info.json +++ b/keyboards/tg4x/info.json @@ -8,6 +8,24 @@ "pid": "0x0458", "device_version": "0.2.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/tgr/910/config.h b/keyboards/tgr/910/config.h deleted file mode 100644 index 2021d94bb46..00000000000 --- a/keyboards/tgr/910/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2020 halfenergized - -This 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 RGBLED_NUM 19 - -#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/tgr/910/info.json b/keyboards/tgr/910/info.json index ae6ffb5a245..28ea383f0d2 100644 --- a/keyboards/tgr/910/info.json +++ b/keyboards/tgr/910/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 19, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/tgr/910ce/config.h b/keyboards/tgr/910ce/config.h deleted file mode 100644 index 44fff35e61f..00000000000 --- a/keyboards/tgr/910ce/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2020 mechmerlin - -This 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 RGBLED_NUM 18 - -#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/tgr/910ce/info.json b/keyboards/tgr/910ce/info.json index c58438887ae..63bb727570d 100644 --- a/keyboards/tgr/910ce/info.json +++ b/keyboards/tgr/910ce/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/tgr/alice/config.h b/keyboards/tgr/alice/config.h deleted file mode 100644 index cf8aa330451..00000000000 --- a/keyboards/tgr/alice/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 18 -#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/tgr/alice/info.json b/keyboards/tgr/alice/info.json index 7d6a0fbc146..21932cebc63 100644 --- a/keyboards/tgr/alice/info.json +++ b/keyboards/tgr/alice/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/tgr/tris/config.h b/keyboards/tgr/tris/config.h deleted file mode 100644 index f517c91d194..00000000000 --- a/keyboards/tgr/tris/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2020 halfenergized - -This 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 RGBLED_NUM 6 -#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/tgr/tris/info.json b/keyboards/tgr/tris/info.json index f628405bcb8..f7577757d95 100644 --- a/keyboards/tgr/tris/info.json +++ b/keyboards/tgr/tris/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/the_royal/liminal/config.h b/keyboards/the_royal/liminal/config.h index 02c222b2b85..fa9a83d08ec 100644 --- a/keyboards/the_royal/liminal/config.h +++ b/keyboards/the_royal/liminal/config.h @@ -4,10 +4,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 1 // Number of LEDs - -#define RGBLIGHT_HUE_STEP 6 -#define RGBLIGHT_SAT_STEP 4 -#define RGBLIGHT_VAL_STEP 4 diff --git a/keyboards/the_royal/liminal/info.json b/keyboards/the_royal/liminal/info.json index c62699df844..046d535e4ab 100644 --- a/keyboards/the_royal/liminal/info.json +++ b/keyboards/the_royal/liminal/info.json @@ -8,6 +8,12 @@ "pid": "0x0003", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 6, + "saturation_steps": 4, + "brightness_steps": 4, + "led_count": 1 + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/the_royal/schwann/config.h b/keyboards/the_royal/schwann/config.h index 8cfda8f8e50..fa9a83d08ec 100644 --- a/keyboards/the_royal/schwann/config.h +++ b/keyboards/the_royal/schwann/config.h @@ -4,20 +4,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -#define RGBLED_NUM 8 // Number of LEDs - -#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_HUE_STEP 6 -#define RGBLIGHT_SAT_STEP 4 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/the_royal/schwann/info.json b/keyboards/the_royal/schwann/info.json index df765f747c6..5a0c4e50e58 100644 --- a/keyboards/the_royal/schwann/info.json +++ b/keyboards/the_royal/schwann/info.json @@ -8,6 +8,24 @@ "pid": "0x3521", "device_version": "0.0.1" }, + "rgblight": { + "hue_steps": 6, + "saturation_steps": 4, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/themadnoodle/ncc1701kb/v2/config.h b/keyboards/themadnoodle/ncc1701kb/v2/config.h deleted file mode 100644 index 3c3b68d7824..00000000000 --- a/keyboards/themadnoodle/ncc1701kb/v2/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2020 The Mad Noodle (Jesse Leventhal) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB BackLight */ -#define RGBLED_NUM 4 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/themadnoodle/ncc1701kb/v2/info.json b/keyboards/themadnoodle/ncc1701kb/v2/info.json index e769b23f123..3ea2515e646 100644 --- a/keyboards/themadnoodle/ncc1701kb/v2/info.json +++ b/keyboards/themadnoodle/ncc1701kb/v2/info.json @@ -18,6 +18,22 @@ {"pin_a": "D0", "pin_b": "D1"} ] }, + "rgblight": { + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/themadnoodle/noodlepad/config.h b/keyboards/themadnoodle/noodlepad/config.h deleted file mode 100644 index 3c3b68d7824..00000000000 --- a/keyboards/themadnoodle/noodlepad/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2020 The Mad Noodle (Jesse Leventhal) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* RGB BackLight */ -#define RGBLED_NUM 4 -#define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/themadnoodle/noodlepad/info.json b/keyboards/themadnoodle/noodlepad/info.json index e6050346970..5f21cbbc758 100644 --- a/keyboards/themadnoodle/noodlepad/info.json +++ b/keyboards/themadnoodle/noodlepad/info.json @@ -18,6 +18,22 @@ {"pin_a": "D0", "pin_b": "D1"} ] }, + "rgblight": { + "led_count": 4, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/thevankeyboards/bananasplit/config.h b/keyboards/thevankeyboards/bananasplit/config.h index d9dc5a84015..c2949ab3a7a 100644 --- a/keyboards/thevankeyboards/bananasplit/config.h +++ b/keyboards/thevankeyboards/bananasplit/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define TAPPING_TERM 175 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/thevankeyboards/bananasplit/info.json b/keyboards/thevankeyboards/bananasplit/info.json index 37f5dec719b..36fcc06af22 100644 --- a/keyboards/thevankeyboards/bananasplit/info.json +++ b/keyboards/thevankeyboards/bananasplit/info.json @@ -16,6 +16,9 @@ "backlight": { "pin": "B7" }, + "tapping": { + "term": 175 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["60_ansi", "60_iso"], diff --git a/keyboards/thevankeyboards/bananasplit/keymaps/coloneljesus/keymap.c b/keyboards/thevankeyboards/bananasplit/keymaps/coloneljesus/keymap.c index abdb791c6f8..2d65ae102ba 100644 --- a/keyboards/thevankeyboards/bananasplit/keymaps/coloneljesus/keymap.c +++ b/keyboards/thevankeyboards/bananasplit/keymaps/coloneljesus/keymap.c @@ -62,14 +62,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -86,7 +78,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/thevankeyboards/bananasplit/keymaps/jockyxu1122_iso/keymap.c b/keyboards/thevankeyboards/bananasplit/keymaps/jockyxu1122_iso/keymap.c index 1472f88212d..5146c8f4f33 100644 --- a/keyboards/thevankeyboards/bananasplit/keymaps/jockyxu1122_iso/keymap.c +++ b/keyboards/thevankeyboards/bananasplit/keymaps/jockyxu1122_iso/keymap.c @@ -91,12 +91,13 @@ Capslock's led cannot be controlled separately on bananasplit and you can only t leds at once. If you only install led for capslock, it will look like capslock has toggable backlight. */ -void led_set_user(uint8_t usb_led) { - if (usb_led && (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { DDRB |= (1 << 7); PORTB |= (1 << 7); } else { DDRB &= ~(1 << 7); PORTB &= ~(1 << 7); } + return false; } diff --git a/keyboards/thevankeyboards/jetvan/config.h b/keyboards/thevankeyboards/jetvan/config.h index e8aca5e8620..950d17c8137 100644 --- a/keyboards/thevankeyboards/jetvan/config.h +++ b/keyboards/thevankeyboards/jetvan/config.h @@ -22,20 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define RGB Underglow */ -#define RGBLED_NUM 10 -#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_LAYER_BLINK*/ - /* Define less important options */ /* diff --git a/keyboards/thevankeyboards/jetvan/info.json b/keyboards/thevankeyboards/jetvan/info.json index 80281fef1f8..fc04a4c013f 100644 --- a/keyboards/thevankeyboards/jetvan/info.json +++ b/keyboards/thevankeyboards/jetvan/info.json @@ -8,6 +8,21 @@ "pid": "0x8858", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/thevankeyboards/minivan/config.h b/keyboards/thevankeyboards/minivan/config.h index 44b61b7458b..5070f051560 100644 --- a/keyboards/thevankeyboards/minivan/config.h +++ b/keyboards/thevankeyboards/minivan/config.h @@ -21,7 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* RGB Setup */ -#define RGBLED_NUM 3 -#define RGBLIGHT_SLEEP diff --git a/keyboards/thevankeyboards/minivan/info.json b/keyboards/thevankeyboards/minivan/info.json index c20ad5427e5..cff65e6fed8 100644 --- a/keyboards/thevankeyboards/minivan/info.json +++ b/keyboards/thevankeyboards/minivan/info.json @@ -8,6 +8,10 @@ "pid": "0x8844", "device_version": "0.0.2" }, + "rgblight": { + "led_count": 3, + "sleep": true + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c index a1d82e99230..145da6b2a5a 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c @@ -40,7 +40,7 @@ along with this program. If not, see . * accented characters are defined in unicode_weurope.h * * Unicode macros facilitate recomputing for re-computing the Dvorak with changed letters - * ('descramble'), and exist because space ran out for * XP(…). + * ('descramble'), and exist because space ran out for * UP(…). * * The led color code might be a bit hairy, due to speed/count middle led overlapping layer color. * diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c index f4416ca797a..ddd37c89e35 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c @@ -2022,7 +2022,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { # endif // REMOVE_DRA - /* _BON layer definitions. Due to running out of X(…), XP(…) space.*/ + /* _BON layer definitions. */ // ------------------------- row 4 # ifndef REMOVE_BON // Removes this layer entirely, if set. diff --git a/keyboards/thevankeyboards/minivan/keymaps/vial/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/vial/keymap.c index e2e53dc3060..0297edeb2a5 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/vial/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/vial/keymap.c @@ -42,11 +42,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS) }; -void process_indicator_update(layer_state_t state, uint8_t usb_led) { +void process_indicator_update(layer_state_t state, led_t led_state) { for (int i = 0; i < 3; i++) { setrgb(0, 0, 0, (LED_TYPE *)&led[i]); } - if (usb_led & (1<. - */ - -#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 RGBLED_NUM 14 -#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/tkc/godspeed75/info.json b/keyboards/tkc/godspeed75/info.json index 4e45459bb96..4776a9bab86 100644 --- a/keyboards/tkc/godspeed75/info.json +++ b/keyboards/tkc/godspeed75/info.json @@ -8,6 +8,21 @@ "pid": "0x0006", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A13" }, diff --git a/keyboards/tkc/godspeed75/rules.mk b/keyboards/tkc/godspeed75/rules.mk index 0f15f10b208..0098dc473ac 100644 --- a/keyboards/tkc/godspeed75/rules.mk +++ b/keyboards/tkc/godspeed75/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/tkc/m0lly/config.h b/keyboards/tkc/m0lly/config.h index bad0f51bde3..b9449c4714b 100644 --- a/keyboards/tkc/m0lly/config.h +++ b/keyboards/tkc/m0lly/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 30 -# define RGBLIGHT_HUE_STEP 5 -# define RGBLIGHT_SAT_STEP 10 -# define RGBLIGHT_VAL_STEP 10 -//# 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 -# define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/tkc/m0lly/info.json b/keyboards/tkc/m0lly/info.json index 37a8c19bf80..462bc0f27b5 100644 --- a/keyboards/tkc/m0lly/info.json +++ b/keyboards/tkc/m0lly/info.json @@ -27,6 +27,24 @@ "num_lock": "D2", "scroll_lock": "D4" }, + "rgblight": { + "hue_steps": 5, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 30, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D7" }, diff --git a/keyboards/tkc/m0lly/rules.mk b/keyboards/tkc/m0lly/rules.mk index f07afe6ed40..6d915f6d417 100644 --- a/keyboards/tkc/m0lly/rules.mk +++ b/keyboards/tkc/m0lly/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/tkc/osav2/config.h b/keyboards/tkc/osav2/config.h deleted file mode 100644 index f2a7de800ba..00000000000 --- a/keyboards/tkc/osav2/config.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright 2019 jrfhoutx - -This 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 RGBLED_NUM 9 -// #define RGBLIGHT_HUE_STEP 10 -// #define RGBLIGHT_SAT_STEP 17 -// #define RGBLIGHT_VAL_STEP 17 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - -/* - * 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/tkc/osav2/info.json b/keyboards/tkc/osav2/info.json index 78cad2daf2e..cc878e14f48 100644 --- a/keyboards/tkc/osav2/info.json +++ b/keyboards/tkc/osav2/info.json @@ -8,6 +8,22 @@ "pid": "0x0005", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 9, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, @@ -17,6 +33,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D6", "breathing": true }, diff --git a/keyboards/tkc/portico/info.json b/keyboards/tkc/portico/info.json index f4f2e15e840..6eb15efb735 100644 --- a/keyboards/tkc/portico/info.json +++ b/keyboards/tkc/portico/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["D3", "D5", "D4", "D6", "D7", "B4", "B5", "F6", "F5", "F4", "F1", "B0", "B1", "B2", "B3"], diff --git a/keyboards/tkc/portico68v2/info.json b/keyboards/tkc/portico68v2/info.json index b37f02ecc97..7a11cb61720 100644 --- a/keyboards/tkc/portico68v2/info.json +++ b/keyboards/tkc/portico68v2/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["D3", "D5", "D4", "D6", "D7", "B4", "B5", "F6", "F5", "F4", "F1", "B0", "B1", "B2", "B3"], diff --git a/keyboards/tkc/portico75/info.json b/keyboards/tkc/portico75/info.json index 4380caba4f3..5a900369725 100644 --- a/keyboards/tkc/portico75/info.json +++ b/keyboards/tkc/portico75/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3741" + "driver": "is31fl3741" }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "B3", "B7"], @@ -113,97 +113,6 @@ {"matrix": [5, 12], "x": 14.25, "y": 5.5}, {"matrix": [5, 13], "x": 15.25, "y": 5.5} ] - }, - "LAYOUT_75_via": { - "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, 0], "x": 15, "y": 0}, - {"matrix": [1, 1], "x": 16, "y": 0}, - {"matrix": [1, 2], "x": 17, "y": 0}, - {"matrix": [1, 3], "x": 18, "y": 0}, - {"matrix": [1, 4], "x": 19, "y": 0}, - {"matrix": [1, 5], "x": 20, "y": 0}, - {"matrix": [1, 6], "x": 21, "y": 0}, - {"matrix": [1, 7], "x": 22, "y": 0}, - {"matrix": [1, 8], "x": 23, "y": 0}, - {"matrix": [1, 9], "x": 24, "y": 0}, - {"matrix": [1, 10], "x": 25, "y": 0}, - {"matrix": [1, 11], "x": 26, "y": 0}, - {"matrix": [1, 12], "x": 27, "y": 0}, - {"matrix": [1, 13], "x": 28, "y": 0}, - {"matrix": [1, 14], "x": 29, "y": 0}, - - {"matrix": [2, 0], "x": 30, "y": 0}, - {"matrix": [2, 1], "x": 31, "y": 0}, - {"matrix": [2, 2], "x": 32, "y": 0}, - {"matrix": [2, 3], "x": 33, "y": 0}, - {"matrix": [2, 4], "x": 34, "y": 0}, - {"matrix": [2, 5], "x": 35, "y": 0}, - {"matrix": [2, 6], "x": 36, "y": 0}, - {"matrix": [2, 7], "x": 37, "y": 0}, - {"matrix": [2, 8], "x": 38, "y": 0}, - {"matrix": [2, 9], "x": 39, "y": 0}, - {"matrix": [2, 10], "x": 40, "y": 0}, - {"matrix": [2, 11], "x": 41, "y": 0}, - {"matrix": [2, 12], "x": 42, "y": 0}, - {"matrix": [2, 13], "x": 43, "y": 0}, - {"matrix": [2, 14], "x": 44, "y": 0}, - - {"matrix": [3, 0], "x": 45, "y": 0}, - {"matrix": [3, 1], "x": 46, "y": 0}, - {"matrix": [3, 2], "x": 47, "y": 0}, - {"matrix": [3, 3], "x": 48, "y": 0}, - {"matrix": [3, 4], "x": 49, "y": 0}, - {"matrix": [3, 5], "x": 50, "y": 0}, - {"matrix": [3, 6], "x": 51, "y": 0}, - {"matrix": [3, 7], "x": 52, "y": 0}, - {"matrix": [3, 8], "x": 53, "y": 0}, - {"matrix": [3, 9], "x": 54, "y": 0}, - {"matrix": [3, 10], "x": 55, "y": 0}, - {"matrix": [3, 11], "x": 56, "y": 0}, - {"matrix": [3, 12], "x": 57, "y": 0}, - {"matrix": [3, 14], "x": 58, "y": 0}, - - {"matrix": [4, 0], "x": 59, "y": 0}, - {"matrix": [4, 1], "x": 60, "y": 0}, - {"matrix": [4, 2], "x": 61, "y": 0}, - {"matrix": [4, 3], "x": 62, "y": 0}, - {"matrix": [4, 4], "x": 63, "y": 0}, - {"matrix": [4, 5], "x": 64, "y": 0}, - {"matrix": [4, 6], "x": 65, "y": 0}, - {"matrix": [4, 7], "x": 66, "y": 0}, - {"matrix": [4, 8], "x": 67, "y": 0}, - {"matrix": [4, 9], "x": 68, "y": 0}, - {"matrix": [4, 10], "x": 69, "y": 0}, - {"matrix": [4, 11], "x": 70, "y": 0}, - {"matrix": [4, 12], "x": 71, "y": 0}, - {"matrix": [4, 14], "x": 72, "y": 0}, - - {"matrix": [5, 0], "x": 73, "y": 0}, - {"matrix": [5, 1], "x": 74, "y": 0}, - {"matrix": [5, 2], "x": 75, "y": 0}, - {"matrix": [5, 5], "x": 76, "y": 0}, - {"matrix": [5, 9], "x": 77, "y": 0}, - {"matrix": [5, 10], "x": 78, "y": 0}, - {"matrix": [5, 11], "x": 79, "y": 0}, - {"matrix": [5, 12], "x": 80, "y": 0}, - {"matrix": [5, 13], "x": 81, "y": 0} - ] } } } diff --git a/keyboards/tkc/portico75/keymaps/via/keymap.c b/keyboards/tkc/portico75/keymaps/via/keymap.c index befb3b88299..03e96a27066 100644 --- a/keyboards/tkc/portico75/keymaps/via/keymap.c +++ b/keyboards/tkc/portico75/keymaps/via/keymap.c @@ -27,47 +27,47 @@ along with this program. If not, see . // BR_INC, BR_DEC, // backlight brightness increase/decrease const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_75_via( + [0] = LAYOUT_75_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_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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_VOLD, - 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_VOLU, + 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_RGHT ), #ifdef RGB_BACKLIGHT_PORTICO75 - [1] = LAYOUT_75_via( + [1] = LAYOUT_75_ansi( _______, EF_INC, EF_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, H2_INC, H2_DEC, S2_INC, S2_DEC, BR_INC, BR_DEC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), #else - [1] = LAYOUT_75_via( + [1] = LAYOUT_75_ansi( _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), #endif - [2] = LAYOUT_75_via( + [2] = LAYOUT_75_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_75_via( + [3] = LAYOUT_75_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/tkc/tkc1800/config.h b/keyboards/tkc/tkc1800/config.h index dd6631f5456..b9449c4714b 100644 --- a/keyboards/tkc/tkc1800/config.h +++ b/keyboards/tkc/tkc1800/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -/* Underlight configuration - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 30 // Number of LEDs -#define RGBLIGHT_HUE_STEP 5 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/tkc/tkc1800/info.json b/keyboards/tkc/tkc1800/info.json index 5cf8f83c808..b99d4ca60f8 100644 --- a/keyboards/tkc/tkc1800/info.json +++ b/keyboards/tkc/tkc1800/info.json @@ -27,6 +27,24 @@ "num_lock": "D2", "scroll_lock": "D4" }, + "rgblight": { + "hue_steps": 5, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 30, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D7" }, diff --git a/keyboards/tkc/tkc1800/rules.mk b/keyboards/tkc/tkc1800/rules.mk index f9f3b206d04..fc74989daff 100644 --- a/keyboards/tkc/tkc1800/rules.mk +++ b/keyboards/tkc/tkc1800/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/tkc/tkl_ab87/config.h b/keyboards/tkc/tkl_ab87/config.h index 95ce321679b..5a3bda67c26 100644 --- a/keyboards/tkc/tkl_ab87/config.h +++ b/keyboards/tkc/tkl_ab87/config.h @@ -20,22 +20,6 @@ along with this program. If not, see . #define DYNAMIC_KEYMAP_LAYER_COUNT 2 //Reduced layer count due to memory space considerations - #define RGBLED_NUM 22 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/tkc/tkl_ab87/info.json b/keyboards/tkc/tkl_ab87/info.json index c0a178595b1..0d464a2db9d 100644 --- a/keyboards/tkc/tkl_ab87/info.json +++ b/keyboards/tkc/tkl_ab87/info.json @@ -25,7 +25,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 22, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/tkw/grandiceps/config.h b/keyboards/tkw/grandiceps/config.h index 4837c2fda6c..a963fbfb510 100644 --- a/keyboards/tkw/grandiceps/config.h +++ b/keyboards/tkw/grandiceps/config.h @@ -17,22 +17,6 @@ #define SELECT_SOFT_SERIAL_SPEED 1 -#define MATRIX_IO_DELAY 5 -#define TAP_CODE_DELAY 10 - -#define RGBLED_NUM 16 -#define RGBLED_SPLIT { 8,8 } -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #define WS2812_PWM_DRIVER PWMD3 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_PAL_MODE 2 diff --git a/keyboards/tkw/grandiceps/info.json b/keyboards/tkw/grandiceps/info.json index 1b16db1bf8c..de4fa5cd491 100644 --- a/keyboards/tkw/grandiceps/info.json +++ b/keyboards/tkw/grandiceps/info.json @@ -11,11 +11,26 @@ "driver": "pwm" }, "rgblight": { - "max_brightness": 120 + "led_count": 16, + "max_brightness": 120, + "split_count": [8, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B0", "A7", "A3", "A5", "A4", "A2"], - "rows": ["B12", "A6", "B13", "B9", "B8"] + "rows": ["B12", "A6", "B13", "B9", "B8"], + "io_delay": 5 }, "diode_direction": "COL2ROW", "encoder": { @@ -32,6 +47,9 @@ } } }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "STM32F411", "bootloader": "stm32-dfu", "board": "BLACKPILL_STM32_F411", diff --git a/keyboards/tkw/grandiceps/rules.mk b/keyboards/tkw/grandiceps/rules.mk index 2565f116a19..86483ba9207 100644 --- a/keyboards/tkw/grandiceps/rules.mk +++ b/keyboards/tkw/grandiceps/rules.mk @@ -16,7 +16,6 @@ KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+m SPLIT_KEYBOARD = yes SERIAL_DRIVER = usart OLED_ENABLE = yes -OLED_DRIVER = SSD1306 OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE DEFAULT_FOLDER = tkw/grandiceps/rev1 diff --git a/keyboards/tkw/stoutgat/v1/config.h b/keyboards/tkw/stoutgat/v1/config.h deleted file mode 100644 index b168318aa02..00000000000 --- a/keyboards/tkw/stoutgat/v1/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/*Copyright 2020 Thys de Wet - -This 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 TAP_CODE_DELAY 10 diff --git a/keyboards/tkw/stoutgat/v1/info.json b/keyboards/tkw/stoutgat/v1/info.json index 334ace4d3ac..9d7a60a4b97 100644 --- a/keyboards/tkw/stoutgat/v1/info.json +++ b/keyboards/tkw/stoutgat/v1/info.json @@ -19,6 +19,9 @@ {"pin_a": "B0", "pin_b": "B1"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "processor": "atmega32a", "bootloader": "usbasploader", "community_layouts": ["65_iso", "65_ansi"], diff --git a/keyboards/tkw/stoutgat/v2/config.h b/keyboards/tkw/stoutgat/v2/config.h index 3e5d5a452a3..bf68edcfae9 100644 --- a/keyboards/tkw/stoutgat/v2/config.h +++ b/keyboards/tkw/stoutgat/v2/config.h @@ -15,21 +15,6 @@ */ #pragma once -#define MATRIX_IO_DELAY 5 -#define TAP_CODE_DELAY 10 - -#define RGBLED_NUM 13 -#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 WS2812_PWM_DRIVER PWMD3 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_PAL_MODE 2 diff --git a/keyboards/tkw/stoutgat/v2/info.json b/keyboards/tkw/stoutgat/v2/info.json index e0cc720365c..b1232f6816e 100644 --- a/keyboards/tkw/stoutgat/v2/info.json +++ b/keyboards/tkw/stoutgat/v2/info.json @@ -13,11 +13,25 @@ "driver": "pwm" }, "rgblight": { - "max_brightness": 120 + "led_count": 13, + "max_brightness": 120, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B0", "A7", "A6", "A5", "A4", "A3", "A1", "A0", "C15", "C14", "C13", "A15", "B3", "B4", "B5"], - "rows": ["B6", "A2", "B7", "B9", "B8"] + "rows": ["B6", "A2", "B7", "B9", "B8"], + "io_delay": 5 }, "diode_direction": "COL2ROW", "encoder": { @@ -26,6 +40,9 @@ {"pin_a": "B12", "pin_b": "B13"} ] }, + "qmk": { + "tap_keycode_delay": 10 + }, "community_layouts": ["65_iso", "65_ansi"], "layouts": { "LAYOUT_65_ansi": { diff --git a/keyboards/tmo50/config.h b/keyboards/tmo50/config.h index 29151c2a22b..8964ad6d2f4 100644 --- a/keyboards/tmo50/config.h +++ b/keyboards/tmo50/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/tmo50/info.json b/keyboards/tmo50/info.json index f4cb7b1aa8e..ff3f95b223b 100644 --- a/keyboards/tmo50/info.json +++ b/keyboards/tmo50/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/toffee_studio/blueberry/config.h b/keyboards/toffee_studio/blueberry/config.h index 07a4bae2be0..f15e82696a2 100644 --- a/keyboards/toffee_studio/blueberry/config.h +++ b/keyboards/toffee_studio/blueberry/config.h @@ -16,25 +16,6 @@ #pragma once -# define RGBLED_NUM 22 - -/* RGB LED logical order map */ -/* Top->Bottom, Right->Left */ -#define RGBLIGHT_LED_MAP { \ - 19, 18, 17, 16, 15, 14, 13, 12, 11, \ - 20, 10, \ - 21, 9, \ - 0, 1, 2, 3, 4, 5, 6, 7, 8 } - -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_ALTERNATING - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/toffee_studio/blueberry/info.json b/keyboards/toffee_studio/blueberry/info.json index 6acd8f4a589..3f94299b783 100644 --- a/keyboards/toffee_studio/blueberry/info.json +++ b/keyboards/toffee_studio/blueberry/info.json @@ -12,7 +12,19 @@ "pin": "D0" }, "rgblight": { - "max_brightness": 192 + "led_count": 22, + "max_brightness": 192, + "led_map": [19, 18, 17, 16, 15, 14, 13, 12, 11, 20, 10, 21, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true + } }, "matrix_pins": { "cols": ["B6", "D4", "D6", "D7", "B4", "B5", "C6", "C7"], diff --git a/keyboards/tokyokeyboard/alix40/config.h b/keyboards/tokyokeyboard/alix40/config.h index fad2d49c938..1ca9b6c46df 100644 --- a/keyboards/tokyokeyboard/alix40/config.h +++ b/keyboards/tokyokeyboard/alix40/config.h @@ -20,22 +20,5 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - /* Bluetooth */ #define BATTERY_LEVEL_PIN B6 - -#define VIA_HAS_BROKEN_KEYCODES diff --git a/keyboards/tokyokeyboard/alix40/info.json b/keyboards/tokyokeyboard/alix40/info.json index d71fb56f0bc..7b2f198e596 100644 --- a/keyboards/tokyokeyboard/alix40/info.json +++ b/keyboards/tokyokeyboard/alix40/info.json @@ -13,11 +13,32 @@ "rows": ["D7", "C6", "C7", "B5"] }, "diode_direction": "ROW2COL", + "bluetooth": { + "driver": "bluefruit_le" + }, "backlight": { "pin": "B7", "levels": 31, "breathing": true }, + "rgblight": { + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/tokyokeyboard/alix40/rules.mk b/keyboards/tokyokeyboard/alix40/rules.mk index 2c7a2758470..5d6d78ae10a 100644 --- a/keyboards/tokyokeyboard/alix40/rules.mk +++ b/keyboards/tokyokeyboard/alix40/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/tokyokeyboard/tokyo60/config.h b/keyboards/tokyokeyboard/tokyo60/config.h index dd58e34f08f..5f360813239 100644 --- a/keyboards/tokyokeyboard/tokyo60/config.h +++ b/keyboards/tokyokeyboard/tokyo60/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_VAL_STEP 12 diff --git a/keyboards/tokyokeyboard/tokyo60/info.json b/keyboards/tokyokeyboard/tokyo60/info.json index aae81a4a6b6..e0f756121ca 100644 --- a/keyboards/tokyokeyboard/tokyo60/info.json +++ b/keyboards/tokyokeyboard/tokyo60/info.json @@ -18,6 +18,24 @@ "pin": "B7", "levels": 6 }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 12, + "brightness_steps": 12, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/tominabox1/bigboy/config.h b/keyboards/tominabox1/bigboy/config.h deleted file mode 100755 index 77d49adbec4..00000000000 --- a/keyboards/tominabox1/bigboy/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2022 tominabox1 - * - * This 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 RGBLED_NUM 5 - - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - - #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/tominabox1/bigboy/info.json b/keyboards/tominabox1/bigboy/info.json index 87f8473bb8a..8d8e26dc551 100644 --- a/keyboards/tominabox1/bigboy/info.json +++ b/keyboards/tominabox1/bigboy/info.json @@ -8,6 +8,22 @@ "pid": "0x6262", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5" }, diff --git a/keyboards/tominabox1/le_chiffre/config.h b/keyboards/tominabox1/le_chiffre/config.h index fb3860b0eb7..9b01cb3da47 100644 --- a/keyboards/tominabox1/le_chiffre/config.h +++ b/keyboards/tominabox1/le_chiffre/config.h @@ -23,29 +23,5 @@ /* * WS2812 Underglow Matrix options */ - -#define RGBLED_NUM 11 - -#define RGB_MATRIX_LED_COUNT 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 - -#ifdef RGB_MATRIX_ENABLE -#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_MATRIX_LED_COUNT 11 #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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 -#endif diff --git a/keyboards/tominabox1/le_chiffre/he/he.c b/keyboards/tominabox1/le_chiffre/he/he.c deleted file mode 100644 index 6ee82149536..00000000000 --- a/keyboards/tominabox1/le_chiffre/he/he.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2022 tominabox1 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 3, 4, NO_LED, 5, 6 }, - { NO_LED, NO_LED, 10, NO_LED, NO_LED }, - { NO_LED, NO_LED, 9, NO_LED, NO_LED }, - { 2, 1, 0, 8, 7 } -}, { - - // LED Index to Physical Position - { 128, 64 }, { 77, 64 }, { 0, 48 }, { 0, 0 }, { 115, 0 }, { 166, 0 }, { 255, 0 }, { 255, 48 }, { 178, 64 }, { 128, 40 }, { 128, 30 } -}, { - - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/tominabox1/le_chiffre/he/info.json b/keyboards/tominabox1/le_chiffre/he/info.json index bab0d5242c5..e7eb527602a 100644 --- a/keyboards/tominabox1/le_chiffre/he/info.json +++ b/keyboards/tominabox1/le_chiffre/he/info.json @@ -1,13 +1,7 @@ { - "usb": { - "device_version": "0.0.3" - }, - "ws2812": { - "pin": "F0" - }, - "matrix_pins": { - "cols": ["F4", "F5", "B0", "B2", "B1", "B4", "D7", "C7", "D2", "F7"], - "rows": ["B3", "D4", "F1", "C6"] + "bootloader": "atmel-dfu", + "build": { + "lto": true }, "diode_direction": "COL2ROW", "encoder": { @@ -15,11 +9,17 @@ {"pin_a": "D5", "pin_b": "D3"} ] }, - "rgb_matrix": { - "driver": "WS2812" + "matrix_pins": { + "cols": ["F4", "F5", "B0", "B2", "B1", "B4", "D7", "C7", "D2", "F7"], + "rows": ["B3", "D4", "F1", "C6"] }, "processor": "atmega32u4", - "bootloader": "atmel-dfu", + "usb": { + "device_version": "0.0.3" + }, + "ws2812": { + "pin": "F0" + }, "layouts": { "LAYOUT": { "layout": [ @@ -34,34 +34,28 @@ {"matrix": [0, 7], "x": 8, "y": 0}, {"matrix": [0, 8], "x": 9, "y": 0}, {"matrix": [0, 9], "x": 10, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1}, {"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 6, "y": 1}, {"matrix": [1, 6], "x": 7, "y": 1}, {"matrix": [1, 7], "x": 8, "y": 1}, {"matrix": [1, 8], "x": 9, "y": 1}, {"matrix": [1, 9], "x": 10, "y": 1}, - {"matrix": [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": 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": [3, 2], "x": 1.75, "y": 3, "w": 1.25}, {"matrix": [3, 4], "x": 3, "y": 3, "w": 2}, - {"matrix": [3, 5], "x": 6, "y": 3, "w": 2}, {"matrix": [3, 7], "x": 8, "y": 3, "w": 1.25} ] diff --git a/keyboards/tominabox1/le_chiffre/he/rules.mk b/keyboards/tominabox1/le_chiffre/he/rules.mk index 53d9b0d47b5..6e7633bfe01 100644 --- a/keyboards/tominabox1/le_chiffre/he/rules.mk +++ b/keyboards/tominabox1/le_chiffre/he/rules.mk @@ -1,15 +1 @@ -# 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 -ENCODER_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/tominabox1/le_chiffre/info.json b/keyboards/tominabox1/le_chiffre/info.json index 25f19145a92..8ebc0778e65 100644 --- a/keyboards/tominabox1/le_chiffre/info.json +++ b/keyboards/tominabox1/le_chiffre/info.json @@ -1,10 +1,82 @@ { - "keyboard_name": "Le Chiffre", - "manufacturer": "tominabox1", - "url": "", - "maintainer": "tominabox1", - "usb": { - "vid": "0x7431", - "pid": "0xD645" - } + "keyboard_name": "Le Chiffre", + "manufacturer": "tominabox1", + "url": "", + "maintainer": "tominabox1", + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgb_matrix": true + }, + "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 + }, + "saturation_steps": 8, + "brightness_steps": 8, + "max_brightness": 150, + "led_count": 11 + }, + "rgb_matrix": { + "driver": "ws2812", + "animations": { + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_pinwheel": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true + }, + "layout": [ + {"x": 128, "y": 64, "flags": 2}, + {"x": 77, "y": 64, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 115, "y": 0, "flags": 2}, + {"x": 166, "y": 0, "flags": 2}, + {"x": 255, "y": 0, "flags": 2}, + {"x": 255, "y": 48, "flags": 2}, + {"x": 178, "y": 64, "flags": 2}, + {"x": 128, "y": 40, "flags": 8}, + {"x": 128, "y": 30, "flags": 8} + ], + "max_brightness": 150, + "sat_steps": 8, + "speed_steps": 10, + "val_steps": 8 + }, + "usb": { + "vid": "0x7431", + "pid": "0xD645" + } } diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c index e9205d94b3d..7008550f2ba 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c +++ b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c @@ -15,18 +15,10 @@ */ #include QMK_KEYBOARD_H -enum layers{ - _BASE, - _NUM_SYM, - _NAV -}; - -enum combo_events { - COMBO_BSPC, - COMBO_NUMBAK, - COMBO_TAB, - COMBO_ESC, - COMBO_DEL, +enum layers { + _BASE, + _NUM_SYM, + _NAV }; #define KC_NUM_SPC LT(_NUM_SYM, KC_SPC) @@ -39,6 +31,7 @@ enum combo_events { #define KC_AL RALT_T(KC_L) #define KC_GSCLN RGUI_T(KC_SCLN) +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P, @@ -59,54 +52,58 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_MINS, KC_INT1, KC_COMM, KC_DOT, KC_BSLS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS - ), + ) }; +// clang-format on -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; -} +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, + [_NUM_SYM] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U) }, + [_NAV] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) } +}; +#endif #ifdef COMBO_ENABLE -const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; +enum combo_events { + COMBO_BSPC, + COMBO_NUMBAK, + COMBO_TAB, + COMBO_ESC, + COMBO_DEL, +}; + +const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END}; -const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; +const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; combo_t key_combos[] = { - [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), - [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), - [COMBO_TAB] = COMBO(combo_tab,KC_TAB), - [COMBO_ESC] = COMBO(combo_esc,KC_ESC), - [COMBO_DEL] = COMBO(combo_del,KC_DEL), - + [COMBO_BSPC] = COMBO(combo_bspc, KC_BSPC), + [COMBO_NUMBAK] = COMBO(combo_numbak, KC_BSPC), + [COMBO_TAB] = COMBO(combo_tab, KC_TAB), + [COMBO_ESC] = COMBO(combo_esc, KC_ESC), + [COMBO_DEL] = COMBO(combo_del, KC_DEL) }; #endif -#ifdef OLED_ENABLE //Special thanks to Sickbabies for this great OLED widget! +#ifdef OLED_ENABLE // Special thanks to Sickbabies for this great OLED widget! oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_90; // rotates for proper orientation + return OLED_ROTATION_90; // rotates for proper orientation } void render_lechiffre_logo(void) { static const char PROGMEM lechiffre_logo[] = { - // 'lechiffre_logo', 32x20px - 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, -0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, -0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, -0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, -0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, -0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00 -}; - - oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); + // 'lechiffre_logo', 32x20px + 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, + 0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, + 0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, + 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00}; + + oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); } static void render_layer_status(void) { @@ -161,7 +158,7 @@ void update_log(void) { } } -//Text only renders +// Text only renders void render_keylogger_status(void) { oled_write_P(PSTR("-----"), false); oled_write(keylog_str, false); @@ -170,15 +167,15 @@ void render_keylogger_status(void) { void render_keylock_status(led_t led_state) { oled_write_P(PSTR("-----"), false); oled_write_P(PSTR("C"), led_state.caps_lock); - oled_write_P(PSTR(" "), false); + oled_write_P(PSTR(" "), false); oled_write_P(PSTR("N"), led_state.num_lock); - oled_write_P(PSTR(" "), false); + oled_write_P(PSTR(" "), false); oled_write_P(PSTR("S"), led_state.scroll_lock); - //oled_write_ln_P(PSTR(" "), false); + // oled_write_ln_P(PSTR(" "), false); } void render_mod_status(uint8_t modifiers) { - oled_write_P(PSTR("-----"), false); + oled_write_P(PSTR("-----"), false); oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT)); oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL)); @@ -187,19 +184,19 @@ void render_mod_status(uint8_t modifiers) { bool oled_task_user(void) { render_lechiffre_logo(); - oled_set_cursor(0,3); - render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) - render_mod_status(get_mods()|get_oneshot_mods()); - render_keylock_status(host_keyboard_led_state()); - render_keylogger_status(); + oled_set_cursor(0, 3); + render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + render_mod_status(get_mods() | get_oneshot_mods()); + render_keylock_status(host_keyboard_led_state()); + render_keylogger_status(); return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { - add_keylog(keycode); + add_keylog(keycode); } return true; - } +} #endif diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk b/keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk index ab1e438182a..cbd8b4aa81f 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk +++ b/keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk @@ -1 +1,2 @@ COMBO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c index c626cba1cc0..2592ee5dc10 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c +++ b/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c @@ -15,57 +15,39 @@ */ #include QMK_KEYBOARD_H +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, KC_ENT, KC_SPC, KC_RALT - ), - - [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 - ), - - [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 - ), + ) }; +// clang-format on -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - } - return true; -} +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MNXT, KC_MPRV) } +}; +#endif -#ifdef OLED_ENABLE //Special thanks to Sickbabies for this great OLED widget! +#ifdef OLED_ENABLE // Special thanks to Sickbabies for this great OLED widget! oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_90; // rotates for proper orientation + return OLED_ROTATION_90; // rotates for proper orientation } void render_lechiffre_logo(void) { static const char PROGMEM lechiffre_logo[] = { - // 'lechiffre_logo', 32x20px - 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, -0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, -0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, -0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, -0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, -0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00 -}; - - oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); + // 'lechiffre_logo', 32x20px + 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, + 0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, + 0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, + 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00}; + + oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); } // static void render_layer_status(void) { @@ -120,7 +102,7 @@ void update_log(void) { } } -//Text only renders +// Text only renders void render_keylogger_status(void) { oled_write_P(PSTR("-----"), false); oled_write(keylog_str, false); @@ -129,36 +111,36 @@ void render_keylogger_status(void) { void render_keylock_status(led_t led_state) { oled_write_P(PSTR("-----"), false); oled_write_P(PSTR("C"), led_state.caps_lock); - oled_write_P(PSTR(" "), false); + oled_write_P(PSTR(" "), false); oled_write_P(PSTR("N"), led_state.num_lock); - oled_write_P(PSTR(" "), false); + oled_write_P(PSTR(" "), false); oled_write_P(PSTR("S"), led_state.scroll_lock); - //oled_write_ln_P(PSTR(" "), false); + // oled_write_ln_P(PSTR(" "), false); } void render_mod_status(uint8_t modifiers) { - oled_write_P(PSTR("-----"), false); + oled_write_P(PSTR("-----"), false); oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT)); oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL)); oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); } -void oled_task_keymap(void) { +bool oled_task_user(void) { render_lechiffre_logo(); - oled_set_cursor(0,3); - // render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) - render_mod_status(get_mods()|get_oneshot_mods()); - render_keylock_status(host_keyboard_led_state()); - render_keylogger_status(); + oled_set_cursor(0, 3); + // render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + render_mod_status(get_mods() | get_oneshot_mods()); + render_keylock_status(host_keyboard_led_state()); + render_keylogger_status(); return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { - add_keylog(keycode); + add_keylog(keycode); } return true; - } +} #endif diff --git a/keyboards/tominabox1/le_chiffre/keymaps/via/rules.mk b/keyboards/tominabox1/le_chiffre/keymaps/via/rules.mk index 1e5b99807cb..f1adcab005e 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/via/rules.mk +++ b/keyboards/tominabox1/le_chiffre/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/tominabox1/le_chiffre/readme.md b/keyboards/tominabox1/le_chiffre/readme.md index 9ac3d6c81ca..23f1a967686 100644 --- a/keyboards/tominabox1/le_chiffre/readme.md +++ b/keyboards/tominabox1/le_chiffre/readme.md @@ -1,16 +1,22 @@ # Le Chiffre -![Le Chiffre](https://i.imgur.com/X1WsUmdl.png) +![Le Chiffre](https://i.imgur.com/X1WsUmdh.png) -Le Chiffre (ironically, "the number" in French) is a 30% keyboard designed by tominabox1. The purpose of the board is to provide a platform for MX and Choc ergo in one package for when ones wrists need a break. The board supports an RGB LED strip with DI on port F0. The board is also fitted with support for run-of-the-mill .91" OLED and EC11 rotary encoder. +Le Chiffre (ironically, "the number" in French) is a 30% keyboard designed by tominabox1. The purpose of the board is to provide an ergonomic platform supporting MX, Choc and Alps—for when one's wrists need a break. -There are 3 PCB revisions: Rev 1 (Original), Rev 2 (P3D version sold with the Le Chiffre Plus), and HE (Hotswap Edition from Checkerboards.xyz). +As open source hardware, various revisions of the board exist. The original supports a run-of-the-mill .91" I2C OLED, EC11 rotary encoder and WS2812 RGB LED strip. Most versions also feature SMD footprints for underglow and indicator RGB LEDs. -By default the OLED is **disabled**. This is to prevent issues with operation when one is not installed. Be sure to enable the OLED in the rules.mk file if you have one installed! +Firmware support for several incompatible PCBs can be found in this repository. Examine your PCB to determine which firmware it uses before flashing. +* Rev 1 (atmega32u4, atmel-dfu) + * The original. +* Rev 2 (atmega32u4, atmel-dfu) + * Widely known as the "curly traces" version; notably sold by [P3D](https://p3dstore.com) with the Le Chiffre Plus case. (P3D's store page referred to this PCB version as "Rev 3".) +* HE (atmega32u4, atmel-dfu) + * Created and sold by [Checker Boards](https://checkerboards.xyz). Uses MX hotswap sockets. No Choc or Alps support. * Keyboard Maintainer: [TJ Campie](https://github.com/tominabox1) -* Hardware Supported: [Le Chiffre](https://github.com/tominabox1/Le-Chiffre-Keyboard) -* Hardware Availability: Bring your own case. +* Hardware Supported: [Le Chiffre](https://github.com/tominabox1/Le-Chiffre-Keyboard), [Le Chiffre HE](https://github.com/npspears/Le-Chiffre_HE) +* Hardware Availability: Open source; PCBs are sometimes stocked by various keyboard vendors. Bring your own case. Make example for this keyboard (after setting up your build environment): @@ -18,4 +24,22 @@ Make example for this keyboard (after setting up your build environment): make tominabox1/le_chiffre/rev2:default make tominabox1/le_chiffre/he:default +Flashing example for this keyboard: + + make tominabox1/le_chiffre/rev1:default:flash + make tominabox1/le_chiffre/rev2:default:flash + make tominabox1/le_chiffre/he: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 and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset**: Press the central button on the underside of the PCB. +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. + +## Flashing + +After entering the bootloader through one of the three methods above, the keyboard will appear as an Atmel DFU device. It can be flashed using the QMK CLI or QMK Toolbox. diff --git a/keyboards/tominabox1/le_chiffre/rev1/info.json b/keyboards/tominabox1/le_chiffre/rev1/info.json index 5222f4ea514..44982ecdf56 100644 --- a/keyboards/tominabox1/le_chiffre/rev1/info.json +++ b/keyboards/tominabox1/le_chiffre/rev1/info.json @@ -1,13 +1,7 @@ { - "usb": { - "device_version": "0.0.1" - }, - "ws2812": { - "pin": "F0" - }, - "matrix_pins": { - "cols": ["F4", "F5", "B0", "B2", "B1", "B4", "D7", "C7", "D2", "F7"], - "rows": ["B3", "D4", "F1", "C6"] + "bootloader": "atmel-dfu", + "build": { + "lto": true }, "diode_direction": "ROW2COL", "encoder": { @@ -15,11 +9,17 @@ {"pin_a": "D5", "pin_b": "D3"} ] }, - "rgb_matrix": { - "driver": "WS2812" + "matrix_pins": { + "cols": ["F4", "F5", "B0", "B2", "B1", "B4", "D7", "C7", "D2", "F7"], + "rows": ["B3", "D4", "F1", "C6"] }, "processor": "atmega32u4", - "bootloader": "atmel-dfu", + "usb": { + "device_version": "0.0.1" + }, + "ws2812": { + "pin": "F0" + }, "layouts": { "LAYOUT": { "layout": [ @@ -34,34 +34,28 @@ {"matrix": [0, 7], "x": 8, "y": 0}, {"matrix": [0, 8], "x": 9, "y": 0}, {"matrix": [0, 9], "x": 10, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1}, {"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 6, "y": 1}, {"matrix": [1, 6], "x": 7, "y": 1}, {"matrix": [1, 7], "x": 8, "y": 1}, {"matrix": [1, 8], "x": 9, "y": 1}, {"matrix": [1, 9], "x": 10, "y": 1}, - {"matrix": [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": 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": [3, 2], "x": 1.75, "y": 3, "w": 1.25}, {"matrix": [3, 4], "x": 3, "y": 3, "w": 2}, - {"matrix": [3, 5], "x": 6, "y": 3, "w": 2}, {"matrix": [3, 7], "x": 8, "y": 3, "w": 1.25} ] diff --git a/keyboards/tominabox1/le_chiffre/rev1/rev1.c b/keyboards/tominabox1/le_chiffre/rev1/rev1.c deleted file mode 100644 index 66b0eb2f085..00000000000 --- a/keyboards/tominabox1/le_chiffre/rev1/rev1.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 tominabox1 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 3, 4, NO_LED, 5, 6 }, - { NO_LED, NO_LED, 10, NO_LED, NO_LED }, - { NO_LED, NO_LED, 9, NO_LED, NO_LED }, - { 2, 1, 0, 8, 7 } -}, { - - // LED Index to Physical Position - { 128, 64 }, { 77, 64 }, { 0, 48 }, { 0, 0 }, { 115, 0 }, { 166, 0 }, { 255, 0 }, { 255, 48 }, { 178, 64 }, { 128, 40 }, { 128, 30 } -}, { - - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/tominabox1/le_chiffre/rev1/rules.mk b/keyboards/tominabox1/le_chiffre/rev1/rules.mk index 7d791dd396c..6e7633bfe01 100644 --- a/keyboards/tominabox1/le_chiffre/rev1/rules.mk +++ b/keyboards/tominabox1/le_chiffre/rev1/rules.mk @@ -1,16 +1 @@ -# 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 -ENCODER_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes - +# This file intentionally left blank diff --git a/keyboards/tominabox1/le_chiffre/rev2/info.json b/keyboards/tominabox1/le_chiffre/rev2/info.json index f6773fb9bdf..155b264ce21 100644 --- a/keyboards/tominabox1/le_chiffre/rev2/info.json +++ b/keyboards/tominabox1/le_chiffre/rev2/info.json @@ -1,13 +1,7 @@ { - "usb": { - "device_version": "0.0.2" - }, - "ws2812": { - "pin": "B1" - }, - "matrix_pins": { - "cols": ["B2", "F0", "F1", "F4", "F5", "B5", "B4", "D7", "D6", "D4"], - "rows": ["B3", "F6", "F7", "C7"] + "bootloader": "atmel-dfu", + "build": { + "lto": true }, "diode_direction": "ROW2COL", "encoder": { @@ -15,11 +9,17 @@ {"pin_a": "B6", "pin_b": "C6"} ] }, - "rgb_matrix": { - "driver": "WS2812" + "matrix_pins": { + "cols": ["B2", "F0", "F1", "F4", "F5", "B5", "B4", "D7", "D6", "D4"], + "rows": ["B3", "F6", "F7", "C7"] }, "processor": "atmega32u4", - "bootloader": "atmel-dfu", + "usb": { + "device_version": "0.0.2" + }, + "ws2812": { + "pin": "B1" + }, "layouts": { "LAYOUT": { "layout": [ @@ -34,34 +34,28 @@ {"matrix": [0, 7], "x": 8, "y": 0}, {"matrix": [0, 8], "x": 9, "y": 0}, {"matrix": [0, 9], "x": 10, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1}, {"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 6, "y": 1}, {"matrix": [1, 6], "x": 7, "y": 1}, {"matrix": [1, 7], "x": 8, "y": 1}, {"matrix": [1, 8], "x": 9, "y": 1}, {"matrix": [1, 9], "x": 10, "y": 1}, - {"matrix": [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": 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": [3, 2], "x": 1.75, "y": 3, "w": 1.25}, {"matrix": [3, 4], "x": 3, "y": 3, "w": 2}, - {"matrix": [3, 5], "x": 6, "y": 3, "w": 2}, {"matrix": [3, 7], "x": 8, "y": 3, "w": 1.25} ] diff --git a/keyboards/tominabox1/le_chiffre/rev2/rev2.c b/keyboards/tominabox1/le_chiffre/rev2/rev2.c deleted file mode 100644 index 66b0eb2f085..00000000000 --- a/keyboards/tominabox1/le_chiffre/rev2/rev2.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 tominabox1 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 3, 4, NO_LED, 5, 6 }, - { NO_LED, NO_LED, 10, NO_LED, NO_LED }, - { NO_LED, NO_LED, 9, NO_LED, NO_LED }, - { 2, 1, 0, 8, 7 } -}, { - - // LED Index to Physical Position - { 128, 64 }, { 77, 64 }, { 0, 48 }, { 0, 0 }, { 115, 0 }, { 166, 0 }, { 255, 0 }, { 255, 48 }, { 178, 64 }, { 128, 40 }, { 128, 30 } -}, { - - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/tominabox1/le_chiffre/rev2/rules.mk b/keyboards/tominabox1/le_chiffre/rev2/rules.mk index 7d791dd396c..6e7633bfe01 100644 --- a/keyboards/tominabox1/le_chiffre/rev2/rules.mk +++ b/keyboards/tominabox1/le_chiffre/rev2/rules.mk @@ -1,16 +1 @@ -# 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 -ENCODER_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes - +# This file intentionally left blank diff --git a/keyboards/tominabox1/qaz/config.h b/keyboards/tominabox1/qaz/config.h index a9b9df68157..fa9a83d08ec 100644 --- a/keyboards/tominabox1/qaz/config.h +++ b/keyboards/tominabox1/qaz/config.h @@ -4,18 +4,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 21 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/tominabox1/qaz/info.json b/keyboards/tominabox1/qaz/info.json index 99ae387af7b..1ddb07e6212 100644 --- a/keyboards/tominabox1/qaz/info.json +++ b/keyboards/tominabox1/qaz/info.json @@ -8,6 +8,23 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 21, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/tominabox1/underscore33/rev2/config.h b/keyboards/tominabox1/underscore33/rev2/config.h index eac1807676e..333d0a100eb 100644 --- a/keyboards/tominabox1/underscore33/rev2/config.h +++ b/keyboards/tominabox1/underscore33/rev2/config.h @@ -19,17 +19,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 12 -#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 -#endif diff --git a/keyboards/tominabox1/underscore33/rev2/info.json b/keyboards/tominabox1/underscore33/rev2/info.json index 2b93047d410..b9c8b87b502 100644 --- a/keyboards/tominabox1/underscore33/rev2/info.json +++ b/keyboards/tominabox1/underscore33/rev2/info.json @@ -8,6 +8,21 @@ "pid": "0x3302", "device_version": "0.0.2" }, + "rgblight": { + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/torn/rules.mk b/keyboards/torn/rules.mk index 7d7b3015899..d2ec5cf6d42 100644 --- a/keyboards/torn/rules.mk +++ b/keyboards/torn/rules.mk @@ -10,7 +10,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow ENCODER_ENABLE = yes # Enable rotary encoder OLED_ENABLE = yes -OLED_DRIVER = SSD1306 WPM_ENABLE = yes CUSTOM_MATRIX = lite diff --git a/keyboards/tr60w/config.h b/keyboards/tr60w/config.h index a6dfefb6b90..5f360813239 100644 --- a/keyboards/tr60w/config.h +++ b/keyboards/tr60w/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/tr60w/info.json b/keyboards/tr60w/info.json index 62e5fae73b0..ba0ce45233c 100644 --- a/keyboards/tr60w/info.json +++ b/keyboards/tr60w/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "B7" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/trashman/ketch/config.h b/keyboards/trashman/ketch/config.h index 0f391f70ba5..48893f953b2 100644 --- a/keyboards/trashman/ketch/config.h +++ b/keyboards/trashman/ketch/config.h @@ -22,16 +22,4 @@ SOFTWARE. #pragma once -#define RGBLED_NUM 10 -#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_SLEEP #define NO_USB_STARTUP_CHECK diff --git a/keyboards/trashman/ketch/info.json b/keyboards/trashman/ketch/info.json index 21f3bb7ec3a..a674acb2759 100644 --- a/keyboards/trashman/ketch/info.json +++ b/keyboards/trashman/ketch/info.json @@ -9,6 +9,22 @@ "device_version": "0.0.1", "max_power": 100 }, + "rgblight": { + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/tszaboo/ortho4exent/config.h b/keyboards/tszaboo/ortho4exent/config.h index d04509a30de..ec16cc36b10 100644 --- a/keyboards/tszaboo/ortho4exent/config.h +++ b/keyboards/tszaboo/ortho4exent/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 18 - - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/tszaboo/ortho4exent/info.json b/keyboards/tszaboo/ortho4exent/info.json index 21c69b1eb07..492ae6516fa 100644 --- a/keyboards/tszaboo/ortho4exent/info.json +++ b/keyboards/tszaboo/ortho4exent/info.json @@ -8,6 +8,24 @@ "pid": "0x7934", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/tunks/ergo33/config.h b/keyboards/tunks/ergo33/config.h deleted file mode 100644 index 5ab6f8a3475..00000000000 --- a/keyboards/tunks/ergo33/config.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright 2020 Mika Kuitunen - * - * This 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 - -/* Underglow + top RGB configuration */ -#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 - -#if !defined(RGBLED_NUM) -/* RGB LED count - * No external LED PCB: 10 - * External LED PCB: 14 - */ -# define RGBLED_NUM 14 -#endif - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT diff --git a/keyboards/tunks/ergo33/info.json b/keyboards/tunks/ergo33/info.json index afca170abd8..213907999a0 100644 --- a/keyboards/tunks/ergo33/info.json +++ b/keyboards/tunks/ergo33/info.json @@ -7,6 +7,21 @@ "pid": "0xA0A1", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/tw40/config.h b/keyboards/tw40/config.h index 3fe5a403296..99549d9efa1 100644 --- a/keyboards/tw40/config.h +++ b/keyboards/tw40/config.h @@ -18,4 +18,5 @@ along with this program. If not, see . #pragma once #define LOCKING_SUPPORT_ENABLE + #define LOCKING_RESYNC_ENABLE diff --git a/keyboards/tw40/info.json b/keyboards/tw40/info.json index 584ef512db0..79f3d7fbaaf 100644 --- a/keyboards/tw40/info.json +++ b/keyboards/tw40/info.json @@ -1,949 +1,993 @@ { - "manufacturer": "KnoblesseOblige", - "keyboard_name": "TW40", - "maintainer": "KnoblesseOblige", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": false, - "rgblight": true + "keyboard_name": "TW40", + "manufacturer": "KnoblesseOblige", + "url": "https://p3dstore.com/products/tw40-gb", + "maintainer": "KnoblesseOblige", + "usb": { + "vid": "0x503D", + "pid": "0x5457", + "device_version": "0.0.1" + }, + "rgblight": { + "led_count": 15, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "E6" + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["B0", "D5", "D3", "D2"] + }, + "diode_direction": "COL2ROW", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, + {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] + }, + "LAYOUT_3_split_space_standard_rshift_4x_125": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 2.25}, + {"matrix": [3, 4], "x": 6, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 7.25, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_3_split_space_standard_rshift_5x_100": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 2.25}, + {"matrix": [3, 4], "x": 6, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 7.25, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] + }, + "LAYOUT_3_split_space_split_rshift_4x_125": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 2.25}, + {"matrix": [3, 4], "x": 6, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 7.25, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_3_split_space_split_rshift_5x_100": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 2.25}, + {"matrix": [3, 4], "x": 6, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 7.25, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] + }, + "LAYOUT_4_split_space_standard_rshift_4x_125": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, + {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, + {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_4_split_space_standard_rshift_5x_100": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, + {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] + }, + "LAYOUT_4_split_space_split_rshift_4x_125": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, + {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, + {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_4_split_space_split_rshift_5x_100": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, + {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] + }, + "LAYOUT_625_standard_rshift_4x_125": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25}, + {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_625_standard_rshift_5x_100": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] + }, + "LAYOUT_625_split_rshift_4x_125": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25}, + {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} + ] }, - "matrix_pins": { - "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], - "rows": ["B0", "D5", "D3", "D2"] + "LAYOUT_625_split_rshift_5x_100": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] }, - "processor": "atmega32u4", - "rgblight": { - "led_count": 15, - "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 - } + "LAYOUT_700_standard_rshift_4x_125": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 3, "y": 3, "w": 7}, + {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} + ] }, - "url": "https://p3dstore.com/products/tw40-gb", - "usb": { - "device_version": "0.0.1", - "pid": "0x5457", - "vid": "0x503D" + "LAYOUT_700_standard_rshift_5x_100": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 3, "y": 3, "w": 7}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] }, - "ws2812": { - "pin": "E6" + "LAYOUT_700_split_rshift_4x_125": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 3, "y": 3, "w": 7}, + {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} + ] }, - "layouts": { - "LAYOUT_3_split_space_split_rshift_4x_125": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 2.25}, - {"matrix": [3, 4], "x": 6, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 7.25, "y": 3, "w": 2.75}, - {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_3_split_space_split_rshift_5x_100": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 2.25}, - {"matrix": [3, 4], "x": 6, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 7.25, "y": 3, "w": 2.75}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - }, - "LAYOUT_3_split_space_standard_rshift_4x_125": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 2.25}, - {"matrix": [3, 4], "x": 6, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 7.25, "y": 3, "w": 2.75}, - {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_3_split_space_standard_rshift_5x_100": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 2.25}, - {"matrix": [3, 4], "x": 6, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 7.25, "y": 3, "w": 2.75}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - }, - "LAYOUT_4_split_space_split_rshift_4x_125": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, - {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, - {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_4_split_space_split_rshift_5x_100": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, - {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - }, - "LAYOUT_4_split_space_standard_rshift_4x_125": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, - {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, - {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_4_split_space_standard_rshift_5x_100": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, - {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - }, - "LAYOUT_625_split_rshift_4x_125": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25}, - {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_625_split_rshift_5x_100": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - }, - "LAYOUT_625_standard_rshift_4x_125": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25}, - {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_625_standard_rshift_5x_100": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - }, - "LAYOUT_700_split_rshift_4x_125": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, - {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.5}, - {"matrix": [3, 4], "x": 3, "y": 3, "w": 7}, - {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_700_split_rshift_5x_100": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, - {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.5}, - {"matrix": [3, 4], "x": 3, "y": 3, "w": 7}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - }, - "LAYOUT_700_standard_rshift_4x_125": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, - {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.5}, - {"matrix": [3, 4], "x": 3, "y": 3, "w": 7}, - {"matrix": [3, 9], "x": 10, "y": 3, "w": 1.25}, - {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.25}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25} - ] - }, - "LAYOUT_700_standard_rshift_5x_100": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2}, - {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, - {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.5}, - {"matrix": [3, 4], "x": 3, "y": 3, "w": 7}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - }, - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, - {"matrix": [0, 1], "x": 1.5, "y": 0}, - {"matrix": [0, 2], "x": 2.5, "y": 0}, - {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - {"matrix": [0, 9], "x": 9.5, "y": 0}, - {"matrix": [0, 10], "x": 10.5, "y": 0}, - {"matrix": [0, 11], "x": 11.5, "y": 0}, - {"matrix": [0, 12], "x": 12.5, "y": 0}, - {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, - {"matrix": [1, 1], "x": 1.75, "y": 1}, - {"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, "w": 2.25}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, - {"matrix": [2, 1], "x": 2.25, "y": 2}, - {"matrix": [2, 2], "x": 3.25, "y": 2}, - {"matrix": [2, 3], "x": 4.25, "y": 2}, - {"matrix": [2, 4], "x": 5.25, "y": 2}, - {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 6], "x": 7.25, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, - {"matrix": [2, 12], "x": 13, "y": 2}, - {"matrix": [2, 13], "x": 14, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25}, - {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, - {"matrix": [3, 4], "x": 5, "y": 3, "w": 2.25}, - {"matrix": [3, 5], "x": 7.25, "y": 3, "w": 1.25}, - {"matrix": [3, 6], "x": 8.5, "y": 3, "w": 1.5}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3} - ] - } + "LAYOUT_700_split_rshift_5x_100": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "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.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"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, "w": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 3, "y": 3, "w": 7}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3} + ] } + } } diff --git a/keyboards/tw40/rules.mk b/keyboards/tw40/rules.mk index 6e7633bfe01..2eba275490a 100644 --- a/keyboards/tw40/rules.mk +++ b/keyboards/tw40/rules.mk @@ -1 +1,12 @@ -# This file intentionally left blank +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/tweetydabird/lbs4/config.h b/keyboards/tweetydabird/lbs4/config.h deleted file mode 100644 index d92818c9e04..00000000000 --- a/keyboards/tweetydabird/lbs4/config.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD - -#define RGBLIGHT_LIMIT_VAL 255 -#define RGBLIGHT_DEFAULT_VAL ( RGBLIGHT_LIMIT_VAL / 3 ) -#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD -#define RGBLIGHT_SLEEP - -#define BOOTMAGIC_LITE_ROW 0 -#define BOOTMAGIC_LITE_COLUMN 0 - -// reduce memory -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE -#define NO_ACTION_ONESHOT -#define LAYER_STATE_8BIT \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs6/config.h b/keyboards/tweetydabird/lbs6/config.h deleted file mode 100644 index 659f47f284a..00000000000 --- a/keyboards/tweetydabird/lbs6/config.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD - -#define RGBLIGHT_LIMIT_VAL 255 -#define RGBLIGHT_DEFAULT_VAL ( RGBLIGHT_LIMIT_VAL / 3 ) -#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD -#define RGBLIGHT_SLEEP - -#define BOOTMAGIC_LITE_ROW 2 -#define BOOTMAGIC_LITE_COLUMN 0 - -// reduce memory -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE -#define NO_ACTION_ONESHOT -#define LAYER_STATE_8BIT \ No newline at end of file diff --git a/keyboards/tzarc/djinn/info.json b/keyboards/tzarc/djinn/info.json index 2a50e5762d1..f0904b8578a 100644 --- a/keyboards/tzarc/djinn/info.json +++ b/keyboards/tzarc/djinn/info.json @@ -38,7 +38,7 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "split": { "enabled": true, diff --git a/keyboards/tzarc/djinn/rev1/config.h b/keyboards/tzarc/djinn/rev1/config.h index 5ced7003233..5dffc00141f 100644 --- a/keyboards/tzarc/djinn/rev1/config.h +++ b/keyboards/tzarc/djinn/rev1/config.h @@ -14,7 +14,6 @@ #endif // SERIAL_USART_SPEED // RGB configuration -#define RGBLED_NUM 84 #define RGB_MATRIX_LED_COUNT 84 #define RGB_MATRIX_SPLIT \ { 42, 42 } diff --git a/keyboards/tzarc/djinn/rev2/config.h b/keyboards/tzarc/djinn/rev2/config.h index 02224e4fc61..12a63724057 100644 --- a/keyboards/tzarc/djinn/rev2/config.h +++ b/keyboards/tzarc/djinn/rev2/config.h @@ -17,7 +17,6 @@ #define SERIAL_USART_FULL_DUPLEX // RGB configuration -#define RGBLED_NUM 86 #define RGB_MATRIX_LED_COUNT 86 #define RGB_MATRIX_SPLIT \ { 43, 43 } diff --git a/keyboards/tzarc/ghoul/config.h b/keyboards/tzarc/ghoul/config.h index c027b77565d..932ea8eb50d 100644 --- a/keyboards/tzarc/ghoul/config.h +++ b/keyboards/tzarc/ghoul/config.h @@ -13,4 +13,3 @@ // RGB configuration #define RGB_MATRIX_LED_COUNT 40 -#define RGBLED_NUM 40 diff --git a/keyboards/tzarc/ghoul/info.json b/keyboards/tzarc/ghoul/info.json index fe6de664703..bf07f122c32 100644 --- a/keyboards/tzarc/ghoul/info.json +++ b/keyboards/tzarc/ghoul/info.json @@ -16,7 +16,7 @@ "rgb_matrix": true }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "rows": ["NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN"], diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk index 10630d80cf2..9590c52217a 100644 --- a/keyboards/tzarc/ghoul/rules.mk +++ b/keyboards/tzarc/ghoul/rules.mk @@ -1,7 +1,6 @@ CUSTOM_MATRIX = lite EEPROM_DRIVER = spi QUANTUM_PAINTER_DRIVERS = ssd1351_spi -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32 diff --git a/keyboards/ubest/vn/config.h b/keyboards/ubest/vn/config.h deleted file mode 100644 index fd3c59f509a..00000000000 --- a/keyboards/ubest/vn/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2022 water - * - * This 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 RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 diff --git a/keyboards/ubest/vn/info.json b/keyboards/ubest/vn/info.json index 4180f6f5ecb..87afc573d5e 100644 --- a/keyboards/ubest/vn/info.json +++ b/keyboards/ubest/vn/info.json @@ -20,7 +20,11 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 240 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "max_brightness": 240, + "sleep": true }, "indicators": { "caps_lock": "B3", diff --git a/keyboards/uk78/config.h b/keyboards/uk78/config.h index ab971a55ad8..822b37da7f7 100644 --- a/keyboards/uk78/config.h +++ b/keyboards/uk78/config.h @@ -22,19 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* ws2812b options */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/uk78/info.json b/keyboards/uk78/info.json index f166936a9a2..af41223de20 100644 --- a/keyboards/uk78/info.json +++ b/keyboards/uk78/info.json @@ -16,6 +16,23 @@ "backlight": { "pin": "B6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/uk78/keymaps/default/keymap.c b/keyboards/uk78/keymaps/default/keymap.c index 2fa09f7d6da..e4bdf905085 100644 --- a/keyboards/uk78/keymaps/default/keymap.c +++ b/keyboards/uk78/keymaps/default/keymap.c @@ -75,12 +75,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { setPinOutput(A3); writePinHigh(A3); } else { setPinInput(A3); writePinLow(A3); } + return false; } diff --git a/keyboards/uk78/keymaps/rask/keymap.c b/keyboards/uk78/keymaps/rask/keymap.c index 97b1853aaec..01220a775ea 100644 --- a/keyboards/uk78/keymaps/rask/keymap.c +++ b/keyboards/uk78/keymaps/rask/keymap.c @@ -74,47 +74,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { DDRA |= (1 << 3); PORTA |= (1 << 3); } else { DDRA &= ~(1 << 3); PORTA &= ~(1 << 3); } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - + return false; } diff --git a/keyboards/ungodly/launch_pad/config.h b/keyboards/ungodly/launch_pad/config.h index 9c6459abbda..f3431bd412f 100644 --- a/keyboards/ungodly/launch_pad/config.h +++ b/keyboards/ungodly/launch_pad/config.h @@ -21,8 +21,7 @@ /* RGB Matrix configuration */ #ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 22 -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 22 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended @@ -30,10 +29,6 @@ // # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_PINWHEEL // default mode // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/ungodly/launch_pad/info.json b/keyboards/ungodly/launch_pad/info.json index 97f3d10407f..5474bc5279f 100644 --- a/keyboards/ungodly/launch_pad/info.json +++ b/keyboards/ungodly/launch_pad/info.json @@ -9,7 +9,10 @@ "device_version": "99.9.9" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3"], diff --git a/keyboards/ungodly/launch_pad/rules.mk b/keyboards/ungodly/launch_pad/rules.mk index 5b696a9b076..93541444664 100644 --- a/keyboards/ungodly/launch_pad/rules.mk +++ b/keyboards/ungodly/launch_pad/rules.mk @@ -12,7 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output MIDI_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes RGB_MATRIX_ENABLE = yes SPACE_CADET_ENABLE = no diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk index 225317b3674..9131708828a 100644 --- a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk @@ -14,4 +14,4 @@ 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 +HAPTIC_DRIVER = solenoid diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk index 225317b3674..9131708828a 100644 --- a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk @@ -14,4 +14,4 @@ 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 +HAPTIC_DRIVER = solenoid diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk b/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk index 225317b3674..9131708828a 100644 --- a/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk @@ -14,4 +14,4 @@ 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 +HAPTIC_DRIVER = solenoid diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk index 225317b3674..9131708828a 100644 --- a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk @@ -14,4 +14,4 @@ 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 +HAPTIC_DRIVER = solenoid diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk index 225317b3674..9131708828a 100644 --- a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk +++ b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk @@ -14,4 +14,4 @@ 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 +HAPTIC_DRIVER = solenoid diff --git a/keyboards/unikorn/config.h b/keyboards/unikorn/config.h deleted file mode 100644 index 4c3789155ee..00000000000 --- a/keyboards/unikorn/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLIGHT_ENABLE -#define RGBLED_NUM 17 -#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 -#endif diff --git a/keyboards/unikorn/info.json b/keyboards/unikorn/info.json index 02202bef077..35c749b2923 100644 --- a/keyboards/unikorn/info.json +++ b/keyboards/unikorn/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/unison/v04/config.h b/keyboards/unison/v04/config.h index d80dc827f6b..1273f36fbde 100644 --- a/keyboards/unison/v04/config.h +++ b/keyboards/unison/v04/config.h @@ -26,26 +26,10 @@ along with this program. If not, see . #endif /* RGB Lighting */ - #define RGBLED_NUM 7 // Layer Indicator(2) + Rotary Encoder(5) - #define RGBLIGHT_LED_MAP {1, 2, 0, 3, 4, 5, 6} // align LEDs from Left to Right - #define RGBLIGHT_HUE_STEP 4 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== Lighting Layers ==*/ #define RGBLIGHT_LAYERS // #define RGBLIGHT_MAX_LAYERS 2 #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF // Overriding RGB Lighting on/off status - #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 /* * Feature disable options diff --git a/keyboards/unison/v04/info.json b/keyboards/unison/v04/info.json index 481c07f7a9a..7b182df2515 100644 --- a/keyboards/unison/v04/info.json +++ b/keyboards/unison/v04/info.json @@ -12,6 +12,19 @@ "cols": ["B3", "E6", "F1", "F5", "F7", "B2", "F0", "F4", "F6", "C7"], "rows": ["B3", "E6", "F1", "F5", "F7", "B2", "F0", "F4", "F6", "C7"] }, + "rgblight": { + "hue_steps": 4, + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "led_map": [1, 2, 0, 3, 4, 5, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/utd80/config.h b/keyboards/utd80/config.h index 5d33e9e99cb..4a4d65e62f8 100644 --- a/keyboards/utd80/config.h +++ b/keyboards/utd80/config.h @@ -20,18 +20,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/utd80/info.json b/keyboards/utd80/info.json index 5a7bde1da1c..a62bb41df6e 100644 --- a/keyboards/utd80/info.json +++ b/keyboards/utd80/info.json @@ -21,6 +21,23 @@ "caps_lock": "B6", "scroll_lock": "B5" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/uzu42/rev1/config.h b/keyboards/uzu42/rev1/config.h deleted file mode 100644 index d0bba6d5983..00000000000 --- a/keyboards/uzu42/rev1/config.h +++ /dev/null @@ -1,53 +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 - -#define RGBLED_NUM 54 // Number of LEDs -#define RGBLED_SPLIT { 27, 27 } - -#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_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* - * 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/uzu42/rev1/info.json b/keyboards/uzu42/rev1/info.json index 02d1b17be2c..1354c6d93e6 100644 --- a/keyboards/uzu42/rev1/info.json +++ b/keyboards/uzu42/rev1/info.json @@ -20,7 +20,20 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 120 + "hue_steps": 10, + "led_count": 54, + "max_brightness": 120, + "split_count": [27, 27], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/v60_type_r/config.h b/keyboards/v60_type_r/config.h index 8eafa8d7b51..4354cb32c30 100644 --- a/keyboards/v60_type_r/config.h +++ b/keyboards/v60_type_r/config.h @@ -17,17 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 1 -#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 RGB_STEP 16 #define RGB_RED_PIN PF6 diff --git a/keyboards/v60_type_r/info.json b/keyboards/v60_type_r/info.json index f219dd1727a..63320719943 100644 --- a/keyboards/v60_type_r/info.json +++ b/keyboards/v60_type_r/info.json @@ -14,9 +14,26 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F7", "on_state": 0 }, + "rgblight": { + "driver": "custom", + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["60_ansi", "60_iso"], diff --git a/keyboards/v60_type_r/keymaps/followingghosts/keymap.c b/keyboards/v60_type_r/keymaps/followingghosts/keymap.c index ab1fbd70d9f..419c9ad5a72 100644 --- a/keyboards/v60_type_r/keymaps/followingghosts/keymap.c +++ b/keyboards/v60_type_r/keymaps/followingghosts/keymap.c @@ -95,8 +95,8 @@ WASD are Up Left Right Down respectively }; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1<. + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ansi( + KC_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, 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_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_PSLS, KC_P7, KC_P8, KC_P9, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, 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_PMNS, KC_P1, KC_P2, KC_P3, 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_PPLS, KC_P0, KC_PDOT, KC_PENT, KC_PGDN, KC_LWIN, KC_LCTL, KC_PSCR, KC_INT5, KC_SPC, KC_INT4, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } +}; +#endif diff --git a/keyboards/varanidae/keymaps/ansi/rules.mk b/keyboards/varanidae/keymaps/ansi/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/varanidae/keymaps/ansi/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/varanidae/keymaps/ansi_split_bs_rshift/keymap.c b/keyboards/varanidae/keymaps/ansi_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..becb8120711 --- /dev/null +++ b/keyboards/varanidae/keymaps/ansi_split_bs_rshift/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 QMK + * Copyright 2023 Silc Renew / Tokage IT Lab. + * + * This 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_split_bs_rshift( + KC_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, 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_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_PSLS, KC_P7, KC_P8, KC_P9, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, 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_PMNS, KC_P1, KC_P2, KC_P3, 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_GRV, KC_RSFT, + KC_PPLS, KC_P0, KC_PDOT, KC_PENT, KC_PGDN, KC_LWIN, KC_LCTL, KC_PSCR, KC_INT5, KC_SPC, KC_INT4, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } +}; +#endif diff --git a/keyboards/varanidae/keymaps/ansi_split_bs_rshift/rules.mk b/keyboards/varanidae/keymaps/ansi_split_bs_rshift/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/varanidae/keymaps/ansi_split_bs_rshift/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/varanidae/keymaps/default/keymap.c b/keyboards/varanidae/keymaps/default/keymap.c new file mode 100644 index 00000000000..4c43532108b --- /dev/null +++ b/keyboards/varanidae/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 QMK + * Copyright 2023 Silc Renew / Tokage IT Lab. + * + * This 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_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, 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_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_PSLS, KC_P7, KC_P8, KC_P9, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, 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_PMNS, KC_P1, KC_P2, KC_P3, KC_PGUP, 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_GRV, KC_RSFT, + KC_PPLS, KC_P0, KC_PDOT, KC_PENT, KC_PGDN, KC_LWIN, KC_LCTL, KC_PSCR, KC_INT5, KC_SPC, KC_INT4, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } +}; +#endif diff --git a/keyboards/varanidae/keymaps/default/rules.mk b/keyboards/varanidae/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/varanidae/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/varanidae/keymaps/iso/keymap.c b/keyboards/varanidae/keymaps/iso/keymap.c new file mode 100644 index 00000000000..b1f1b0c9a4d --- /dev/null +++ b/keyboards/varanidae/keymaps/iso/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 QMK + * Copyright 2023 Silc Renew / Tokage IT Lab. + * + * This 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_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, 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_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_PSLS, KC_P7, KC_P8, KC_P9, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, 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_PMNS, KC_P1, KC_P2, KC_P3, KC_PGUP, 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_PPLS, KC_P0, KC_PDOT, KC_PENT, KC_PGDN, KC_LWIN, KC_LCTL, KC_PSCR, KC_INT5, KC_SPC, KC_INT4, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } +}; +#endif diff --git a/keyboards/varanidae/keymaps/iso/rules.mk b/keyboards/varanidae/keymaps/iso/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/varanidae/keymaps/iso/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/varanidae/keymaps/iso_split_bs_rshift/keymap.c b/keyboards/varanidae/keymaps/iso_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..7324f628772 --- /dev/null +++ b/keyboards/varanidae/keymaps/iso_split_bs_rshift/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 QMK + * Copyright 2023 Silc Renew / Tokage IT Lab. + * + * This 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_split_bs_rshift( + KC_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, 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_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_PSLS, KC_P7, KC_P8, KC_P9, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, 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_PMNS, KC_P1, KC_P2, KC_P3, KC_PGUP, 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_GRV, KC_RSFT, + KC_PPLS, KC_P0, KC_PDOT, KC_PENT, KC_PGDN, KC_LWIN, KC_LCTL, KC_PSCR, KC_INT5, KC_SPC, KC_INT4, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } +}; +#endif diff --git a/keyboards/varanidae/keymaps/iso_split_bs_rshift/rules.mk b/keyboards/varanidae/keymaps/iso_split_bs_rshift/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/varanidae/keymaps/iso_split_bs_rshift/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/varanidae/keymaps/via/keymap.c b/keyboards/varanidae/keymaps/via/keymap.c new file mode 100644 index 00000000000..20e942e455a --- /dev/null +++ b/keyboards/varanidae/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 QMK + * Copyright 2023 Silc Renew / Tokage IT Lab. + * + * This 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_BTN3, KC_F16, KC_F17, KC_F18, KC_F19, 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_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_PSLS, KC_P7, KC_P8, KC_P9, 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_PAST, KC_P4, KC_P5, KC_P6, KC_END, KC_LALT, 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_PMNS, KC_P1, KC_P2, KC_P3, KC_PGUP, 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_GRV, KC_RSFT, + KC_PPLS, KC_P0, KC_PDOT, KC_PENT, KC_PGDN, KC_LWIN, KC_LCTL, KC_PSCR, KC_INT5, KC_SPC, KC_INT4, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) } +}; +#endif diff --git a/keyboards/varanidae/keymaps/via/rules.mk b/keyboards/varanidae/keymaps/via/rules.mk new file mode 100644 index 00000000000..f1adcab005e --- /dev/null +++ b/keyboards/varanidae/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/varanidae/readme.md b/keyboards/varanidae/readme.md new file mode 100644 index 00000000000..fbaaa77d640 --- /dev/null +++ b/keyboards/varanidae/readme.md @@ -0,0 +1,24 @@ +# Varanidae + +![Varanidae](https://i.imgur.com/0wWfmE1h.png) + +Varanidae the left-side pad 110 keys keyboard for creators powered by Elite-C. + +* Keyboard Maintainer: [Silc Renew](https://github.com/TokageItLab) +* Hardware Supported: Varanidae +* Hardware Availability: [TokageItLab / Varanidae](https://github.com/TokageItLab/Varanidae) + +Make example for this keyboard (after setting up your build environment): + + make varanidae:default + make varanidae:via + +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 switch at (0,0) in the matrix (usually the encoder push switch) and plug in the keyboard +* **Physical reset button**: Briefly press the reset switch on the Elite-C +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/varanidae/rules.mk b/keyboards/varanidae/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/varanidae/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/velocifire/sun20pro/config.h b/keyboards/velocifire/sun20pro/config.h index 91d8c6c8ee9..0ab5911d183 100644 --- a/keyboards/velocifire/sun20pro/config.h +++ b/keyboards/velocifire/sun20pro/config.h @@ -8,11 +8,6 @@ #define VIAL_UNLOCK_COMBO_COLS { 0, 3 } /* USB Device descriptor parameter */ -#define VENDOR_ID 0x0002 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER "Velocifire" -#define PRODUCT "Sun20pro" /* key matrix size */ #define MATRIX_ROWS 5 @@ -25,7 +20,6 @@ #define ENCODERS_PAD_B { D7 } /* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW /* number of backlight levels */ #ifdef BACKLIGHT_PIN @@ -42,7 +36,6 @@ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES -#define WS2812_DI_PIN C7 // RGB Matrix # ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_COUNT 25 diff --git a/keyboards/velocifire/sun20pro/info.json b/keyboards/velocifire/sun20pro/info.json index f987af97bf2..6244eb5e22a 100644 --- a/keyboards/velocifire/sun20pro/info.json +++ b/keyboards/velocifire/sun20pro/info.json @@ -1,5 +1,23 @@ { - "keyboard_name": "Sun20pro", - "url": "", - "maintainer": "qmk", + "manufacturer": "Velocifire", + "keyboard_name": "Sun20pro", + "maintainer": "qmk", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true + }, + "processor": "atmega32u4", + "rgb_matrix": { + "driver": "ws2812" + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x0002", + "vid": "0x0002" + }, + "ws2812": { + "pin": "C7" + } } diff --git a/keyboards/velocifire/sun20pro/keymaps/vial/keymap.c b/keyboards/velocifire/sun20pro/keymaps/vial/keymap.c index 6a49280b8da..cfda5648dbe 100644 --- a/keyboards/velocifire/sun20pro/keymaps/vial/keymap.c +++ b/keyboards/velocifire/sun20pro/keymaps/vial/keymap.c @@ -14,29 +14,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_UP, KC_PGUP, KC_LEFT, KC_NO, KC_RGHT, _______, KC_END, KC_DOWN, KC_PGDN, - KC_INS, KC_DEL, _______), - - LAYOUT( - _______, _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______), - - LAYOUT( - _______, _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______), + KC_INS, KC_DEL, _______) }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(_______, _______) }, - [2] = { ENCODER_CCW_CW(_______, _______) }, - [3] = { ENCODER_CCW_CW(_______, _______) }, + [1] = { ENCODER_CCW_CW(_______, _______) } }; #endif diff --git a/keyboards/velocifire/sun20pro/rules.mk b/keyboards/velocifire/sun20pro/rules.mk index 52e646505ae..f1e1a615574 100644 --- a/keyboards/velocifire/sun20pro/rules.mk +++ b/keyboards/velocifire/sun20pro/rules.mk @@ -1,10 +1,2 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -ENCODER_ENABLE = yes EXTRAKEY_ENABLE = yes RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/vertex/angle65/config.h b/keyboards/vertex/angle65/config.h index 4db0deb111f..b3cf8b2507f 100644 --- a/keyboards/vertex/angle65/config.h +++ b/keyboards/vertex/angle65/config.h @@ -18,16 +18,5 @@ along with this program. If not, see . #define SOLENOID_PIN A2 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 9 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 diff --git a/keyboards/vertex/angle65/info.json b/keyboards/vertex/angle65/info.json index 03649ab0725..096e89555aa 100644 --- a/keyboards/vertex/angle65/info.json +++ b/keyboards/vertex/angle65/info.json @@ -20,6 +20,21 @@ "caps_lock": "C13", "on_state": 0 }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/vertex/angle65/rules.mk b/keyboards/vertex/angle65/rules.mk index 87d50360410..330f6ff76b8 100644 --- a/keyboards/vertex/angle65/rules.mk +++ b/keyboards/vertex/angle65/rules.mk @@ -12,6 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output HAPTIC_ENABLE = yes -HAPTIC_DRIVER += SOLENOID - -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE +HAPTIC_DRIVER = solenoid diff --git a/keyboards/vertex/angler2/config.h b/keyboards/vertex/angler2/config.h deleted file mode 100644 index 79cb6d6aaed..00000000000 --- a/keyboards/vertex/angler2/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2022 Vertex - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/vertex/angler2/info.json b/keyboards/vertex/angler2/info.json index 705af3fb092..bf3d28bc457 100644 --- a/keyboards/vertex/angler2/info.json +++ b/keyboards/vertex/angler2/info.json @@ -21,6 +21,23 @@ "ws2812": { "pin": "E6" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": [ diff --git a/keyboards/vertex/arc60/config.h b/keyboards/vertex/arc60/config.h index 791368b5b2c..38b830e3df7 100644 --- a/keyboards/vertex/arc60/config.h +++ b/keyboards/vertex/arc60/config.h @@ -16,22 +16,9 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 9 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 - - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/vertex/arc60/info.json b/keyboards/vertex/arc60/info.json index 8aa5a709d50..7f9f5fdb3c4 100644 --- a/keyboards/vertex/arc60/info.json +++ b/keyboards/vertex/arc60/info.json @@ -18,6 +18,21 @@ "caps_lock": "C13", "on_state": 0 }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/vertex/arc60/rules.mk b/keyboards/vertex/arc60/rules.mk index 5a90b0d7fe0..0c92de19187 100644 --- a/keyboards/vertex/arc60/rules.mk +++ b/keyboards/vertex/arc60/rules.mk @@ -17,5 +17,3 @@ DEFAULT_FOLDER = vertex/arc60 -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/vertex/arc60h/config.h b/keyboards/vertex/arc60h/config.h index e4cb0453537..38b830e3df7 100644 --- a/keyboards/vertex/arc60h/config.h +++ b/keyboards/vertex/arc60h/config.h @@ -16,25 +16,9 @@ along with this program. If not, see . #pragma once -#define LED_CAPS_LOCK_PIN C13 -#define LED_PIN_ON_STATE 0 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 9 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 - - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/vertex/arc60h/info.json b/keyboards/vertex/arc60h/info.json index 831190a516b..6a7a39cd162 100644 --- a/keyboards/vertex/arc60h/info.json +++ b/keyboards/vertex/arc60h/info.json @@ -9,6 +9,25 @@ "device_version": "0.0.1", "force_nkro": true }, + "indicators": { + "caps_lock": "C13", + "on_state": 0 + }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/vertex/arc60h/rules.mk b/keyboards/vertex/arc60h/rules.mk index 8e6bc896a65..e86dfab3272 100644 --- a/keyboards/vertex/arc60h/rules.mk +++ b/keyboards/vertex/arc60h/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/viendi8l/config.h b/keyboards/viendi8l/config.h index 825ceabbd31..0538906eccc 100644 --- a/keyboards/viendi8l/config.h +++ b/keyboards/viendi8l/config.h @@ -22,8 +22,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define TAPPING_TERM 200 - #define I2C_DRIVER I2CD1 #define I2C_SCL_PIN B6 #define I2C_SDA_PIN B7 @@ -35,7 +33,6 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#define RGBLED_NUM 4 #define RGBLIGHT_DEFAULT_VAL 0 #define WS2812_PWM_COMPLEMENTARY_OUTPUT diff --git a/keyboards/viendi8l/info.json b/keyboards/viendi8l/info.json index 301b5cc7565..17449f406c8 100644 --- a/keyboards/viendi8l/info.json +++ b/keyboards/viendi8l/info.json @@ -8,6 +8,9 @@ "pid": "0x0877", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 4 + }, "ws2812": { "pin": "B15", "driver": "pwm" diff --git a/keyboards/viendi8l/rules.mk b/keyboards/viendi8l/rules.mk index dfa900c7924..da10e34d1c7 100644 --- a/keyboards/viendi8l/rules.mk +++ b/keyboards/viendi8l/rules.mk @@ -15,5 +15,3 @@ LTO_ENABLE = no EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/viktus/at101_bh/keymaps/default/keymap.c b/keyboards/viktus/at101_bh/keymaps/default/keymap.c index 692c30ac611..d05e549d21e 100644 --- a/keyboards/viktus/at101_bh/keymaps/default/keymap.c +++ b/keyboards/viktus/at101_bh/keymaps/default/keymap.c @@ -19,26 +19,27 @@ 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), }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { setPinOutput(B4); setPinOutput(D6); setPinOutput(D7); - if (usb_led & (1 << USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { writePinHigh(D7); } else { writePinLow(D7); } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { writePinHigh(B4); } else { writePinLow(B4); } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { writePinHigh(D6); } else { writePinLow(D6); } + return false; } diff --git a/keyboards/viktus/minne/keymaps/via/minne.json b/keyboards/viktus/minne/keymaps/via/minne.json deleted file mode 100644 index e715a8a4529..00000000000 --- a/keyboards/viktus/minne/keymaps/via/minne.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "name": "Minne", - "vendorId": "0x5644", - "productId": "0x4D49", - "keycodes": [ "qmk_lighting" ], - "menus": [ "qmk_rgblight" ], - "matrix": { - "rows": 8, - "cols": 7 - }, - "layouts": { - "labels": [ - ["Bottom Row", "Dual 1.75U", "2.75U 2.25U", "Dual 3U", "6U", "7U", "10U"] - ], - "keymap": [ - [ - { - "c":"#777777" - }, - "1,0", - { - "c":"#aaaaaa" - }, - "1,1", - { - "c":"#cccccc" - }, - "0,1", - "0,2", - "1,2", - "1,3", - "0,3", - "0,4", - "1,4", - "1,5", - "0,5", - { - "c":"#aaaaaa", - "w":1.75 - }, - "0,6" - ], - [ - { - "w":1.25 - }, - "3,0", - { - "c":"#cccccc" - }, - "3,1", - "2,1", - "2,2", - "3,2", - "3,3", - "2,3", - "2,4", - "3,4", - "3,5", - "2,5", - { - "c":"#777777", - "w":1.5 - }, - "2,6" - ], - [ - { - "c":"#aaaaaa", - "w":1.75 - }, - "5,0", - { - "c":"#cccccc" - }, - "5,1", - "4,1", - "4,2", - "5,2", - "5,3", - "4,3", - "4,4", - "5,4", - "5,5", - "4,5", - { - "c":"#aaaaaa" - }, - "4,6" - ], - [ - { - "x":1.38 - }, - "7,1\n\n\n0,0", - "6,1\n\n\n0,0", - { - "w":1.25 - }, - "6,2\n\n\n0,0", - { - "c":"#cccccc", - "w":1.75 - }, - "7,2\n\n\n0,0", - { - "w":1.75 - }, - "6,3\n\n\n0,0", - { - "c":"#aaaaaa", - "w":1.25 - }, - "6,4\n\n\n0,0", - "7,4\n\n\n0,0", - "7,5\n\n\n0,0" - ], - [ - { - "x":1.38 - }, - "7,1\n\n\n0,1", - { - "w":1.5 - }, - "6,1\n\n\n0,1", - { - "c":"#cccccc", - "w":2.75 - }, - "7,2\n\n\n0,1", - { - "w":2.25 - }, - "6,3\n\n\n0,1", - { - "c":"#aaaaaa", - "w":1.5 - }, - "7,4\n\n\n0,1", - "7,5\n\n\n0,1" - ], - [ - { - "x":1.38 - }, - "7,1\n\n\n0,2", - "6,1\n\n\n0,2", - { - "c":"#cccccc", - "w":3 - }, - "7,2\n\n\n0,2", - { - "w":3 - }, - "6,3\n\n\n0,2", - { - "c":"#aaaaaa" - }, - "7,4\n\n\n0,2", - "7,5\n\n\n0,2" - ], - [ - { - "x":1.38 - }, - "7,1\n\n\n0,3", - "6,1\n\n\n0,3", - { - "c":"#cccccc", - "w":6 - }, - "7,3\n\n\n0,3", - { - "c":"#aaaaaa" - }, - "7,4\n\n\n0,3", - "7,5\n\n\n0,3" - ], - [ - { - "x":1.38, - "w":1.5 - }, - "7,1\n\n\n0,4", - { - "c":"#cccccc", - "w":7 - }, - "7,3\n\n\n0,4", - { - "c":"#aaaaaa", - "w":1.5 - }, - "7,5\n\n\n0,4" - ], - [ - { - "x":1.38, - "c":"#cccccc", - "w":10 - }, - "7,3\n\n\n0,5" - ] - ] - } -} diff --git a/keyboards/viktus/minne_topre/keymaps/via/minne_topre.json b/keyboards/viktus/minne_topre/keymaps/via/minne_topre.json deleted file mode 100644 index 5f18c16b906..00000000000 --- a/keyboards/viktus/minne_topre/keymaps/via/minne_topre.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "name": "Minne - Topre", - "vendorId": "0x5644", - "productId": "0x4D54", - "matrix": { - "rows": 4, - "cols": 12 - }, - "layouts": { - "labels": [ - ["Bottom Row", "Dual 3U", "6U", "7U", "10U"] - ], - "keymap": [ - [ - { - "c":"#777777" - }, - "0,0", - { - "c":"#cccccc" - }, - "0,1", - "0,2", - "0,3", - "0,4", - "0,5", - "0,6", - "0,7", - "0,8", - "0,9", - "0,10", - { - "c":"#aaaaaa", - "w":1.75 - }, - "0,11" - ], - [ - { - "w":1.25 - }, - "1,0", - { - "c":"#cccccc" - }, - "1,1", - "1,2", - "1,3", - "1,4", - "1,5", - "1,6", - "1,7", - "1,8", - "1,9", - "1,10", - { - "c":"#777777", - "w":1.5 - }, - "1,11" - ], - [ - { - "c":"#aaaaaa", - "w":1.75 - }, - "2,0", - { - "c":"#cccccc" - }, - "2,1", - "2,2", - "2,3", - "2,4", - "2,5", - "2,6", - "2,7", - "2,8", - "2,9", - "2,10", - { - "c":"#aaaaaa" - }, - "2,11" - ], - [ - { - "x":1.38 - }, - "3,1\n\n\n0,0", - "3,2\n\n\n0,0", - { - "c":"#cccccc", - "w":3 - }, - "3,4\n\n\n0,0", - { - "w":3 - }, - "3,7\n\n\n0,0", - { - "c":"#aaaaaa" - }, - "3,9\n\n\n0,0", - "3,10\n\n\n0,0" - ], - [ - { - "x":1.38 - }, - "3,1\n\n\n0,1", - "3,2\n\n\n0,1", - { - "c":"#cccccc", - "w":6 - }, - "3,5\n\n\n0,1", - { - "c":"#aaaaaa" - }, - "3,9\n\n\n0,1", - "3,10\n\n\n0,1" - ], - [ - { - "x":1.38, - "w":1.5 - }, - "3,1\n\n\n0,2", - { - "c":"#cccccc", - "w":7 - }, - "3,5\n\n\n0,2", - { - "c":"#aaaaaa", - "w":1.5 - }, - "3,10\n\n\n0,2" - ], - [ - { - "x":1.38, - "c":"#cccccc", - "w":10 - }, - "3,5\n\n\n0,3" - ] - ] - } -} diff --git a/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c b/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c index 96976ba2a35..e5fb6bf9025 100644 --- a/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c +++ b/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c @@ -22,24 +22,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { DDRB |= (1 << 4) | (1 << 5) | (1 << 6); - if (usb_led & (1 << USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { PORTB |= (1 << 4); } else { PORTB &= ~(1 << 4); } - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { PORTB |= (1 << 5); } else { PORTB &= ~(1 << 5); } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { PORTB |= (1 << 6); } else { PORTB &= ~(1 << 6); } + return false; } diff --git a/keyboards/viktus/osav2/info.json b/keyboards/viktus/osav2/info.json index eba02a41378..b528bac281f 100644 --- a/keyboards/viktus/osav2/info.json +++ b/keyboards/viktus/osav2/info.json @@ -44,6 +44,7 @@ "pin": "D4" }, "backlight": { + "driver": "timer", "levels": 6, "max_brightness": 191, "pin": "D6" diff --git a/keyboards/viktus/osav2_numpad/info.json b/keyboards/viktus/osav2_numpad/info.json index d347631ccc9..941d65f3678 100644 --- a/keyboards/viktus/osav2_numpad/info.json +++ b/keyboards/viktus/osav2_numpad/info.json @@ -39,8 +39,16 @@ "twinkle": true } }, + "layout_aliases": { + "LAYOUT_all_split": "LAYOUT_ortho_5x4", + "LAYOUT_2u_plus_2u_enter_2u_zero": "LAYOUT_numpad_5x4" + }, + "community_layouts": [ + "ortho_5x4", + "numpad_5x4" + ], "layouts": { - "LAYOUT_all_split": { + "LAYOUT_ortho_5x4": { "layout": [ {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, @@ -84,7 +92,7 @@ {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4}, {"label": "K41", "matrix": [4, 1], "x": 1, "y": 4}, {"label": "K42", "matrix": [4, 2], "x": 2, "y": 4}, - {"label": "K43", "matrix": [4, 3], "h": 2, "x": 3, "y": 3} + {"label": "K43", "matrix": [4, 3], "x": 3, "y": 3, "h": 2} ] }, "LAYOUT_2u_plus_2u_enter": { @@ -99,14 +107,14 @@ {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2}, {"label": "K21", "matrix": [2, 1], "x": 1, "y": 2}, {"label": "K22", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "K23", "matrix": [2, 3], "h": 2, "x": 3, "y": 1}, + {"label": "K23", "matrix": [2, 3], "x": 3, "y": 1, "h": 2}, {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, {"label": "K32", "matrix": [3, 2], "x": 2, "y": 3}, {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4}, {"label": "K41", "matrix": [4, 1], "x": 1, "y": 4}, {"label": "K42", "matrix": [4, 2], "x": 2, "y": 4}, - {"label": "K43", "matrix": [4, 3], "h": 2, "x": 3, "y": 3} + {"label": "K43", "matrix": [4, 3], "x": 3, "y": 3, "h": 2} ] }, "LAYOUT_2u_enter_2u_zero": { @@ -126,12 +134,12 @@ {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, {"label": "K32", "matrix": [3, 2], "x": 2, "y": 3}, - {"label": "K41", "matrix": [4, 1], "h": 2, "x": 0, "y": 4}, + {"label": "K41", "matrix": [4, 1], "x": 0, "y": 4, "w": 2}, {"label": "K42", "matrix": [4, 2], "x": 2, "y": 4}, - {"label": "K43", "matrix": [4, 3], "h": 2, "x": 3, "y": 3} + {"label": "K43", "matrix": [4, 3], "x": 3, "y": 3, "h": 2} ] }, - "LAYOUT_2u_plus_2u_enter_2u_zero": { + "LAYOUT_numpad_5x4": { "layout": [ {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, @@ -143,13 +151,13 @@ {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2}, {"label": "K21", "matrix": [2, 1], "x": 1, "y": 2}, {"label": "K22", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "K23", "matrix": [2, 3], "h": 2, "x": 3, "y": 1}, + {"label": "K23", "matrix": [2, 3], "x": 3, "y": 1, "h": 2}, {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, {"label": "K32", "matrix": [3, 2], "x": 2, "y": 3}, - {"label": "K41", "matrix": [4, 1], "h": 2, "x": 0, "y": 4}, + {"label": "K41", "matrix": [4, 1], "x": 0, "y": 4, "w": 2}, {"label": "K42", "matrix": [4, 2], "x": 2, "y": 4}, - {"label": "K43", "matrix": [4, 3], "h": 2, "x": 3, "y": 3} + {"label": "K43", "matrix": [4, 3], "x": 3, "y": 3, "h": 2} ] }, "LAYOUT_mirrored_2u_enter": { @@ -169,7 +177,7 @@ {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, {"label": "K32", "matrix": [3, 2], "x": 2, "y": 3}, {"label": "K33", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "K40", "matrix": [4, 0], "h": 2, "x": 0, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 3, "h": 2}, {"label": "K41", "matrix": [4, 1], "x": 1, "y": 4}, {"label": "K42", "matrix": [4, 2], "x": 2, "y": 4}, {"label": "K43", "matrix": [4, 3], "x": 3, "y": 4} @@ -184,14 +192,14 @@ {"label": "K11", "matrix": [1, 1], "x": 1, "y": 1}, {"label": "K12", "matrix": [1, 2], "x": 2, "y": 1}, {"label": "K13", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "K20", "matrix": [2, 0], "h": 2, "x": 0, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 1, "h": 2}, {"label": "K21", "matrix": [2, 1], "x": 1, "y": 2}, {"label": "K22", "matrix": [2, 2], "x": 2, "y": 2}, {"label": "K23", "matrix": [2, 3], "x": 3, "y": 2}, {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, {"label": "K32", "matrix": [3, 2], "x": 2, "y": 3}, {"label": "K33", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "K40", "matrix": [4, 0], "h": 2, "x": 0, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 3, "h": 2}, {"label": "K41", "matrix": [4, 1], "x": 1, "y": 4}, {"label": "K42", "matrix": [4, 2], "x": 2, "y": 4}, {"label": "K43", "matrix": [4, 3], "x": 3, "y": 4} @@ -214,9 +222,9 @@ {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, {"label": "K32", "matrix": [3, 2], "x": 2, "y": 3}, {"label": "K33", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "K40", "matrix": [4, 0], "h": 2, "x": 0, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 3, "h": 2}, {"label": "K41", "matrix": [4, 1], "x": 1, "y": 4}, - {"label": "K42", "matrix": [4, 2], "w": 2, "x": 2, "y": 4} + {"label": "K42", "matrix": [4, 2], "x": 2, "y": 4, "w": 2} ] }, "LAYOUT_mirrored_2u_plus_2u_enter_2u_zero": { @@ -228,16 +236,16 @@ {"label": "K11", "matrix": [1, 1], "x": 1, "y": 1}, {"label": "K12", "matrix": [1, 2], "x": 2, "y": 1}, {"label": "K13", "matrix": [1, 3], "x": 3, "y": 1}, - {"label": "K20", "matrix": [2, 0], "h": 2, "x": 0, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 1, "h": 2}, {"label": "K21", "matrix": [2, 1], "x": 1, "y": 2}, {"label": "K22", "matrix": [2, 2], "x": 2, "y": 2}, {"label": "K23", "matrix": [2, 3], "x": 3, "y": 2}, {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, {"label": "K32", "matrix": [3, 2], "x": 2, "y": 3}, {"label": "K33", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "K40", "matrix": [4, 0], "h": 2, "x": 0, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 3, "h": 2}, {"label": "K41", "matrix": [4, 1], "x": 1, "y": 4}, - {"label": "K42", "matrix": [4, 2], "w": 2, "x": 2, "y": 4} + {"label": "K42", "matrix": [4, 2], "x": 2, "y": 4, "w": 2} ] } } diff --git a/keyboards/viktus/osav2_numpad/keymaps/default/keymap.c b/keyboards/viktus/osav2_numpad/keymaps/default/keymap.c index ce8a1d27741..ac99f1d8c7c 100644 --- a/keyboards/viktus/osav2_numpad/keymaps/default/keymap.c +++ b/keyboards/viktus/osav2_numpad/keymaps/default/keymap.c @@ -17,7 +17,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all_split( + [0] = LAYOUT_ortho_5x4( KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PEQL, diff --git a/keyboards/viktus/osav2_numpad/keymaps/via/keymap.c b/keyboards/viktus/osav2_numpad/keymaps/via/keymap.c index ce8a1d27741..ac99f1d8c7c 100644 --- a/keyboards/viktus/osav2_numpad/keymaps/via/keymap.c +++ b/keyboards/viktus/osav2_numpad/keymaps/via/keymap.c @@ -17,7 +17,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all_split( + [0] = LAYOUT_ortho_5x4( KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PEQL, diff --git a/keyboards/viktus/osav2_numpad_topre/ec.c b/keyboards/viktus/osav2_numpad_topre/ec.c new file mode 100644 index 00000000000..e4f59c3b6bf --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/ec.c @@ -0,0 +1,181 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +#include "ec.h" +#include "analog.h" +//#include "debug.h" // needed for debugging + +// sensing channel definitions +#define A0 0 +#define A1 1 +#define A2 2 +#define A3 3 +#define A4 4 +#define A5 5 +#define A6 6 +#define A7 7 + +// analog connection settings +#define DISCHARGE_PIN B5 +#define ANALOG_PORT B6 + +#ifndef MUX_SEL_PIN +# define MUX_SEL_PINS \ + { D6, D7, B4 } +#endif + +// pin connections +const uint8_t row_channels[] = MATRIX_ROW_PINS; +const uint8_t col_pins[] = MATRIX_COL_PINS; +const uint8_t mux_sel_pins[] = MUX_SEL_PINS; + +_Static_assert(sizeof(mux_sel_pins) == 3, "invalid MUX_SEL_PINS"); + +static ec_config_t config; +static uint16_t ec_sw_value[MATRIX_COLS][MATRIX_ROWS]; + +static inline void discharge_capacitor(void) { setPinOutput(DISCHARGE_PIN); } +static inline void charge_capacitor(uint8_t col) { + setPinInput(DISCHARGE_PIN); + writePinHigh(col_pins[col]); +} + +static inline void clear_all_col_pins(void) { + for (int col = 0; col < sizeof(col_pins); col++) { + writePinLow(col_pins[col]); + } +} + +void init_mux_sel(void) { + for (int idx = 0; idx < sizeof(mux_sel_pins); idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +void select_mux(uint8_t row) { + uint8_t ch = row_channels[row]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +void init_col(void) { + for (int idx = 0; idx < sizeof(col_pins); idx++) { + setPinOutput(col_pins[idx]); + writePinLow(col_pins[idx]); + } +} + +void ec_init(ec_config_t const* const ec_config) { + // save config + config = *ec_config; + + // initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutput(DISCHARGE_PIN); + + // set analog reference + analogReference(ADC_REF_POWER); + + // initialize drive lines + init_col(); + + // initialize multiplexer select pin + init_mux_sel(); + + // set discharge pin to charge mode + setPinInput(DISCHARGE_PIN); +} + +uint16_t ec_readkey_raw(uint8_t col, uint8_t row) { + uint16_t sw_value = 0; + + discharge_capacitor(); + + select_mux(row); + + clear_all_col_pins(); + + cli(); + + charge_capacitor(col); + + sw_value = analogReadPin(ANALOG_PORT); + + sei(); + + return sw_value; +} + +bool ec_update_key(matrix_row_t* current_row, matrix_row_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt) { + bool current_state = (*current_row >> col) & 1; + + // press to release + if (current_state && sw_value < reset_pt) { + *current_row &= ~(MATRIX_ROW_SHIFTER << col); + return true; + } + + // rest to press + if ((!current_state) && sw_value > actuation_pt) { + *current_row |= (MATRIX_ROW_SHIFTER << col); + return true; + } + + return false; +} + +bool ec_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + uint16_t reset_pt = config.reset_pt; + uint16_t actuation_pt = config.actuation_pt; + + //Modifying threshold values for overlapping pads + switch(row) { + case 1: + case 2: + case 3: + case 4: + switch(col) { + case 3: // lower threshold for plus and enter: (37 rest, 61 btm) + reset_pt = 45; + actuation_pt = 50; + break; + } + break; + } + + ec_sw_value[col][row] = ec_readkey_raw(col, row); + updated |= ec_update_key(¤t_matrix[row], col, ec_sw_value[col][row], reset_pt, actuation_pt); + } + } + + return updated; +} + +// console debugging for pad values +/*void ec_dprint_matrix(void) { + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + dprintf("%5d", ec_sw_value[col][row]); + } + dprintf("\n"); + } +}*/ diff --git a/keyboards/viktus/osav2_numpad_topre/ec.h b/keyboards/viktus/osav2_numpad_topre/ec.h new file mode 100644 index 00000000000..33bdb2d5eff --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/ec.h @@ -0,0 +1,31 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include + +#include "matrix.h" + +typedef struct { + uint16_t reset_pt; + uint16_t actuation_pt; +} ec_config_t; + +void ec_init(ec_config_t const* const ec_config); +bool ec_matrix_scan(matrix_row_t current_matrix[]); +//void ec_dprint_matrix(void); // needed for debugging +uint16_t ec_readkey_raw(uint8_t col, uint8_t row); +bool ec_update_key(matrix_row_t* current_row, uint8_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt); diff --git a/keyboards/viktus/osav2_numpad_topre/info.json b/keyboards/viktus/osav2_numpad_topre/info.json new file mode 100644 index 00000000000..55ca939e3f4 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/info.json @@ -0,0 +1,100 @@ +{ + "manufacturer": "Viktus Design LLC", + "keyboard_name": "OSAv2 Numpad - Topre", + "maintainer": "BlindAssassin111", + "url": "https://viktus.design", + "usb": { + "device_version": "1.1.0", + "vid": "0x5644", + "pid": "0x4E54" + }, + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["F5", "F6", "D3", "D2"], + "rows": ["A1", "A0", "A3", "A2", "A4"] + }, + "layouts": { + "LAYOUT_ortho_5x4": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "x": 1, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 2, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 3, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "x": 1, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 2, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 3, "y": 2 }, + { "label": "K30", "matrix": [3, 0], "x": 0, "y": 3 }, + { "label": "K31", "matrix": [3, 1], "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "K40", "matrix": [4, 0], "x": 0, "y": 4 }, + { "label": "K41", "matrix": [4, 1], "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "x": 2, "y": 4 }, + { "label": "K43", "matrix": [4, 3], "x": 3, "y": 4 } + ] + }, + "LAYOUT_split_plus_2u_enter": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "x": 1, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 2, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 3, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "x": 1, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 2, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 3, "y": 2 }, + { "label": "K30", "matrix": [3, 0], "x": 0, "y": 3 }, + { "label": "K31", "matrix": [3, 1], "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "h": 2, "x": 3, "y": 3 }, + { "label": "K40", "matrix": [4, 0], "x": 0, "y": 4 }, + { "label": "K41", "matrix": [4, 1], "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "x": 2, "y": 4 } + ] + }, + "LAYOUT_2u_plus_2u_enter": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "x": 1, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 2, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "x": 1, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 2, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "h": 2, "x": 3, "y": 1 }, + { "label": "K30", "matrix": [3, 0], "x": 0, "y": 3 }, + { "label": "K31", "matrix": [3, 1], "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "h": 2, "x": 3, "y": 3 }, + { "label": "K40", "matrix": [4, 0], "x": 0, "y": 4 }, + { "label": "K41", "matrix": [4, 1], "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "x": 2, "y": 4 } + ] + } + } +} diff --git a/keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c b/keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c new file mode 100644 index 00000000000..7545c946c3f --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x4( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PEQL, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_DEL + ) +}; diff --git a/keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c b/keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c new file mode 100644 index 00000000000..7545c946c3f --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x4( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PEQL, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_DEL + ) +}; diff --git a/keyboards/viktus/osav2_numpad_topre/keymaps/via/rules.mk b/keyboards/viktus/osav2_numpad_topre/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/viktus/osav2_numpad_topre/osav2_numpad_topre.c b/keyboards/viktus/osav2_numpad_topre/osav2_numpad_topre.c new file mode 100644 index 00000000000..2337fc55f39 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/osav2_numpad_topre.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +#include "ec.h" +#include "matrix.h" +//#include "debug.h" // needed for debugging + +#define RESET_PT 55 +#define ACTUATION_PT 65 + +// console debugging for pad values +void keyboard_post_init_kb() { + debug_enable = true; + debug_matrix = true; +} + +void matrix_init_custom(void) { + ec_config_t ec_config = {.reset_pt = RESET_PT, .actuation_pt = ACTUATION_PT}; + + ec_init(&ec_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ec_matrix_scan(current_matrix); + + // console debugging for pad values + /*static int cnt = 0; + if (cnt++ == 1000) { + cnt = 0; + ec_dprint_matrix(); + dprintf("\n"); + }*/ + + return updated; +} diff --git a/keyboards/viktus/osav2_numpad_topre/readme.md b/keyboards/viktus/osav2_numpad_topre/readme.md new file mode 100644 index 00000000000..990bfe04fe7 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/readme.md @@ -0,0 +1,27 @@ +# OSAv2 Numpad - Topre + +![osav2_numpad_topre](https://i.imgur.com/G6yNtJMh.png) + +An OSAv2 Numpad in topre flavor. + +- Keyboard Maintainer: BlindAssassin111 +- Hardware Supported: OSAv2 Numpad Topre PCB +- Hardware Availability: Viktus Design LLC + +Make example for this keyboard (after setting up your build environment): + + make viktus/osav2_numpad_topre:default + +Flashing example for this keyboard: + + make viktus/osav2_numpad_topre: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/viktus/osav2_numpad_topre/rules.mk b/keyboards/viktus/osav2_numpad_topre/rules.mk new file mode 100644 index 00000000000..037e26c530c --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += ec.c diff --git a/keyboards/viktus/osav2_topre/ec.c b/keyboards/viktus/osav2_topre/ec.c new file mode 100644 index 00000000000..fd2e8fa0ec5 --- /dev/null +++ b/keyboards/viktus/osav2_topre/ec.c @@ -0,0 +1,205 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +#include "ec.h" +#include "analog.h" +//#include "debug.h" // needed for debugging + +// sensing channel definitions +#define A0 0 +#define A1 1 +#define A2 2 +#define A3 3 +#define A4 4 +#define A5 5 +#define A6 6 +#define A7 7 + +// analog connection settings +#define DISCHARGE_PIN D3 +#define ANALOG_PORT D4 + +#ifndef MUX_SEL_PIN +# define MUX_SEL_PINS \ + { D0, D1, D2 } +#endif + +// pin connections +const uint8_t row_channels[] = MATRIX_ROW_PINS; +const uint8_t col_pins[] = MATRIX_COL_PINS; +const uint8_t mux_sel_pins[] = MUX_SEL_PINS; + +_Static_assert(sizeof(mux_sel_pins) == 3, "invalid MUX_SEL_PINS"); + +static ec_config_t config; +static uint16_t ec_sw_value[MATRIX_COLS][MATRIX_ROWS]; + +static inline void discharge_capacitor(void) { setPinOutput(DISCHARGE_PIN); } +static inline void charge_capacitor(uint8_t col) { + setPinInput(DISCHARGE_PIN); + writePinHigh(col_pins[col]); +} + +static inline void clear_all_col_pins(void) { + for (int col = 0; col < sizeof(col_pins); col++) { + writePinLow(col_pins[col]); + } +} + +void init_mux_sel(void) { + for (int idx = 0; idx < sizeof(mux_sel_pins); idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +void select_mux(uint8_t row) { + uint8_t ch = row_channels[row]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +void init_col(void) { + for (int idx = 0; idx < sizeof(col_pins); idx++) { + setPinOutput(col_pins[idx]); + writePinLow(col_pins[idx]); + } +} + +void ec_init(ec_config_t const* const ec_config) { + // save config + config = *ec_config; + + // initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutput(DISCHARGE_PIN); + + // set analog reference + analogReference(ADC_REF_POWER); + + // initialize drive lines + init_col(); + + // initialize multiplexer select pin + init_mux_sel(); + + // set discharge pin to charge mode + setPinInput(DISCHARGE_PIN); +} + +uint16_t ec_readkey_raw(uint8_t col, uint8_t row) { + uint16_t sw_value = 0; + + discharge_capacitor(); + + select_mux(row); + + clear_all_col_pins(); + + cli(); + + charge_capacitor(col); + + sw_value = analogReadPin(ANALOG_PORT); + + sei(); + + return sw_value; +} + +bool ec_update_key(matrix_row_t* current_row, matrix_row_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt) { + bool current_state = (*current_row >> col) & 1; + + // press to release + if (current_state && sw_value < reset_pt) { + *current_row &= ~(MATRIX_ROW_SHIFTER << col); + return true; + } + + // release to press + if ((!current_state) && sw_value > actuation_pt) { + *current_row |= (MATRIX_ROW_SHIFTER << col); + return true; + } + + return false; +} + +bool ec_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + uint16_t reset_pt = config.reset_pt; + uint16_t actuation_pt = config.actuation_pt; + + //Modifying threshold values for overlapping pads + switch(row) { + case 0: + switch(col) { + case 14: // lower threshold for split backspace: left 1U( rest, btm) + case 15: // lower threshold for 2U backspace: 2U(38 rest, 60 btm) + reset_pt = 44; + actuation_pt = 48; + break; + } + break; + case 3: + switch(col) { + case 14: // Lower threshold for right shift: 1.75U(40 rest, 70 btm) + reset_pt = 48; + actuation_pt = 53; + break; + } + break; + case 4: + switch(col) { + case 3: // Lower threshold for left space: col3( rest, btm) + case 4: // Lower threshold for left space: col4(38 rest, 88 btm) + reset_pt = 50; + actuation_pt = 60; + break; + case 5: // Lower threshold for left space: col5( rest, btm) + case 6: // Lower threshold for left space: col6(40 rest, 80 btm) + reset_pt = 48; + actuation_pt = 58; + break; + case 14: // Lower threshold for right shift: 2.75U( rest, btm) + reset_pt = 48; + actuation_pt = 53; + break; + } + break; + } + + ec_sw_value[col][row] = ec_readkey_raw(col, row); + updated |= ec_update_key(¤t_matrix[row], col, ec_sw_value[col][row], reset_pt, actuation_pt); + } + } + + return updated; +} + +// console debugging for pad values +/*void ec_dprint_matrix(void) { + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + dprintf("%5d", ec_sw_value[col][row]); + } + dprintf("\n"); + } +}*/ diff --git a/keyboards/viktus/osav2_topre/ec.h b/keyboards/viktus/osav2_topre/ec.h new file mode 100644 index 00000000000..76da647dc86 --- /dev/null +++ b/keyboards/viktus/osav2_topre/ec.h @@ -0,0 +1,31 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include + +#include "matrix.h" + +typedef struct { + uint16_t reset_pt; + uint16_t actuation_pt; +} ec_config_t; + +void ec_init(ec_config_t const* const ec_config); +bool ec_matrix_scan(matrix_row_t current_matrix[]); +//void ec_dprint_matrix(void); // needed for debugging +uint16_t ec_readkey_raw(uint8_t col, uint8_t row); +bool ec_update_key(matrix_row_t* current_row, matrix_row_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt); diff --git a/keyboards/viktus/osav2_topre/info.json b/keyboards/viktus/osav2_topre/info.json new file mode 100644 index 00000000000..1f2120ed57e --- /dev/null +++ b/keyboards/viktus/osav2_topre/info.json @@ -0,0 +1,588 @@ +{ + "manufacturer": "Viktus Design LLC", + "keyboard_name": "OSAv2 - Topre", + "maintainer": "BlindAssassin111", + "url": "https://viktus.design", + "usb": { + "device_version": "1.6.0", + "vid": "0x5644", + "pid": "0x446F" + }, + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "B7", "F1", "F0", "E6", "B0", "B1", "B2", "B3"], + "rows": ["A1", "A0", "A3", "A4", "A2"] + }, + "indicators": { + "num_lock": "B4", + "caps_lock": "D7", + "scroll_lock": "D6" + }, + "layouts": { + "LAYOUT_split_back": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K014", "matrix": [0, 14], "x": 15.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "x": 16.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K414", "matrix": [4, 14], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 4], "w": 2.25, "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 6], "x": 7.75, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_2u_back": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "w": 2, "x": 15.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K414", "matrix": [4, 14], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 4], "w": 2.25, "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 6], "x": 7.75, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_split_back_175u_shift": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K014", "matrix": [0, 14], "x": 15.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "x": 16.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K314", "matrix": [3, 14], "w": 1.75, "x": 15.75, "y": 3 }, + { "label": "K315", "matrix": [3, 15], "x": 17.5, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 4], "w": 2.25, "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 6], "x": 7.75, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_2u_back_175u_shift": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "w": 2, "x": 15.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K314", "matrix": [3, 14], "w": 1.75, "x": 15.75, "y": 3 }, + { "label": "K315", "matrix": [3, 15], "x": 17.5, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 4], "w": 2.25, "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 6], "x": 7.75, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_split_back_mirrored": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K014", "matrix": [0, 14], "x": 15.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "x": 16.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K414", "matrix": [4, 14], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 3], "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 5], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_2u_back_mirrored": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "w": 2, "x": 15.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K414", "matrix": [4, 14], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 3], "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 5], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_split_back_175u_shift_mirrored": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K014", "matrix": [0, 14], "x": 15.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "x": 16.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K314", "matrix": [3, 14], "w": 1.75, "x": 15.75, "y": 3 }, + { "label": "K315", "matrix": [3, 15], "x": 17.5, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 3], "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 5], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_2u_back_175u_shift_mirrored": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "w": 2, "x": 15.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K314", "matrix": [3, 14], "w": 1.75, "x": 15.75, "y": 3 }, + { "label": "K315", "matrix": [3, 15], "x": 17.5, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 3], "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 5], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + } + } +} diff --git a/keyboards/viktus/osav2_topre/keymaps/default/keymap.c b/keyboards/viktus/osav2_topre/keymaps/default/keymap.c new file mode 100644 index 00000000000..b9561c9b325 --- /dev/null +++ b/keyboards/viktus/osav2_topre/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_back_175u_shift( + KC_DEL, 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_TILDE, + 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_BSPC, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_split_back_175u_shift( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_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 + ) +}; diff --git a/keyboards/viktus/osav2_topre/keymaps/via/keymap.c b/keyboards/viktus/osav2_topre/keymaps/via/keymap.c new file mode 100644 index 00000000000..b9561c9b325 --- /dev/null +++ b/keyboards/viktus/osav2_topre/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_back_175u_shift( + KC_DEL, 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_TILDE, + 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_BSPC, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_split_back_175u_shift( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_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 + ) +}; diff --git a/keyboards/viktus/osav2_topre/keymaps/via/rules.mk b/keyboards/viktus/osav2_topre/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/viktus/osav2_topre/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/viktus/osav2_topre/osav2_topre.c b/keyboards/viktus/osav2_topre/osav2_topre.c new file mode 100644 index 00000000000..96b04090cf6 --- /dev/null +++ b/keyboards/viktus/osav2_topre/osav2_topre.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +#include "ec.h" +#include "matrix.h" +//#include "debug.h" // needed for debugging + +#define RESET_PT 55 +#define ACTUATION_PT 65 + +// console debugging for pad values +/*void keyboard_post_init_kb() { + debug_enable = true; + debug_matrix = true; +}*/ + +void matrix_init_custom(void) { + ec_config_t ec_config = {.reset_pt = RESET_PT, .actuation_pt = ACTUATION_PT}; + + ec_init(&ec_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ec_matrix_scan(current_matrix); + + // console debugging for pad values + /*static int cnt = 0; + if (cnt++ == 300) { + cnt = 0; + ec_dprint_matrix(); + dprintf("\n"); + }*/ + + return updated; +} diff --git a/keyboards/viktus/osav2_topre/readme.md b/keyboards/viktus/osav2_topre/readme.md new file mode 100644 index 00000000000..6379644cd69 --- /dev/null +++ b/keyboards/viktus/osav2_topre/readme.md @@ -0,0 +1,25 @@ +# OSAv2 Topre + +![osav2_topre](https://i.imgur.com/WTRrpQFh.png) + +- Keyboard Maintainer: BlindAssassin111 +- Hardware Supported: OSAv2 Topre PCBs +- Hardware Availability: Viktus Design LLC + +Make example for this keyboard (after setting up your build environment): + + make viktus/osav2_topre:default + +Flashing example for this keyboard: + + make viktus/osav2_topre: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/viktus/osav2_topre/rules.mk b/keyboards/viktus/osav2_topre/rules.mk new file mode 100644 index 00000000000..037e26c530c --- /dev/null +++ b/keyboards/viktus/osav2_topre/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += ec.c diff --git a/keyboards/viktus/sp_mini/config.h b/keyboards/viktus/sp_mini/config.h index bc80a8ebcab..6c7ecf85151 100644 --- a/keyboards/viktus/sp_mini/config.h +++ b/keyboards/viktus/sp_mini/config.h @@ -23,22 +23,6 @@ along with this program. If not, see . #define MASTER_LEFT #define USE_I2C -/* ws2812 RGB LED */ -#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_SPLIT -#define RGBLED_NUM 24 // Number of LEDs -#define RGBLED_SPLIT { 12, 12 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/viktus/sp_mini/info.json b/keyboards/viktus/sp_mini/info.json index 19bba8fea6a..6deb64c63ca 100644 --- a/keyboards/viktus/sp_mini/info.json +++ b/keyboards/viktus/sp_mini/info.json @@ -26,6 +26,22 @@ } } }, + "rgblight": { + "led_count": 24, + "split_count": [12, 12], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/viktus/styrka_topre/ec.c b/keyboards/viktus/styrka_topre/ec.c new file mode 100644 index 00000000000..c9980461afb --- /dev/null +++ b/keyboards/viktus/styrka_topre/ec.c @@ -0,0 +1,191 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ec.h" + +#include "quantum.h" +#include "analog.h" +//#include "debug.h" + +// sensing channel definitions +#define A0 0 +#define A1 1 +#define A2 2 +#define A3 3 +#define A4 4 +#define A5 5 +#define A6 6 +#define A7 7 + +// analog connection settings +#define DISCHARGE_PIN D3 +#define ANALOG_PORT D4 + +#ifndef MUX_SEL_PIN +# define MUX_SEL_PINS \ + { D0, D1, D2 } +#endif + +// pin connections +const uint8_t row_channels[] = MATRIX_ROW_PINS; +const uint8_t col_pins[] = MATRIX_COL_PINS; +const uint8_t mux_sel_pins[] = MUX_SEL_PINS; + +_Static_assert(sizeof(mux_sel_pins) == 3, "invalid MUX_SEL_PINS"); + +static ec_config_t config; +static uint16_t ec_sw_value[MATRIX_COLS][MATRIX_ROWS]; + +static inline void discharge_capacitor(void) { setPinOutput(DISCHARGE_PIN); } +static inline void charge_capacitor(uint8_t col) { + setPinInput(DISCHARGE_PIN); + writePinHigh(col_pins[col]); +} + +static inline void clear_all_col_pins(void) { + for (int col = 0; col < sizeof(col_pins); col++) { + writePinLow(col_pins[col]); + } +} + +void init_mux_sel(void) { + for (int idx = 0; idx < sizeof(mux_sel_pins); idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +void select_mux(uint8_t row) { + uint8_t ch = row_channels[row]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +void init_col(void) { + for (int idx = 0; idx < sizeof(col_pins); idx++) { + setPinOutput(col_pins[idx]); + writePinLow(col_pins[idx]); + } +} + +void ec_init(ec_config_t const* const ec_config) { + // save config + config = *ec_config; + + // initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutput(DISCHARGE_PIN); + + // set analog reference + analogReference(ADC_REF_POWER); + + // initialize drive lines + init_col(); + + // initialize multiplexer select pin + init_mux_sel(); + + // set discharge pin to charge mode + setPinInput(DISCHARGE_PIN); +} + +uint16_t ec_readkey_raw(uint8_t col, uint8_t row) { + uint16_t sw_value = 0; + + discharge_capacitor(); + + select_mux(row); + + clear_all_col_pins(); + + cli(); + + charge_capacitor(col); + + sw_value = analogReadPin(ANALOG_PORT); + + sei(); + + return sw_value; +} + +bool ec_update_key(matrix_row_t* current_row, matrix_row_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt) { + bool current_state = (*current_row >> col) & 1; + + // press to release + if (current_state && sw_value < reset_pt) { + *current_row &= ~(MATRIX_ROW_SHIFTER << col); + return true; + } + + // release to press + if ((!current_state) && sw_value > actuation_pt) { + *current_row |= (MATRIX_ROW_SHIFTER << col); + return true; + } + + return false; +} + +bool ec_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + uint16_t reset_pt = config.reset_pt; + uint16_t actuation_pt = config.actuation_pt; + + switch(row) { + case 0: + switch(col) { + case 15: // lower threshold for split backspace: + case 16: // lower threshold for 2U backspace: 2U(37 rest, 62 btm) + reset_pt = 45; + actuation_pt = 50; + break; + } + break; + case 4: + switch(col) { + case 8: // Lower threshold for spacebar: 7U(37 rest, 63 btm) + reset_pt = 55; + actuation_pt = 60; + break; + case 13: // Lower threshold for right bottom mods: 1.5U(40 rest, 65 btm) + reset_pt = 47; + actuation_pt = 53; + break; + } + break; + } + + ec_sw_value[col][row] = ec_readkey_raw(col, row); + updated |= ec_update_key(¤t_matrix[row], col, ec_sw_value[col][row], reset_pt, actuation_pt); + } + } + + return updated; +} + +// console debugging for pad values +/*void ec_dprint_matrix(void) { + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + dprintf("%5d", ec_sw_value[col][row]); + } + dprintf("\n"); + } +}*/ diff --git a/keyboards/viktus/styrka_topre/ec.h b/keyboards/viktus/styrka_topre/ec.h new file mode 100644 index 00000000000..ace8d092b5f --- /dev/null +++ b/keyboards/viktus/styrka_topre/ec.h @@ -0,0 +1,31 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include + +#include "matrix.h" + +typedef struct { + uint16_t reset_pt; + uint16_t actuation_pt; +} ec_config_t; + +void ec_init(ec_config_t const* const ec_config); +bool ec_matrix_scan(matrix_row_t current_matrix[]); +//void ec_dprint_matrix(void); +uint16_t ec_readkey_raw(uint8_t col, uint8_t row); +bool ec_update_key(matrix_row_t* current_row, matrix_row_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt); diff --git a/keyboards/viktus/styrka_topre/info.json b/keyboards/viktus/styrka_topre/info.json new file mode 100644 index 00000000000..f6d3560985f --- /dev/null +++ b/keyboards/viktus/styrka_topre/info.json @@ -0,0 +1,438 @@ +{ + "manufacturer": "Viktus Design LLC", + "keyboard_name": "Viktus Styrka - Topre", + "maintainer": "BlindAssassin111", + "url": "https://viktus.design", + "usb": { + "device_version": "1.3.0", + "vid": "0x5644", + "pid": "0x5354" + }, + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B5", "B4", "D7", "D6", "F6", "F5", "F4", "C7", "C6", "B6", "F7", "B1", "B2", "B3", "B7", "F1", "F0", "E6"], + "rows": ["A7", "A6", "A4", "A5", "A3"] + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K003", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K004", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K005", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K006", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K007", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K008", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K009", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K00A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K00B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K00C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K00D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K00E", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "K00F", "matrix": [0, 15], "x": 15, "y": 0}, + {"label": "K010", "matrix": [0, 16], "x": 16, "y": 0}, + {"label": "K011", "matrix": [0, 17], "x": 17, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 18, "y": 0}, + {"label": "K101", "matrix": [1, 1], "x": 19, "y": 0}, + {"label": "K102", "matrix": [1, 2], "x": 20, "y": 0}, + {"label": "K103", "matrix": [1, 3], "x": 21, "y": 0}, + {"label": "K104", "matrix": [1, 4], "x": 22, "y": 0}, + {"label": "K105", "matrix": [1, 5], "x": 23, "y": 0}, + {"label": "K106", "matrix": [1, 6], "x": 24, "y": 0}, + {"label": "K107", "matrix": [1, 7], "x": 25, "y": 0}, + {"label": "K108", "matrix": [1, 8], "x": 26, "y": 0}, + {"label": "K109", "matrix": [1, 9], "x": 27, "y": 0}, + {"label": "K10A", "matrix": [1, 10], "x": 28, "y": 0}, + {"label": "K10B", "matrix": [1, 11], "x": 29, "y": 0}, + {"label": "K10C", "matrix": [1, 12], "x": 30, "y": 0}, + {"label": "K10D", "matrix": [1, 13], "x": 31, "y": 0}, + {"label": "K10E", "matrix": [1, 14], "x": 32, "y": 0}, + {"label": "K110", "matrix": [1, 16], "x": 33, "y": 0}, + {"label": "K111", "matrix": [1, 17], "x": 34, "y": 0}, + {"label": "K200", "matrix": [2, 0], "x": 35, "y": 0}, + {"label": "K201", "matrix": [2, 1], "x": 36, "y": 0}, + {"label": "K202", "matrix": [2, 2], "x": 37, "y": 0}, + {"label": "K203", "matrix": [2, 3], "x": 38, "y": 0}, + {"label": "K204", "matrix": [2, 4], "x": 39, "y": 0}, + {"label": "K205", "matrix": [2, 5], "x": 40, "y": 0}, + {"label": "K206", "matrix": [2, 6], "x": 41, "y": 0}, + {"label": "K207", "matrix": [2, 7], "x": 42, "y": 0}, + {"label": "K208", "matrix": [2, 8], "x": 43, "y": 0}, + {"label": "K209", "matrix": [2, 9], "x": 44, "y": 0}, + {"label": "K20A", "matrix": [2, 10], "x": 45, "y": 0}, + {"label": "K20B", "matrix": [2, 11], "x": 46, "y": 0}, + {"label": "K20C", "matrix": [2, 12], "x": 47, "y": 0}, + {"label": "K20D", "matrix": [2, 13], "x": 48, "y": 0}, + {"label": "K20F", "matrix": [2, 15], "x": 49, "y": 0}, + {"label": "K211", "matrix": [2, 17], "x": 50, "y": 0}, + {"label": "K300", "matrix": [3, 0], "x": 51, "y": 0}, + {"label": "K301", "matrix": [3, 1], "x": 52, "y": 0}, + {"label": "K302", "matrix": [3, 2], "x": 53, "y": 0}, + {"label": "K304", "matrix": [3, 4], "x": 54, "y": 0}, + {"label": "K305", "matrix": [3, 5], "x": 55, "y": 0}, + {"label": "K306", "matrix": [3, 6], "x": 56, "y": 0}, + {"label": "K307", "matrix": [3, 7], "x": 57, "y": 0}, + {"label": "K308", "matrix": [3, 8], "x": 58, "y": 0}, + {"label": "K309", "matrix": [3, 9], "x": 59, "y": 0}, + {"label": "K30A", "matrix": [3, 10], "x": 60, "y": 0}, + {"label": "K30B", "matrix": [3, 11], "x": 61, "y": 0}, + {"label": "K30C", "matrix": [3, 12], "x": 62, "y": 0}, + {"label": "K30D", "matrix": [3, 13], "x": 63, "y": 0}, + {"label": "K30E", "matrix": [3, 14], "x": 64, "y": 0}, + {"label": "K310", "matrix": [3, 16], "x": 65, "y": 0}, + {"label": "K311", "matrix": [3, 17], "x": 66, "y": 0}, + {"label": "K400", "matrix": [4, 0], "x": 67, "y": 0}, + {"label": "K401", "matrix": [4, 1], "x": 68, "y": 0}, + {"label": "K402", "matrix": [4, 2], "x": 69, "y": 0}, + {"label": "K403", "matrix": [4, 3], "x": 70, "y": 0}, + {"label": "K404", "matrix": [4, 4], "x": 71, "y": 0}, + {"label": "K408", "matrix": [4, 8], "x": 72, "y": 0}, + {"label": "K40C", "matrix": [4, 12], "x": 73, "y": 0}, + {"label": "K40D", "matrix": [4, 13], "x": 74, "y": 0}, + {"label": "K40E", "matrix": [4, 14], "x": 75, "y": 0}, + {"label": "K410", "matrix": [4, 16], "x": 76, "y": 0}, + {"label": "K411", "matrix": [4, 17], "x": 77, "y": 0} + ] + }, + "LAYOUT_2u_6u": { + "layout": [ + {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "K003", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "K004", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "K005", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "K006", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "K007", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "K008", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "K009", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "K00A", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "K00B", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "K00C", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "K00D", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "K00E", "matrix": [0, 14], "x": 14.25, "y": 0}, + {"label": "K010", "matrix": [0, 16], "x": 15.25, "y": 0, "w": 2}, + {"label": "K011", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "K101", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "K102", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"label": "K103", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "K104", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "K105", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "K106", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "K107", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "K108", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "K109", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "K10A", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "K10B", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "K10C", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "K10D", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "K10E", "matrix": [1, 14], "x": 14.75, "y": 1}, + {"label": "K110", "matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5}, + {"label": "K111", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "K200", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "K201", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "K202", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"label": "K203", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "K204", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "K205", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "K206", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "K207", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "K208", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K209", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "K20A", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": "K20B", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "K20C", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "K20D", "matrix": [2, 13], "x": 14, "y": 2}, + {"label": "K20F", "matrix": [2, 15], "x": 15, "y": 2, "w": 2.25}, + {"label": "K211", "matrix": [2, 17], "x": 17.25, "y": 2}, + {"label": "K300", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "K301", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K302", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, + {"label": "K304", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "K305", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "K306", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "K307", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "K308", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "K309", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "K30A", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": "K30B", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "K30C", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "K30D", "matrix": [3, 13], "x": 13.5, "y": 3}, + {"label": "K30E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, + {"label": "K310", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "K311", "matrix": [3, 17], "x": 17.25, "y": 3}, + {"label": "K400", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "K401", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25}, + {"label": "K403", "matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25}, + {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, + {"label": "K408", "matrix": [4, 8], "x": 6, "y": 4, "w": 6.25}, + {"label": "K40C", "matrix": [4, 12], "x": 12.25, "y": 4}, + {"label": "K40D", "matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + {"label": "K40E", "matrix": [4, 14], "x": 15.25, "y": 4}, + {"label": "K410", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "K411", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_2u_7u": { + "layout": [ + {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "K003", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "K004", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "K005", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "K006", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "K007", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "K008", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "K009", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "K00A", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "K00B", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "K00C", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "K00D", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "K00E", "matrix": [0, 14], "x": 14.25, "y": 0}, + {"label": "K010", "matrix": [0, 16], "x": 15.25, "y": 0, "w": 2}, + {"label": "K011", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "K101", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "K102", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"label": "K103", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "K104", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "K105", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "K106", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "K107", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "K108", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "K109", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "K10A", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "K10B", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "K10C", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "K10D", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "K10E", "matrix": [1, 14], "x": 14.75, "y": 1}, + {"label": "K110", "matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5}, + {"label": "K111", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "K200", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "K201", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "K202", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"label": "K203", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "K204", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "K205", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "K206", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "K207", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "K208", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K209", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "K20A", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": "K20B", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "K20C", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "K20D", "matrix": [2, 13], "x": 14, "y": 2}, + {"label": "K20F", "matrix": [2, 15], "x": 15, "y": 2, "w": 2.25}, + {"label": "K211", "matrix": [2, 17], "x": 17.25, "y": 2}, + {"label": "K300", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "K301", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K302", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, + {"label": "K304", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "K305", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "K306", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "K307", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "K308", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "K309", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "K30A", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": "K30B", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "K30C", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "K30D", "matrix": [3, 13], "x": 13.5, "y": 3}, + {"label": "K30E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, + {"label": "K310", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "K311", "matrix": [3, 17], "x": 17.25, "y": 3}, + {"label": "K400", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "K401", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"label": "K403", "matrix": [4, 3], "x": 3.75, "y": 4}, + {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"label": "K408", "matrix": [4, 8], "x": 6.25, "y": 4, "w": 7}, + {"label": "K40D", "matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + {"label": "K40E", "matrix": [4, 14], "x": 15.25, "y": 4}, + {"label": "K410", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "K411", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + + "LAYOUT_split_6u": { + "layout": [ + {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "K003", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "K004", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "K005", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "K006", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "K007", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "K008", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "K009", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "K00A", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "K00B", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "K00C", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "K00D", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "K00E", "matrix": [0, 14], "x": 14.25, "y": 0}, + {"label": "K00F", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "K010", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "K011", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "K101", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "K102", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"label": "K103", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "K104", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "K105", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "K106", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "K107", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "K108", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "K109", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "K10A", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "K10B", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "K10C", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "K10D", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "K10E", "matrix": [1, 14], "x": 14.75, "y": 1}, + {"label": "K110", "matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5}, + {"label": "K111", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "K200", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "K201", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "K202", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"label": "K203", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "K204", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "K205", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "K206", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "K207", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "K208", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K209", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "K20A", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": "K20B", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "K20C", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "K20D", "matrix": [2, 13], "x": 14, "y": 2}, + {"label": "K20F", "matrix": [2, 15], "x": 15, "y": 2, "w": 2.25}, + {"label": "K211", "matrix": [2, 17], "x": 17.25, "y": 2}, + {"label": "K300", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "K301", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K302", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, + {"label": "K304", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "K305", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "K306", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "K307", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "K308", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "K309", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "K30A", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": "K30B", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "K30C", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "K30D", "matrix": [3, 13], "x": 13.5, "y": 3}, + {"label": "K30E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, + {"label": "K310", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "K311", "matrix": [3, 17], "x": 17.25, "y": 3}, + {"label": "K400", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "K401", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25}, + {"label": "K403", "matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25}, + {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, + {"label": "K408", "matrix": [4, 8], "x": 6, "y": 4, "w": 6.25}, + {"label": "K40C", "matrix": [4, 12], "x": 12.25, "y": 4}, + {"label": "K40D", "matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + {"label": "K40E", "matrix": [4, 14], "x": 15.25, "y": 4}, + {"label": "K410", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "K411", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_split_7u": { + "layout": [ + {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "K003", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "K004", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "K005", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "K006", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "K007", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "K008", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "K009", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "K00A", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "K00B", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "K00C", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "K00D", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "K00E", "matrix": [0, 14], "x": 14.25, "y": 0}, + {"label": "K00F", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "K010", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "K011", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "K101", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "K102", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"label": "K103", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "K104", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "K105", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "K106", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "K107", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "K108", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "K109", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "K10A", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "K10B", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "K10C", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "K10D", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "K10E", "matrix": [1, 14], "x": 14.75, "y": 1}, + {"label": "K110", "matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5}, + {"label": "K111", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "K200", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "K201", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "K202", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"label": "K203", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "K204", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "K205", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "K206", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "K207", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "K208", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K209", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "K20A", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": "K20B", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "K20C", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "K20D", "matrix": [2, 13], "x": 14, "y": 2}, + {"label": "K20F", "matrix": [2, 15], "x": 15, "y": 2, "w": 2.25}, + {"label": "K211", "matrix": [2, 17], "x": 17.25, "y": 2}, + {"label": "K300", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "K301", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K302", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, + {"label": "K304", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "K305", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "K306", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "K307", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "K308", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "K309", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "K30A", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": "K30B", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "K30C", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "K30D", "matrix": [3, 13], "x": 13.5, "y": 3}, + {"label": "K30E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, + {"label": "K310", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "K311", "matrix": [3, 17], "x": 17.25, "y": 3}, + {"label": "K400", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "K401", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"label": "K403", "matrix": [4, 3], "x": 3.75, "y": 4}, + {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"label": "K408", "matrix": [4, 8], "x": 6.25, "y": 4, "w": 7}, + {"label": "K40D", "matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + {"label": "K40E", "matrix": [4, 14], "x": 15.25, "y": 4}, + {"label": "K410", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "K411", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + } + } +} diff --git a/keyboards/viktus/styrka_topre/keymaps/default/keymap.c b/keyboards/viktus/styrka_topre/keymaps/default/keymap.c new file mode 100644 index 00000000000..5c3f8fa0310 --- /dev/null +++ b/keyboards/viktus/styrka_topre/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_2u_7u( + KC_F1, KC_F2, 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_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_PGUP, + KC_F5, KC_F6, 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_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ) +}; diff --git a/keyboards/viktus/styrka_topre/keymaps/via/keymap.c b/keyboards/viktus/styrka_topre/keymaps/via/keymap.c new file mode 100644 index 00000000000..5c3f8fa0310 --- /dev/null +++ b/keyboards/viktus/styrka_topre/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_2u_7u( + KC_F1, KC_F2, 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_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_PGUP, + KC_F5, KC_F6, 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_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ) +}; diff --git a/keyboards/viktus/styrka_topre/keymaps/via/rules.mk b/keyboards/viktus/styrka_topre/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/viktus/styrka_topre/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/viktus/styrka_topre/readme.md b/keyboards/viktus/styrka_topre/readme.md new file mode 100644 index 00000000000..20c9aedb5cc --- /dev/null +++ b/keyboards/viktus/styrka_topre/readme.md @@ -0,0 +1,27 @@ +# Styrka - Topre + +![Styrka - Topre](https://i.imgur.com/ZQzkL4hh.png) + +A topre PCB for the Viktus Styrka + +- Keyboard Maintainer: BlindAssassin111 +- Hardware Supported: Styrka Topre PCB +- Hardware Availability: Viktus Design LLC + +Make example for this keyboard (after setting up your build environment): + + make viktus/styrka_topre:default + +Flashing example for this keyboard: + + make viktus/styrka_topre: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/viktus/styrka_topre/rules.mk b/keyboards/viktus/styrka_topre/rules.mk new file mode 100644 index 00000000000..037e26c530c --- /dev/null +++ b/keyboards/viktus/styrka_topre/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += ec.c diff --git a/keyboards/viktus/styrka_topre/styrka_topre.c b/keyboards/viktus/styrka_topre/styrka_topre.c new file mode 100644 index 00000000000..96b04090cf6 --- /dev/null +++ b/keyboards/viktus/styrka_topre/styrka_topre.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Viktus Design LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +#include "ec.h" +#include "matrix.h" +//#include "debug.h" // needed for debugging + +#define RESET_PT 55 +#define ACTUATION_PT 65 + +// console debugging for pad values +/*void keyboard_post_init_kb() { + debug_enable = true; + debug_matrix = true; +}*/ + +void matrix_init_custom(void) { + ec_config_t ec_config = {.reset_pt = RESET_PT, .actuation_pt = ACTUATION_PT}; + + ec_init(&ec_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ec_matrix_scan(current_matrix); + + // console debugging for pad values + /*static int cnt = 0; + if (cnt++ == 300) { + cnt = 0; + ec_dprint_matrix(); + dprintf("\n"); + }*/ + + return updated; +} diff --git a/keyboards/vitamins_included/rev1/config.h b/keyboards/vitamins_included/rev1/config.h index 81dd72ca9ea..027686726df 100644 --- a/keyboards/vitamins_included/rev1/config.h +++ b/keyboards/vitamins_included/rev1/config.h @@ -28,18 +28,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGBLED_NUM 16 // Number of LEDs -#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 - /* Audio settings */ #ifdef AUDIO_ENABLE #define AUDIO_PIN C6 // Define this to enable the buzzer diff --git a/keyboards/vitamins_included/rev1/info.json b/keyboards/vitamins_included/rev1/info.json index f9fd3d018e9..ff1504a5aa7 100644 --- a/keyboards/vitamins_included/rev1/info.json +++ b/keyboards/vitamins_included/rev1/info.json @@ -10,6 +10,21 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/vitamins_included/rev2/config.h b/keyboards/vitamins_included/rev2/config.h index ce07676feeb..519af227a49 100644 --- a/keyboards/vitamins_included/rev2/config.h +++ b/keyboards/vitamins_included/rev2/config.h @@ -22,19 +22,6 @@ along with this program. If not, see . #define SPLIT_HAND_PIN B4 -#define RGBLED_NUM 12 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_SPLIT { 6, 6 } - /* Audio settings */ #ifdef AUDIO_ENABLE # define AUDIO_PIN C6 // Define this to enable the buzzer diff --git a/keyboards/vitamins_included/rev2/info.json b/keyboards/vitamins_included/rev2/info.json index 9170f80a7d4..ed8596538df 100644 --- a/keyboards/vitamins_included/rev2/info.json +++ b/keyboards/vitamins_included/rev2/info.json @@ -16,6 +16,22 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "led_count": 12, + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/w1_at/rules.mk b/keyboards/w1_at/rules.mk index 7000bb65710..7c0709f41e6 100644 --- a/keyboards/w1_at/rules.mk +++ b/keyboards/w1_at/rules.mk @@ -1,11 +1,6 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Do not put the microcontroller into power saving mode -# when we get USB suspend event. We want it to keep updating -# backlight effects. -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - # Build Options # change yes to no to disable # diff --git a/keyboards/waldo/config.h b/keyboards/waldo/config.h index a0d7763711a..b9449c4714b 100644 --- a/keyboards/waldo/config.h +++ b/keyboards/waldo/config.h @@ -37,20 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// RGB LED -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP diff --git a/keyboards/waldo/info.json b/keyboards/waldo/info.json index 0959861ca97..f6aa8a8190e 100644 --- a/keyboards/waldo/info.json +++ b/keyboards/waldo/info.json @@ -16,6 +16,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/walletburner/cajal/config.h b/keyboards/walletburner/cajal/config.h index 6d33342cf8a..af1fe3ab43e 100644 --- a/keyboards/walletburner/cajal/config.h +++ b/keyboards/walletburner/cajal/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/walletburner/cajal/info.json b/keyboards/walletburner/cajal/info.json index 36b66474653..5578ba3d8c1 100644 --- a/keyboards/walletburner/cajal/info.json +++ b/keyboards/walletburner/cajal/info.json @@ -18,6 +18,23 @@ {"pin_a": "D6", "pin_b": "D7"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/walletburner/neuron/config.h b/keyboards/walletburner/neuron/config.h index 2dae864ddb2..5f360813239 100644 --- a/keyboards/walletburner/neuron/config.h +++ b/keyboards/walletburner/neuron/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/walletburner/neuron/info.json b/keyboards/walletburner/neuron/info.json index fb6b3e96f8e..fc9aad49e20 100644 --- a/keyboards/walletburner/neuron/info.json +++ b/keyboards/walletburner/neuron/info.json @@ -8,6 +8,23 @@ "pid": "0x6E75", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/waterfowl/config.h b/keyboards/waterfowl/config.h index 40d9a4b8da4..2ddc7228d49 100644 --- a/keyboards/waterfowl/config.h +++ b/keyboards/waterfowl/config.h @@ -20,6 +20,3 @@ #define SPLIT_MODS_ENABLE #define SPLIT_WPM_ENABLE #define SPLIT_USB_DETECT - -// Tapping term -#define TAPPING_TERM 200 \ No newline at end of file diff --git a/keyboards/waterfowl/rules.mk b/keyboards/waterfowl/rules.mk index 4f359b9ee8d..0eed9cdd8f6 100644 --- a/keyboards/waterfowl/rules.mk +++ b/keyboards/waterfowl/rules.mk @@ -12,6 +12,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes # Enables the use of OLED displays -OLED_DRIVER = SSD1306 # Specifies the type of OLED SPLIT_KEYBOARD = yes # Enables split functionality -ENCODER_ENABLE = yes # Enables the encoders \ No newline at end of file +ENCODER_ENABLE = yes # Enables the encoders diff --git a/keyboards/wavtype/foundation/config.h b/keyboards/wavtype/foundation/config.h index 09d5a7bf8a8..4376386c3e6 100644 --- a/keyboards/wavtype/foundation/config.h +++ b/keyboards/wavtype/foundation/config.h @@ -3,22 +3,6 @@ #pragma once -# define RGBLED_NUM 16 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/wavtype/foundation/info.json b/keyboards/wavtype/foundation/info.json index ea0adf2ee54..b5e8793b8fb 100644 --- a/keyboards/wavtype/foundation/info.json +++ b/keyboards/wavtype/foundation/info.json @@ -8,6 +8,24 @@ "pid": "0x0003", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/wavtype/p01_ultra/config.h b/keyboards/wavtype/p01_ultra/config.h index e6b401aa75d..e01f469285d 100644 --- a/keyboards/wavtype/p01_ultra/config.h +++ b/keyboards/wavtype/p01_ultra/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 18 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== or choose 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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/wavtype/p01_ultra/info.json b/keyboards/wavtype/p01_ultra/info.json index fa04ce78501..7205b503664 100644 --- a/keyboards/wavtype/p01_ultra/info.json +++ b/keyboards/wavtype/p01_ultra/info.json @@ -8,6 +8,23 @@ "pid": "0x0004", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/weirdo/geminate60/config.h b/keyboards/weirdo/geminate60/config.h index 948bd0c7f1f..5e0e8b40a9f 100644 --- a/keyboards/weirdo/geminate60/config.h +++ b/keyboards/weirdo/geminate60/config.h @@ -15,12 +15,6 @@ */ #pragma once -#define RGBLED_NUM 1 -//#define RGBLIGHT_DISABLE_KEYCODES - - - - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/weirdo/geminate60/info.json b/keyboards/weirdo/geminate60/info.json index e8bda126ea0..722d1d3bfe0 100644 --- a/keyboards/weirdo/geminate60/info.json +++ b/keyboards/weirdo/geminate60/info.json @@ -8,6 +8,9 @@ "pid": "0x676D", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 1 + }, "ws2812": { "pin": "A6" }, diff --git a/keyboards/weirdo/kelowna/rgb64/config.h b/keyboards/weirdo/kelowna/rgb64/config.h index 0a446abebab..5c0ed9cf612 100644 --- a/keyboards/weirdo/kelowna/rgb64/config.h +++ b/keyboards/weirdo/kelowna/rgb64/config.h @@ -15,12 +15,6 @@ */ #pragma once -#define RGBLED_NUM 64 -//#define RGBLIGHT_DISABLE_KEYCODES - - - - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/weirdo/kelowna/rgb64/info.json b/keyboards/weirdo/kelowna/rgb64/info.json index 89053ba9cca..12188f6f302 100644 --- a/keyboards/weirdo/kelowna/rgb64/info.json +++ b/keyboards/weirdo/kelowna/rgb64/info.json @@ -8,6 +8,9 @@ "pid": "0x4C64", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 64 + }, "ws2812": { "pin": "A6" }, diff --git a/keyboards/weirdo/ls_60/config.h b/keyboards/weirdo/ls_60/config.h index d2b9299c8f0..5c0ed9cf612 100644 --- a/keyboards/weirdo/ls_60/config.h +++ b/keyboards/weirdo/ls_60/config.h @@ -15,12 +15,6 @@ */ #pragma once -#define RGBLED_NUM 1 -//#define RGBLIGHT_DISABLE_KEYCODES - - - - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/weirdo/ls_60/info.json b/keyboards/weirdo/ls_60/info.json index f386d40b669..0dadf9d32ce 100644 --- a/keyboards/weirdo/ls_60/info.json +++ b/keyboards/weirdo/ls_60/info.json @@ -8,6 +8,9 @@ "pid": "0x4C53", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 1 + }, "ws2812": { "pin": "A6" }, diff --git a/keyboards/weirdo/naiping/np64/config.h b/keyboards/weirdo/naiping/np64/config.h index 2c312472777..2c7e4c037b5 100644 --- a/keyboards/weirdo/naiping/np64/config.h +++ b/keyboards/weirdo/naiping/np64/config.h @@ -15,12 +15,6 @@ */ #pragma once -#define RGBLED_NUM 80 -//#define RGBLIGHT_DISABLE_KEYCODES - - - - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/weirdo/naiping/np64/info.json b/keyboards/weirdo/naiping/np64/info.json index 0f91be1b839..63e6297f7d5 100644 --- a/keyboards/weirdo/naiping/np64/info.json +++ b/keyboards/weirdo/naiping/np64/info.json @@ -8,6 +8,9 @@ "pid": "0x7064", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 80 + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/weirdo/naiping/nphhkb/config.h b/keyboards/weirdo/naiping/nphhkb/config.h index 0a3df009abe..5c0ed9cf612 100644 --- a/keyboards/weirdo/naiping/nphhkb/config.h +++ b/keyboards/weirdo/naiping/nphhkb/config.h @@ -15,12 +15,6 @@ */ #pragma once -#define RGBLED_NUM 78 -//#define RGBLIGHT_DISABLE_KEYCODES - - - - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/weirdo/naiping/nphhkb/info.json b/keyboards/weirdo/naiping/nphhkb/info.json index 730c17c61fa..931f81db1f0 100644 --- a/keyboards/weirdo/naiping/nphhkb/info.json +++ b/keyboards/weirdo/naiping/nphhkb/info.json @@ -8,6 +8,9 @@ "pid": "0x7068", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 78 + }, "ws2812": { "pin": "A7" }, diff --git a/keyboards/weirdo/naiping/npminila/config.h b/keyboards/weirdo/naiping/npminila/config.h index 782833a3afd..5c0ed9cf612 100644 --- a/keyboards/weirdo/naiping/npminila/config.h +++ b/keyboards/weirdo/naiping/npminila/config.h @@ -15,12 +15,6 @@ */ #pragma once -#define RGBLED_NUM 82 -//#define RGBLIGHT_DISABLE_KEYCODES - - - - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/weirdo/naiping/npminila/info.json b/keyboards/weirdo/naiping/npminila/info.json index 5162849225e..3824802e020 100644 --- a/keyboards/weirdo/naiping/npminila/info.json +++ b/keyboards/weirdo/naiping/npminila/info.json @@ -8,6 +8,9 @@ "pid": "0x706D", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 82 + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/wekey/polaris/info.json b/keyboards/wekey/polaris/info.json index 4d9d3e7cfa3..661799f750d 100644 --- a/keyboards/wekey/polaris/info.json +++ b/keyboards/wekey/polaris/info.json @@ -8,6 +8,9 @@ "pid": "0x0002", "device_version": "0.0.1" }, + "build": { + "debounce_type": "sym_defer_pk" + }, "matrix_pins": { "cols": ["E6", "B4", "B5", "B6", "D0", "D1", "D2", "D3"], "rows": ["F4", "F1", "F0", "B7", "F7", "D5", "C6", "C7", "F5", "F6"] diff --git a/keyboards/wekey/polaris/rules.mk b/keyboards/wekey/polaris/rules.mk index 7805f1f3c65..3b6a1809db1 100644 --- a/keyboards/wekey/polaris/rules.mk +++ b/keyboards/wekey/polaris/rules.mk @@ -10,5 +10,3 @@ 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 - -DEBOUNCE_TYPE = sym_defer_pk diff --git a/keyboards/wekey/we27/config.h b/keyboards/wekey/we27/config.h index a2d6575d8e5..30127708e0b 100644 --- a/keyboards/wekey/we27/config.h +++ b/keyboards/wekey/we27/config.h @@ -80,9 +80,6 @@ along with this program. If not, see . #endif -#define ENCODERS_CW_KEY { { 4, 5 } } -#define ENCODERS_CCW_KEY { { 4, 3 } } - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/wekey/we27/encoder_actions.c b/keyboards/wekey/we27/encoder_actions.c deleted file mode 100644 index 87a53676e66..00000000000 --- a/keyboards/wekey/we27/encoder_actions.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * Copyright 2021 drashna jael're (@drashna) - * Copyright 2021 uybv - * - * This 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 3 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 "encoder_actions.h" - -#ifdef ENCODER_ENABLE -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -#endif diff --git a/keyboards/wekey/we27/encoder_actions.h b/keyboards/wekey/we27/encoder_actions.h deleted file mode 100644 index 1a7fb72014d..00000000000 --- a/keyboards/wekey/we27/encoder_actions.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); diff --git a/keyboards/wekey/we27/info.json b/keyboards/wekey/we27/info.json index 7fa45a13abc..4d4081faf0c 100644 --- a/keyboards/wekey/we27/info.json +++ b/keyboards/wekey/we27/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F4", "F5", "C7", "D6", "D4"], @@ -24,6 +24,9 @@ "ws2812": { "pin": "C6" }, + "build": { + "debounce_type": "sym_defer_pk" + }, "processor": "atmega32u4", "bootloader": "caterina", "community_layouts": ["numpad_6x5"], @@ -63,45 +66,6 @@ {"matrix": [5, 3], "x": 3, "y": 5.5}, {"matrix": [4, 4], "x": 4, "y": 4.5, "h": 2} ] - }, - "LAYOUT_numpad_6x5_encoder": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.75}, - {"matrix": [0, 1], "x": 1, "y": 0.75}, - {"matrix": [0, 2], "x": 2, "y": 0.75}, - {"matrix": [0, 3], "x": 3, "y": 0.75}, - {"matrix": [0, 4], "x": 4, "y": 0.75}, - - {"matrix": [3, 4], "x": 3.75, "y": 0, "w": 0.75, "h": 0.75}, - {"matrix": [5, 4], "x": 4.5, "y": 0, "w": 0.75, "h": 0.75}, - - {"matrix": [1, 0], "x": 0, "y": 2.25}, - {"matrix": [1, 1], "x": 1, "y": 2.25}, - {"matrix": [1, 2], "x": 2, "y": 2.25}, - {"matrix": [1, 3], "x": 3, "y": 2.25}, - {"matrix": [1, 4], "x": 4, "y": 2.25}, - - {"matrix": [2, 0], "x": 0, "y": 3.25}, - {"matrix": [2, 1], "x": 1, "y": 3.25}, - {"matrix": [2, 2], "x": 2, "y": 3.25}, - {"matrix": [2, 3], "x": 3, "y": 3.25}, - - {"matrix": [3, 0], "x": 0, "y": 4.25}, - {"matrix": [3, 1], "x": 1, "y": 4.25}, - {"matrix": [3, 2], "x": 2, "y": 4.25}, - {"matrix": [3, 3], "x": 3, "y": 4.25}, - {"matrix": [2, 4], "x": 4, "y": 3.25, "h": 2}, - - {"matrix": [4, 0], "x": 0, "y": 5.25}, - {"matrix": [4, 1], "x": 1, "y": 5.25}, - {"matrix": [4, 2], "x": 2, "y": 5.25}, - {"matrix": [4, 3], "x": 3, "y": 5.25}, - - {"matrix": [5, 0], "x": 0, "y": 6.25}, - {"matrix": [5, 1], "x": 1, "y": 6.25, "w": 2}, - {"matrix": [5, 3], "x": 3, "y": 6.25}, - {"matrix": [4, 4], "x": 4, "y": 5.25, "h": 2} - ] } } } diff --git a/keyboards/wekey/we27/keymaps/default/keymap.c b/keyboards/wekey/we27/keymaps/default/keymap.c index 741b25e3e70..cd2d215d2c7 100644 --- a/keyboards/wekey/we27/keymaps/default/keymap.c +++ b/keyboards/wekey/we27/keymaps/default/keymap.c @@ -17,32 +17,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_numpad_6x5_encoder( - KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_VOLD, KC_VOLU, + [0] = LAYOUT_numpad_6x5( + KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_NUM, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, RGB_MOD, KC_P7 , KC_P8 , KC_P9 , RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, RGB_TOG, KC_P1 , KC_P2 , KC_P3 , MO(1) , KC_P0 , KC_PDOT, KC_PENT ), - [1] = LAYOUT_numpad_6x5_encoder( - _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + [1] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, - _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), - [2] = LAYOUT_numpad_6x5_encoder( - _______, _______, _______, _______, _______, _______, _______, + [2] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_numpad_6x5_encoder( - _______, _______, _______, _______, _______, _______, _______, + [3] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -50,3 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______ ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/wekey/we27/keymaps/default/rules.mk b/keyboards/wekey/we27/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/wekey/we27/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/wekey/we27/keymaps/via/keymap.c b/keyboards/wekey/we27/keymaps/via/keymap.c index 741b25e3e70..cd2d215d2c7 100644 --- a/keyboards/wekey/we27/keymaps/via/keymap.c +++ b/keyboards/wekey/we27/keymaps/via/keymap.c @@ -17,32 +17,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_numpad_6x5_encoder( - KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_VOLD, KC_VOLU, + [0] = LAYOUT_numpad_6x5( + KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_NUM, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, RGB_MOD, KC_P7 , KC_P8 , KC_P9 , RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, RGB_TOG, KC_P1 , KC_P2 , KC_P3 , MO(1) , KC_P0 , KC_PDOT, KC_PENT ), - [1] = LAYOUT_numpad_6x5_encoder( - _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + [1] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, - _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), - [2] = LAYOUT_numpad_6x5_encoder( - _______, _______, _______, _______, _______, _______, _______, + [2] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_numpad_6x5_encoder( - _______, _______, _______, _______, _______, _______, _______, + [3] = LAYOUT_numpad_6x5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -50,3 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______ ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/wekey/we27/keymaps/via/rules.mk b/keyboards/wekey/we27/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/wekey/we27/keymaps/via/rules.mk +++ b/keyboards/wekey/we27/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/wekey/we27/rules.mk b/keyboards/wekey/we27/rules.mk index c76f29ff753..1c5cc136ca4 100644 --- a/keyboards/wekey/we27/rules.mk +++ b/keyboards/wekey/we27/rules.mk @@ -13,7 +13,4 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes RGB_MATRIX_ENABLE = yes # Use RGB matrix -DEBOUNCE_TYPE = sym_defer_pk RGB_MATRIX_CUSTOM_KB = yes - -SRC += encoder_actions.c diff --git a/keyboards/wekey/we27/we27.c b/keyboards/wekey/we27/we27.c index 9f2b85d95f8..03ec6f5512e 100644 --- a/keyboards/wekey/we27/we27.c +++ b/keyboards/wekey/we27/we27.c @@ -15,7 +15,6 @@ */ #include "quantum.h" -#include "encoder_actions.h" #ifdef RGB_MATRIX_ENABLE @@ -45,14 +44,3 @@ led_config_t g_led_config = { { } }; #endif - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - encoder_action_register(index, clockwise); - return true; -}; diff --git a/keyboards/westfoxtrot/aanzee/config.h b/keyboards/westfoxtrot/aanzee/config.h index 9a29563ec7d..c024f9d8d91 100644 --- a/keyboards/westfoxtrot/aanzee/config.h +++ b/keyboards/westfoxtrot/aanzee/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 9 - #define RGBLIGHT_HUE_STEP 12 - #define RGBLIGHT_SAT_STEP 25 - #define RGBLIGHT_VAL_STEP 12 - #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 -#define RGBLIGHT_EFFECT_TWINKLE #define RGBW /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/westfoxtrot/aanzee/info.json b/keyboards/westfoxtrot/aanzee/info.json index 9dd3fcb2a40..9524eaea127 100644 --- a/keyboards/westfoxtrot/aanzee/info.json +++ b/keyboards/westfoxtrot/aanzee/info.json @@ -22,6 +22,25 @@ "caps_lock": "B2", "on_state": 0 }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 9, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/westfoxtrot/cyclops/keymaps/peippo/keymap.c b/keyboards/westfoxtrot/cyclops/keymaps/peippo/keymap.c index 94d134d7c98..40f8c98344d 100644 --- a/keyboards/westfoxtrot/cyclops/keymaps/peippo/keymap.c +++ b/keyboards/westfoxtrot/cyclops/keymaps/peippo/keymap.c @@ -61,19 +61,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, KC_MRWD, KC_MUTE, KC_MFFD), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/keymap.c b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/keymap.c index eed5e664a80..9763abe3691 100644 --- a/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/keymap.c +++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/keymap.c @@ -51,23 +51,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; - - -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; -} - -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { // Insert custom handling for CAPS_LOCK, NUM_LOCK, SCROLL_LOCK here - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { + if (led_state.num_lock) { writePinHigh(F4); writePinHigh(F1); writePinHigh(F5); @@ -76,4 +62,5 @@ void led_set_user(uint8_t usb_led) { writePinLow(F1); writePinLow(F5); } + return false; } diff --git a/keyboards/westfoxtrot/cypher/rev5/config.h b/keyboards/westfoxtrot/cypher/rev5/config.h index ed68bff9d45..cd1f84bc1fc 100644 --- a/keyboards/westfoxtrot/cypher/rev5/config.h +++ b/keyboards/westfoxtrot/cypher/rev5/config.h @@ -26,19 +26,3 @@ along with this program. If not, see . * This is useful for the Windows task manager shortcut (ctrl+shift+esc). */ #define GRAVE_ESC_CTRL_OVERRIDE - - #define RGBLED_NUM 10 - #define RGBLIGHT_HUE_STEP 12 - #define RGBLIGHT_SAT_STEP 25 - #define RGBLIGHT_VAL_STEP 12 - #define RGBLIGHT_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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/westfoxtrot/cypher/rev5/info.json b/keyboards/westfoxtrot/cypher/rev5/info.json index d3f57b6e67f..b72f7173e46 100644 --- a/keyboards/westfoxtrot/cypher/rev5/info.json +++ b/keyboards/westfoxtrot/cypher/rev5/info.json @@ -12,10 +12,30 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D0", "levels": 5, "breathing": true }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/westfoxtrot/prophet/rules.mk b/keyboards/westfoxtrot/prophet/rules.mk index 1d3680aec14..14d4af4e142 100644 --- a/keyboards/westfoxtrot/prophet/rules.mk +++ b/keyboards/westfoxtrot/prophet/rules.mk @@ -11,5 +11,3 @@ SLEEP_LED_ENABLE = yes BACKLIGHT_ENABLE = no RGBLIGHT_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/westm/westm68/rev1/config.h b/keyboards/westm/westm68/rev1/config.h deleted file mode 100644 index db711fcfd97..00000000000 --- a/keyboards/westm/westm68/rev1/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2021 WestM - * - * This 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 RGBLED_NUM 16 -#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/westm/westm68/rev1/info.json b/keyboards/westm/westm68/rev1/info.json index 70c31e162b6..4cecee049da 100644 --- a/keyboards/westm/westm68/rev1/info.json +++ b/keyboards/westm/westm68/rev1/info.json @@ -2,6 +2,21 @@ "usb": { "pid": "0x0101" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A8" } diff --git a/keyboards/westm/westm68/rev2/config.h b/keyboards/westm/westm68/rev2/config.h deleted file mode 100644 index db711fcfd97..00000000000 --- a/keyboards/westm/westm68/rev2/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2021 WestM - * - * This 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 RGBLED_NUM 16 -#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/westm/westm68/rev2/info.json b/keyboards/westm/westm68/rev2/info.json index 50711496d3c..0edcf115ede 100644 --- a/keyboards/westm/westm68/rev2/info.json +++ b/keyboards/westm/westm68/rev2/info.json @@ -2,6 +2,21 @@ "usb": { "pid": "0x0102" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A8" } diff --git a/keyboards/westm/westm9/rev1/config.h b/keyboards/westm/westm9/rev1/config.h index 17de75167cd..9492e7f6cac 100644 --- a/keyboards/westm/westm9/rev1/config.h +++ b/keyboards/westm/westm9/rev1/config.h @@ -16,18 +16,6 @@ #pragma once -#define RGBLED_NUM 14 -#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 - /* Default Oled init */ #define OLED_DISPLAY_128X64 #define OLED_BRIGHTNESS 255 diff --git a/keyboards/westm/westm9/rev1/info.json b/keyboards/westm/westm9/rev1/info.json index 5986e5c1c8d..5561baa5a9e 100644 --- a/keyboards/westm/westm9/rev1/info.json +++ b/keyboards/westm/westm9/rev1/info.json @@ -2,6 +2,21 @@ "usb": { "pid": "0x0301" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F1" } diff --git a/keyboards/westm/westm9/rev2/config.h b/keyboards/westm/westm9/rev2/config.h index 17de75167cd..9492e7f6cac 100644 --- a/keyboards/westm/westm9/rev2/config.h +++ b/keyboards/westm/westm9/rev2/config.h @@ -16,18 +16,6 @@ #pragma once -#define RGBLED_NUM 14 -#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 - /* Default Oled init */ #define OLED_DISPLAY_128X64 #define OLED_BRIGHTNESS 255 diff --git a/keyboards/westm/westm9/rev2/info.json b/keyboards/westm/westm9/rev2/info.json index faebf5d443c..66fe8159f55 100644 --- a/keyboards/westm/westm9/rev2/info.json +++ b/keyboards/westm/westm9/rev2/info.json @@ -2,6 +2,21 @@ "usb": { "pid": "0x0302" }, + "rgblight": { + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F1" } diff --git a/keyboards/westm/westm9/rules.mk b/keyboards/westm/westm9/rules.mk index 00ce09e1a6c..e522c525602 100644 --- a/keyboards/westm/westm9/rules.mk +++ b/keyboards/westm/westm9/rules.mk @@ -15,6 +15,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = yes # Enable the OLED feature -OLED_DRIVER = SSD1306 # OLED driver DEFAULT_FOLDER = westm/westm9/rev2 diff --git a/keyboards/westm/westmergo/config.h b/keyboards/westm/westmergo/config.h index 2b648278565..4e85b2e402a 100644 --- a/keyboards/westm/westmergo/config.h +++ b/keyboards/westm/westmergo/config.h @@ -16,18 +16,6 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 16 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/westm/westmergo/info.json b/keyboards/westm/westmergo/info.json index 30e82dfad69..6c2a87df222 100644 --- a/keyboards/westm/westmergo/info.json +++ b/keyboards/westm/westmergo/info.json @@ -8,6 +8,21 @@ "pid": "0x0201", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A8" }, diff --git a/keyboards/wilba_tech/wt70_jb/config.h b/keyboards/wilba_tech/wt70_jb/config.h index 914d9b2763c..9b6b3c79558 100644 --- a/keyboards/wilba_tech/wt70_jb/config.h +++ b/keyboards/wilba_tech/wt70_jb/config.h @@ -19,19 +19,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// RGBLIGHT configuation - #define RGBLED_NUM 2 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/wilba_tech/wt70_jb/info.json b/keyboards/wilba_tech/wt70_jb/info.json index d750e86d90a..e02cb615098 100644 --- a/keyboards/wilba_tech/wt70_jb/info.json +++ b/keyboards/wilba_tech/wt70_jb/info.json @@ -8,6 +8,23 @@ "pid": "0x001F", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index c79fc02cd99..28ee5fae81c 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -64,12 +64,12 @@ void backlight_init_drivers(void) { // Initialize I2C i2c_init(); - IS31FL3736_init( ISSI_ADDR_DEFAULT ); + is31fl3736_init( ISSI_ADDR_DEFAULT ); for ( uint8_t index = 0; index < 96; index++ ) { - IS31FL3736_mono_set_led_control_register( index, true ); + is31fl3736_mono_set_led_control_register( index, true ); } - IS31FL3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0x00 ); + is31fl3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0x00 ); } void backlight_set_key_hit(uint8_t row, uint8_t column) @@ -119,17 +119,17 @@ void backlight_set_suspend_state(bool state) void backlight_set_brightness_all( uint8_t value ) { - IS31FL3736_mono_set_brightness_all( value ); + is31fl3736_mono_set_brightness_all( value ); } void backlight_effect_all_off(void) { - IS31FL3736_mono_set_brightness_all( 0 ); + is31fl3736_mono_set_brightness_all( 0 ); } void backlight_effect_all_on(void) { - IS31FL3736_mono_set_brightness_all( g_config.brightness ); + is31fl3736_mono_set_brightness_all( g_config.brightness ); } void backlight_effect_raindrops(bool initialize) @@ -143,7 +143,7 @@ void backlight_effect_raindrops(bool initialize) // If not, all but one will stay the same as before. if ( initialize || i == led_to_change ) { - IS31FL3736_mono_set_brightness(i, rand() & 0xFF ); + is31fl3736_mono_set_brightness(i, rand() & 0xFF ); } } } @@ -165,9 +165,9 @@ void backlight_effect_indicators(void) // SW7,CS8 = (6*8+7) = 55 // SW8,CS8 = (7*8+7) = 63 // SW9,CS8 = (8*8+7) = 71 - IS31FL3736_mono_set_brightness(55, rgb.r); - IS31FL3736_mono_set_brightness(63, rgb.g); - IS31FL3736_mono_set_brightness(71, rgb.b); + is31fl3736_mono_set_brightness(55, rgb.r); + is31fl3736_mono_set_brightness(63, rgb.g); + is31fl3736_mono_set_brightness(71, rgb.b); #endif // MONO_BACKLIGHT_WT75_A // This pairs with "All Off" already setting zero brightness, @@ -181,19 +181,19 @@ defined(MONO_BACKLIGHT_WT75_C) || \ defined(MONO_BACKLIGHT_WT80_A) if ( host_keyboard_led_state().caps_lock ) { // SW3,CS1 = (2*8+0) = 16 - IS31FL3736_mono_set_brightness(16, 255); + is31fl3736_mono_set_brightness(16, 255); } #endif #if defined(MONO_BACKLIGHT_WT80_A) if ( host_keyboard_led_state().scroll_lock ) { // SW7,CS7 = (6*8+6) = 54 - IS31FL3736_mono_set_brightness(54, 255); + is31fl3736_mono_set_brightness(54, 255); } #endif #if defined(MONO_BACKLIGHT_WT75_C) if ( host_keyboard_led_state().scroll_lock ) { // SW7,CS8 = (6*8+7) = 55 - IS31FL3736_mono_set_brightness(55, 255); + is31fl3736_mono_set_brightness(55, 255); } #endif } @@ -361,7 +361,7 @@ void backlight_config_save(void) void backlight_update_pwm_buffers(void) { - IS31FL3736_update_pwm_buffers(ISSI_ADDR_DEFAULT,0x00); + is31fl3736_update_pwm_buffers(ISSI_ADDR_DEFAULT,0x00); } bool process_record_backlight(uint16_t keycode, keyrecord_t *record) diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 1cd00ae41f6..6c57416622c 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -1771,36 +1771,36 @@ void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led ) void backlight_update_pwm_buffers(void) { #if defined(RGB_BACKLIGHT_M6_B) - IS31FL3218_update_pwm_buffers(); + is31fl3218_update_pwm_buffers(); #elif defined(RGB_BACKLIGHT_PORTICO75) - IS31FL3741_update_pwm_buffers( ISSI_ADDR_1, 0 ); - IS31FL3741_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3741_update_pwm_buffers( ISSI_ADDR_1, 0 ); + is31fl3741_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_M10_C) - IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); - IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); + is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_HS60) - IS31FL3733_update_pwm_buffers( ISSI_ADDR_1, 0 ); - IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_pwm_buffers( ISSI_ADDR_1, 0 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_KW_MEGA) - IS31FL3733_update_pwm_buffers( ISSI_ADDR_1, 0 ); - IS31FL3733_update_pwm_buffers( ISSI_ADDR_2, 1 ); - IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_pwm_buffers( ISSI_ADDR_1, 0 ); + is31fl3733_update_pwm_buffers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); #elif defined(RGB_BACKLIGHT_NEBULA12) - IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); - IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); + is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_U80_A) static uint8_t driver = 0; switch ( driver ) { case 0: - IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); + is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); break; case 1: - IS31FL3731_update_pwm_buffers( ISSI_ADDR_2, 1 ); + is31fl3731_update_pwm_buffers( ISSI_ADDR_2, 1 ); break; case 2: - IS31FL3731_update_pwm_buffers( ISSI_ADDR_3, 2 ); + is31fl3731_update_pwm_buffers( ISSI_ADDR_3, 2 ); break; } if ( ++driver > 2 ) @@ -1808,31 +1808,31 @@ void backlight_update_pwm_buffers(void) driver = 0; } #else - IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); - IS31FL3731_update_pwm_buffers( ISSI_ADDR_2, 1 ); - IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); - IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); + is31fl3731_update_pwm_buffers( ISSI_ADDR_2, 1 ); + is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3731_update_led_control_registers( ISSI_ADDR_2, 1 ); #endif } void backlight_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) { #if defined(RGB_BACKLIGHT_M6_B) - IS31FL3218_set_color( index, red, green, blue ); + is31fl3218_set_color( index, red, green, blue ); #elif defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_KW_MEGA) - IS31FL3733_set_color( index, red, green, blue ); + is31fl3733_set_color( index, red, green, blue ); #elif defined (RGB_BACKLIGHT_PORTICO) - IS31FL3731_set_color( index, red, green, blue ); + is31fl3731_set_color( index, red, green, blue ); #elif defined (RGB_BACKLIGHT_PORTICO75) - IS31FL3741_set_color( index, red, green, blue ); + is31fl3741_set_color( index, red, green, blue ); #elif defined(RGB_BACKLIGHT_NK87) // This is done to avoid indicator LEDs being set if (( index != 63+64-1 ) && ( index != 48+64-1 )) { - IS31FL3733_set_color( index, red, green, blue ); + is31fl3733_set_color( index, red, green, blue ); } #elif defined(RGB_BACKLIGHT_DAWN60) if( index < RGB_MATRIX_LED_COUNT ) { - IS31FL3731_set_color( index, red, green, blue ); + is31fl3731_set_color( index, red, green, blue ); } else { g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].r = red; g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].g = green; @@ -1840,38 +1840,38 @@ void backlight_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL); } #else - IS31FL3731_set_color( index, red, green, blue ); + is31fl3731_set_color( index, red, green, blue ); #endif } void backlight_set_color_all( uint8_t red, uint8_t green, uint8_t blue ) { #if defined(RGB_BACKLIGHT_M6_B) - IS31FL3218_set_color_all( red, green, blue ); + is31fl3218_set_color_all( red, green, blue ); #elif defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_KW_MEGA) // This is done to avoid indicator LEDs being set for (int i = 0; i < BACKLIGHT_LED_COUNT; i++) { - IS31FL3733_set_color(i, red, green, blue); + is31fl3733_set_color(i, red, green, blue); } #elif defined (RGB_BACKLIGHT_PORTICO) // This is done to avoid indicator LEDs being set for (int i = 0; i < BACKLIGHT_LED_COUNT; i++) { - IS31FL3731_set_color(i, red, green, blue); + is31fl3731_set_color(i, red, green, blue); } #elif defined (RGB_BACKLIGHT_PORTICO75) // This is done to avoid indicator LEDs being set for (int i = 0; i < BACKLIGHT_LED_COUNT; i++) { - IS31FL3741_set_color(i, red, green, blue); + is31fl3741_set_color(i, red, green, blue); } #elif defined(RGB_BACKLIGHT_NK87) // This is done to avoid indicator LEDs being set for (int i = 0; i < BACKLIGHT_LED_COUNT; i++) { if (( i != 63+64-1 ) && ( i != 48+64-1 )) { - IS31FL3733_set_color(i, red, green, blue); + is31fl3733_set_color(i, red, green, blue); } } #elif defined(RGB_BACKLIGHT_DAWN60) - IS31FL3731_set_color_all( red, green, blue ); + is31fl3731_set_color_all( red, green, blue ); for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { g_ws2812_leds[i].r = red; g_ws2812_leds[i].g = green; @@ -1879,7 +1879,7 @@ void backlight_set_color_all( uint8_t red, uint8_t green, uint8_t blue ) } ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL); #else - IS31FL3731_set_color_all( red, green, blue ); + is31fl3731_set_color_all( red, green, blue ); #endif } @@ -2914,9 +2914,9 @@ void backlight_init_drivers(void) i2c_init(); #if defined(RGB_BACKLIGHT_M6_B) - IS31FL3218_init(); + is31fl3218_init(); #elif defined(RGB_BACKLIGHT_HS60) - IS31FL3733_init( ISSI_ADDR_1, 0 ); + is31fl3733_init( ISSI_ADDR_1, 0 ); for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { @@ -2932,28 +2932,28 @@ void backlight_init_drivers(void) ( index == 61-1 ) ); //LA61 #endif // This only caches it for later - IS31FL3733_set_led_control_register( index, enabled, enabled, enabled ); + is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_NK65) - IS31FL3733_init( ISSI_ADDR_1, 0 ); - IS31FL3733_init( ISSI_ADDR_2, 0 ); + is31fl3733_init( ISSI_ADDR_1, 0 ); + is31fl3733_init( ISSI_ADDR_2, 0 ); for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 6+64-1 ) ); //LB7-LB64 // This only caches it for later - IS31FL3733_set_led_control_register( index, enabled, enabled, enabled ); + is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } - IS31FL3733_set_led_control_register( 7+64-1, 0, 1, 0 ); //Enable LB7 green enable for indicators + is31fl3733_set_led_control_register( 7+64-1, 0, 1, 0 ); //Enable LB7 green enable for indicators // This actually updates the LED drivers - IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); #elif defined(RGB_BACKLIGHT_NK87) - IS31FL3733_init( ISSI_ADDR_1, 0 ); - IS31FL3733_init( ISSI_ADDR_2, 0 ); + is31fl3733_init( ISSI_ADDR_1, 0 ); + is31fl3733_init( ISSI_ADDR_2, 0 ); for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { @@ -2975,59 +2975,59 @@ void backlight_init_drivers(void) ( index == 58+64-1 ) || ( index == 62+64-1 ) ); // This only caches it for later - IS31FL3733_set_led_control_register( index, enabled, enabled, enabled ); + is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } - IS31FL3733_set_led_control_register( 48+64-1, 0, 0, 1 ); //Enable LB48 blue enable for indicators + is31fl3733_set_led_control_register( 48+64-1, 0, 0, 1 ); //Enable LB48 blue enable for indicators // This actually updates the LED drivers - IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); #elif defined(RGB_BACKLIGHT_NEBULA68) - IS31FL3733_init( ISSI_ADDR_1, 0 ); - IS31FL3733_init( ISSI_ADDR_2, 0 ); + is31fl3733_init( ISSI_ADDR_1, 0 ); + is31fl3733_init( ISSI_ADDR_2, 0 ); for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 5+64-1 ) ); //LB6-LB64 // This only caches it for later - IS31FL3733_set_led_control_register( index, enabled, enabled, enabled ); + is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); #elif defined(RGB_BACKLIGHT_PORTICO75) - IS31FL3741_init( ISSI_ADDR_1 ); + is31fl3741_init( ISSI_ADDR_1 ); bool enabled = true; for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { - IS31FL3741_set_led_control_register( index, enabled, enabled, enabled ); + is31fl3741_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - IS31FL3741_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3741_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_KW_MEGA) - IS31FL3733_init( ISSI_ADDR_1, 0 ); - IS31FL3733_init( ISSI_ADDR_2, 0 ); + is31fl3733_init( ISSI_ADDR_1, 0 ); + is31fl3733_init( ISSI_ADDR_2, 0 ); for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 6+64-1 ) ); //LB7-LB64 // This only caches it for later - IS31FL3733_set_led_control_register( index, enabled, enabled, enabled ); + is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); #else // Init the #1 driver - IS31FL3731_init( ISSI_ADDR_1 ); + is31fl3731_init( ISSI_ADDR_1 ); // Init the #2 driver (if used) #if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C) - IS31FL3731_init( ISSI_ADDR_2 ); + is31fl3731_init( ISSI_ADDR_2 ); #endif // Init the #3 driver (if used) #if defined(RGB_BACKLIGHT_U80_A) - IS31FL3731_init( ISSI_ADDR_3 ); + is31fl3731_init( ISSI_ADDR_3 ); #endif // Experimental feature, not in configuration yet @@ -3156,16 +3156,16 @@ void backlight_init_drivers(void) bool enabled = true; #endif // This only caches it for later - IS31FL3731_set_led_control_register( index, enabled, enabled, enabled ); + is31fl3731_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers // TODO: refactor this to use DRIVER_COUNT - IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 ); #if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C) - IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3731_update_led_control_registers( ISSI_ADDR_2, 1 ); #endif #if defined(RGB_BACKLIGHT_U80_A) - IS31FL3731_update_led_control_registers( ISSI_ADDR_3, 2 ); + is31fl3731_update_led_control_registers( ISSI_ADDR_3, 2 ); #endif #endif @@ -3399,11 +3399,11 @@ void backlight_test_led( uint8_t index, bool red, bool green, bool blue ) { if ( i == index ) { - IS31FL3731_set_led_control_register( i, red, green, blue ); + is31fl3731_set_led_control_register( i, red, green, blue ); } else { - IS31FL3731_set_led_control_register( i, false, false, false ); + is31fl3731_set_led_control_register( i, false, false, false ); } } } diff --git a/keyboards/willoucom/keypad/info.json b/keyboards/willoucom/keypad/info.json new file mode 100644 index 00000000000..dc517ccc164 --- /dev/null +++ b/keyboards/willoucom/keypad/info.json @@ -0,0 +1,63 @@ +{ + "manufacturer": "Willou.com", + "keyboard_name": "keypad", + "maintainer": "willoucom", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["GP0", "GP1", "GP2", "GP3", "GP4", "GP20", "GP5", "GP6", "GP7", "GP8", "GP9", "GP21", "GP10"], + ["GP11", "GP12", "GP13", "GP14", "GP22", "GP26", "GP15", "GP16", "GP17", "GP18", "GP19", "GP27", "GP28"] + ] + }, + "processor": "RP2040", + "tapping": { + "hold_on_other_key_press": true + }, + "usb": { + "device_version": "1.0.0", + "force_nkro": true, + "pid": "0x4B50", + "vid": "0x574A" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "GRV", "matrix": [0, 0], "x": 0, "y": 0.25}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "ESC", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "LSFT", "matrix": [0, 6], "x": 0, "y": 1.25}, + {"label": "Q", "matrix": [0, 7], "x": 1, "y": 1}, + {"label": "W", "matrix": [0, 8], "x": 2, "y": 1}, + {"label": "E", "matrix": [0, 9], "x": 3, "y": 1}, + {"label": "R", "matrix": [0, 10], "x": 4, "y": 1}, + {"label": "LBRC", "matrix": [0, 11], "x": 6.5, "y": 1}, + {"label": "LCTL", "matrix": [0, 12], "x": 0, "y": 2.25}, + {"label": "A", "matrix": [1, 0], "x": 1, "y": 2}, + {"label": "S", "matrix": [1, 1], "x": 2, "y": 2}, + {"label": "D", "matrix": [1, 2], "x": 3, "y": 2}, + {"label": "F", "matrix": [1, 3], "x": 4, "y": 2}, + {"label": "ENT", "matrix": [1, 4], "x": 5.5, "y": 2}, + {"label": "G", "matrix": [1, 5], "x": 7.5, "y": 2}, + {"label": "SPC", "matrix": [1, 6], "x": 0, "y": 3.25}, + {"label": "TAB", "matrix": [1, 7], "x": 1, "y": 3}, + {"label": "Z", "matrix": [1, 8], "x": 2, "y": 3}, + {"label": "X", "matrix": [1, 9], "x": 3, "y": 3}, + {"label": "C", "matrix": [1, 10], "x": 4, "y": 3}, + {"label": "RBRC", "matrix": [1, 11], "x": 6.5, "y": 3}, + {"label": "M", "matrix": [1, 12], "x": 6.5, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/willoucom/keypad/keymaps/default/keymap.json b/keyboards/willoucom/keypad/keymaps/default/keymap.json new file mode 100644 index 00000000000..c16729bd6cc --- /dev/null +++ b/keyboards/willoucom/keypad/keymaps/default/keymap.json @@ -0,0 +1,13 @@ +{ + "keyboard": "willoucom/keypad", + "layout": "LAYOUT", + "layers": [ + [ + "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_ESC", + "KC_LSFT", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_LBRC", + "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_ENT", "KC_G", + "KC_SPC", "KC_TAB", "KC_Z", "KC_X", "KC_C", "KC_RBRC", + "KC_M" + ] + ] +} \ No newline at end of file diff --git a/keyboards/willoucom/keypad/keymaps/via/keymap.json b/keyboards/willoucom/keypad/keymaps/via/keymap.json new file mode 100644 index 00000000000..0d233e59e6a --- /dev/null +++ b/keyboards/willoucom/keypad/keymaps/via/keymap.json @@ -0,0 +1,19 @@ +{ + "keyboard": "willoucom/keypad", + "config": { + "features": { + "via": true + } + }, + "keymap": "via", + "layout": "LAYOUT", + "layers": [ + [ + "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_ESC", + "KC_LSFT", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_LBRC", + "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_ENT", "KC_G", + "KC_SPC", "KC_TAB", "KC_Z", "KC_X", "KC_C", "KC_RBRC", + "KC_M" + ] + ] +} \ No newline at end of file diff --git a/keyboards/willoucom/keypad/readme.md b/keyboards/willoucom/keypad/readme.md new file mode 100644 index 00000000000..863ce79d37e --- /dev/null +++ b/keyboards/willoucom/keypad/readme.md @@ -0,0 +1,20 @@ +# willoucom/keypad + +A programmable keypad for Productivity and Gaming. + +* Keyboard Maintainer: [Wilfried JEANNIARD](https://github.com/willoucom) +* Product Page : [The Keypad](https://www.willou.com/keypad/) + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb willoucom/keypad -km default + +Flashing example for this keyboard: + + qmk flash -kb willoucom/keypad -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). + +## Bootloader + +Push the reset button twice. Then drop the u2f file in the usb drive. \ No newline at end of file diff --git a/keyboards/willoucom/keypad/rules.mk b/keyboards/willoucom/keypad/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/willoucom/keypad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/winkeyless/b87/config.h b/keyboards/winkeyless/b87/config.h deleted file mode 100644 index b585802fb85..00000000000 --- a/keyboards/winkeyless/b87/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2021 Joah Nelson (Jels) - * - * This 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 RGBLED_NUM 20 // Number of LEDs -// RGB effects -#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/winkeyless/b87/info.json b/keyboards/winkeyless/b87/info.json index 10b20c41c01..8a5f6fdbea4 100644 --- a/keyboards/winkeyless/b87/info.json +++ b/keyboards/winkeyless/b87/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/winkeyless/bface/config.h b/keyboards/winkeyless/bface/config.h deleted file mode 100644 index b7529e43111..00000000000 --- a/keyboards/winkeyless/bface/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro -Copyright 2017 Sebastian Kaim - -This 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 RGBLED_NUM 16 -#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/winkeyless/bface/info.json b/keyboards/winkeyless/bface/info.json index 2d716a89c78..6e8369272f2 100644 --- a/keyboards/winkeyless/bface/info.json +++ b/keyboards/winkeyless/bface/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/winkeyless/bmini/config.h b/keyboards/winkeyless/bmini/config.h deleted file mode 100644 index ddc21dae308..00000000000 --- a/keyboards/winkeyless/bmini/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 16 - -#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/winkeyless/bmini/info.json b/keyboards/winkeyless/bmini/info.json index 2a18caeed4c..05c6fbe9b8d 100644 --- a/keyboards/winkeyless/bmini/info.json +++ b/keyboards/winkeyless/bmini/info.json @@ -16,6 +16,21 @@ "backlight": { "pin": "D4" }, + "rgblight": { + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/winkeyless/bminiex/config.h b/keyboards/winkeyless/bminiex/config.h deleted file mode 100644 index 116c09d6ac7..00000000000 --- a/keyboards/winkeyless/bminiex/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This 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 RGBLED_NUM 20 - -#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/winkeyless/bminiex/info.json b/keyboards/winkeyless/bminiex/info.json index 03a8e408b51..fbd0f9b024a 100644 --- a/keyboards/winkeyless/bminiex/info.json +++ b/keyboards/winkeyless/bminiex/info.json @@ -17,6 +17,21 @@ "pin": "D4", "levels": 5 }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/winkeys/mini_winni/config.h b/keyboards/winkeys/mini_winni/config.h deleted file mode 100644 index 73844a7bc7f..00000000000 --- a/keyboards/winkeys/mini_winni/config.h +++ /dev/null @@ -1,42 +0,0 @@ - -/* -Copyright 2021 Matthew Dias - -This 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 RGBLED_NUM 4 -#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 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT diff --git a/keyboards/winkeys/mini_winni/info.json b/keyboards/winkeys/mini_winni/info.json index 7828dba4689..21cfdc6a2be 100644 --- a/keyboards/winkeys/mini_winni/info.json +++ b/keyboards/winkeys/mini_winni/info.json @@ -15,6 +15,21 @@ ["F6", "F7", "B6", "B5"] ] }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/winry/winry25tc/config.h b/keyboards/winry/winry25tc/config.h deleted file mode 100644 index 98c540c876a..00000000000 --- a/keyboards/winry/winry25tc/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2021 Andrzej Ressel (andrzej.ressel@gmail.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 - -#define RGBLED_NUM 40 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/winry/winry25tc/info.json b/keyboards/winry/winry25tc/info.json index 40768171e4a..a5d3b71a261 100644 --- a/keyboards/winry/winry25tc/info.json +++ b/keyboards/winry/winry25tc/info.json @@ -12,7 +12,13 @@ "pin": "D5" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 40, + "max_brightness": 150, + "animations": { + "rainbow_swirl": true + } }, "matrix_pins": { "cols": ["F5", "C7", "B7", "B2", "B4"], diff --git a/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c b/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c new file mode 100644 index 00000000000..f175f36b91e --- /dev/null +++ b/keyboards/winry/winry25tc/keymaps/lightsout/keymap.c @@ -0,0 +1,136 @@ +/* Copyright 2023 Tom Parker-Shemilt + * + * This 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, version 3 of the License. + * + * 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 + +#include QMK_KEYBOARD_H + +// clang-format off + +// Exact keymap is irrelevant as we're using rows/cols +// but we need _something_ set so we're using no-ops +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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 tiles[5][5] = { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, +}; + +/* Because snake pattern of leds */ +const uint8_t remap[25] = { + 20,21,22,23,24, + 19,6,7,8,9, + 18,5,0,1,10, + 17,4,3,2,11, + 16,15,14,13,12, +}; + +// clang-format on + +bool is_blank(void) { + for (uint8_t y = 0; y < 5; y++) { + for (uint8_t x = 0; x < 5; x++) { + if (tiles[x][y]) { + return false; + } + } + } + return true; +} + +void do_move(uint8_t x, uint8_t y) { + tiles[x][y] ^= true; + if (x > 0) { + tiles[x - 1][y] ^= true; + } + if (y > 0) { + tiles[x][y - 1] ^= true; + } + if (x < 4) { + tiles[x + 1][y] ^= true; + } + if (y < 4) { + tiles[x][y + 1] ^= true; + } +} + +void refresh_leds(void) { + for (uint8_t y = 0; y < 5; y++) { + for (uint8_t x = 0; x < 5; x++) { + uint8_t tile = tiles[x][y]; + uint8_t index = (y * 5) + x; + if (tile) { + setrgb(RGB_RED, &led[remap[index]]); + } else { + setrgb(RGB_WHITE, &led[remap[index]]); + } + } + } + rgblight_set(); +} + +uint8_t initial_moves = 1; + +void start_game(void) { + rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); + srand(timer_read32()); + while (true) { + for (uint8_t i = 0; i < initial_moves; i++) { + do_move(rand() % 5, rand() % 5); + } + if (!is_blank()) { + // Catch the "we picked the same location 2*N times" case + break; + } + } + refresh_leds(); +} + +void keyboard_post_init_user(void) { + rgblight_enable_noeeprom(); + start_game(); +} + +bool won = false; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + if (won) { + initial_moves++; + won = false; + start_game(); + } else { + uint8_t x = record->event.key.col; + uint8_t y = record->event.key.row; + do_move(x, y); + if (is_blank()) { + rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL); + won = true; + } + } + } + refresh_leds(); + return true; +} diff --git a/keyboards/winry/winry25tc/keymaps/lightsout/readme.md b/keyboards/winry/winry25tc/keymaps/lightsout/readme.md new file mode 100644 index 00000000000..4271bff43fd --- /dev/null +++ b/keyboards/winry/winry25tc/keymaps/lightsout/readme.md @@ -0,0 +1,3 @@ +# Lights Out game + +Implements a "lights out" mode as per https://en.m.wikipedia.org/wiki/Lights_Out_(game) with a single move having been played on start. On completion of the game, the Rainbow Swirl pattern is displayed. If another key is then pressed, the game resets, with the initial number of moves incremented by one. diff --git a/keyboards/winry/winry315/config.h b/keyboards/winry/winry315/config.h index 09724a2c001..4a3c8c3e274 100644 --- a/keyboards/winry/winry315/config.h +++ b/keyboards/winry/winry315/config.h @@ -3,38 +3,11 @@ #pragma once -// Encoder mappings (used for VIA). -#define ENCODERS_CW_KEY { { 22, 0 }, { 18, 0 }, { 20, 0 } } -#define ENCODERS_CCW_KEY { { 23, 0 }, { 19, 0 }, { 21, 0 } } - // clang-format on -// RGB LED parameters. -// This PCB uses a single chain of WS2812-compatible addressable RGB LEDs for -// per-key backlight and underglow. -#define RGBLED_NUM 27 - -// RGB Lighting configuration. This mode is used by the vendor firmware, and -// can be chosen if the full RGB Matrix support is not desired for some reason. -#ifdef RGBLIGHT_ENABLE -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_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 -#endif - // RGB Matrix configuration. #ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 27 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 # define RGB_MATRIX_CENTER \ diff --git a/keyboards/winry/winry315/info.json b/keyboards/winry/winry315/info.json index cfd52d368a3..98bb376ba2a 100644 --- a/keyboards/winry/winry315/info.json +++ b/keyboards/winry/winry315/info.json @@ -9,10 +9,25 @@ "vid": "0xF1F1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 27, + "max_brightness": 150, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true + } }, "encoder": { "rotary": [ diff --git a/keyboards/winry/winry315/keymaps/via/encoder_actions.c b/keyboards/winry/winry315/keymaps/via/encoder_actions.c deleted file mode 100644 index d24d13bb26c..00000000000 --- a/keyboards/winry/winry315/keymaps/via/encoder_actions.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * Copyright 2021 drashna jael're (@drashna) - * Copyright 2022 Sergey Vlasov (@sigprof) - * - * This 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 3 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 "encoder_actions.h" - -#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE) - -# ifndef ENCODER_TAP_DURATION_MS -# define ENCODER_TAP_DURATION_MS 10 -# endif - -# define ENCODER_STATE_CW 0x01 -# define ENCODER_STATE_CCW 0x02 - -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static uint16_t encoder_timer[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -static void exec_encoder_action(uint8_t index, bool clockwise, bool pressed) { - // clang-format off - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = pressed, - .time = timer_read(), - .type = KEY_EVENT - }; - // clang-format on - action_exec(encoder_event); -} - -void encoder_action_unregister(void) { - for (int index = 0; index < NUM_ENCODERS; ++index) { - if (encoder_state[index] && (timer_elapsed(encoder_timer[index]) >= ENCODER_TAP_DURATION_MS)) { - bool clockwise = !!(encoder_state[index] & ENCODER_STATE_CW); - encoder_state[index] = 0; - exec_encoder_action(index, clockwise, false); - } - } -} - -void encoder_action_register(uint8_t index, bool clockwise) { - if (encoder_state[index]) { - bool was_clockwise = !!(encoder_state[index] & ENCODER_STATE_CW); - encoder_state[index] = 0; - exec_encoder_action(index, was_clockwise, false); - } - encoder_state[index] = clockwise ? ENCODER_STATE_CW : ENCODER_STATE_CCW; - encoder_timer[index] = timer_read(); - exec_encoder_action(index, clockwise, true); -} - -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/winry/winry315/keymaps/via/encoder_actions.h b/keyboards/winry/winry315/keymaps/via/encoder_actions.h deleted file mode 100644 index 2484af52ae1..00000000000 --- a/keyboards/winry/winry315/keymaps/via/encoder_actions.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * This 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 3 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" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); diff --git a/keyboards/winry/winry315/keymaps/via/keymap.c b/keyboards/winry/winry315/keymaps/via/keymap.c index 67598ac3376..0641fbfd03e 100644 --- a/keyboards/winry/winry315/keymaps/via/keymap.c +++ b/keyboards/winry/winry315/keymaps/via/keymap.c @@ -5,36 +5,23 @@ // clang-format off -#define LAYOUT_via( \ - k17, k15, k16, \ - k23,k22, k19,k18, k21,k20, \ - k00, k01, k02, k03, k04, \ - k05, k06, k07, k08, k09, \ - k10, k11, k12, k13, k14 \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23 } \ -} - #define U_LTESC LT(1, KC_ESC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_via( + [0] = LAYOUT_top( KC_HOME, KC_MUTE, KC_MPLY, - KC_PGUP, KC_PGDN, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, U_LTESC, KC_TAB, KC_SPC, KC_BSPC, KC_ENT ), - [1] = LAYOUT_via( + [1] = LAYOUT_top( RGB_M_P, RGB_M_B, RGB_M_R, - RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R ), - [2 ... 7] = LAYOUT_via( + [2 ... 7] = LAYOUT_top( KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -42,3 +29,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [2 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/winry/winry315/keymaps/via/rules.mk b/keyboards/winry/winry315/keymaps/via/rules.mk index 6098ef3ad8f..1189f4ad192 100644 --- a/keyboards/winry/winry315/keymaps/via/rules.mk +++ b/keyboards/winry/winry315/keymaps/via/rules.mk @@ -1,4 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes - -SRC += encoder_actions.c +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/wolf/m60_b/info.json b/keyboards/wolf/m60_b/info.json index 87ec3f89002..2c3b4a3b0d3 100644 --- a/keyboards/wolf/m60_b/info.json +++ b/keyboards/wolf/m60_b/info.json @@ -23,7 +23,7 @@ }, "processor": "atmega32u4", "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [2, 0], "x": 7, "y": 32}, {"flags": 4, "matrix": [1, 0], "x": 4, "y": 16}, diff --git a/keyboards/wolf/m6_c/config.h b/keyboards/wolf/m6_c/config.h new file mode 100644 index 00000000000..d5f391bcdd2 --- /dev/null +++ b/keyboards/wolf/m6_c/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 contact@vwolf.be +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define RGB_MATRIX_LED_COUNT 6 +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL \ No newline at end of file diff --git a/keyboards/wolf/m6_c/info.json b/keyboards/wolf/m6_c/info.json new file mode 100644 index 00000000000..ff83a951641 --- /dev/null +++ b/keyboards/wolf/m6_c/info.json @@ -0,0 +1,101 @@ +{ + "manufacturer": "Rama", + "keyboard_name": "M6-C", + "maintainer": "ToastyStoemp", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B0", "B1", "B7"], + "rows": ["B2", "B3"] + }, + "processor": "atmega32u4", + "ws2812": { + "pin": "D5" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 120, + "animations": { + "solid_color": true, + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 243, "y": 0 }, + { "flags": 4, "matrix": [1, 2], "x": 244, "y": 64 }, + { "flags": 4, "matrix": [1, 1], "x": 122, "y": 64 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 64 } + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0060", + "vid": "0x5453" + }, + "community_layouts": ["ortho_2x3"], + "layouts": { + "LAYOUT_ortho_2x3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/wolf/m6_c/keymaps/default/keymap.c b/keyboards/wolf/m6_c/keymaps/default/keymap.c new file mode 100644 index 00000000000..893ea2eb900 --- /dev/null +++ b/keyboards/wolf/m6_c/keymaps/default/keymap.c @@ -0,0 +1,12 @@ +// Copyright 2020-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_2x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6 + ) +}; diff --git a/keyboards/wolf/m6_c/keymaps/via/keymap.c b/keyboards/wolf/m6_c/keymaps/via/keymap.c new file mode 100644 index 00000000000..893ea2eb900 --- /dev/null +++ b/keyboards/wolf/m6_c/keymaps/via/keymap.c @@ -0,0 +1,12 @@ +// Copyright 2020-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_2x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6 + ) +}; diff --git a/keyboards/wolf/m6_c/keymaps/via/rules.mk b/keyboards/wolf/m6_c/keymaps/via/rules.mk new file mode 100644 index 00000000000..43061db1dd4 --- /dev/null +++ b/keyboards/wolf/m6_c/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wolf/m6_c/readme.md b/keyboards/wolf/m6_c/readme.md new file mode 100644 index 00000000000..c07471dca01 --- /dev/null +++ b/keyboards/wolf/m6_c/readme.md @@ -0,0 +1,24 @@ +# M6-C + +![M6-C](https://i.imgur.com/gkRotHh.jpeg) + +The following is the QMK Firmware for the M6-C PCB. + +* Keyboard Maintainer: [Wolf](https://github.com/ToastyStoemp) +* Hardware Supported: M6-C PCB +* Hardware Availability: https://ramaworks.store/products/m6-c + +Make example for this keyboard (after setting up your build environment): + + make wolf/m6_c:default + +Flashing example for this keyboard: + + make wolf/m6_c: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 ESC key and plug in the keyboard (Top Left most switch) +* **Physical reset button**: Double press the button through the pinhole in the case +* **Keycode in layout**: Press the key mapped to `QK_BOOT` diff --git a/keyboards/wolf/m6_c/rules.mk b/keyboards/wolf/m6_c/rules.mk new file mode 100644 index 00000000000..3437a35bdf1 --- /dev/null +++ b/keyboards/wolf/m6_c/rules.mk @@ -0,0 +1,2 @@ +# Processor frequency +F_CPU = 8000000 diff --git a/keyboards/wolf/neely65/info.json b/keyboards/wolf/neely65/info.json new file mode 100644 index 00000000000..5535036f376 --- /dev/null +++ b/keyboards/wolf/neely65/info.json @@ -0,0 +1,108 @@ +{ + "manufacturer": "Neely", + "keyboard_name": "Neely65", + "maintainer": "ToastyStoemp", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B7", "B3", "E6", "F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0071", + "vid": "0x5453" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2.5, "y": 0 }, + { "matrix": [0, 3], "x": 3.5, "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.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.5, "y": 0 }, + { "matrix": [0, 10], "x": 10.5, "y": 0 }, + { "matrix": [0, 11], "x": 11.5, "y": 0 }, + { "matrix": [0, 12], "x": 12.5, "y": 0 }, + { "matrix": [0, 13], "x": 13.5, "y": 0 }, + { "matrix": [0, 14], "x": 14.5, "y": 0 }, + { "matrix": [0, 15], "x": 15.5, "y": 0 }, + { "matrix": [2, 14], "x": 16.5, "y": 0 }, + { "matrix": [0, 16], "x": 17.5, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "w": 1.5, "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 4, "y": 1 }, + { "matrix": [1, 4], "x": 5, "y": 1 }, + { "matrix": [1, 5], "x": 6, "y": 1 }, + { "matrix": [1, 6], "x": 7, "y": 1 }, + { "matrix": [1, 7], "x": 8, "y": 1 }, + { "matrix": [1, 8], "x": 9, "y": 1 }, + { "matrix": [1, 9], "x": 10, "y": 1 }, + { "matrix": [1, 10], "x": 11, "y": 1 }, + { "matrix": [1, 11], "x": 12, "y": 1 }, + { "matrix": [1, 12], "x": 13, "y": 1 }, + { "matrix": [1, 13], "x": 14, "y": 1 }, + { "matrix": [1, 14], "x": 15, "y": 1 }, + { "matrix": [1, 15], "w": 1.5, "x": 16, "y": 1 }, + { "matrix": [1, 16], "x": 17.5, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "w": 1.75, "x": 2.5, "y": 2 }, + { "matrix": [2, 3], "x": 4.25, "y": 2 }, + { "matrix": [2, 4], "x": 5.25, "y": 2 }, + { "matrix": [2, 5], "x": 6.25, "y": 2 }, + { "matrix": [2, 6], "x": 7.25, "y": 2 }, + { "matrix": [2, 7], "x": 8.25, "y": 2 }, + { "matrix": [2, 8], "x": 9.25, "y": 2 }, + { "matrix": [2, 9], "x": 10.25, "y": 2 }, + { "matrix": [2, 10], "x": 11.25, "y": 2 }, + { "matrix": [2, 11], "x": 12.25, "y": 2 }, + { "matrix": [2, 12], "x": 13.25, "y": 2 }, + { "matrix": [2, 13], "x": 14.25, "y": 2 }, + { "matrix": [2, 15], "w": 2.25, "x": 15.25, "y": 2 }, + { "matrix": [2, 16], "x": 17.5, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "w": 2.25, "x": 2.5, "y": 3 }, + { "matrix": [3, 3], "x": 4.75, "y": 3 }, + { "matrix": [3, 4], "x": 5.75, "y": 3 }, + { "matrix": [3, 5], "x": 6.75, "y": 3 }, + { "matrix": [3, 6], "x": 7.75, "y": 3 }, + { "matrix": [3, 7], "x": 8.75, "y": 3 }, + { "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "matrix": [3, 14], "w": 1.75, "x": 14.75, "y": 3 }, + { "matrix": [3, 15], "x": 16.5, "y": 3 }, + { "matrix": [3, 16], "x": 17.5, "y": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 4], "w": 1.5, "x": 4.75, "y": 4 }, + { "matrix": [4, 7], "w": 7, "x": 6.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.5, "x": 13.25, "y": 4 }, + { "matrix": [4, 14], "x": 15.5, "y": 4 }, + { "matrix": [4, 15], "x": 16.5, "y": 4 }, + { "matrix": [4, 16], "x": 17.5, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/wolf/neely65/keymaps/default/keymap.c b/keyboards/wolf/neely65/keymaps/default/keymap.c new file mode 100644 index 00000000000..3e1350a75e7 --- /dev/null +++ b/keyboards/wolf/neely65/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 contact@vwolf.be +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_F1, 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_F4, + 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_PGDN, KC_F5, KC_F6, + 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_END, KC_F7, KC_F8, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_APP, KC_F9, KC_F10 + ), + + [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_AUDIO_VOL_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, 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_MEDIA_NEXT_TRACK, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_MUTE, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/wolf/neely65/keymaps/via/keymap.c b/keyboards/wolf/neely65/keymaps/via/keymap.c new file mode 100644 index 00000000000..3e1350a75e7 --- /dev/null +++ b/keyboards/wolf/neely65/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 contact@vwolf.be +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_F1, 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_F4, + 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_PGDN, KC_F5, KC_F6, + 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_END, KC_F7, KC_F8, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_APP, KC_F9, KC_F10 + ), + + [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_AUDIO_VOL_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, 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_MEDIA_NEXT_TRACK, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_MUTE, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/wolf/neely65/keymaps/via/rules.mk b/keyboards/wolf/neely65/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/wolf/neely65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wolf/neely65/readme.md b/keyboards/wolf/neely65/readme.md new file mode 100644 index 00000000000..52865bfb116 --- /dev/null +++ b/keyboards/wolf/neely65/readme.md @@ -0,0 +1,23 @@ +# Neely65 + +![Neely65](https://i.imgur.com/qu6fxXSh.jpeg) + +The following is the QMK Firmware for the Neely65 PCB. + +* Keyboard Maintainer: [Wolf](https://github.com/ToastyStoemp) +* Hardware Supported: Neely65 PCB only +* Hardware Availability: Private Run + +Make example for this keyboard (after setting up your build environment): + + make wolf/neely65:default + +Flashing example for this keyboard: + + make wolf/neely65: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 ESC key and plug in the keyboard (Top Left most switch) +* **Physical reset button**: Briefly press the button on the back of the PCB diff --git a/keyboards/wolf/neely65/rules.mk b/keyboards/wolf/neely65/rules.mk new file mode 100644 index 00000000000..3437a35bdf1 --- /dev/null +++ b/keyboards/wolf/neely65/rules.mk @@ -0,0 +1,2 @@ +# Processor frequency +F_CPU = 8000000 diff --git a/keyboards/wolf/silhouette/info.json b/keyboards/wolf/silhouette/info.json new file mode 100644 index 00000000000..fa52666b2a0 --- /dev/null +++ b/keyboards/wolf/silhouette/info.json @@ -0,0 +1,110 @@ +{ + "manufacturer": "4GT", + "keyboard_name": "Silhouette", + "maintainer": "ToastyStoemp", + "bootloader": "custom", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP12" + }, + "matrix_pins": { + "cols": ["GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP11", "GP17", "GP16", "GP7", "GP6", "GP5", "GP4", "GP2", "GP1", "GP0"], + "rows": ["GP27", "GP26", "GP25", "GP13", "GP3"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0080", + "vid": "0x5453" + }, + "layouts": { + "LAYOUT": { + "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": [2, 14], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "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": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "matrix": [1, 15], "x": 16.25, "y": 1 }, + { "matrix": [1, 16], "x": 17.25, "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], "x": 19.5, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "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, 15], "x": 16.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 }, + { "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "matrix": [4, 16], "x": 17.25, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/wolf/silhouette/keymaps/default/keymap.c b/keyboards/wolf/silhouette/keymaps/default/keymap.c new file mode 100644 index 00000000000..9a5e5b24d76 --- /dev/null +++ b/keyboards/wolf/silhouette/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 contact@vwolf.be +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/wolf/silhouette/keymaps/via/keymap.c b/keyboards/wolf/silhouette/keymaps/via/keymap.c new file mode 100644 index 00000000000..9a5e5b24d76 --- /dev/null +++ b/keyboards/wolf/silhouette/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 contact@vwolf.be +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/wolf/silhouette/keymaps/via/rules.mk b/keyboards/wolf/silhouette/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/wolf/silhouette/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wolf/silhouette/readme.md b/keyboards/wolf/silhouette/readme.md new file mode 100644 index 00000000000..920de93c413 --- /dev/null +++ b/keyboards/wolf/silhouette/readme.md @@ -0,0 +1,23 @@ +# Silhouette + +![Silhouette](https://i.imgur.com/x5Wo7t1h.jpeg) + +The following is the QMK Firmware for the Silhouette PCB. + +* Keyboard Maintainer: [Wolf](https://github.com/ToastyStoemp) +* Hardware Supported: Silhouette PCB +* Hardware Availability: https://beacons.ai/chamchi + +Make example for this keyboard (after setting up your build environment): + + make wolf/silhouette:default + +Flashing example for this keyboard: + + make wolf/silhouette: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 ESC key and plug in the keyboard (Top Left most switch) diff --git a/keyboards/wolf/silhouette/rules.mk b/keyboards/wolf/silhouette/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/wolf/ts60/config.h b/keyboards/wolf/ts60/config.h index 5064157a527..81e0b787cbf 100644 --- a/keyboards/wolf/ts60/config.h +++ b/keyboards/wolf/ts60/config.h @@ -17,19 +17,6 @@ along with this program. If not, see . #pragma once -/* Define RGB Underglow */ -#define RGBLED_NUM 16 -#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_SLEEP #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL #define BACKLIGHT_DEFAULT_LEVEL 6 diff --git a/keyboards/wolf/ts60/info.json b/keyboards/wolf/ts60/info.json index d1337177b41..5e883d2bf19 100644 --- a/keyboards/wolf/ts60/info.json +++ b/keyboards/wolf/ts60/info.json @@ -17,6 +17,22 @@ "pin": "B7", "levels": 6 }, + "rgblight": { + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/wolf/ziggurat/info.json b/keyboards/wolf/ziggurat/info.json new file mode 100644 index 00000000000..2e8d39dacba --- /dev/null +++ b/keyboards/wolf/ziggurat/info.json @@ -0,0 +1,111 @@ +{ + "manufacturer": "Laminar", + "keyboard_name": "Ziggurat", + "maintainer": "ToastyStoemp", + "bootloader": "custom", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP29", "GP0", "GP1", "GP2", "GP3", "GP4", "GP5"], + "rows": ["GP11", "GP10", "GP7", "GP6", "GP23", "GP24", "GP25", "GP26", "GP19", "GP18"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0084", + "vid": "0x5453" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [1, 0], "x": 1, "y": 0 }, + { "matrix": [0, 1], "x": 2.25, "y": 0 }, + { "matrix": [1, 1], "x": 3.25, "y": 0 }, + { "matrix": [0, 2], "x": 4.25, "y": 0 }, + { "matrix": [1, 2], "x": 5.25, "y": 0 }, + { "matrix": [0, 3], "x": 6.25, "y": 0 }, + { "matrix": [1, 3], "x": 7.25, "y": 0 }, + { "matrix": [0, 4], "x": 8.25, "y": 0 }, + { "matrix": [1, 4], "x": 9.25, "y": 0 }, + { "matrix": [0, 5], "x": 10.25, "y": 0 }, + { "matrix": [1, 5], "x": 11.25, "y": 0 }, + { "matrix": [0, 6], "x": 12.25, "y": 0 }, + { "matrix": [1, 6], "x": 13.25, "y": 0 }, + { "matrix": [7, 6], "x": 14.25, "y": 0 }, + { "matrix": [0, 7], "x": 15.25, "y": 0 }, + { "matrix": [1, 7], "x": 16.25, "y": 0 }, + { "matrix": [0, 8], "x": 17.25, "y": 0 }, + { "matrix": [2, 0], "x": 0, "y": 1 }, + { "matrix": [3, 0], "x": 1, "y": 1 }, + { "matrix": [2, 1], "w": 1.5, "x": 2.25, "y": 1 }, + { "matrix": [3, 1], "x": 3.75, "y": 1 }, + { "matrix": [2, 2], "x": 4.75, "y": 1 }, + { "matrix": [3, 2], "x": 5.75, "y": 1 }, + { "matrix": [2, 3], "x": 6.75, "y": 1 }, + { "matrix": [3, 3], "x": 7.75, "y": 1 }, + { "matrix": [2, 4], "x": 8.75, "y": 1 }, + { "matrix": [3, 4], "x": 9.75, "y": 1 }, + { "matrix": [2, 5], "x": 10.75, "y": 1 }, + { "matrix": [3, 5], "x": 11.75, "y": 1 }, + { "matrix": [2, 6], "x": 12.75, "y": 1 }, + { "matrix": [3, 6], "x": 13.75, "y": 1 }, + { "matrix": [2, 7], "x": 14.75, "y": 1 }, + { "matrix": [3, 7], "w": 1.5, "x": 15.75, "y": 1 }, + { "matrix": [2, 8], "x": 17.25, "y": 1 }, + { "matrix": [4, 0], "x": 0, "y": 2 }, + { "matrix": [5, 0], "x": 1, "y": 2 }, + { "matrix": [4, 1], "w": 1.75, "x": 2.25, "y": 2 }, + { "matrix": [5, 1], "x": 4, "y": 2 }, + { "matrix": [4, 2], "x": 5, "y": 2 }, + { "matrix": [5, 2], "x": 6, "y": 2 }, + { "matrix": [4, 3], "x": 7, "y": 2 }, + { "matrix": [5, 3], "x": 8, "y": 2 }, + { "matrix": [4, 4], "x": 9, "y": 2 }, + { "matrix": [5, 4], "x": 10, "y": 2 }, + { "matrix": [4, 5], "x": 11, "y": 2 }, + { "matrix": [5, 5], "x": 12, "y": 2 }, + { "matrix": [4, 6], "x": 13, "y": 2 }, + { "matrix": [5, 6], "x": 14, "y": 2 }, + { "matrix": [4, 7], "x": 19, "y": 2 }, + { "matrix": [5, 7], "w": 2.25, "x": 15, "y": 2 }, + { "matrix": [4, 8], "x": 17.25, "y": 2 }, + { "matrix": [6, 0], "x": 0, "y": 3 }, + { "matrix": [7, 0], "x": 1, "y": 3 }, + { "matrix": [6, 1], "w": 1.25, "x": 2.25, "y": 3 }, + { "matrix": [7, 1], "x": 3.5, "y": 3 }, + { "matrix": [9, 2], "x": 4.5, "y": 3 }, + { "matrix": [6, 2], "x": 5.5, "y": 3 }, + { "matrix": [7, 2], "x": 6.5, "y": 3 }, + { "matrix": [6, 3], "x": 7.5, "y": 3 }, + { "matrix": [7, 3], "x": 8.5, "y": 3 }, + { "matrix": [6, 4], "x": 9.5, "y": 3 }, + { "matrix": [7, 4], "x": 10.5, "y": 3 }, + { "matrix": [6, 5], "x": 11.5, "y": 3 }, + { "matrix": [7, 5], "x": 12.5, "y": 3 }, + { "matrix": [6, 6], "x": 13.5, "y": 3 }, + { "matrix": [6, 7], "w": 1.75, "x": 14.5, "y": 3 }, + { "matrix": [7, 7], "x": 16.25, "y": 3 }, + { "matrix": [6, 8], "x": 17.25, "y": 3 }, + { "matrix": [8, 0], "x": 0, "y": 4 }, + { "matrix": [9, 0], "x": 1, "y": 4 }, + { "matrix": [8, 1], "w": 1.5, "x": 2.25, "y": 4 }, + { "matrix": [9, 1], "x": 3.75, "y": 4 }, + { "matrix": [8, 2], "w": 1.5, "x": 4.75, "y": 4 }, + { "matrix": [8, 4], "w": 7, "x": 6.25, "y": 4 }, + { "matrix": [8, 6], "w": 1.5, "x": 13.25, "y": 4 }, + { "matrix": [8, 7], "x": 15.25, "y": 4 }, + { "matrix": [9, 7], "x": 16.25, "y": 4 }, + { "matrix": [8, 8], "x": 17.25, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/wolf/ziggurat/keymaps/default/keymap.c b/keyboards/wolf/ziggurat/keymaps/default/keymap.c new file mode 100644 index 00000000000..e26689efa71 --- /dev/null +++ b/keyboards/wolf/ziggurat/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2023 contact@vwolf.be +// SPDX-License-Identifier: GPL-2.0-or-later + + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_F1, KC_F6, 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_F2, KC_F7, 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_F8, 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_F4, KC_F9, 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_F5, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_F1, 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_DEL, KC_DEL, _______, + KC_F2, KC_F7, _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + KC_F3, KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F4, KC_F9, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + KC_F5, KC_F10, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/wolf/ziggurat/keymaps/via/keymap.c b/keyboards/wolf/ziggurat/keymaps/via/keymap.c new file mode 100644 index 00000000000..e26689efa71 --- /dev/null +++ b/keyboards/wolf/ziggurat/keymaps/via/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2023 contact@vwolf.be +// SPDX-License-Identifier: GPL-2.0-or-later + + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_F1, KC_F6, 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_F2, KC_F7, 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_F8, 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_F4, KC_F9, 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_F5, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_F1, 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_DEL, KC_DEL, _______, + KC_F2, KC_F7, _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + KC_F3, KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F4, KC_F9, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + KC_F5, KC_F10, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/wolf/ziggurat/keymaps/via/rules.mk b/keyboards/wolf/ziggurat/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/wolf/ziggurat/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wolf/ziggurat/readme.md b/keyboards/wolf/ziggurat/readme.md new file mode 100644 index 00000000000..d7aa00c077f --- /dev/null +++ b/keyboards/wolf/ziggurat/readme.md @@ -0,0 +1,23 @@ +# Ziggurat + +![Ziggurat](https://i.imgur.com/Vifx6vH.png) + +The following is the QMK Firmware for the Ziggurat PCB. + +* Keyboard Maintainer: [Wolf](https://github.com/ToastyStoemp) +* Hardware Supported: Ziggurat PCB +* Hardware Availability: https://www.eloquentclicks.com/product/ziggurat-plateless-leaf-spring-pcb-mount-65-xt/ + +Make example for this keyboard (after setting up your build environment): + + make wolf/ziggurat:default + +Flashing example for this keyboard: + + make wolf/ziggurat: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 ESC key and plug in the keyboard (Top Left most switch) +* **Physical reset button**: Briefly press the button on the back of the PCB diff --git a/keyboards/wolf/ziggurat/rules.mk b/keyboards/wolf/ziggurat/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/wolf/ziggurat/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/wolfmarkclub/wm1/config.h b/keyboards/wolfmarkclub/wm1/config.h index 8df536bf546..4b007cf387e 100644 --- a/keyboards/wolfmarkclub/wm1/config.h +++ b/keyboards/wolfmarkclub/wm1/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 18 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/wolfmarkclub/wm1/info.json b/keyboards/wolfmarkclub/wm1/info.json index 099327f417f..04b8ae3b115 100644 --- a/keyboards/wolfmarkclub/wm1/info.json +++ b/keyboards/wolfmarkclub/wm1/info.json @@ -8,6 +8,24 @@ "pid": "0x2B29", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A3" }, diff --git a/keyboards/wolfmarkclub/wm1/rules.mk b/keyboards/wolfmarkclub/wm1/rules.mk index a712747048a..512ef119fdb 100644 --- a/keyboards/wolfmarkclub/wm1/rules.mk +++ b/keyboards/wolfmarkclub/wm1/rules.mk @@ -25,5 +25,3 @@ AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes LTO_ENABLE = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/woodkeys/bigseries/1key/config.h b/keyboards/woodkeys/bigseries/1key/config.h index d81dd8611b7..c726e100753 100755 --- a/keyboards/woodkeys/bigseries/1key/config.h +++ b/keyboards/woodkeys/bigseries/1key/config.h @@ -21,17 +21,3 @@ along with this program. If not, see . #define IS_COMMAND() ( \ false \ ) - -#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 RGBLED_NUM 5 -#endif diff --git a/keyboards/woodkeys/bigseries/1key/info.json b/keyboards/woodkeys/bigseries/1key/info.json index 1dd1e6fa0c7..43d7b0f536c 100644 --- a/keyboards/woodkeys/bigseries/1key/info.json +++ b/keyboards/woodkeys/bigseries/1key/info.json @@ -12,7 +12,20 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 128 + "led_count": 5, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B4"], diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/8ball/keymap.c b/keyboards/woodkeys/bigseries/1key/keymaps/8ball/keymap.c index 500fddd53f4..b72b1a0d9aa 100755 --- a/keyboards/woodkeys/bigseries/1key/keymaps/8ball/keymap.c +++ b/keyboards/woodkeys/bigseries/1key/keymaps/8ball/keymap.c @@ -98,40 +98,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} - void reset_rgb(void) { // This gets called on init and after the timeout for the answer color // If you want to change the default color/mode, do it here diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/ctrl-alt-del/keymap.c b/keyboards/woodkeys/bigseries/1key/keymaps/ctrl-alt-del/keymap.c index d87471b0077..4cc698b1df7 100755 --- a/keyboards/woodkeys/bigseries/1key/keymaps/ctrl-alt-del/keymap.c +++ b/keyboards/woodkeys/bigseries/1key/keymaps/ctrl-alt-del/keymap.c @@ -42,46 +42,3 @@ void matrix_init_user(void) { initialized = 1; } } - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - } - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/lock/keymap.c b/keyboards/woodkeys/bigseries/1key/keymaps/lock/keymap.c index 650554e0200..dbdd5a8e3c4 100755 --- a/keyboards/woodkeys/bigseries/1key/keymaps/lock/keymap.c +++ b/keyboards/woodkeys/bigseries/1key/keymaps/lock/keymap.c @@ -41,44 +41,3 @@ void matrix_init_user(void) { initialized = 1; } } - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} diff --git a/keyboards/woodkeys/bigseries/2key/config.h b/keyboards/woodkeys/bigseries/2key/config.h index ecb56494192..c726e100753 100755 --- a/keyboards/woodkeys/bigseries/2key/config.h +++ b/keyboards/woodkeys/bigseries/2key/config.h @@ -21,17 +21,3 @@ along with this program. If not, see . #define IS_COMMAND() ( \ false \ ) - -#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 RGBLED_NUM 8 -#endif diff --git a/keyboards/woodkeys/bigseries/2key/info.json b/keyboards/woodkeys/bigseries/2key/info.json index a488fc1515a..98cbeab77d1 100644 --- a/keyboards/woodkeys/bigseries/2key/info.json +++ b/keyboards/woodkeys/bigseries/2key/info.json @@ -12,7 +12,20 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 128 + "led_count": 8, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B4", "B3"], diff --git a/keyboards/woodkeys/bigseries/3key/config.h b/keyboards/woodkeys/bigseries/3key/config.h index a225c19d3a4..c726e100753 100755 --- a/keyboards/woodkeys/bigseries/3key/config.h +++ b/keyboards/woodkeys/bigseries/3key/config.h @@ -21,17 +21,3 @@ along with this program. If not, see . #define IS_COMMAND() ( \ false \ ) - -#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 RGBLED_NUM 11 -#endif diff --git a/keyboards/woodkeys/bigseries/3key/info.json b/keyboards/woodkeys/bigseries/3key/info.json index 0152a2ce040..8c24efb09df 100644 --- a/keyboards/woodkeys/bigseries/3key/info.json +++ b/keyboards/woodkeys/bigseries/3key/info.json @@ -12,7 +12,20 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 128 + "led_count": 11, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B4", "B3", "B5"], diff --git a/keyboards/woodkeys/bigseries/3key/keymaps/ctrl-alt-del/keymap.c b/keyboards/woodkeys/bigseries/3key/keymaps/ctrl-alt-del/keymap.c index d1410ecf1eb..d97c057c6fb 100755 --- a/keyboards/woodkeys/bigseries/3key/keymaps/ctrl-alt-del/keymap.c +++ b/keyboards/woodkeys/bigseries/3key/keymaps/ctrl-alt-del/keymap.c @@ -42,46 +42,3 @@ void matrix_init_user(void) { initialized = 1; } } - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - } - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} diff --git a/keyboards/woodkeys/bigseries/4key/config.h b/keyboards/woodkeys/bigseries/4key/config.h index 02ed67b9cb5..c726e100753 100755 --- a/keyboards/woodkeys/bigseries/4key/config.h +++ b/keyboards/woodkeys/bigseries/4key/config.h @@ -21,17 +21,3 @@ along with this program. If not, see . #define IS_COMMAND() ( \ false \ ) - -#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 RGBLED_NUM 12 -#endif diff --git a/keyboards/woodkeys/bigseries/4key/info.json b/keyboards/woodkeys/bigseries/4key/info.json index e228efd54ce..789eb9ecbbb 100644 --- a/keyboards/woodkeys/bigseries/4key/info.json +++ b/keyboards/woodkeys/bigseries/4key/info.json @@ -12,7 +12,20 @@ "pin": "D3" }, "rgblight": { - "max_brightness": 128 + "led_count": 12, + "max_brightness": 128, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["B4", "B3"], diff --git a/keyboards/woodkeys/meira/config.h b/keyboards/woodkeys/meira/config.h index d5bdf9540c6..4b3491cfa13 100644 --- a/keyboards/woodkeys/meira/config.h +++ b/keyboards/woodkeys/meira/config.h @@ -22,11 +22,4 @@ along with this program. If not, see . #define MATRIX_ROWS 4 #define MATRIX_COLS 12 -/* COL2ROW, ROW2COL*/ -//#define DIODE_DIRECTION - #define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255} - -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 15 // Number of LEDs -#endif diff --git a/keyboards/woodkeys/meira/featherble/info.json b/keyboards/woodkeys/meira/featherble/info.json new file mode 100644 index 00000000000..2ce28918df5 --- /dev/null +++ b/keyboards/woodkeys/meira/featherble/info.json @@ -0,0 +1,5 @@ +{ + "bluetooth": { + "driver": "bluefruit_le" + } +} diff --git a/keyboards/woodkeys/meira/featherble/rules.mk b/keyboards/woodkeys/meira/featherble/rules.mk index 01f1af1ae8a..174947ff399 100644 --- a/keyboards/woodkeys/meira/featherble/rules.mk +++ b/keyboards/woodkeys/meira/featherble/rules.mk @@ -2,4 +2,3 @@ F_CPU = 8000000 BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/woodkeys/meira/info.json b/keyboards/woodkeys/meira/info.json index e39df58323a..5905c00d2d0 100644 --- a/keyboards/woodkeys/meira/info.json +++ b/keyboards/woodkeys/meira/info.json @@ -12,6 +12,9 @@ "driver": "custom", "levels": 10 }, + "rgblight": { + "led_count": 15 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/woodkeys/meira/keymaps/cole/config.h b/keyboards/woodkeys/meira/keymaps/cole/config.h index 90c490e8362..1dd4c39f254 100644 --- a/keyboards/woodkeys/meira/keymaps/cole/config.h +++ b/keyboards/woodkeys/meira/keymaps/cole/config.h @@ -14,10 +14,7 @@ * along with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" +#pragma once // place overrides here #define MUSIC_MASK (keycode != KC_NO) @@ -27,5 +24,3 @@ #define NO_MUSIC_MODE #endif - -#endif diff --git a/keyboards/woodkeys/meira/keymaps/cole/keymap.c b/keyboards/woodkeys/meira/keymaps/cole/keymap.c index 365c9d18e5a..b85da25a28b 100644 --- a/keyboards/woodkeys/meira/keymaps/cole/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/cole/keymap.c @@ -26,7 +26,7 @@ extern rgblight_config_t rgblight_config; #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _ADJUST 16 +#define _ADJUST 5 enum custom_keycodes { QWERTY = SAFE_RANGE, @@ -214,7 +214,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/woodkeys/meira/keymaps/grahampheath/config.h b/keyboards/woodkeys/meira/keymaps/grahampheath/config.h index 604f3784615..638ebffb8ce 100644 --- a/keyboards/woodkeys/meira/keymaps/grahampheath/config.h +++ b/keyboards/woodkeys/meira/keymaps/grahampheath/config.h @@ -14,15 +14,13 @@ * along with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" +#pragma once // place overrides here #define MUSIC_MASK (keycode != KC_NO) -#define AUDIO_PIN C6 #ifdef AUDIO_ENABLE +#undef AUDIO_PIN +#define AUDIO_PIN C6 #define STARTUP_SONG SONG(PLANCK_SOUND) // #define STARTUP_SONG SONG(NO_SOUND) @@ -31,5 +29,3 @@ SONG(DVORAK_SOUND) \ } #endif - -#endif diff --git a/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c b/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c index aa9730b88f2..8057bcf2b42 100644 --- a/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c @@ -26,7 +26,7 @@ extern rgblight_config_t rgblight_config; #define _LOWER 3 #define _RAISE 4 #define _EMOJI 5 -#define _ADJUST 16 +#define _ADJUST 6 enum custom_keycodes { QWERTY = SAFE_RANGE, @@ -391,6 +391,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/woodkeys/meira/keymaps/takmiya/config.h b/keyboards/woodkeys/meira/keymaps/takmiya/config.h deleted file mode 100644 index 97210115b9e..00000000000 --- a/keyboards/woodkeys/meira/keymaps/takmiya/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2017 Cole Markham, WoodKeys.click - * - * This 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 . - */ - -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -// place overrides here - -#endif diff --git a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c index ddd695461ec..8e3c41c3328 100644 --- a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c @@ -24,7 +24,7 @@ extern rgblight_config_t rgblight_config; #define _QWERTY 0 #define _LOWER 1 #define _RAISE 2 -#define _ADJUST 16 +#define _ADJUST 3 enum custom_keycodes { QWERTY = SAFE_RANGE, @@ -227,7 +227,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/woodkeys/meira/post_rules.mk b/keyboards/woodkeys/meira/post_rules.mk new file mode 100644 index 00000000000..5d85581c6ee --- /dev/null +++ b/keyboards/woodkeys/meira/post_rules.mk @@ -0,0 +1,9 @@ +SRC += matrix.c TWIlib.c issi.c lighting.c + +#ifeq ($(strip $(ISSI_ENABLE)), yes) +# OPT_DEFS += -DISSI_ENABLE +#endif + +#ifeq ($(strip $(WATCHDOG_ENABLE)), yes) +# OPT_DEFS += -DWATCHDOG_ENABLE +#endif diff --git a/keyboards/woodkeys/meira/rules.mk b/keyboards/woodkeys/meira/rules.mk index 20802b31790..63586244c0e 100644 --- a/keyboards/woodkeys/meira/rules.mk +++ b/keyboards/woodkeys/meira/rules.mk @@ -14,13 +14,4 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes -#ifeq ($(strip $(ISSI_ENABLE)), yes) -# TMK_COMMON_DEFS += -DISSI_ENABLE -#endif - -#ifeq ($(strip $(WATCHDOG_ENABLE)), yes) -# TMK_COMMON_DEFS += -DWATCHDOG_ENABLE -#endif -SRC += matrix.c TWIlib.c issi.c lighting.c - DEFAULT_FOLDER = woodkeys/meira/promicro diff --git a/keyboards/woodkeys/scarletbandana/config.h b/keyboards/woodkeys/scarletbandana/config.h index 3854dc86596..89ebddeb6e4 100644 --- a/keyboards/woodkeys/scarletbandana/config.h +++ b/keyboards/woodkeys/scarletbandana/config.h @@ -17,20 +17,6 @@ along with this program. If not, see . #pragma once -#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 RGBLED_NUM 8 // Number of LEDs -#endif - #ifdef AUDIO_ENABLE #define AUDIO_PIN C6 #define STARTUP_SONG SONG(PREONIC_SOUND) diff --git a/keyboards/woodkeys/scarletbandana/info.json b/keyboards/woodkeys/scarletbandana/info.json index d74555a178d..b3197a7c1b9 100644 --- a/keyboards/woodkeys/scarletbandana/info.json +++ b/keyboards/woodkeys/scarletbandana/info.json @@ -8,6 +8,21 @@ "pid": "0x6969", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/work_louder/loop/config.h b/keyboards/work_louder/loop/config.h index cf25b4b5b70..28c506d8675 100644 --- a/keyboards/work_louder/loop/config.h +++ b/keyboards/work_louder/loop/config.h @@ -18,19 +18,6 @@ along with this program. If not, see . #pragma once #define RGBLIGHT_DI_PIN E6 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== or choose 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_TWINKLE #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT #define RGBLIGHT_DEFAULT_HUE 36 diff --git a/keyboards/work_louder/loop/info.json b/keyboards/work_louder/loop/info.json index 966f0a6b02e..eacbbbccbd4 100644 --- a/keyboards/work_louder/loop/info.json +++ b/keyboards/work_louder/loop/info.json @@ -9,7 +9,7 @@ "max_power": 100 }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B3", "B2", "B1", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6"], @@ -30,7 +30,18 @@ "pin": "F1" }, "rgblight": { - "max_brightness": 120 + "max_brightness": 120, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/work_louder/loop/rev1/config.h b/keyboards/work_louder/loop/rev1/config.h deleted file mode 100644 index 1bc02d08a68..00000000000 --- a/keyboards/work_louder/loop/rev1/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -# define RGBLED_NUM 24 diff --git a/keyboards/work_louder/loop/rev1/info.json b/keyboards/work_louder/loop/rev1/info.json index 90ac25f360b..3caea9b338f 100644 --- a/keyboards/work_louder/loop/rev1/info.json +++ b/keyboards/work_louder/loop/rev1/info.json @@ -1,5 +1,8 @@ { "usb": { "device_version": "0.0.1" + }, + "rgblight": { + "led_count": 24 } } diff --git a/keyboards/work_louder/loop/rev3/config.h b/keyboards/work_louder/loop/rev3/config.h deleted file mode 100644 index 5451d4466e2..00000000000 --- a/keyboards/work_louder/loop/rev3/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGBLED_NUM 11 diff --git a/keyboards/work_louder/loop/rev3/info.json b/keyboards/work_louder/loop/rev3/info.json index b377cdff008..603bca5c6a4 100644 --- a/keyboards/work_louder/loop/rev3/info.json +++ b/keyboards/work_louder/loop/rev3/info.json @@ -1,5 +1,8 @@ { "usb": { "device_version": "0.0.3" + }, + "rgblight": { + "led_count": 11 } } diff --git a/keyboards/work_louder/micro/config.h b/keyboards/work_louder/micro/config.h index 234b1de6023..98f2b869735 100644 --- a/keyboards/work_louder/micro/config.h +++ b/keyboards/work_louder/micro/config.h @@ -12,7 +12,6 @@ // #define RGB_MATRIX_KEYPRESSES #define RGBLIGHT_DI_PIN D2 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 #define RGBLIGHT_DEFAULT_HUE 213 diff --git a/keyboards/work_louder/micro/info.json b/keyboards/work_louder/micro/info.json index 6b14ecfbe79..d76e7aa0494 100644 --- a/keyboards/work_louder/micro/info.json +++ b/keyboards/work_louder/micro/info.json @@ -37,13 +37,14 @@ "hue_steps": 8, "led_count": 8, "max_brightness": 150, - "saturation_steps": 8 + "saturation_steps": 8, + "sleep": true }, "ws2812": { "pin": "D1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "url": "https://worklouder.cc/", "usb": { diff --git a/keyboards/work_louder/nano/config.h b/keyboards/work_louder/nano/config.h index 593304a0533..22c6f7b1bdd 100644 --- a/keyboards/work_louder/nano/config.h +++ b/keyboards/work_louder/nano/config.h @@ -18,20 +18,6 @@ along with this program. If not, see . #pragma once #define RGBLIGHT_DI_PIN C7 -#define RGBLED_NUM 6 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== or choose 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_TWINKLE #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT #define RGBLIGHT_DEFAULT_HUE 170 diff --git a/keyboards/work_louder/nano/info.json b/keyboards/work_louder/nano/info.json index adc32d10a64..ab064bd019e 100644 --- a/keyboards/work_louder/nano/info.json +++ b/keyboards/work_louder/nano/info.json @@ -10,7 +10,7 @@ "max_power": 100 }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B5", "B6", "C6"], @@ -26,7 +26,19 @@ "pin": "F6" }, "rgblight": { - "max_brightness": 120 + "led_count": 6, + "max_brightness": 120, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + } }, "bootmagic": { "matrix": [0, 2] diff --git a/keyboards/work_louder/numpad/info.json b/keyboards/work_louder/numpad/info.json index 4fa9c1442c5..0fa2bf2565d 100644 --- a/keyboards/work_louder/numpad/info.json +++ b/keyboards/work_louder/numpad/info.json @@ -29,7 +29,7 @@ "lto": true }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 1, "matrix": [3, 3], "x": 141, "y": 64}, {"flags": 1, "matrix": [3, 2], "x": 122, "y": 64}, diff --git a/keyboards/work_louder/work_board/config.h b/keyboards/work_louder/work_board/config.h index 56615c8e495..de91d98de93 100644 --- a/keyboards/work_louder/work_board/config.h +++ b/keyboards/work_louder/work_board/config.h @@ -18,19 +18,6 @@ along with this program. If not, see . #pragma once #define RGBLIGHT_DI_PIN D2 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== or choose 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_TWINKLE #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 #define RGBLIGHT_DEFAULT_HUE 213 @@ -75,21 +62,21 @@ along with this program. If not, see . #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 +// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -#define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// #define ENABLE_RGB_MATRIX_SPLASH +// #define ENABLE_RGB_MATRIX_MULTISPLASH +// #define ENABLE_RGB_MATRIX_SOLID_SPLASH +// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR // Sets the default mode, if none has been set diff --git a/keyboards/work_louder/work_board/info.json b/keyboards/work_louder/work_board/info.json index 067a2b292e8..1946b8bcf40 100644 --- a/keyboards/work_louder/work_board/info.json +++ b/keyboards/work_louder/work_board/info.json @@ -9,7 +9,7 @@ "max_power": 100 }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "E6"], @@ -25,7 +25,18 @@ "pin": "D1" }, "rgblight": { - "max_brightness": 120 + "max_brightness": 120, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/work_louder/work_board/keymaps/drashna/keymap.c b/keyboards/work_louder/work_board/keymaps/drashna/keymap.c index 1747ab638eb..2c202257425 100644 --- a/keyboards/work_louder/work_board/keymaps/drashna/keymap.c +++ b/keyboards/work_louder/work_board/keymaps/drashna/keymap.c @@ -110,7 +110,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { uint8_t this_mod = get_mods(); - uint8_t this_led = host_keyboard_leds(); + led_t this_led = host_keyboard_led_state(); uint8_t this_osm = get_oneshot_mods(); #define THUMB_LED 6 #define RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(...) RGB_MATRIX_INDICATOR_SET_COLOR(__VA_ARGS__) @@ -134,7 +134,7 @@ bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { } } - if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { + if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) { if (!layer_state_is(_ADJUST)) { RGB_MATRIX_INDICATOR_SET_COLOR(12, 0x00, 0xFF, 0x00); RGB_MATRIX_INDICATOR_SET_COLOR(13, 0x00, 0xFF, 0x00); diff --git a/keyboards/work_louder/work_board/rev1/config.h b/keyboards/work_louder/work_board/rev1/config.h deleted file mode 100644 index b7d85d490d9..00000000000 --- a/keyboards/work_louder/work_board/rev1/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -# define RGBLED_NUM 26 diff --git a/keyboards/work_louder/work_board/rev1/info.json b/keyboards/work_louder/work_board/rev1/info.json index 90ac25f360b..9884ca6e489 100644 --- a/keyboards/work_louder/work_board/rev1/info.json +++ b/keyboards/work_louder/work_board/rev1/info.json @@ -1,5 +1,8 @@ { "usb": { "device_version": "0.0.1" + }, + "rgblight": { + "led_count": 26 } } diff --git a/keyboards/work_louder/work_board/rev3/config.h b/keyboards/work_louder/work_board/rev3/config.h deleted file mode 100644 index 8e3cd8bce80..00000000000 --- a/keyboards/work_louder/work_board/rev3/config.h +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGBLED_NUM 19 diff --git a/keyboards/work_louder/work_board/rev3/info.json b/keyboards/work_louder/work_board/rev3/info.json index b377cdff008..63e757dfe21 100644 --- a/keyboards/work_louder/work_board/rev3/info.json +++ b/keyboards/work_louder/work_board/rev3/info.json @@ -1,5 +1,8 @@ { "usb": { "device_version": "0.0.3" + }, + "rgblight": { + "led_count": 19 } } diff --git a/keyboards/wsk/alpha9/config.h b/keyboards/wsk/alpha9/config.h index defc0a92dcb..af1fe3ab43e 100644 --- a/keyboards/wsk/alpha9/config.h +++ b/keyboards/wsk/alpha9/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 5 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/wsk/alpha9/info.json b/keyboards/wsk/alpha9/info.json index 0b158630599..5b9a3094604 100644 --- a/keyboards/wsk/alpha9/info.json +++ b/keyboards/wsk/alpha9/info.json @@ -17,6 +17,23 @@ "caps_lock": "D3", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/wsk/g4m3ralpha/config.h b/keyboards/wsk/g4m3ralpha/config.h index a14f9dbde2f..af1fe3ab43e 100644 --- a/keyboards/wsk/g4m3ralpha/config.h +++ b/keyboards/wsk/g4m3ralpha/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 5 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/wsk/g4m3ralpha/info.json b/keyboards/wsk/g4m3ralpha/info.json index e9c24279f3d..a6ecaccb059 100644 --- a/keyboards/wsk/g4m3ralpha/info.json +++ b/keyboards/wsk/g4m3ralpha/info.json @@ -8,6 +8,23 @@ "pid": "0x56D9", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/wsk/gothic50/config.h b/keyboards/wsk/gothic50/config.h index 541e19beced..55edc22470d 100644 --- a/keyboards/wsk/gothic50/config.h +++ b/keyboards/wsk/gothic50/config.h @@ -1,20 +1,5 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/wsk/gothic50/info.json b/keyboards/wsk/gothic50/info.json index 8cc09718799..2dd4ae8296b 100644 --- a/keyboards/wsk/gothic50/info.json +++ b/keyboards/wsk/gothic50/info.json @@ -8,6 +8,23 @@ "pid": "0x04EF", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F7" }, diff --git a/keyboards/wsk/gothic70/config.h b/keyboards/wsk/gothic70/config.h index b6ee3e9cc88..5f360813239 100644 --- a/keyboards/wsk/gothic70/config.h +++ b/keyboards/wsk/gothic70/config.h @@ -1,20 +1,5 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 7 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/wsk/gothic70/info.json b/keyboards/wsk/gothic70/info.json index 06ee936ce7d..0912ade63f7 100644 --- a/keyboards/wsk/gothic70/info.json +++ b/keyboards/wsk/gothic70/info.json @@ -8,6 +8,23 @@ "pid": "0x63CC", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/wsk/kodachi50/config.h b/keyboards/wsk/kodachi50/config.h index da4d3257a62..5f360813239 100644 --- a/keyboards/wsk/kodachi50/config.h +++ b/keyboards/wsk/kodachi50/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/wsk/kodachi50/info.json b/keyboards/wsk/kodachi50/info.json index b5d0f9459b7..a1950145951 100644 --- a/keyboards/wsk/kodachi50/info.json +++ b/keyboards/wsk/kodachi50/info.json @@ -8,6 +8,23 @@ "pid": "0x72D4", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/wsk/pain27/config.h b/keyboards/wsk/pain27/config.h index edc623d08fa..5f360813239 100644 --- a/keyboards/wsk/pain27/config.h +++ b/keyboards/wsk/pain27/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/wsk/pain27/info.json b/keyboards/wsk/pain27/info.json index f542c999a17..813bde3d027 100644 --- a/keyboards/wsk/pain27/info.json +++ b/keyboards/wsk/pain27/info.json @@ -8,6 +8,23 @@ "pid": "0x9E8C", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D1" }, diff --git a/keyboards/wsk/sl40/config.h b/keyboards/wsk/sl40/config.h index d33de62b5fb..af1fe3ab43e 100644 --- a/keyboards/wsk/sl40/config.h +++ b/keyboards/wsk/sl40/config.h @@ -21,18 +21,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/wsk/sl40/info.json b/keyboards/wsk/sl40/info.json index 09f5f988142..262e0fb9bb2 100644 --- a/keyboards/wsk/sl40/info.json +++ b/keyboards/wsk/sl40/info.json @@ -8,6 +8,23 @@ "pid": "0xC456", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F1" }, diff --git a/keyboards/wsk/tkl30/config.h b/keyboards/wsk/tkl30/config.h index 2dae864ddb2..5f360813239 100644 --- a/keyboards/wsk/tkl30/config.h +++ b/keyboards/wsk/tkl30/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/wsk/tkl30/info.json b/keyboards/wsk/tkl30/info.json index 10465560518..0dcbab7d724 100644 --- a/keyboards/wsk/tkl30/info.json +++ b/keyboards/wsk/tkl30/info.json @@ -8,6 +8,23 @@ "pid": "0x0B7F", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1" }, diff --git a/keyboards/wuque/creek70/config.h b/keyboards/wuque/creek70/config.h deleted file mode 100644 index d33ee006aa6..00000000000 --- a/keyboards/wuque/creek70/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2023 wuque - * - * This 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 RGBLED_NUM 7 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_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 -# define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/wuque/creek70/info.json b/keyboards/wuque/creek70/info.json index 5e54c694ed6..f0951430db3 100644 --- a/keyboards/wuque/creek70/info.json +++ b/keyboards/wuque/creek70/info.json @@ -30,99 +30,676 @@ "pin": "D0" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { + "layout": [ + {"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": [2, 14], "x": 15.25, "y": 0}, + + {"matrix": [0, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "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, 14], "x": 14.75, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 16.5, "y": 1}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [1, 17], "x": 18.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.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, 14], "x": 15.25, "y": 3}, + + {"matrix": [3, 16], "x": 17.5, "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, 6], "x": 5, "y": 4, "w": 2.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 8.5, "y": 4, "w": 2.75}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 15, "y": 4, "w": 1.25}, + + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4}, + {"matrix": [4, 17], "x": 18.5, "y": 4} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"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, "w": 2}, + + {"matrix": [0, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "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, 14], "x": 14.75, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 16.5, "y": 1}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [1, 17], "x": 18.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25}, + + {"matrix": [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": 2.75}, + + {"matrix": [3, 16], "x": 17.5, "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, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 15, "y": 4, "w": 1.25}, + + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4}, + {"matrix": [4, 17], "x": 18.5, "y": 4} + ] + }, + "LAYOUT_ansi_split_bs_rshift": { + "layout": [ + {"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": [2, 14], "x": 15.25, "y": 0}, + + {"matrix": [0, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "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, 14], "x": 14.75, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 16.5, "y": 1}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [1, 17], "x": 18.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25}, + + {"matrix": [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, 14], "x": 15.25, "y": 3}, + + {"matrix": [3, 16], "x": 17.5, "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, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 15, "y": 4, "w": 1.25}, + + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4}, + {"matrix": [4, 17], "x": 18.5, "y": 4} + ] + }, + "LAYOUT_ansi_split_space": { + "layout": [ + {"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, "w": 2}, + + {"matrix": [0, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "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, 14], "x": 14.75, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 16.5, "y": 1}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [1, 17], "x": 18.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25}, + + {"matrix": [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": 2.75}, + + {"matrix": [3, 16], "x": 17.5, "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, 6], "x": 5, "y": 4, "w": 2.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 8.5, "y": 4, "w": 2.75}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 15, "y": 4, "w": 1.25}, + + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4}, + {"matrix": [4, 17], "x": 18.5, "y": 4} + ] + }, + "LAYOUT_ansi_split_space_split_bs_rshift": { "layout": [ - {"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": [2, 14], "x": 16.25, "y": 0}, - {"matrix": [0, 15], "x": 17.25, "y": 0}, - {"matrix": [0, 16], "x": 18.25, "y": 0}, - - {"matrix": [0, 17], "x": 0, "y": 1}, - {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 2.5, "y": 1}, - {"matrix": [1, 2], "x": 3.5, "y": 1}, - {"matrix": [1, 3], "x": 4.5, "y": 1}, - {"matrix": [1, 4], "x": 5.5, "y": 1}, - {"matrix": [1, 5], "x": 6.5, "y": 1}, - {"matrix": [1, 6], "x": 7.5, "y": 1}, - {"matrix": [1, 7], "x": 8.5, "y": 1}, - {"matrix": [1, 8], "x": 9.5, "y": 1}, - {"matrix": [1, 9], "x": 10.5, "y": 1}, - {"matrix": [1, 10], "x": 11.5, "y": 1}, - {"matrix": [1, 11], "x": 12.5, "y": 1}, - {"matrix": [1, 12], "x": 13.5, "y": 1}, - {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5}, - - {"matrix": [1, 14], "x": 16.25, "y": 1}, - {"matrix": [1, 15], "x": 17.25, "y": 1}, - {"matrix": [1, 16], "x": 18.25, "y": 1}, - - {"matrix": [1, 17], "x": 0, "y": 2}, - {"matrix": [2, 0], "x": 1, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 2.75, "y": 2}, - {"matrix": [2, 2], "x": 3.75, "y": 2}, - {"matrix": [2, 3], "x": 4.75, "y": 2}, - {"matrix": [2, 4], "x": 5.75, "y": 2}, - {"matrix": [2, 5], "x": 6.75, "y": 2}, - {"matrix": [2, 6], "x": 7.75, "y": 2}, - {"matrix": [2, 7], "x": 8.75, "y": 2}, - {"matrix": [2, 8], "x": 9.75, "y": 2}, - {"matrix": [2, 9], "x": 10.75, "y": 2}, - {"matrix": [2, 10], "x": 11.75, "y": 2}, - {"matrix": [2, 11], "x": 12.75, "y": 2}, - {"matrix": [2, 12], "x": 13.75, "y": 2, "w": 2.25}, - {"matrix": [2, 13], "x": 15, "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": [2, 14], "x": 15.25, "y": 0}, + + {"matrix": [0, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "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, 14], "x": 14.75, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 16.5, "y": 1}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [1, 17], "x": 18.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25}, {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3, "w": 1.25}, - {"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}, - {"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 15, "y": 3}, - - {"matrix": [3, 16], "x": 17.25, "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, 14], "x": 15.25, "y": 3}, + + {"matrix": [3, 16], "x": 17.5, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25}, - {"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 4.75, "y": 4, "w": 2.5}, + + {"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, 6], "x": 5, "y": 4, "w": 2.25}, {"matrix": [4, 7], "x": 7.25, "y": 4, "w": 1.25}, - {"matrix": [4, 8], "x": 8.5, "y": 4, "w": 2.5}, - {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.25}, - {"matrix": [4, 14], "x": 14.75, "y": 4, "w": 1.25}, - - {"matrix": [4, 15], "x": 16.25, "y": 4}, - {"matrix": [4, 16], "x": 17.25, "y": 4}, - {"matrix": [4, 17], "x": 18.25, "y": 4} + {"matrix": [4, 8], "x": 8.5, "y": 4, "w": 2.75}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 15, "y": 4, "w": 1.25}, + + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4}, + {"matrix": [4, 17], "x": 18.5, "y": 4} + ] + }, + "LAYOUT_ansi_tsangan": { + "layout": [ + {"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, "w": 2}, + + {"matrix": [0, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "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, 14], "x": 14.75, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 16.5, "y": 1}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [1, 17], "x": 18.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25}, + + {"matrix": [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": 2.75}, + + {"matrix": [3, 16], "x": 17.5, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.75, "y": 4}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 5.25, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.75, "y": 4}, + {"matrix": [4, 14], "x": 14.75, "y": 4, "w": 1.5}, + + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4}, + {"matrix": [4, 17], "x": 18.5, "y": 4} + ] + }, + "LAYOUT_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"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": [2, 14], "x": 15.25, "y": 0}, + + {"matrix": [0, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "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, 14], "x": 14.75, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 16.5, "y": 1}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [1, 17], "x": 18.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25}, + + {"matrix": [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, 14], "x": 15.25, "y": 3}, + + {"matrix": [3, 16], "x": 17.5, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.75, "y": 4}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 5.25, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.75, "y": 4}, + {"matrix": [4, 14], "x": 14.75, "y": 4, "w": 1.5}, + + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4}, + {"matrix": [4, 17], "x": 18.5, "y": 4} ] } } diff --git a/keyboards/wuque/creek70/keymaps/default/keymap.c b/keyboards/wuque/creek70/keymaps/default/keymap.c index 4a067852545..167aebeaf93 100644 --- a/keyboards/wuque/creek70/keymaps/default/keymap.c +++ b/keyboards/wuque/creek70/keymaps/default/keymap.c @@ -17,18 +17,18 @@ #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_BSPC, KC_INS, KC_HOME, KC_PGUP, - 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_DEL, KC_END, KC_PGDN, - KC_VOLU, 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_VOLD, 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_RSFT, KC_UP, - KC_PAUSE, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + [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_INS, KC_HOME, KC_PGUP, + 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_DEL, KC_END, KC_PGDN, + KC_VOLU, 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_VOLD, 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_RSFT, KC_UP, + KC_PAUS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/wuque/creek70/keymaps/via/keymap.c b/keyboards/wuque/creek70/keymaps/via/keymap.c index 9c0a99a9864..10c12d41ba2 100644 --- a/keyboards/wuque/creek70/keymaps/via/keymap.c +++ b/keyboards/wuque/creek70/keymaps/via/keymap.c @@ -17,32 +17,32 @@ #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_BSPC, KC_INS, KC_HOME, KC_PGUP, - 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_DEL, KC_END, KC_PGDN, - KC_VOLU, 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_VOLD, 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_RSFT, KC_UP, - KC_PAUSE, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + [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_INS, KC_HOME, KC_PGUP, + 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_DEL, KC_END, KC_PGDN, + KC_VOLU, 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_VOLD, 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_RSFT, KC_UP, + KC_PAUS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/wuque/creek70/matrix_diagram.md b/keyboards/wuque/creek70/matrix_diagram.md new file mode 100644 index 00000000000..45585b71bbb --- /dev/null +++ b/keyboards/wuque/creek70/matrix_diagram.md @@ -0,0 +1,27 @@ +Keyboard Name: creek70 +Manufacturer: wuque studio +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ + │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │2E ││0F │0G │0H │ +┌───┐├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ +│10 ││11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E ││1F │1G │1H │ +├───┤├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ +│20 ││21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ +├───┤├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ +│30 ││31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ │3G │ +├───┤├────┼───┴┬──┴─┬─┴───┴───┼───┴┬──┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│40 ││41 │42 │43 │46 │47 │48 │4B │4C │4D │4E ││4F │4G │4H │ +└───┘└────┴────┴────┴─────────┴────┴─────────┴────┴────┴────┴────┘└───┴───┴───┘ + ┌────────┐ ┌──────────┐ + │31 │ 2.25u LShift 2.75u RShift │3D │ + └────────┘ └──────────┘ + ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ + │41 │42 │43 │47 │4B │4C │4D │4E │ Standard + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + │41 │42 │43 │47 │4C │4D │4E │ Tsangan/WKL + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/wuque/ikki68/config.h b/keyboards/wuque/ikki68/config.h index 80ecfb420d2..f0510424ffe 100644 --- a/keyboards/wuque/ikki68/config.h +++ b/keyboards/wuque/ikki68/config.h @@ -22,20 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*======= RGB function=======*/ -#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/wuque/ikki68/info.json b/keyboards/wuque/ikki68/info.json index e450f95dbfb..86d1de3d4a9 100644 --- a/keyboards/wuque/ikki68/info.json +++ b/keyboards/wuque/ikki68/info.json @@ -12,7 +12,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["D1", "D0", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "F0", "F1", "B6", "F4", "F5", "F6", "F7"], diff --git a/keyboards/wuque/ikki68_aurora/config.h b/keyboards/wuque/ikki68_aurora/config.h index c5726c333e0..db5a8d534ef 100644 --- a/keyboards/wuque/ikki68_aurora/config.h +++ b/keyboards/wuque/ikki68_aurora/config.h @@ -22,20 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*======= RGB function=======*/ -#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/wuque/ikki68_aurora/info.json b/keyboards/wuque/ikki68_aurora/info.json index 2e93f0efc78..872509ed429 100644 --- a/keyboards/wuque/ikki68_aurora/info.json +++ b/keyboards/wuque/ikki68_aurora/info.json @@ -21,7 +21,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/wuque/mammoth20x/config.h b/keyboards/wuque/mammoth20x/config.h index c35fac65d61..db5a8d534ef 100644 --- a/keyboards/wuque/mammoth20x/config.h +++ b/keyboards/wuque/mammoth20x/config.h @@ -22,7 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// Note: array is { col, row ) -#define ENCODERS_CW_KEY { { 3, 2 } } -#define ENCODERS_CCW_KEY { { 3, 4 } } diff --git a/keyboards/wuque/mammoth20x/info.json b/keyboards/wuque/mammoth20x/info.json index 3c0c0e29b8e..f7917ae26d8 100644 --- a/keyboards/wuque/mammoth20x/info.json +++ b/keyboards/wuque/mammoth20x/info.json @@ -29,9 +29,7 @@ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [2, 3], "x": 3, "y": 0, "w": 0.5}, {"matrix": [0, 3], "x": 3.5, "y": 0}, - {"matrix": [4, 3], "x": 4.5, "y": 0, "w": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, diff --git a/keyboards/wuque/mammoth20x/keymaps/default/keymap.c b/keyboards/wuque/mammoth20x/keymaps/default/keymap.c index e19b3bc172f..5f444bbff3b 100644 --- a/keyboards/wuque/mammoth20x/keymaps/default/keymap.c +++ b/keyboards/wuque/mammoth20x/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, KC_PAUS, KC_DEL, KC_VOLU, KC_MUTE, KC_VOLD, + KC_ESC, KC_PAUS, KC_DEL, KC_MUTE, KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_PPLS, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT ), [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/wuque/mammoth20x/keymaps/via/keymap.c b/keyboards/wuque/mammoth20x/keymaps/via/keymap.c index e5fe34fd7ba..e48b8b50d1e 100644 --- a/keyboards/wuque/mammoth20x/keymaps/via/keymap.c +++ b/keyboards/wuque/mammoth20x/keymaps/via/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, KC_PAUS, KC_DEL, KC_VOLD, KC_MUTE, KC_VOLU, + KC_ESC, KC_PAUS, KC_DEL, KC_MUTE, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_PPLS, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT ), [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -50,3 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/wuque/mammoth20x/keymaps/via/rules.mk b/keyboards/wuque/mammoth20x/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/wuque/mammoth20x/keymaps/via/rules.mk +++ b/keyboards/wuque/mammoth20x/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/wuque/mammoth20x/mammoth20x.c b/keyboards/wuque/mammoth20x/mammoth20x.c deleted file mode 100644 index eeaea79c710..00000000000 --- a/keyboards/wuque/mammoth20x/mammoth20x.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright 2021 wuquestudio - * - * This 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" - -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) -{ - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} -void encoder_action_register(uint8_t index, bool clockwise) -{ - keyevent_t encoder_event = (keyevent_t){ - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -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); - return true; -}; diff --git a/keyboards/wuque/mammoth75x/config.h b/keyboards/wuque/mammoth75x/config.h index 6b0d17be5cd..db5a8d534ef 100644 --- a/keyboards/wuque/mammoth75x/config.h +++ b/keyboards/wuque/mammoth75x/config.h @@ -22,7 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// Note: array is { col, row ) -#define ENCODERS_CW_KEY { { 3, 5 } } -#define ENCODERS_CCW_KEY { { 5, 5 } } diff --git a/keyboards/wuque/mammoth75x/info.json b/keyboards/wuque/mammoth75x/info.json index ef48587375b..9b9bc1abb66 100644 --- a/keyboards/wuque/mammoth75x/info.json +++ b/keyboards/wuque/mammoth75x/info.json @@ -41,10 +41,7 @@ {"matrix": [0, 11], "x": 11.75, "y": 0}, {"matrix": [0, 12], "x": 12.75, "y": 0}, {"matrix": [0, 13], "x": 14, "y": 0}, - - {"matrix": [5, 3], "x": 15.65, "y": 0.125, "w": 0.6, "h": 0.5}, {"matrix": [0, 14], "x": 15.75, "y": 0.625}, - {"matrix": [5, 5], "x": 16.25, "y": 0.125, "w": 0.6, "h": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1.25}, {"matrix": [1, 1], "x": 1, "y": 1.25}, diff --git a/keyboards/wuque/mammoth75x/keymaps/default/keymap.c b/keyboards/wuque/mammoth75x/keymaps/default/keymap.c index b0273298dc9..0ed2bdfebe1 100644 --- a/keyboards/wuque/mammoth75x/keymaps/default/keymap.c +++ b/keyboards/wuque/mammoth75x/keymaps/default/keymap.c @@ -18,7 +18,7 @@ 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_DEL, KC_VOLD, KC_MUTE,KC_VOLU, + 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_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_INS, 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_END, KC_PGDN, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/wuque/mammoth75x/keymaps/via/keymap.c b/keyboards/wuque/mammoth75x/keymaps/via/keymap.c index 13d5d4fa7a9..57f7a13cbdc 100644 --- a/keyboards/wuque/mammoth75x/keymaps/via/keymap.c +++ b/keyboards/wuque/mammoth75x/keymaps/via/keymap.c @@ -18,7 +18,7 @@ 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_DEL, KC_VOLD, KC_MUTE,KC_VOLU, + 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_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_INS, 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_END, KC_PGDN, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -50,3 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/wuque/mammoth75x/keymaps/via/rules.mk b/keyboards/wuque/mammoth75x/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/wuque/mammoth75x/keymaps/via/rules.mk +++ b/keyboards/wuque/mammoth75x/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/wuque/mammoth75x/mammoth75x.c b/keyboards/wuque/mammoth75x/mammoth75x.c deleted file mode 100644 index 3b2d995b7e1..00000000000 --- a/keyboards/wuque/mammoth75x/mammoth75x.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright 2021 wuquestudio - * - * This 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 VIA_ENABLE -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) -{ - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} -void encoder_action_register(uint8_t index, bool clockwise) -{ - keyevent_t encoder_event = (keyevent_t){ - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -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); - return true; -}; -#endif diff --git a/keyboards/wuque/nemui65/config.h b/keyboards/wuque/nemui65/config.h new file mode 100644 index 00000000000..489059d8ab3 --- /dev/null +++ b/keyboards/wuque/nemui65/config.h @@ -0,0 +1,24 @@ +/* Copyright 2023 wuque + * + * This 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 + diff --git a/keyboards/wuque/nemui65/info.json b/keyboards/wuque/nemui65/info.json new file mode 100644 index 00000000000..65cfebf9b40 --- /dev/null +++ b/keyboards/wuque/nemui65/info.json @@ -0,0 +1,128 @@ +{ + "keyboard_name": "nemui65", + "manufacturer": "wuque", + "maintainer": "spbgzh", + "usb": { + "vid": "0x807C", + "pid": "0x0005", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["C7", "D5", "B5", "B4", "D7", "D6", "D4", "D3", "D2", "D1", "D0", "B7", "B2", "B3", "F7"], + "rows": ["F1", "F0", "C6", "B6", "F5"] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rbglight": true + }, + "diode_direction": "COL2ROW", + "indicators": { + "caps_lock": "F6", + "on_state": 0 + }, + "ws2812": { + "pin": "F4" + }, + "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 + }, + "max_brightness": 200, + "led_count": 1, + "saturation_steps": 8, + "brightness_steps": 8, + "sleep": true + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT": { + "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, 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": [1, 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, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 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": [3, 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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/wuque/nemui65/keymaps/default/keymap.c b/keyboards/wuque/nemui65/keymaps/default/keymap.c new file mode 100644 index 00000000000..24801db75eb --- /dev/null +++ b/keyboards/wuque/nemui65/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2023 wuque + * + * This 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/nemui65/keymaps/via/keymap.c b/keyboards/wuque/nemui65/keymaps/via/keymap.c new file mode 100644 index 00000000000..da09d31c619 --- /dev/null +++ b/keyboards/wuque/nemui65/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2023 wuque + * + * This 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/wuque/nemui65/keymaps/via/rules.mk b/keyboards/wuque/nemui65/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/wuque/nemui65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/wuque/nemui65/readme.md b/keyboards/wuque/nemui65/readme.md new file mode 100644 index 00000000000..4225139ab02 --- /dev/null +++ b/keyboards/wuque/nemui65/readme.md @@ -0,0 +1,27 @@ +# Nmui65 + +More Info at [Nemui65](https://mechsandco.com/products/nemui65) +​ + +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: Nemui65 +* Hardware Availability: [Nemui65](https://mechsandco.com/products/nemui65) +​ + +Make example for this keyboard (after setting up your build environment): + + make wuque/nemui65:default + +Flashing example for this keyboard: + + make wuque/nemui65:default:flash + +## Bootloader + +Enter the bootloader using one of the following methods: + +* Tap the Reset switch mounted on the PCB +* In the case of the default keymap, use the key combination Fn + Delete +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +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/wuque/nemui65/rules.mk b/keyboards/wuque/nemui65/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/wuque/nemui65/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/wuque/promise87/ansi/config.h b/keyboards/wuque/promise87/ansi/config.h deleted file mode 100644 index b0e79e97c7b..00000000000 --- a/keyboards/wuque/promise87/ansi/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2022 wuque - * - * This 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 RGBLED_NUM 1 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*======= RGB function=======*/ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_STATIC_GRADIENT diff --git a/keyboards/wuque/promise87/ansi/info.json b/keyboards/wuque/promise87/ansi/info.json index d49b4aaa793..e7e0a0b46ee 100644 --- a/keyboards/wuque/promise87/ansi/info.json +++ b/keyboards/wuque/promise87/ansi/info.json @@ -21,7 +21,16 @@ "pin": "D2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "static_gradient": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/wuque/promise87/wkl/config.h b/keyboards/wuque/promise87/wkl/config.h deleted file mode 100644 index b0e79e97c7b..00000000000 --- a/keyboards/wuque/promise87/wkl/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2022 wuque - * - * This 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 RGBLED_NUM 1 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*======= RGB function=======*/ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_STATIC_GRADIENT diff --git a/keyboards/wuque/promise87/wkl/info.json b/keyboards/wuque/promise87/wkl/info.json index 7e0d7cfdcb5..29809d2a153 100644 --- a/keyboards/wuque/promise87/wkl/info.json +++ b/keyboards/wuque/promise87/wkl/info.json @@ -21,7 +21,16 @@ "pin": "D2" }, "rgblight": { - "max_brightness": 200 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 1, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "static_gradient": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/wuque/serneity65/config.h b/keyboards/wuque/serneity65/config.h deleted file mode 100644 index 134605fcab5..00000000000 --- a/keyboards/wuque/serneity65/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2021 wuque - * - * This 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 - -// Note: array is { col, row ) -#define ENCODERS_CW_KEY { { 3, 4 } } -#define ENCODERS_CCW_KEY { { 5, 4 } } diff --git a/keyboards/wuque/serneity65/info.json b/keyboards/wuque/serneity65/info.json index 9ebc9af8438..f27073b2858 100644 --- a/keyboards/wuque/serneity65/info.json +++ b/keyboards/wuque/serneity65/info.json @@ -41,9 +41,7 @@ {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [4, 3], "x": 15, "y": 0, "w": 0.5}, {"matrix": [0, 14], "x": 15.5, "y": 0}, - {"matrix": [4, 5], "x": 16.5, "y": 0, "w": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, diff --git a/keyboards/wuque/serneity65/keymaps/default/keymap.c b/keyboards/wuque/serneity65/keymaps/default/keymap.c index 2acca2f0c0b..23ddfced888 100644 --- a/keyboards/wuque/serneity65/keymaps/default/keymap.c +++ b/keyboards/wuque/serneity65/keymaps/default/keymap.c @@ -18,17 +18,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_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, + 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_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_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_PGUP, 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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPRV, KC_MPLY, KC_MNXT, + 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_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; + ) + }; diff --git a/keyboards/wuque/serneity65/keymaps/via/keymap.c b/keyboards/wuque/serneity65/keymaps/via/keymap.c index 8e820022fea..05abb620da6 100644 --- a/keyboards/wuque/serneity65/keymaps/via/keymap.c +++ b/keyboards/wuque/serneity65/keymaps/via/keymap.c @@ -18,31 +18,40 @@ 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_VOLD, KC_MUTE, KC_VOLU, + 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_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_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_PGUP, 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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MPRV, KC_MPLY, KC_MNXT, + 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_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/wuque/serneity65/keymaps/via/rules.mk b/keyboards/wuque/serneity65/keymaps/via/rules.mk index 43061db1dd4..1189f4ad192 100644 --- a/keyboards/wuque/serneity65/keymaps/via/rules.mk +++ b/keyboards/wuque/serneity65/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/wuque/serneity65/serneity65.c b/keyboards/wuque/serneity65/serneity65.c deleted file mode 100644 index 58e06634675..00000000000 --- a/keyboards/wuque/serneity65/serneity65.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright 2021 wuque - * - * This 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 VIA_ENABLE -static uint8_t encoder_state[NUM_ENCODERS] = {0}; -static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY; - -void encoder_action_unregister(void) -{ - for (int index = 0; index < NUM_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(), - .type = KEY_EVENT - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -} -void encoder_action_register(uint8_t index, bool clockwise) -{ - keyevent_t encoder_event = (keyevent_t){ - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = timer_read(), - .type = KEY_EVENT - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -} - -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); - return true; -}; -#endif diff --git a/keyboards/xbows/knight/info.json b/keyboards/xbows/knight/info.json index 3d507b38a91..7684ca6b396 100644 --- a/keyboards/xbows/knight/info.json +++ b/keyboards/xbows/knight/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6"], diff --git a/keyboards/xbows/knight_plus/info.json b/keyboards/xbows/knight_plus/info.json index 7aa1fe74f5c..695ef03672d 100644 --- a/keyboards/xbows/knight_plus/info.json +++ b/keyboards/xbows/knight_plus/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6"], diff --git a/keyboards/xbows/nature/info.json b/keyboards/xbows/nature/info.json index 0287c13ee4a..892dda88781 100644 --- a/keyboards/xbows/nature/info.json +++ b/keyboards/xbows/nature/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6"], diff --git a/keyboards/xbows/numpad/info.json b/keyboards/xbows/numpad/info.json index 34744625d86..2f5f5f4cd86 100644 --- a/keyboards/xbows/numpad/info.json +++ b/keyboards/xbows/numpad/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["D4", "D6", "B2", "B1"], diff --git a/keyboards/xbows/ranger/info.json b/keyboards/xbows/ranger/info.json index ec3fcb0fb3b..edbb5fc5045 100644 --- a/keyboards/xbows/ranger/info.json +++ b/keyboards/xbows/ranger/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B7", "B3", "B2", "B1", "B0", "E6", "F0", "F1", "F4", "F5", "D7", "F6", "F7", "D4", "D5", "D3"], diff --git a/keyboards/xbows/woody/info.json b/keyboards/xbows/woody/info.json index 7e4e25357f3..8212f310343 100644 --- a/keyboards/xbows/woody/info.json +++ b/keyboards/xbows/woody/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "IS31FL3731" + "driver": "is31fl3731" }, "matrix_pins": { "cols": ["B6", "C6", "C7", "F4", "F5", "F6", "F7", "B7", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], diff --git a/keyboards/xbows/woody/woody.c b/keyboards/xbows/woody/woody.c index 9757bde9c94..fa0ba7f768a 100644 --- a/keyboards/xbows/woody/woody.c +++ b/keyboards/xbows/woody/woody.c @@ -101,7 +101,7 @@ bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; } - if (IS_LED_ON(host_keyboard_leds(), USB_LED_CAPS_LOCK)) { + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); } return true; diff --git a/keyboards/xelus/akis/config.h b/keyboards/xelus/akis/config.h index ae0e6921916..5df8b9c56bd 100644 --- a/keyboards/xelus/akis/config.h +++ b/keyboards/xelus/akis/config.h @@ -16,19 +16,6 @@ #pragma once -/* RGB Lighting */ -#define RGBLED_NUM 23 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/xelus/akis/info.json b/keyboards/xelus/akis/info.json index 320ad9824bb..b5b082a37ac 100644 --- a/keyboards/xelus/akis/info.json +++ b/keyboards/xelus/akis/info.json @@ -8,6 +8,21 @@ "pid": "0xA04B", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 23, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B0" }, diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h index d84773e5fbc..ad399bd9623 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/config.h +++ b/keyboards/xelus/dawn60/rev1_qmk/config.h @@ -80,8 +80,8 @@ #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 +// #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 diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c index f153c9ef9de..7b778073266 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c +++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c @@ -167,28 +167,28 @@ led_config_t g_led_config = { { //Custom Driver static void init(void) { i2c_init(); - IS31FL3731_init(DRIVER_ADDR_1); - IS31FL3731_init(DRIVER_ADDR_2); + is31fl3731_init(DRIVER_ADDR_1); + is31fl3731_init(DRIVER_ADDR_2); for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = true; - IS31FL3731_set_led_control_register(index, enabled, enabled, enabled); + is31fl3731_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); - IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); //RGB Underglow ws2812 } static void flush(void) { - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0); - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); } static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < ISSI_DRIVER_TOTAL) { - IS31FL3731_set_color(index, red, green, blue); + is31fl3731_set_color(index, red, green, blue); } else { rgb_matrix_ws2812_array[index - ISSI_DRIVER_TOTAL].r = red; rgb_matrix_ws2812_array[index - ISSI_DRIVER_TOTAL].g = green; @@ -197,7 +197,7 @@ static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } static void set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - IS31FL3731_set_color_all( red, green, blue ); + is31fl3731_set_color_all( red, green, blue ); for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { rgb_matrix_ws2812_array[i].r = red; rgb_matrix_ws2812_array[i].g = green; diff --git a/keyboards/xelus/kangaroo/rev1/rules.mk b/keyboards/xelus/kangaroo/rev1/rules.mk index 805e07ebc2e..a6006b71501 100644 --- a/keyboards/xelus/kangaroo/rev1/rules.mk +++ b/keyboards/xelus/kangaroo/rev1/rules.mk @@ -11,5 +11,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/kangaroo/rev2/rules.mk b/keyboards/xelus/kangaroo/rev2/rules.mk index c7c6f5f1633..613adf3a226 100644 --- a/keyboards/xelus/kangaroo/rev2/rules.mk +++ b/keyboards/xelus/kangaroo/rev2/rules.mk @@ -14,5 +14,3 @@ EEPROM_DRIVER = i2c EEPROM_DRIVER = wear_leveling WEAR_LEVELING_DRIVER = embedded_flash -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/la_plus/config.h b/keyboards/xelus/la_plus/config.h index 82ada2e6da9..6e3a51166eb 100755 --- a/keyboards/xelus/la_plus/config.h +++ b/keyboards/xelus/la_plus/config.h @@ -59,21 +59,21 @@ #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_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 +// #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 // Custom Startup Animation // comment out for solid animation diff --git a/keyboards/xelus/la_plus/info.json b/keyboards/xelus/la_plus/info.json index 24f84a7d80f..be1fa115846 100644 --- a/keyboards/xelus/la_plus/info.json +++ b/keyboards/xelus/la_plus/info.json @@ -12,7 +12,7 @@ "pin": "F1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["E6", "D5", "B2", "B3", "D3", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], diff --git a/keyboards/xelus/ninjin/config.h b/keyboards/xelus/ninjin/config.h index a922b89dbf2..9db59dcc66c 100644 --- a/keyboards/xelus/ninjin/config.h +++ b/keyboards/xelus/ninjin/config.h @@ -16,19 +16,6 @@ #pragma once -/* RGB Underglow */ -#define RGBLED_NUM 26 -#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 - // PWM RGB Underglow Defines #define WS2812_PWM_DRIVER PWMD1 #define WS2812_PWM_CHANNEL 3 diff --git a/keyboards/xelus/ninjin/info.json b/keyboards/xelus/ninjin/info.json index 242362ab7e2..ae315956238 100644 --- a/keyboards/xelus/ninjin/info.json +++ b/keyboards/xelus/ninjin/info.json @@ -13,7 +13,20 @@ "driver": "pwm" }, "rgblight": { - "max_brightness": 200 + "led_count": 26, + "max_brightness": 200, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "B6", "B5"], diff --git a/keyboards/xelus/ninjin/rules.mk b/keyboards/xelus/ninjin/rules.mk index ead22f6c155..e59fc84570d 100644 --- a/keyboards/xelus/ninjin/rules.mk +++ b/keyboards/xelus/ninjin/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/pachi/rev1/rules.mk b/keyboards/xelus/pachi/rev1/rules.mk index c02eb841df6..d3ca7b060e1 100644 --- a/keyboards/xelus/pachi/rev1/rules.mk +++ b/keyboards/xelus/pachi/rev1/rules.mk @@ -1,5 +1,3 @@ -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE # Build Options # change yes to no to disable diff --git a/keyboards/xelus/pachi/rgb/rev1/rev1.c b/keyboards/xelus/pachi/rgb/rev1/rev1.c index 856cdc13026..156c5228dab 100644 --- a/keyboards/xelus/pachi/rgb/rev1/rev1.c +++ b/keyboards/xelus/pachi/rgb/rev1/rev1.c @@ -188,7 +188,7 @@ led_config_t g_led_config = { { static void init(void) { i2c_init(); - IS31FL3741_init(DRIVER_ADDR_1); + is31fl3741_init(DRIVER_ADDR_1); for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = !( ( index == -1+0+13) || //A13 ( index == -1+13+3) || //B3 @@ -221,19 +221,19 @@ static void init(void) { ( index == -1+104+12) || //I12 ( index == -1+104+13) //I13 ); - IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); + is31fl3741_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); } static void flush(void) { - IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0); } const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = IS31FL3741_set_color, - .set_color_all = IS31FL3741_set_color_all + .set_color = is31fl3741_set_color, + .set_color_all = is31fl3741_set_color_all }; #endif diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c index da5bb96a751..d7c74730f8a 100644 --- a/keyboards/xelus/pachi/rgb/rev2/rev2.c +++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c @@ -194,7 +194,7 @@ led_config_t g_led_config = { { static void init(void) { i2c_init(); - IS31FL3741_init(DRIVER_ADDR_1); + is31fl3741_init(DRIVER_ADDR_1); for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = !( ( index == -1+0+13) || //A13 ( index == -1+13+3) || //B3 @@ -227,20 +227,20 @@ static void init(void) { ( index == -1+104+12) || //I12 ( index == -1+104+13) //I13 ); - IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); + is31fl3741_set_led_control_register(index, enabled, enabled, enabled); } - IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); } static void flush(void) { - IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0); } const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = IS31FL3741_set_color, - .set_color_all = IS31FL3741_set_color_all + .set_color = is31fl3741_set_color, + .set_color_all = is31fl3741_set_color_all }; #ifdef VIA_ENABLE diff --git a/keyboards/xelus/rs108/info.json b/keyboards/xelus/rs108/info.json index 62377018b6f..fd2358d68dd 100644 --- a/keyboards/xelus/rs108/info.json +++ b/keyboards/xelus/rs108/info.json @@ -96,25 +96,25 @@ {"matrix": [5, 8], "x": 18.5, "y": 2.25}, {"matrix": [4, 9], "x": 19.5, "y": 2.25}, {"matrix": [5, 9], "x": 20.5, "y": 2.25}, - {"matrix": [6, 0], "x": 21.5, "y": 2.25, "h": 2}, - - {"matrix": [7, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [6, 1], "x": 1.75, "y": 3.25}, - {"matrix": [7, 1], "x": 2.75, "y": 3.25}, - {"matrix": [6, 2], "x": 3.75, "y": 3.25}, - {"matrix": [7, 2], "x": 4.75, "y": 3.25}, - {"matrix": [6, 3], "x": 5.75, "y": 3.25}, - {"matrix": [7, 3], "x": 6.75, "y": 3.25}, - {"matrix": [6, 4], "x": 7.75, "y": 3.25}, - {"matrix": [7, 4], "x": 8.75, "y": 3.25}, - {"matrix": [6, 5], "x": 9.75, "y": 3.25}, - {"matrix": [7, 5], "x": 10.75, "y": 3.25}, - {"matrix": [7, 6], "x": 11.75, "y": 3.25}, - {"matrix": [7, 8], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [6, 9], "x": 18.5, "y": 3.25}, - {"matrix": [7, 9], "x": 19.5, "y": 3.25}, - {"matrix": [6, 10], "x": 20.5, "y": 3.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [7, 6], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [7, 8], "x": 18.5, "y": 3.25}, + {"matrix": [6, 9], "x": 19.5, "y": 3.25}, + {"matrix": [7, 9], "x": 20.5, "y": 3.25}, + {"matrix": [6, 10], "x": 21.5, "y": 2.25, "h": 2}, {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25}, {"matrix": [9, 0], "x": 2.25, "y": 4.25}, @@ -134,23 +134,23 @@ {"matrix": [9, 8], "x": 18.5, "y": 4.25}, {"matrix": [8, 9], "x": 19.5, "y": 4.25}, {"matrix": [9, 9], "x": 20.5, "y": 4.25}, - {"matrix": [10, 0], "x": 21.5, "y": 4.25, "h": 2}, - - {"matrix": [11, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [10, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [11, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [11, 4], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [10, 5], "x": 10, "y": 5.25, "w": 1.25}, - {"matrix": [10, 6], "x": 11.25, "y": 5.25, "w": 1.25}, - {"matrix": [11, 6], "x": 12.5, "y": 5.25, "w": 1.25}, - {"matrix": [10, 7], "x": 13.75, "y": 5.25, "w": 1.25}, - - {"matrix": [11, 7], "x": 15.25, "y": 5.25}, - {"matrix": [10, 8], "x": 16.25, "y": 5.25}, - {"matrix": [10, 9], "x": 17.25, "y": 5.25}, - - {"matrix": [11, 9], "x": 18.5, "y": 5.25, "w": 2}, - {"matrix": [10, 10], "x": 20.5, "y": 5.25} + + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 2], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [11, 4], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [10, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 6], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [10, 7], "x": 15.25, "y": 5.25}, + + {"matrix": [11, 7], "x": 16.25, "y": 5.25}, + {"matrix": [10, 8], "x": 17.25, "y": 5.25}, + {"matrix": [10, 9], "x": 18.5, "y": 5.25, "w": 2}, + + {"matrix": [11, 9], "x": 20.5, "y": 5.25}, + {"matrix": [10, 10], "x": 21.5, "y": 4.25, "h": 2} ] } } diff --git a/keyboards/xelus/rs108/rules.mk b/keyboards/xelus/rs108/rules.mk index 8441c649b26..612c1d666aa 100644 --- a/keyboards/xelus/rs108/rules.mk +++ b/keyboards/xelus/rs108/rules.mk @@ -16,5 +16,3 @@ EEPROM_DRIVER = i2c # Save hid interface KEYBOARD_SHARED_EP = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/rs60/rev1/info.json b/keyboards/xelus/rs60/rev1/info.json index 9b8f0410fab..69f8d6e5b0e 100644 --- a/keyboards/xelus/rs60/rev1/info.json +++ b/keyboards/xelus/rs60/rev1/info.json @@ -9,7 +9,8 @@ }, "diode_direction": "COL2ROW", "indicators": { - "caps_lock": "B0" + "caps_lock": "B0", + "on_state": 0 }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/xelus/rs60/rev2_0/rules.mk b/keyboards/xelus/rs60/rev2_0/rules.mk index e81b538301a..965f4edaefb 100644 --- a/keyboards/xelus/rs60/rev2_0/rules.mk +++ b/keyboards/xelus/rs60/rev2_0/rules.mk @@ -15,5 +15,3 @@ EEPROM_DRIVER = i2c # Save hid interface KEYBOARD_SHARED_EP = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/rs60/rev2_1/info.json b/keyboards/xelus/rs60/rev2_1/info.json index b8cda1a22a7..118a671547c 100644 --- a/keyboards/xelus/rs60/rev2_1/info.json +++ b/keyboards/xelus/rs60/rev2_1/info.json @@ -9,7 +9,8 @@ }, "diode_direction": "COL2ROW", "indicators": { - "caps_lock": "A1" + "caps_lock": "A1", + "on_state": 0 }, "processor": "STM32L412", "bootloader": "stm32-dfu", diff --git a/keyboards/xelus/rs60/rev2_1/rules.mk b/keyboards/xelus/rs60/rev2_1/rules.mk index 6329d2c31d4..9eeaa8553bb 100644 --- a/keyboards/xelus/rs60/rev2_1/rules.mk +++ b/keyboards/xelus/rs60/rev2_1/rules.mk @@ -17,5 +17,3 @@ WEAR_LEVELING_DRIVER = embedded_flash # Save hid interface KEYBOARD_SHARED_EP = yes -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/trinityxttkl/rules.mk b/keyboards/xelus/trinityxttkl/rules.mk index 120a444ec8a..ef90964f9b3 100644 --- a/keyboards/xelus/trinityxttkl/rules.mk +++ b/keyboards/xelus/trinityxttkl/rules.mk @@ -14,5 +14,3 @@ BACKLIGHT_ENABLE = no RGBLIGHT_ENABLE = no -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/valor/rev1/config.h b/keyboards/xelus/valor/rev1/config.h index c431ddad873..fe18ba5b717 100644 --- a/keyboards/xelus/valor/rev1/config.h +++ b/keyboards/xelus/valor/rev1/config.h @@ -16,19 +16,6 @@ #pragma once -/* RGB Underglow */ -#define RGBLED_NUM 28 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/xelus/valor/rev1/info.json b/keyboards/xelus/valor/rev1/info.json index 2545fb24b01..324a57d180b 100644 --- a/keyboards/xelus/valor/rev1/info.json +++ b/keyboards/xelus/valor/rev1/info.json @@ -12,7 +12,20 @@ "pin": "B0" }, "rgblight": { - "max_brightness": 200 + "led_count": 28, + "max_brightness": 200, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2"], diff --git a/keyboards/xelus/valor/rev2/config.h b/keyboards/xelus/valor/rev2/config.h index cc63e70bb40..e5acad6f9c8 100644 --- a/keyboards/xelus/valor/rev2/config.h +++ b/keyboards/xelus/valor/rev2/config.h @@ -40,7 +40,6 @@ #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 /* RGB Matrix */ -#define RGBLED_NUM 28 #define RGB_MATRIX_LED_COUNT 28 #define NOP_FUDGE 0.4 diff --git a/keyboards/xelus/valor/rev2/info.json b/keyboards/xelus/valor/rev2/info.json index d3f134fdf88..a8068eff897 100644 --- a/keyboards/xelus/valor/rev2/info.json +++ b/keyboards/xelus/valor/rev2/info.json @@ -13,7 +13,7 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B2", "B1", "B0", "A7", "A6", "A5", "A4", "A13", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], diff --git a/keyboards/xelus/valor_frl_tkl/rev1/rules.mk b/keyboards/xelus/valor_frl_tkl/rev1/rules.mk index 35173d663a9..efbd7d0e9b5 100644 --- a/keyboards/xelus/valor_frl_tkl/rev1/rules.mk +++ b/keyboards/xelus/valor_frl_tkl/rev1/rules.mk @@ -13,5 +13,3 @@ AUDIO_ENABLE = no # Audio output EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk b/keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk index 4ecf72dea77..8ee0c3e8fe8 100644 --- a/keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk +++ b/keyboards/xelus/valor_frl_tkl/rev2_0/rules.mk @@ -11,7 +11,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk b/keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk index 4ecf72dea77..8ee0c3e8fe8 100644 --- a/keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk +++ b/keyboards/xelus/valor_frl_tkl/rev2_1/rules.mk @@ -11,7 +11,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/xelus/xs108/rules.mk b/keyboards/xelus/xs108/rules.mk index a204d485fa6..5ed7b869aee 100644 --- a/keyboards/xelus/xs108/rules.mk +++ b/keyboards/xelus/xs108/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output EEPROM_DRIVER = i2c -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/xs60/hotswap/config.h b/keyboards/xelus/xs60/hotswap/config.h index 242560c0678..d1138c735de 100644 --- a/keyboards/xelus/xs60/hotswap/config.h +++ b/keyboards/xelus/xs60/hotswap/config.h @@ -38,7 +38,6 @@ #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 // RGBLIGHT -#define RGBLED_NUM 8 // actually only has 1 #define RGBLIGHT_LAYERS #define WS2812_EXTERNAL_PULLUP #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/xelus/xs60/hotswap/info.json b/keyboards/xelus/xs60/hotswap/info.json index 4d6888f7076..81cf86498b2 100644 --- a/keyboards/xelus/xs60/hotswap/info.json +++ b/keyboards/xelus/xs60/hotswap/info.json @@ -8,6 +8,9 @@ "pid": "0x5861", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 8 + }, "ws2812": { "pin": "A10" }, diff --git a/keyboards/xelus/xs60/soldered/config.h b/keyboards/xelus/xs60/soldered/config.h index cbbdc49b122..4b7be4d4414 100644 --- a/keyboards/xelus/xs60/soldered/config.h +++ b/keyboards/xelus/xs60/soldered/config.h @@ -37,7 +37,6 @@ // More EEPROM for layers // RGBLIGHT -#define RGBLED_NUM 8 // actually only has 1 #define RGBLIGHT_LAYERS #define WS2812_EXTERNAL_PULLUP #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/xelus/xs60/soldered/info.json b/keyboards/xelus/xs60/soldered/info.json index 6e540617c24..20de0ef8377 100644 --- a/keyboards/xelus/xs60/soldered/info.json +++ b/keyboards/xelus/xs60/soldered/info.json @@ -8,6 +8,9 @@ "pid": "0x5860", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 8 + }, "ws2812": { "pin": "A10" }, diff --git a/keyboards/xiudi/xd002/config.h b/keyboards/xiudi/xd002/config.h index d442ee57623..0d0cd3712a7 100644 --- a/keyboards/xiudi/xd002/config.h +++ b/keyboards/xiudi/xd002/config.h @@ -15,8 +15,6 @@ */ #pragma once -#define RGBLED_NUM 2 - // Save as much space as we can... #define LAYER_STATE_8BIT #define NO_ACTION_LAYER diff --git a/keyboards/xiudi/xd002/info.json b/keyboards/xiudi/xd002/info.json index cce509be798..1e0b22f96b1 100644 --- a/keyboards/xiudi/xd002/info.json +++ b/keyboards/xiudi/xd002/info.json @@ -8,6 +8,9 @@ "pid": "0x0202", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 2 + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/xiudi/xd004/info.json b/keyboards/xiudi/xd004/info.json index 597c5dc818f..531283c78a9 100644 --- a/keyboards/xiudi/xd004/info.json +++ b/keyboards/xiudi/xd004/info.json @@ -11,6 +11,14 @@ "pin": "D5", "levels": 6 }, + "rgblight": { + "hue_steps": 10, + "led_count": 2, + "animations": { + "rainbow_swirl": true, + "static_gradient": true + } + }, "ws2812": { "pin": "C6" }, diff --git a/keyboards/xiudi/xd004/v1/config.h b/keyboards/xiudi/xd004/v1/config.h deleted file mode 100644 index 823ba863588..00000000000 --- a/keyboards/xiudi/xd004/v1/config.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2019 Sidney Bovet - -This 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 . -*/ - -/* -Note: the following configuration uses 98% of the flash memory, be -careful if you enable anything else. Also have a look at rules.mk -where some things are disabled to save space as well. -*/ - -#pragma once - -/* RGB Underglow -This will not be used, as RGBLIGHT_ENABLE is set to 'no' in rules.mk -We do not have enough space in the flash for this at the moment, maybe -further optimizations can be done on that side. -*/ -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLED_NUM 2 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* disable action features */ -// #define NO_ACTION_ONESHOT // 462 bytes <- this needs to be un-commented out if Link Time Optimization is disabled, otherwise file is too large -// The two below are implicit since we use LTO_ENABLE (in rules.mk) diff --git a/keyboards/xiudi/xd60/rev2/config.h b/keyboards/xiudi/xd60/rev2/config.h index 21efad0d810..4e596948184 100644 --- a/keyboards/xiudi/xd60/rev2/config.h +++ b/keyboards/xiudi/xd60/rev2/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB Underglow - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 6 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/xiudi/xd60/rev2/info.json b/keyboards/xiudi/xd60/rev2/info.json index c45ef7af643..2f994ac2e45 100644 --- a/keyboards/xiudi/xd60/rev2/info.json +++ b/keyboards/xiudi/xd60/rev2/info.json @@ -9,10 +9,27 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F5", "levels": 6, "on_state": 0 }, + "rgblight": { + "hue_steps": 10, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/xiudi/xd60/rev3/config.h b/keyboards/xiudi/xd60/rev3/config.h index f8845d411fa..61a74eb88a9 100644 --- a/keyboards/xiudi/xd60/rev3/config.h +++ b/keyboards/xiudi/xd60/rev3/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -/* RGB Underglow - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/xiudi/xd60/rev3/info.json b/keyboards/xiudi/xd60/rev3/info.json index 68c97c0a9e8..89a0983bf4f 100644 --- a/keyboards/xiudi/xd60/rev3/info.json +++ b/keyboards/xiudi/xd60/rev3/info.json @@ -9,10 +9,27 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F5", "levels": 6, "on_state": 0 }, + "rgblight": { + "hue_steps": 10, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/xiudi/xd68/config.h b/keyboards/xiudi/xd68/config.h index e62b98a12d1..139fb913228 100644 --- a/keyboards/xiudi/xd68/config.h +++ b/keyboards/xiudi/xd68/config.h @@ -37,19 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// ws2812 options -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 // number of LEDs -#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue -#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation -#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/xiudi/xd68/info.json b/keyboards/xiudi/xd68/info.json index 0522a66e572..d55a8535c6f 100644 --- a/keyboards/xiudi/xd68/info.json +++ b/keyboards/xiudi/xd68/info.json @@ -14,11 +14,30 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F5", "levels": 6, "breathing": true, "on_state": 0 }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/xiudi/xd75/config.h b/keyboards/xiudi/xd75/config.h index 8acfb92cf5b..9bbab0cdf0b 100644 --- a/keyboards/xiudi/xd75/config.h +++ b/keyboards/xiudi/xd75/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 6 -# define RGBLIGHT_HUE_STEP 12 -# define RGBLIGHT_SAT_STEP 25 -# define RGBLIGHT_VAL_STEP 12 -//# 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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/xiudi/xd75/info.json b/keyboards/xiudi/xd75/info.json index bc2e724214d..58af00e9724 100644 --- a/keyboards/xiudi/xd75/info.json +++ b/keyboards/xiudi/xd75/info.json @@ -18,6 +18,24 @@ "levels": 6, "on_state": 0 }, + "rgblight": { + "hue_steps": 12, + "saturation_steps": 25, + "brightness_steps": 12, + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/xiudi/xd75/keymaps/billypython/keymap.c b/keyboards/xiudi/xd75/keymaps/billypython/keymap.c index 30b9f79606c..d8301194f8c 100644 --- a/keyboards/xiudi/xd75/keymaps/billypython/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/billypython/keymap.c @@ -41,7 +41,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case NUMPAD: if (record->event.pressed) { layer_invert(L_NUMPAD); - bool num_lock = host_keyboard_leds() & 1<. + */ + +#pragma once + +#define HOLD_ON_OTHER_KEY_PRESS + +#define MIDI_ADVANCED diff --git a/keyboards/xiudi/xd75/keymaps/dothtm75/keymap.c b/keyboards/xiudi/xd75/keymaps/dothtm75/keymap.c new file mode 100644 index 00000000000..1767915dace --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/dothtm75/keymap.c @@ -0,0 +1,174 @@ +/* Copyright 2017 Wunder + * + * This 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_5x15( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_MINS), LGUI(KC_EQL), KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_0), KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, LGUI(KC_LCBR), LGUI(KC_RCBR), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSLS, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, LGUI(KC_LBRC), LGUI(KC_RBRC), 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, LGUI(KC_QUES), LGUI(KC_SLSH), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + MO(2), KC_LCTL, KC_LALT, KC_LGUI, LT(1,KC_SPC), KC_SPC, LGUI(KC_SPC), KC_NO, KC_SPC, LT(1,KC_SPC), KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ortho_5x15( + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_MINS, KC_EQL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LGUI(KC_1), KC_DEL, + KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_NO, KC_LCBR, KC_RCBR, KC_NO, KC_LCBR, KC_RCBR, KC_DQUO, KC_QUOT, KC_NO, KC_SLSH, + KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_LBRC, KC_RBRC, KC_NO, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_NO, KC_PENT, + KC_TRNS, KC_UNDS, KC_PLUS, KC_MINS, KC_EQL, KC_NO, KC_QUES, KC_SLSH, KC_NO, KC_QUES, KC_SLSH, KC_QUES, KC_SLSH, LCAG(KC_UP), KC_TRNS, + MO(15), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LGUI(KC_SPC), HYPR(KC_J), KC_TRNS, LGUI(KC_SPC), KC_TRNS, KC_TRNS, KC_TRNS, LGUI(KC_LBRC), LCAG(KC_DOWN), LGUI(KC_RBRC) + ), + + [2] = LAYOUT_ortho_5x15( + DB_TOGG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, KC_DEL, + RGB_TOG, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_NO, KC_NO, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_NO, KC_NO, + HYPR(KC_H), KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(15), HYPR(KC_K), KC_NO, KC_NO, KC_TRNS, MO(15), KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + + ), + + // Musical keys + + [3] = LAYOUT_ortho_5x15( + // Chromatic Scale Vertical Typing 60 + KC_ESC, MI_C, MI_E, MI_Gs, MI_C1, MI_E1, KC_NO, KC_NO, MI_Gs1, MI_C2, MI_E2, MI_Gs2, MI_C3, MI_E3, MI_TR0, + KC_TAB, MI_Cs, MI_F, MI_A, MI_Cs1, MI_F1, KC_NO, KC_NO, MI_A1, MI_Cs2, MI_F2, MI_A2, MI_Cs3, MI_F3, MI_TRSU, + KC_SPC, MI_D, MI_Fs, MI_As, MI_D1, MI_Fs1, KC_NO, KC_NO, MI_As1, MI_D2, MI_Fs2, MI_As2, MI_D3, MI_Fs3, MI_TRSD, + MI_SUST, MI_Ds, MI_G, MI_B, MI_Ds1, MI_G1, KC_NO, KC_NO, MI_B1, MI_Ds2, MI_G2, MI_B2, MI_Ds3, MI_G3, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [4] = LAYOUT_ortho_5x15( + // Pocket Operator Scale Vertical Typing 60 + KC_ESC, MI_C, MI_G, MI_C1, MI_G1, MI_C2, KC_NO, KC_NO, MI_G2, MI_C3, MI_G3, MI_C4, MI_G4, MI_C5, MI_TR0, + KC_TAB, MI_D, MI_Gs, MI_D1, MI_Gs1, MI_D2, KC_NO, KC_NO, MI_Gs2, MI_D3, MI_Gs3, MI_D4, MI_Gs4, MI_D5, MI_TRSU, + KC_SPC, MI_Ds, MI_As, MI_Ds1, MI_As1, MI_Ds2, KC_NO, KC_NO, MI_As2, MI_Ds3, MI_As3, MI_Ds4, MI_As4, MI_Ds5, MI_TRSD, + MI_SUST, MI_F, MI_B, MI_F1, MI_B1, MI_F2, KC_NO, KC_NO, MI_B2, MI_F3, MI_B3, MI_F4, MI_B4, MI_F5, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [5] = LAYOUT_ortho_5x15( + // Major scale Vertical Typing 60 + KC_ESC, MI_C, MI_G, MI_D1, MI_A1, MI_E2, KC_NO, KC_NO, MI_B2, MI_F3, MI_C4, MI_G4, MI_D5, MI_A5, MI_TR0, + KC_TAB, MI_D, MI_A, MI_E1, MI_B1, MI_F2, KC_NO, KC_NO, MI_C3, MI_G3, MI_D4, MI_A4, MI_E5, MI_B5, MI_TRSU, + KC_SPC, MI_E, MI_B, MI_F1, MI_C2, MI_G2, KC_NO, KC_NO, MI_D3, MI_A3, MI_E4, MI_B4, MI_F5, KC_NO, MI_TRSD, + MI_SUST, MI_F, MI_C1, MI_G1, MI_D2, MI_A2, KC_NO, KC_NO, MI_E3, MI_B3, MI_F4, MI_C5, MI_G5, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [6] = LAYOUT_ortho_5x15( + // Black Keys Vertical Typing 60 + KC_ESC, MI_C, MI_A, MI_G1, MI_F2, MI_D3, KC_NO, KC_NO, MI_C4, MI_A4, MI_G5, KC_NO, KC_NO, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_C1, MI_A1, MI_G2, MI_F3, KC_NO, KC_NO, MI_D4, MI_C5, MI_A5, KC_NO, KC_NO, KC_NO, MI_TRSU, + KC_SPC, MI_F, MI_D1, MI_C2, MI_A2, MI_G3, KC_NO, KC_NO, MI_F4, MI_D5, KC_NO, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, MI_G, MI_F1, MI_D2, MI_C3, MI_A3, KC_NO, KC_NO, MI_G4, MI_F5, KC_NO, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [7] = LAYOUT_ortho_5x15( + // Chromatic Scale Vertical + KC_ESC, MI_C, MI_E, MI_Gs, MI_C1, MI_E1, MI_Gs1, MI_C2, MI_E2, MI_Gs2, MI_C3, MI_E3, MI_Gs3, KC_NO, MI_TR0, + KC_TAB, MI_Cs, MI_F, MI_A, MI_Cs1, MI_F1, MI_A1, MI_Cs2, MI_F2, MI_A2, MI_Cs3, MI_F3, MI_A3, KC_NO, MI_TRSU, + KC_SPC, MI_D, MI_Fs, MI_As, MI_D1, MI_Fs1, MI_As1, MI_D2, MI_Fs2, MI_As2, MI_D3, MI_Fs3, MI_As3, KC_NO, MI_TRSD, + MI_SUST, MI_Ds, MI_G, MI_B, MI_Ds1, MI_G1, MI_B1, MI_Ds2, MI_G2, MI_B2, MI_Ds3, MI_G3, MI_B3, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [8] = LAYOUT_ortho_5x15( + // Pocket Operator Scale Vertical + KC_ESC, MI_C, MI_G, MI_C1, MI_G1, MI_C2, MI_G2, MI_C3, MI_G3, MI_C4, MI_G4, MI_C5, MI_G5, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_Gs, MI_D1, MI_Gs1, MI_D2, MI_Gs2, MI_D3, MI_Gs3, MI_D4, MI_Gs4, MI_D5, MI_Gs5, KC_NO, MI_TRSU, + KC_SPC, MI_Ds, MI_As, MI_Ds1, MI_As1, MI_Ds2, MI_As2, MI_Ds3, MI_As3, MI_Ds4, MI_As4, MI_Ds5, MI_As5, KC_NO, MI_TRSD, + MI_SUST, MI_F, MI_B, MI_F1, MI_B1, MI_F2, MI_B2, MI_F3, MI_B3, MI_F4, MI_B4, MI_F5, MI_B5, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [9] = LAYOUT_ortho_5x15( + // Major scale Vertical + KC_ESC, MI_C, MI_G, MI_D1, MI_A1, MI_E2, MI_B2, MI_F3, MI_C4, MI_G4, MI_D5, MI_A5, KC_NO, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_A, MI_E1, MI_B1, MI_F2, MI_C3, MI_G3, MI_D4, MI_A4, MI_E5, MI_B5, KC_NO, KC_NO, MI_TRSU, + KC_SPC, MI_E, MI_B, MI_F1, MI_C2, MI_G2, MI_D3, MI_A3, MI_E4, MI_B4, MI_F5, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, MI_F, MI_C1, MI_G1, MI_D2, MI_A2, MI_E3, MI_B3, MI_F4, MI_C5, MI_G5, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [10] = LAYOUT_ortho_5x15( + // Black Keys Vertical + KC_ESC, MI_C, MI_A, MI_G1, MI_F2, MI_D3, MI_C4, MI_A4, MI_G5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_C1, MI_A1, MI_G2, MI_F3, MI_D4, MI_C5, MI_A5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_TRSU, + KC_SPC, MI_F, MI_D1, MI_C2, MI_A2, MI_G3, MI_F4, MI_D5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, MI_G, MI_F1, MI_D2, MI_C3, MI_A3, MI_G4, MI_F5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [11] = LAYOUT_ortho_5x15( + // Chromatic Scale Horizontal + KC_ESC, MI_C, MI_Cs, MI_D, MI_Ds, MI_E, MI_F, MI_Fs, MI_G, MI_Gs, MI_A, MI_As, MI_B, KC_NO, MI_TR0, + KC_TAB, MI_C1, MI_Cs1, MI_D1, MI_Ds1, MI_E1, MI_F1, MI_Fs1, MI_G1, MI_Gs1, MI_A1, MI_As1, MI_B1, KC_NO, MI_TRSU, + KC_SPC, MI_C2, MI_Cs2, MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2, MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2, KC_NO, MI_TRSD, + MI_SUST, MI_C3, MI_Cs3, MI_D3, MI_Ds3, MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3, MI_A3, MI_As3, MI_B3, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + [12] = LAYOUT_ortho_5x15( + // Pocket Operator Scale Horizontal + KC_ESC, MI_C, MI_D, MI_Ds, MI_F, MI_G, MI_Gs, MI_As, MI_B, MI_C1, MI_D1, MI_Ds1, MI_F1, KC_NO, MI_TR0, + KC_TAB, MI_G1, MI_Gs1, MI_As1, MI_B1, MI_C2, MI_D2, MI_Ds2, MI_F2, MI_G2, MI_Gs2, MI_As2, MI_B2, KC_NO, MI_TRSU, + KC_SPC, MI_C3, MI_D3, MI_Ds3, MI_F3, MI_G3, MI_Gs3, MI_As3, MI_B3, MI_C4, MI_D4, MI_Ds4, MI_F4, KC_NO, MI_TRSD, + MI_SUST, MI_G4, MI_Gs4, MI_As4, MI_B4, MI_C5, MI_D5, MI_Ds5, MI_F5, MI_G5, MI_Gs5, MI_As5, MI_B5, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [13] = LAYOUT_ortho_5x15( + // Major scale Horizontal + KC_ESC, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C1, MI_D1, MI_E1, MI_F1, MI_G1, KC_NO, MI_TR0, + KC_TAB, MI_A1, MI_B1, MI_C2, MI_D2, MI_E2, MI_F2, MI_G2, MI_A2, MI_B2, MI_C3, MI_D3, MI_E3, KC_NO, MI_TRSU, + KC_SPC, MI_F3, MI_G3, MI_A3, MI_B3, MI_C4, MI_D4, MI_E4, MI_F4, MI_G4, MI_A4, MI_B4, MI_C5, KC_NO, MI_TRSD, + MI_SUST, MI_D5, MI_E5, MI_F5, MI_G5, MI_A5, MI_B5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + [14] = LAYOUT_ortho_5x15( + // Black Keys Horizontal + KC_ESC, MI_C, MI_D, MI_F, MI_G, MI_A, MI_C1, MI_D1, MI_F1, MI_G1, MI_A1, MI_C2, MI_D2, KC_NO, MI_TR0, + KC_TAB, MI_F2, MI_G2, MI_A2, MI_C3, MI_D3, MI_F3, MI_G3, MI_A3, MI_C4, MI_D4, MI_F4, MI_G4, KC_NO, MI_TRSU, + KC_SPC, MI_A4, MI_C, MI_D, MI_F, MI_G, MI_A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, 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, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [15] = LAYOUT_ortho_5x15( + // Settings + DB_TOGG, MI_CH1, MI_CH2, MI_CH3, MI_CH4, MI_CH5, KC_NO, KC_NO, MI_CH6, MI_CH7, MI_CH8, AU_TOGG, KC_NO, KC_NO, QK_BOOT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, DF(3), DF(4), DF(5), DF(6), KC_NO, KC_NO, KC_NO, + RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, KC_NO, KC_NO, DF(11), DF(12), DF(13), DF(14), KC_NO, KC_NO, DB_TOGG, + RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_NO, KC_NO, KC_NO, DF(7), DF(8), DF(9), DF(10), KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_TRNS, DF(0), DF(0), DF(0), DF(0), KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO + ) +}; + diff --git a/keyboards/xiudi/xd75/keymaps/dothtm75/rules.mk b/keyboards/xiudi/xd75/keymaps/dothtm75/rules.mk new file mode 100644 index 00000000000..56c4130708c --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/dothtm75/rules.mk @@ -0,0 +1,2 @@ + +MIDI_ENABLE = yes diff --git a/keyboards/xiudi/xd75/keymaps/minna/keymap.c b/keyboards/xiudi/xd75/keymaps/minna/keymap.c index d3ff7557be1..535c870ff7b 100644 --- a/keyboards/xiudi/xd75/keymaps/minna/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/minna/keymap.c @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FI_ARNG, FI_DIAE, KC_ENT, KC_CAPS, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, FI_ODIA, FI_ADIA, FI_QUOT, KC_NO, KC_LSFT, FI_LABK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, FI_MINS, KC_RSFT, KC_UP, KC_NO, - KC_LCTL, MO(1), KC_LGUI, KC_LALT, XP(BEER, BEERS), KC_SPC, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + KC_LCTL, MO(1), KC_LGUI, KC_LALT, UP(BEER, BEERS), KC_SPC, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), /* * ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ diff --git a/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c b/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c index ae27ba02929..4fe70b9cca8 100644 --- a/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c @@ -201,8 +201,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void matrix_init_user(void) { } - // Rainbow globals int t = 0; int rc = 0; @@ -237,5 +235,3 @@ void matrix_scan_user(void) { } rc--; } - -void led_set_user(uint8_t usb_led) { } diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/config.h b/keyboards/xiudi/xd75/keymaps/zigotica/config.h new file mode 100644 index 00000000000..23e276cf6ef --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/zigotica/config.h @@ -0,0 +1,27 @@ +/* Copyright 2023 Sergi Meseguer + +This 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 should work better for homerow modifiers +#define TAPPING_TERM 350 +#define PERMISSIVE_HOLD +#define QUICK_TAP_TERM 0 + +// needed to get same layers as split keyboards +// see users/zigotica/zigotica.h +#define ORTHOLINEAR_KEYBOARD + diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c b/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c new file mode 100644 index 00000000000..4133b57e720 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 Sergi Meseguer + +This 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 "zigotica.h" + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_wrapper( + KC_ESC, ____NUM15, _BLANK_3, ____NUM60, KC_DEL, + KC_TAB, _STENAI_L1, _BLANK_3, _STENAI_R1, _______, + KC_EQL, _STENAI_L2, _BLANK_3, _STENAI_R2, KC_ENT, + KC_LSFT, _STENAI_L3, ____TARRS, _STENAI_R3, KC_RSFT, + ____LORTH, _STENAI_LT, ____BARRS, _STENAI_RT, ____RORTH + ), + + [_NUM] = LAYOUT_wrapper( + QK_MAKE, _BLANK_ROW, _BLANK_3, _BLANK_ROW, _______, + _______, ____NUM_L1, _BLANK_3, ____NUM_R1, _______, + _______, ____NUM_L2, _BLANK_3, ____NUM_R2, _______, + _______, ____NUM_L3, _BLANK_3, ____NUM_R3, _______, + _BLANK_4, ____NUM_LT, _BLANK_3, ____NUM_RT, _BLANK_4 + ), + + [_NAV] = LAYOUT_wrapper( + QK_MAKE, _BLANK_ROW, _BLANK_3, _BLANK_ROW, _______, + _______, ____NAV_L1, _BLANK_3, ____NAV_R1, _______, + _______, ____NAV_L2, _BLANK_3, ____NAV_R2, _______, + _______, ____NAV_L3, _BLANK_3, ____NAV_R3, _______, + _BLANK_4, ____NAV_LT, _BLANK_3, ____NAV_RT, _BLANK_4 + ), + + [_SYM] = LAYOUT_wrapper( + QK_MAKE, _BLANK_ROW, _BLANK_3, _BLANK_ROW, _______, + _______, ____SYM_L1, _BLANK_3, ____SYM_R1, _______, + _______, ____SYM_L2, _BLANK_3, ____SYM_R2, _______, + _______, ____SYM_L3, _BLANK_3, ____SYM_R3, _______, + _BLANK_4, ____SYM_LT, _BLANK_3, ____SYM_RT, _BLANK_4 + ), + + [_FN] = LAYOUT_wrapper( + QK_MAKE, ____FN_15, _BLANK_3, ____FN_60, _______, + _______, ____FN_L1, _BLANK_3, ____FN_R1, _______, + _______, ____FN_L2, _BLANK_3, ____FN_R2, _______, + _______, ____FN_L3, _BLANK_3, ____FN_R3, _______, + _BLANK_4, ____FN_LT, _BLANK_3, ____FN_RT, _BLANK_4 + ), +}; + + diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk b/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk new file mode 100644 index 00000000000..c41232e8f94 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk @@ -0,0 +1,6 @@ +OLED_SUPPORTED = no +ENCODER_SUPPORTED = no + +MOUSEKEY_ENABLE = yes +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/xiudi/xd84/config.h b/keyboards/xiudi/xd84/config.h index 42cce6f1c07..0ad3910060c 100644 --- a/keyboards/xiudi/xd84/config.h +++ b/keyboards/xiudi/xd84/config.h @@ -21,18 +21,6 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 -#define RGBLED_NUM 7 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/xiudi/xd84/info.json b/keyboards/xiudi/xd84/info.json index f7bfaeaebd0..b97efe9cf85 100644 --- a/keyboards/xiudi/xd84/info.json +++ b/keyboards/xiudi/xd84/info.json @@ -17,6 +17,21 @@ "caps_lock": "B6", "on_state": 0 }, + "rgblight": { + "led_count": 7, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "C7" }, diff --git a/keyboards/xiudi/xd84pro/config.h b/keyboards/xiudi/xd84pro/config.h index ed84a2ad6f0..1e378e8f472 100644 --- a/keyboards/xiudi/xd84pro/config.h +++ b/keyboards/xiudi/xd84pro/config.h @@ -16,22 +16,6 @@ #pragma once - #define RGBLED_NUM 12 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/xiudi/xd84pro/info.json b/keyboards/xiudi/xd84pro/info.json index e905ff3e7e2..bcdc0d2cf10 100644 --- a/keyboards/xiudi/xd84pro/info.json +++ b/keyboards/xiudi/xd84pro/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "F5", "levels": 10, "on_state": 0 @@ -22,6 +23,22 @@ "caps_lock": "B2", "on_state": 0 }, + "rgblight": { + "led_count": 12, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F6" }, diff --git a/keyboards/xiudi/xd87/config.h b/keyboards/xiudi/xd87/config.h index d89929e9c82..95110fa5900 100644 --- a/keyboards/xiudi/xd87/config.h +++ b/keyboards/xiudi/xd87/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/xiudi/xd87/info.json b/keyboards/xiudi/xd87/info.json index 5aa56a60e9d..3c30f69ba9a 100644 --- a/keyboards/xiudi/xd87/info.json +++ b/keyboards/xiudi/xd87/info.json @@ -14,6 +14,7 @@ }, "diode_direction": "COL2ROW", "backlight": { + "driver": "timer", "pin": "D0", "on_state": 0 }, @@ -21,6 +22,23 @@ "caps_lock": "E2", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/xiudi/xd96/config.h b/keyboards/xiudi/xd96/config.h index 5329d514832..059b57a0c6f 100644 --- a/keyboards/xiudi/xd96/config.h +++ b/keyboards/xiudi/xd96/config.h @@ -21,18 +21,6 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 -#define RGBLED_NUM 16 -#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 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/xiudi/xd96/info.json b/keyboards/xiudi/xd96/info.json index 5a043101301..98ebfcb4831 100644 --- a/keyboards/xiudi/xd96/info.json +++ b/keyboards/xiudi/xd96/info.json @@ -13,7 +13,20 @@ "levels": 10 }, "rgblight": { - "max_brightness": 50 + "led_count": 16, + "max_brightness": 50, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "indicators": { "caps_lock": "B6", diff --git a/keyboards/xw60/rules.mk b/keyboards/xw60/rules.mk index 460d3ced43e..710fb4ca887 100644 --- a/keyboards/xw60/rules.mk +++ b/keyboards/xw60/rules.mk @@ -11,4 +11,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. HAPTIC_ENABLE = yes -HAPTIC_DRIVER = SOLENOID +HAPTIC_DRIVER = solenoid diff --git a/keyboards/yampad/config.h b/keyboards/yampad/config.h deleted file mode 100644 index 6327578ebfe..00000000000 --- a/keyboards/yampad/config.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright 2012 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 . -*/ - -#pragma once - -/* Underlight configuration */ -#define RGBLED_NUM 9 -#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 - -/* - * 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/yampad/info.json b/keyboards/yampad/info.json index 54c363b28bb..bf9841492d9 100644 --- a/keyboards/yampad/info.json +++ b/keyboards/yampad/info.json @@ -8,9 +8,27 @@ "pid": "0x8369", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 9, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "F4" }, + "build": { + "debounce_type": "sym_eager_pk" + }, "matrix_pins": { "cols": ["B1", "B3", "B2", "B6"], "rows": ["C6", "D7", "E6", "B4", "B5"] diff --git a/keyboards/yampad/rules.mk b/keyboards/yampad/rules.mk index 9f1bf198639..498bf77b977 100644 --- a/keyboards/yampad/rules.mk +++ b/keyboards/yampad/rules.mk @@ -6,11 +6,9 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite COMMAND_ENABLE = no # Commands for debug and configuration CONSOLE_ENABLE = no # Console for debug -DEBOUNCE_TYPE = sym_eager_pk EXTRAKEY_ENABLE = no # Audio control and System control LTO_ENABLE = yes # Link time optimise, reduce firmware size MOUSEKEY_ENABLE = no # Mouse keys NKRO_ENABLE = yes # Enable N-Key Rollover -OLED_DRIVER = SSD1306 OLED_ENABLE = yes RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/yandrstudio/buff67v3/config.h b/keyboards/yandrstudio/buff67v3/config.h index 677e41a00d6..9d3f3e44c06 100644 --- a/keyboards/yandrstudio/buff67v3/config.h +++ b/keyboards/yandrstudio/buff67v3/config.h @@ -17,17 +17,6 @@ #ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 1 -# 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 diff --git a/keyboards/yandrstudio/buff67v3/info.json b/keyboards/yandrstudio/buff67v3/info.json index 69d4903bd63..9fe09cd95b9 100644 --- a/keyboards/yandrstudio/buff67v3/info.json +++ b/keyboards/yandrstudio/buff67v3/info.json @@ -6,6 +6,21 @@ "pid": "0xAA88", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4", "driver": "pwm" diff --git a/keyboards/yandrstudio/buff67v3/rules.mk b/keyboards/yandrstudio/buff67v3/rules.mk index 663aac24203..421ae9fce11 100644 --- a/keyboards/yandrstudio/buff67v3/rules.mk +++ b/keyboards/yandrstudio/buff67v3/rules.mk @@ -12,5 +12,4 @@ 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 AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/eau_r2/config.h b/keyboards/yandrstudio/eau_r2/config.h index dcf74a160b2..6985b4b8bb2 100644 --- a/keyboards/yandrstudio/eau_r2/config.h +++ b/keyboards/yandrstudio/eau_r2/config.h @@ -17,20 +17,6 @@ #ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 12 -# define RGBLIGHT_SLEEP -# define RGBLIGHT_VAL_STEP 5 - -# 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 diff --git a/keyboards/yandrstudio/eau_r2/info.json b/keyboards/yandrstudio/eau_r2/info.json index e2700ea0cbe..a1b5a0e9cfa 100644 --- a/keyboards/yandrstudio/eau_r2/info.json +++ b/keyboards/yandrstudio/eau_r2/info.json @@ -15,7 +15,22 @@ "pin": "A8" }, "rgblight": { - "max_brightness": 200 + "brightness_steps": 5, + "led_count": 12, + "max_brightness": 200, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "debounce": 8, "layouts": { diff --git a/keyboards/yandrstudio/nightstar75/config.h b/keyboards/yandrstudio/nightstar75/config.h index c6760befde4..98480b2687e 100644 --- a/keyboards/yandrstudio/nightstar75/config.h +++ b/keyboards/yandrstudio/nightstar75/config.h @@ -15,20 +15,6 @@ */ #pragma once -#ifdef RGBLIGHT_ENABLE - -# define RGBLED_NUM 4 - -# 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 @@ -40,5 +26,3 @@ # 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/info.json b/keyboards/yandrstudio/nightstar75/info.json index 32d0e292639..2bf8cd36b3d 100644 --- a/keyboards/yandrstudio/nightstar75/info.json +++ b/keyboards/yandrstudio/nightstar75/info.json @@ -11,7 +11,20 @@ "driver": "pwm" }, "rgblight": { - "max_brightness": 180 + "led_count": 4, + "max_brightness": 180, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "matrix_pins": { "cols": ["C13", "C14", "C15", "A3", "A4", "A5", "A6", "B12", "B13", "B14", "B15", "A8", "A9", "A10", "B8"], diff --git a/keyboards/yandrstudio/nz64/config.h b/keyboards/yandrstudio/nz64/config.h index 5e4cdaaea0c..4aa37c5f20b 100644 --- a/keyboards/yandrstudio/nz64/config.h +++ b/keyboards/yandrstudio/nz64/config.h @@ -15,13 +15,9 @@ */ #pragma once -/* Fix VIA RGB_light */ -#define VIA_HAS_BROKEN_KEYCODES - /* RGB Matrix */ #ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 82 -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 82 # define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 # define WS2812_PWM_CHANNEL 2 // default: 2 @@ -31,7 +27,6 @@ # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 -# define RGBLIGHT_VAL_STEP 18 # define RGB_DISABLE_WHEN_USB_SUSPENDED true # define RGB_MATRIX_CENTER { 96, 32 } # define RGB_MATRIX_KEYPRESSES @@ -87,9 +82,6 @@ #ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 82 -# define RGB_MATRIX_LED_COUNT RGBLED_NUM - # define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 # define WS2812_PWM_CHANNEL 2 // default: 2 # define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 diff --git a/keyboards/yandrstudio/nz64/info.json b/keyboards/yandrstudio/nz64/info.json index 6c054018d18..1ac32fe9a49 100644 --- a/keyboards/yandrstudio/nz64/info.json +++ b/keyboards/yandrstudio/nz64/info.json @@ -4,12 +4,15 @@ "pid": "0xAAAF", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 82 + }, "ws2812": { "pin": "A7", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A15", "B3", "B4", "B6", "B7", "B5", "C13", "A5", "A4", "B14", "B15", "A8", "A9", "A10"], diff --git a/keyboards/yandrstudio/nz67v2/config.h b/keyboards/yandrstudio/nz67v2/config.h index 860ee45381b..dba2f773950 100644 --- a/keyboards/yandrstudio/nz67v2/config.h +++ b/keyboards/yandrstudio/nz67v2/config.h @@ -16,16 +16,12 @@ #pragma once -#define TAP_CODE_DELAY 15 - /* RGB Matrix */ #ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 86 -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 86 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 -# define RGBLIGHT_VAL_STEP 5 # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/yandrstudio/nz67v2/info.json b/keyboards/yandrstudio/nz67v2/info.json index 6149c998f78..3cd784934ab 100644 --- a/keyboards/yandrstudio/nz67v2/info.json +++ b/keyboards/yandrstudio/nz67v2/info.json @@ -11,7 +11,7 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B9", "A3", "A4", "A5", "A6", "A7", "B0", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8"], @@ -23,84 +23,85 @@ {"pin_a": "A9", "pin_b": "A10"} ] }, + "qmk": { + "tap_keycode_delay": 15 + }, "layouts": { "LAYOUT_all": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.5}, - {"matrix": [0, 1], "x": 1, "y": 0.5}, - {"matrix": [0, 2], "x": 2, "y": 0.5}, - {"matrix": [0, 3], "x": 3, "y": 0.5}, - {"matrix": [0, 4], "x": 4, "y": 0.5}, - {"matrix": [0, 5], "x": 5, "y": 0.5}, - {"matrix": [0, 6], "x": 6, "y": 0.5}, - {"matrix": [0, 7], "x": 7, "y": 0.5}, - {"matrix": [0, 8], "x": 8, "y": 0.5}, - {"matrix": [0, 9], "x": 9, "y": 0.5}, - {"matrix": [0, 10], "x": 10, "y": 0.5}, - {"matrix": [0, 11], "x": 11, "y": 0.5}, - {"matrix": [0, 12], "x": 12, "y": 0.5}, - {"matrix": [0, 13], "x": 13, "y": 0.5, "w": 2}, - {"matrix": [4, 4], "x": 16, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0.5}, + {"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": [0, 14], "x": 15, "y": 0}, - {"matrix": [4, 6], "x": 16, "y": 1}, - {"matrix": [1, 0], "x": 0, "y": 1.5, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1.5}, - {"matrix": [1, 2], "x": 2.5, "y": 1.5}, - {"matrix": [1, 3], "x": 3.5, "y": 1.5}, - {"matrix": [1, 4], "x": 4.5, "y": 1.5}, - {"matrix": [1, 5], "x": 5.5, "y": 1.5}, - {"matrix": [1, 6], "x": 6.5, "y": 1.5}, - {"matrix": [1, 7], "x": 7.5, "y": 1.5}, - {"matrix": [1, 8], "x": 8.5, "y": 1.5}, - {"matrix": [1, 9], "x": 9.5, "y": 1.5}, - {"matrix": [1, 10], "x": 10.5, "y": 1.5}, - {"matrix": [1, 11], "x": 11.5, "y": 1.5}, - {"matrix": [1, 12], "x": 12.5, "y": 1.5}, - {"matrix": [1, 13], "x": 13.5, "y": 1.5, "w": 1.5}, - {"matrix": [1, 14], "x": 15, "y": 1.5}, + {"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": [1, 14], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2.5}, - {"matrix": [2, 2], "x": 2.75, "y": 2.5}, - {"matrix": [2, 3], "x": 3.75, "y": 2.5}, - {"matrix": [2, 4], "x": 4.75, "y": 2.5}, - {"matrix": [2, 5], "x": 5.75, "y": 2.5}, - {"matrix": [2, 6], "x": 6.75, "y": 2.5}, - {"matrix": [2, 7], "x": 7.75, "y": 2.5}, - {"matrix": [2, 8], "x": 8.75, "y": 2.5}, - {"matrix": [2, 9], "x": 9.75, "y": 2.5}, - {"matrix": [2, 10], "x": 10.75, "y": 2.5}, - {"matrix": [2, 11], "x": 11.75, "y": 2.5}, - {"matrix": [2, 13], "x": 12.75, "y": 2.5, "w": 2.25}, - {"matrix": [2, 14], "x": 15, "y": 2.5}, + {"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": [2, 14], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 2.25}, - {"matrix": [3, 1], "x": 2.25, "y": 3.5}, - {"matrix": [3, 2], "x": 3.25, "y": 3.5}, - {"matrix": [3, 3], "x": 4.25, "y": 3.5}, - {"matrix": [3, 4], "x": 5.25, "y": 3.5}, - {"matrix": [3, 5], "x": 6.25, "y": 3.5}, - {"matrix": [3, 6], "x": 7.25, "y": 3.5}, - {"matrix": [3, 7], "x": 8.25, "y": 3.5}, - {"matrix": [3, 8], "x": 9.25, "y": 3.5}, - {"matrix": [3, 9], "x": 10.25, "y": 3.5}, - {"matrix": [3, 10], "x": 11.25, "y": 3.5}, - {"matrix": [3, 12], "x": 12.25, "y": 3.5, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3.5}, - {"matrix": [3, 14], "x": 15, "y": 3.5}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.5, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4.5, "w": 1.25}, - {"matrix": [4, 3], "x": 3.75, "y": 4.5, "w": 2.25}, - {"matrix": [4, 5], "x": 6, "y": 4.5, "w": 1.75}, - {"matrix": [4, 7], "x": 7.75, "y": 4.5, "w": 2.25}, - {"matrix": [4, 9], "x": 10, "y": 4.5, "w": 1.25}, - {"matrix": [4, 10], "x": 11.25, "y": 4.5, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4.5}, - {"matrix": [4, 13], "x": 14, "y": 4.5}, - {"matrix": [4, 14], "x": 15, "y": 4.5} + {"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, 3], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 1.75}, + {"matrix": [4, 7], "x": 7.75, "y": 4, "w": 2.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} ] }, "LAYOUT_65_ansi_blocker": { diff --git a/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c b/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c index 7ed06c9ec5b..f1069c37db6 100644 --- a/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c +++ b/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c @@ -18,16 +18,15 @@ 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_VOLD, KC_HOME, KC_VOLU, + 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_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, 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_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, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GUI_TOG, 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, KC_TRNS, KC_TRNS) }; - diff --git a/keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c b/keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c index 56a083d444a..52e0d15c8e5 100644 --- a/keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c +++ b/keyboards/yandrstudio/nz67v2/keymaps/via/keymap.c @@ -18,59 +18,36 @@ 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_VOLD, KC_HOME, KC_VOLU, + 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_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_all( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, 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_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, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GUI_TOG, 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, 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), [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) }; -#ifdef ENCODER_ENABLE -keyevent_t encoder1_ccw = {.key = (keypos_t){.row = 4, .col = 4}, .pressed = false, .type = KEY_EVENT}; - -keyevent_t encoder1_cw = {.key = (keypos_t){.row = 4, .col = 6}, .pressed = false, .type = KEY_EVENT}; -void matrix_scan_user(void) { - if (encoder1_ccw.pressed) { - encoder1_ccw.pressed = false; - encoder1_ccw.time = timer_read(); - action_exec(encoder1_ccw); - } - - if (encoder1_cw.pressed) { - encoder1_cw.pressed = false; - encoder1_cw.time = timer_read(); - action_exec(encoder1_cw); - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - encoder1_cw.pressed = true; - encoder1_cw.time = timer_read(); - action_exec(encoder1_cw); - } else { - encoder1_ccw.pressed = true; - encoder1_ccw.time = timer_read(); - action_exec(encoder1_ccw); - } - return true; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; #endif diff --git a/keyboards/yandrstudio/tg67/config.h b/keyboards/yandrstudio/tg67/config.h index 373b5bcbf93..3386838c749 100644 --- a/keyboards/yandrstudio/tg67/config.h +++ b/keyboards/yandrstudio/tg67/config.h @@ -18,11 +18,9 @@ /* RGB Matrix */ #ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 69 -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 69 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 250 -# define RGBLIGHT_VAL_STEP 5 # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/yandrstudio/tg67/info.json b/keyboards/yandrstudio/tg67/info.json index 925d6c1d949..a82f58300b1 100644 --- a/keyboards/yandrstudio/tg67/info.json +++ b/keyboards/yandrstudio/tg67/info.json @@ -11,7 +11,7 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["B2", "B10", "B11", "A8", "A9", "A10", "B5", "A15", "B3", "A2", "A3", "B4", "A4", "A5", "A6"], diff --git a/keyboards/yandrstudio/transition80/info.json b/keyboards/yandrstudio/transition80/info.json index baac6f4f9bd..7f9364a18fd 100644 --- a/keyboards/yandrstudio/transition80/info.json +++ b/keyboards/yandrstudio/transition80/info.json @@ -25,22 +25,29 @@ "scroll_lock": "B14", "on_state": 1 }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "tkl_ansi", + "tkl_ansi_tsangan" + ], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"label": "Esc", "x": 0, "y": 0, "matrix": [0, 0]}, - {"label": "F1", "x": 1.25, "y": 0, "matrix": [0, 2]}, - {"label": "F2", "x": 2.25, "y": 0, "matrix": [0, 3]}, - {"label": "F3", "x": 3.25, "y": 0, "matrix": [0, 4]}, - {"label": "F4", "x": 4.25, "y": 0, "matrix": [0, 5]}, - {"label": "F5", "x": 5.5, "y": 0, "matrix": [0, 6]}, - {"label": "F6", "x": 6.5, "y": 0, "matrix": [0, 7]}, - {"label": "F7", "x": 7.5, "y": 0, "matrix": [0, 8]}, - {"label": "F8", "x": 8.5, "y": 0, "matrix": [0, 9]}, - {"label": "F9", "x": 9.75, "y": 0, "matrix": [0, 10]}, - {"label": "F10", "x": 10.75, "y": 0, "matrix": [0, 11]}, - {"label": "F11", "x": 11.75, "y": 0, "matrix": [0, 12]}, - {"label": "F12", "x": 12.75, "y": 0, "matrix": [0, 13]}, + {"label": "F1", "x": 2, "y": 0, "matrix": [0, 2]}, + {"label": "F2", "x": 3, "y": 0, "matrix": [0, 3]}, + {"label": "F3", "x": 4, "y": 0, "matrix": [0, 4]}, + {"label": "F4", "x": 5, "y": 0, "matrix": [0, 5]}, + {"label": "F5", "x": 6.5, "y": 0, "matrix": [0, 6]}, + {"label": "F6", "x": 7.5, "y": 0, "matrix": [0, 7]}, + {"label": "F7", "x": 8.5, "y": 0, "matrix": [0, 8]}, + {"label": "F8", "x": 9.5, "y": 0, "matrix": [0, 9]}, + {"label": "F9", "x": 11, "y": 0, "matrix": [0, 10]}, + {"label": "F10", "x": 12, "y": 0, "matrix": [0, 11]}, + {"label": "F11", "x": 13, "y": 0, "matrix": [0, 12]}, + {"label": "F12", "x": 14, "y": 0, "matrix": [0, 13]}, {"label": "PrtSc", "x": 15.25, "y": 0, "matrix": [0, 14]}, {"label": "Scroll Lock", "x": 16.25, "y": 0, "matrix": [0, 15]}, {"label": "Pause", "x": 17.25, "y": 0, "matrix": [0, 16]}, @@ -58,9 +65,7 @@ {"label": ")", "x": 10, "y": 1.25, "matrix": [1, 10]}, {"label": "_", "x": 11, "y": 1.25, "matrix": [1, 11]}, {"label": "+", "x": 12, "y": 1.25, "matrix": [1, 12]}, - {"label": "Backspace", "x": 13, "y": 1.25, "w": 2, "matrix": [1, 13]}, - {"label": "|", "x": 13, "y": 1.5, "matrix": [3, 13]}, - {"label": "Backspace", "x": 14, "y": 1.5, "matrix": [3, 14]}, + {"label": "Backspace", "x": 13, "y": 1.25, "w": 2, "h": 0.5, "matrix": [1, 13]}, {"label": "Insert", "x": 15.25, "y": 1.25, "matrix": [1, 14]}, {"label": "Home", "x": 16.25, "y": 1.25, "matrix": [1, 15]}, {"label": "PgUp", "x": 17.25, "y": 1.25, "matrix": [1, 16]}, @@ -96,6 +101,8 @@ {"label": ":", "x": 10.75, "y": 3.25, "matrix": [3, 10]}, {"label": "\"", "x": 11.75, "y": 3.25, "matrix": [3, 11]}, {"label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25, "matrix": [3, 12]}, + {"label": "|", "x": 13, "y": 1.75, "h": 0.5, "matrix": [3, 13]}, + {"label": "Backspace", "x": 14, "y": 1.75, "h": 0.5, "matrix": [3, 14]}, {"label": "Shift", "x": 0, "y": 4.25, "w": 2.25, "matrix": [4, 0]}, {"label": "Z", "x": 2.25, "y": 4.25, "matrix": [4, 2]}, @@ -111,17 +118,401 @@ {"label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75, "matrix": [4, 13]}, {"label": "Up", "x": 16.25, "y": 4.25, "matrix": [4, 14]}, - {"label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25, "matrix": [5, 0]}, - {"label": "Win", "x": 1.25, "y": 5.5, "w": 1.25, "matrix": [5, 1]}, - {"label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25, "matrix": [5, 2]}, - {"label": "Space", "x": 3.75, "y": 5.5, "w": 6.25, "matrix": [5, 6]}, - {"label": "Menu", "x": 10, "y": 5.5, "w": 1.25, "matrix": [5, 10]}, - {"label": "Alt", "x": 11.25, "y": 5.5, "w": 1.25, "matrix": [5, 11]}, - {"label": "Fn", "x": 12.5, "y": 5.5, "w": 1.25, "matrix": [5, 12]}, - {"label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25, "matrix": [5, 13]}, - {"label": "Left", "x": 15.25, "y": 5.5, "matrix": [5, 14]}, - {"label": "Down", "x": 16.25, "y": 5.5, "matrix": [5, 15]}, - {"label": "Right", "x": 17.25, "y": 5.5, "matrix": [5, 16]} + {"label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25, "matrix": [5, 0]}, + {"label": "Win", "x": 1.25, "y": 5.25, "w": 1.25, "matrix": [5, 1]}, + {"label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25, "matrix": [5, 2]}, + {"label": "Space", "x": 3.75, "y": 5.25, "w": 6.25, "matrix": [5, 6]}, + {"label": "Menu", "x": 10, "y": 5.25, "w": 1.25, "matrix": [5, 10]}, + {"label": "Alt", "x": 11.25, "y": 5.25, "w": 1.25, "matrix": [5, 11]}, + {"label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25, "matrix": [5, 12]}, + {"label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25, "matrix": [5, 13]}, + {"label": "Left", "x": 15.25, "y": 5.25, "matrix": [5, 14]}, + {"label": "Down", "x": 16.25, "y": 5.25, "matrix": [5, 15]}, + {"label": "Right", "x": 17.25, "y": 5.25, "matrix": [5, 16]} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "Up", "matrix": [4, 14], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "Menu", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "Alt", "matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "|", "matrix": [3, 13], "x": 13, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 14], "x": 14, "y": 1.25}, + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "Up", "matrix": [4, 14], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "Menu", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "Alt", "matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "Up", "matrix": [4, 14], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "|", "matrix": [3, 13], "x": 13, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 14], "x": 14, "y": 1.25}, + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "Up", "matrix": [4, 14], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} ] } } diff --git a/keyboards/yandrstudio/transition80/keymaps/default/keymap.c b/keyboards/yandrstudio/transition80/keymaps/default/keymap.c index d9f51ce6f86..8d3ab5e327c 100644 --- a/keyboards/yandrstudio/transition80/keymaps/default/keymap.c +++ b/keyboards/yandrstudio/transition80/keymaps/default/keymap.c @@ -4,7 +4,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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_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, diff --git a/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi/keymap.c b/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi/keymap.c new file mode 100644 index 00000000000..f8430dd3a52 --- /dev/null +++ b/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2022 Y&R-Biu (@jiaxin96) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_split_bs/keymap.c b/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_split_bs/keymap.c new file mode 100644 index 00000000000..d4125b6cee4 --- /dev/null +++ b/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_split_bs/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2022 Y&R-Biu (@jiaxin96) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi_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_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_BSLS, 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_tkl_ansi_split_bs( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_tsangan/keymap.c b/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_tsangan/keymap.c new file mode 100644 index 00000000000..6543ab1e548 --- /dev/null +++ b/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_tsangan/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2022 Y&R-Biu (@jiaxin96) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi_tsangan( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_tsangan_split_bs/keymap.c b/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_tsangan_split_bs/keymap.c new file mode 100644 index 00000000000..4392795b14e --- /dev/null +++ b/keyboards/yandrstudio/transition80/keymaps/default_tkl_ansi_tsangan_split_bs/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2022 Y&R-Biu (@jiaxin96) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = 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_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_BSLS, 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_tkl_ansi_tsangan_split_bs( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/yandrstudio/transition80/keymaps/via/keymap.c b/keyboards/yandrstudio/transition80/keymaps/via/keymap.c index 0be5c0a46eb..b971c88fe17 100644 --- a/keyboards/yandrstudio/transition80/keymaps/via/keymap.c +++ b/keyboards/yandrstudio/transition80/keymaps/via/keymap.c @@ -4,28 +4,28 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [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_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_BSLS, 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, 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( + [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, AG_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), - [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), - [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, diff --git a/keyboards/yandrstudio/transition80/matrix_diagram.md b/keyboards/yandrstudio/transition80/matrix_diagram.md new file mode 100644 index 00000000000..77392f1fb53 --- /dev/null +++ b/keyboards/yandrstudio/transition80/matrix_diagram.md @@ -0,0 +1,22 @@ +# Matrix Diagram for Y&R Transition80 + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ +│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 ││1E │1F │1G │ │3D │3E │ Split Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ └───┴───┘ soldered PCB only +│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 │3C │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ +│40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4D │ │4E │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ +│50 │51 │52 │56 │5A │5B │5C │5D ││5E │5F │5G │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │56 │5B │5C │5D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` + diff --git a/keyboards/yandrstudio/yr6095/config.h b/keyboards/yandrstudio/yr6095/config.h index 74c8f4adce7..592953720f1 100644 --- a/keyboards/yandrstudio/yr6095/config.h +++ b/keyboards/yandrstudio/yr6095/config.h @@ -15,29 +15,13 @@ */ #pragma once -#ifdef RGBLIGHT_ENABLE - -# define RGBLED_NUM 1 - # 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/info.json b/keyboards/yandrstudio/yr6095/info.json index 3ec826052cf..0ea82bd3adf 100644 --- a/keyboards/yandrstudio/yr6095/info.json +++ b/keyboards/yandrstudio/yr6095/info.json @@ -6,6 +6,21 @@ "pid": "0xAA0C", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B5", "driver": "pwm" diff --git a/keyboards/yandrstudio/yr80/config.h b/keyboards/yandrstudio/yr80/config.h index 0e8602dee9f..a0841c469ce 100644 --- a/keyboards/yandrstudio/yr80/config.h +++ b/keyboards/yandrstudio/yr80/config.h @@ -16,25 +16,10 @@ #pragma once -#ifdef RGBLIGHT_ENABLE - -# 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 @@ -42,5 +27,3 @@ # define WS2812_PWM_PAL_MODE 2 # define WS2812_DMA_STREAM STM32_DMA1_STREAM3 # define WS2812_DMA_CHANNEL 3 - -#endif diff --git a/keyboards/yandrstudio/yr80/info.json b/keyboards/yandrstudio/yr80/info.json index 7faaa482eff..ce9f4bc3790 100644 --- a/keyboards/yandrstudio/yr80/info.json +++ b/keyboards/yandrstudio/yr80/info.json @@ -6,6 +6,21 @@ "pid": "0xAA0D", "device_version": "1.0.0" }, + "rgblight": { + "led_count": 1, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "A7", "driver": "pwm" diff --git a/keyboards/yanghu/unicorne/config.h b/keyboards/yanghu/unicorne/config.h index 8a4ce9ec490..99d38fe44ab 100644 --- a/keyboards/yanghu/unicorne/config.h +++ b/keyboards/yanghu/unicorne/config.h @@ -28,20 +28,6 @@ #define AUDIO_PWM_DRIVER PWMD1 #define AUDIO_PWM_CHANNEL 1 -/* RGB LED */ -#define RGBLED_NUM 8 -#define RGB_MATRIX_LED_COUNT 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 WS2812_PWM_DRIVER PWMD3 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_PAL_MODE 2 diff --git a/keyboards/yanghu/unicorne/info.json b/keyboards/yanghu/unicorne/info.json index 52a703d2191..26d54c2c827 100644 --- a/keyboards/yanghu/unicorne/info.json +++ b/keyboards/yanghu/unicorne/info.json @@ -8,12 +8,27 @@ "pid": "0x0204", "device_version": "0.0.1" }, + "rgblight": { + "led_count": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B1", "driver": "pwm" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["A14", "A15", "B13", "B14", "B15", "A13", "A0", "A1", "A2", "A3", "A6", "A7"], diff --git a/keyboards/yanghu/unicorne/rules.mk b/keyboards/yanghu/unicorne/rules.mk index 651d6bedf38..014f5d4d422 100644 --- a/keyboards/yanghu/unicorne/rules.mk +++ b/keyboards/yanghu/unicorne/rules.mk @@ -12,7 +12,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes -OLED_DRIVER = SSD1306 AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/ydkb/chili/config.h b/keyboards/ydkb/chili/config.h index dd6631f5456..b9449c4714b 100644 --- a/keyboards/ydkb/chili/config.h +++ b/keyboards/ydkb/chili/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -/* Underlight configuration - */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 30 // Number of LEDs -#define RGBLIGHT_HUE_STEP 5 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ydkb/chili/info.json b/keyboards/ydkb/chili/info.json index 998f3073e1f..0b6b8cfebc5 100644 --- a/keyboards/ydkb/chili/info.json +++ b/keyboards/ydkb/chili/info.json @@ -17,6 +17,24 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "hue_steps": 5, + "saturation_steps": 10, + "brightness_steps": 10, + "led_count": 30, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/ydkb/grape/config.h b/keyboards/ydkb/grape/config.h index 0d488de5d41..c0bea85abae 100644 --- a/keyboards/ydkb/grape/config.h +++ b/keyboards/ydkb/grape/config.h @@ -24,10 +24,6 @@ #define SN74X138_ADDRESS_PINS { D2, D1, D0 } -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 4 -#endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ydkb/grape/info.json b/keyboards/ydkb/grape/info.json index 17d2f88773d..32c9914bdbc 100644 --- a/keyboards/ydkb/grape/info.json +++ b/keyboards/ydkb/grape/info.json @@ -12,6 +12,9 @@ "pin": "B7", "breathing": true }, + "rgblight": { + "led_count": 4 + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/ydkb/yd68/config.h b/keyboards/ydkb/yd68/config.h deleted file mode 100644 index 99148038538..00000000000 --- a/keyboards/ydkb/yd68/config.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2018 Ryan "Izzy" Bales - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -/* - * 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/ydkb/yd68/info.json b/keyboards/ydkb/yd68/info.json index b552f9e2cf7..f805369f8dd 100644 --- a/keyboards/ydkb/yd68/info.json +++ b/keyboards/ydkb/yd68/info.json @@ -17,6 +17,23 @@ "caps_lock": "D4", "on_state": 0 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 10, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B3" }, diff --git a/keyboards/yeehaw/config.h b/keyboards/yeehaw/config.h deleted file mode 100644 index 273fd9fca80..00000000000 --- a/keyboards/yeehaw/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 Caleb Lightfoot - * - * This 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 RGBLED_NUM 7 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/yeehaw/info.json b/keyboards/yeehaw/info.json index 1bcda0bcda9..fce21045822 100644 --- a/keyboards/yeehaw/info.json +++ b/keyboards/yeehaw/info.json @@ -13,6 +13,24 @@ {"pin_a": "D1", "pin_b": "D0"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 7, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B2" }, diff --git a/keyboards/ymdk/bface/config.h b/keyboards/ymdk/bface/config.h deleted file mode 100644 index 08303c4b13e..00000000000 --- a/keyboards/ymdk/bface/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2019 Ethan Durrant (emdarcher) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/ymdk/bface/info.json b/keyboards/ymdk/bface/info.json index 09441c5dbdc..f6646db9206 100644 --- a/keyboards/ymdk/bface/info.json +++ b/keyboards/ymdk/bface/info.json @@ -17,6 +17,23 @@ "pin": "D4", "levels": 6 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/ymdk/id75/info.json b/keyboards/ymdk/id75/info.json index 17b50e8e46d..692ef7e8b75 100644 --- a/keyboards/ymdk/id75/info.json +++ b/keyboards/ymdk/id75/info.json @@ -67,7 +67,7 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [4, 14], "x": 224, "y": 64}, {"flags": 4, "matrix": [4, 13], "x": 208, "y": 64}, diff --git a/keyboards/ymdk/id75/keymaps/dothtm75/config.h b/keyboards/ymdk/id75/keymaps/dothtm75/config.h new file mode 100644 index 00000000000..155d4562d53 --- /dev/null +++ b/keyboards/ymdk/id75/keymaps/dothtm75/config.h @@ -0,0 +1,21 @@ +/* Copyright 2017 Mike Cramer + * + * This 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 HOLD_ON_OTHER_KEY_PRESS + +#define MIDI_ADVANCED diff --git a/keyboards/ymdk/id75/keymaps/dothtm75/keymap.c b/keyboards/ymdk/id75/keymaps/dothtm75/keymap.c new file mode 100644 index 00000000000..f8267aff643 --- /dev/null +++ b/keyboards/ymdk/id75/keymaps/dothtm75/keymap.c @@ -0,0 +1,174 @@ +/* Copyright 2017 Wunder + * + * This 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_5x15( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_MINS), LGUI(KC_EQL), KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_0), KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, LGUI(KC_LCBR), LGUI(KC_RCBR), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSLS, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, LGUI(KC_LBRC), LGUI(KC_RBRC), 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, LGUI(KC_QUES), LGUI(KC_SLSH), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + MO(2), KC_LCTL, KC_LALT, KC_LGUI, LT(1,KC_SPC), KC_SPC, LGUI(KC_SPC), LGUI(KC_SPC), KC_SPC, LT(1,KC_SPC), KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ortho_5x15( + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_MINS, KC_EQL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LGUI(KC_1), KC_DEL, + KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_NO, KC_LCBR, KC_RCBR, KC_NO, KC_LCBR, KC_RCBR, KC_DQUO, KC_QUOT, KC_NO, KC_SLSH, + KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_LBRC, KC_RBRC, KC_NO, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_NO, KC_PENT, + KC_TRNS, KC_UNDS, KC_PLUS, KC_MINS, KC_EQL, KC_NO, KC_QUES, KC_SLSH, KC_NO, KC_QUES, KC_SLSH, KC_QUES, KC_SLSH, LCAG(KC_UP), KC_TRNS, + MO(15), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LGUI(KC_SPC), HYPR(KC_J), KC_TRNS, LGUI(KC_SPC), KC_TRNS, KC_TRNS, KC_TRNS, LGUI(KC_LBRC), LCAG(KC_DOWN), LGUI(KC_RBRC) + ), + + [2] = LAYOUT_ortho_5x15( + DB_TOGG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, KC_DEL, + RGB_TOG, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_NO, KC_NO, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_NO, KC_NO, + HYPR(KC_H), KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(15), HYPR(KC_K), KC_NO, KC_NO, KC_TRNS, MO(15), KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + + ), + + // Musical keys + + [3] = LAYOUT_ortho_5x15( + // Chromatic Scale Vertical Typing 60 + KC_ESC, MI_C, MI_E, MI_Gs, MI_C1, MI_E1, KC_NO, KC_NO, MI_Gs1, MI_C2, MI_E2, MI_Gs2, MI_C3, MI_E3, MI_TR0, + KC_TAB, MI_Cs, MI_F, MI_A, MI_Cs1, MI_F1, KC_NO, KC_NO, MI_A1, MI_Cs2, MI_F2, MI_A2, MI_Cs3, MI_F3, MI_TRSU, + KC_SPC, MI_D, MI_Fs, MI_As, MI_D1, MI_Fs1, KC_NO, KC_NO, MI_As1, MI_D2, MI_Fs2, MI_As2, MI_D3, MI_Fs3, MI_TRSD, + MI_SUST, MI_Ds, MI_G, MI_B, MI_Ds1, MI_G1, KC_NO, KC_NO, MI_B1, MI_Ds2, MI_G2, MI_B2, MI_Ds3, MI_G3, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [4] = LAYOUT_ortho_5x15( + // Pocket Operator Scale Vertical Typing 60 + KC_ESC, MI_C, MI_G, MI_C1, MI_G1, MI_C2, KC_NO, KC_NO, MI_G2, MI_C3, MI_G3, MI_C4, MI_G4, MI_C5, MI_TR0, + KC_TAB, MI_D, MI_Gs, MI_D1, MI_Gs1, MI_D2, KC_NO, KC_NO, MI_Gs2, MI_D3, MI_Gs3, MI_D4, MI_Gs4, MI_D5, MI_TRSU, + KC_SPC, MI_Ds, MI_As, MI_Ds1, MI_As1, MI_Ds2, KC_NO, KC_NO, MI_As2, MI_Ds3, MI_As3, MI_Ds4, MI_As4, MI_Ds5, MI_TRSD, + MI_SUST, MI_F, MI_B, MI_F1, MI_B1, MI_F2, KC_NO, KC_NO, MI_B2, MI_F3, MI_B3, MI_F4, MI_B4, MI_F5, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [5] = LAYOUT_ortho_5x15( + // Major scale Vertical Typing 60 + KC_ESC, MI_C, MI_G, MI_D1, MI_A1, MI_E2, KC_NO, KC_NO, MI_B2, MI_F3, MI_C4, MI_G4, MI_D5, MI_A5, MI_TR0, + KC_TAB, MI_D, MI_A, MI_E1, MI_B1, MI_F2, KC_NO, KC_NO, MI_C3, MI_G3, MI_D4, MI_A4, MI_E5, MI_B5, MI_TRSU, + KC_SPC, MI_E, MI_B, MI_F1, MI_C2, MI_G2, KC_NO, KC_NO, MI_D3, MI_A3, MI_E4, MI_B4, MI_F5, KC_NO, MI_TRSD, + MI_SUST, MI_F, MI_C1, MI_G1, MI_D2, MI_A2, KC_NO, KC_NO, MI_E3, MI_B3, MI_F4, MI_C5, MI_G5, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [6] = LAYOUT_ortho_5x15( + // Black Keys Vertical Typing 60 + KC_ESC, MI_C, MI_A, MI_G1, MI_F2, MI_D3, KC_NO, KC_NO, MI_C4, MI_A4, MI_G5, KC_NO, KC_NO, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_C1, MI_A1, MI_G2, MI_F3, KC_NO, KC_NO, MI_D4, MI_C5, MI_A5, KC_NO, KC_NO, KC_NO, MI_TRSU, + KC_SPC, MI_F, MI_D1, MI_C2, MI_A2, MI_G3, KC_NO, KC_NO, MI_F4, MI_D5, KC_NO, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, MI_G, MI_F1, MI_D2, MI_C3, MI_A3, KC_NO, KC_NO, MI_G4, MI_F5, KC_NO, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [7] = LAYOUT_ortho_5x15( + // Chromatic Scale Vertical + KC_ESC, MI_C, MI_E, MI_Gs, MI_C1, MI_E1, MI_Gs1, MI_C2, MI_E2, MI_Gs2, MI_C3, MI_E3, MI_Gs3, KC_NO, MI_TR0, + KC_TAB, MI_Cs, MI_F, MI_A, MI_Cs1, MI_F1, MI_A1, MI_Cs2, MI_F2, MI_A2, MI_Cs3, MI_F3, MI_A3, KC_NO, MI_TRSU, + KC_SPC, MI_D, MI_Fs, MI_As, MI_D1, MI_Fs1, MI_As1, MI_D2, MI_Fs2, MI_As2, MI_D3, MI_Fs3, MI_As3, KC_NO, MI_TRSD, + MI_SUST, MI_Ds, MI_G, MI_B, MI_Ds1, MI_G1, MI_B1, MI_Ds2, MI_G2, MI_B2, MI_Ds3, MI_G3, MI_B3, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [8] = LAYOUT_ortho_5x15( + // Pocket Operator Scale Vertical + KC_ESC, MI_C, MI_G, MI_C1, MI_G1, MI_C2, MI_G2, MI_C3, MI_G3, MI_C4, MI_G4, MI_C5, MI_G5, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_Gs, MI_D1, MI_Gs1, MI_D2, MI_Gs2, MI_D3, MI_Gs3, MI_D4, MI_Gs4, MI_D5, MI_Gs5, KC_NO, MI_TRSU, + KC_SPC, MI_Ds, MI_As, MI_Ds1, MI_As1, MI_Ds2, MI_As2, MI_Ds3, MI_As3, MI_Ds4, MI_As4, MI_Ds5, MI_As5, KC_NO, MI_TRSD, + MI_SUST, MI_F, MI_B, MI_F1, MI_B1, MI_F2, MI_B2, MI_F3, MI_B3, MI_F4, MI_B4, MI_F5, MI_B5, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [9] = LAYOUT_ortho_5x15( + // Major scale Vertical + KC_ESC, MI_C, MI_G, MI_D1, MI_A1, MI_E2, MI_B2, MI_F3, MI_C4, MI_G4, MI_D5, MI_A5, KC_NO, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_A, MI_E1, MI_B1, MI_F2, MI_C3, MI_G3, MI_D4, MI_A4, MI_E5, MI_B5, KC_NO, KC_NO, MI_TRSU, + KC_SPC, MI_E, MI_B, MI_F1, MI_C2, MI_G2, MI_D3, MI_A3, MI_E4, MI_B4, MI_F5, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, MI_F, MI_C1, MI_G1, MI_D2, MI_A2, MI_E3, MI_B3, MI_F4, MI_C5, MI_G5, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [10] = LAYOUT_ortho_5x15( + // Black Keys Vertical + KC_ESC, MI_C, MI_A, MI_G1, MI_F2, MI_D3, MI_C4, MI_A4, MI_G5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_TR0, + KC_TAB, MI_D, MI_C1, MI_A1, MI_G2, MI_F3, MI_D4, MI_C5, MI_A5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_TRSU, + KC_SPC, MI_F, MI_D1, MI_C2, MI_A2, MI_G3, MI_F4, MI_D5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, MI_G, MI_F1, MI_D2, MI_C3, MI_A3, MI_G4, MI_F5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [11] = LAYOUT_ortho_5x15( + // Chromatic Scale Horizontal + KC_ESC, MI_C, MI_Cs, MI_D, MI_Ds, MI_E, MI_F, MI_Fs, MI_G, MI_Gs, MI_A, MI_As, MI_B, KC_NO, MI_TR0, + KC_TAB, MI_C1, MI_Cs1, MI_D1, MI_Ds1, MI_E1, MI_F1, MI_Fs1, MI_G1, MI_Gs1, MI_A1, MI_As1, MI_B1, KC_NO, MI_TRSU, + KC_SPC, MI_C2, MI_Cs2, MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2, MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2, KC_NO, MI_TRSD, + MI_SUST, MI_C3, MI_Cs3, MI_D3, MI_Ds3, MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3, MI_A3, MI_As3, MI_B3, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + [12] = LAYOUT_ortho_5x15( + // Pocket Operator Scale Horizontal + KC_ESC, MI_C, MI_D, MI_Ds, MI_F, MI_G, MI_Gs, MI_As, MI_B, MI_C1, MI_D1, MI_Ds1, MI_F1, KC_NO, MI_TR0, + KC_TAB, MI_G1, MI_Gs1, MI_As1, MI_B1, MI_C2, MI_D2, MI_Ds2, MI_F2, MI_G2, MI_Gs2, MI_As2, MI_B2, KC_NO, MI_TRSU, + KC_SPC, MI_C3, MI_D3, MI_Ds3, MI_F3, MI_G3, MI_Gs3, MI_As3, MI_B3, MI_C4, MI_D4, MI_Ds4, MI_F4, KC_NO, MI_TRSD, + MI_SUST, MI_G4, MI_Gs4, MI_As4, MI_B4, MI_C5, MI_D5, MI_Ds5, MI_F5, MI_G5, MI_Gs5, MI_As5, MI_B5, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [13] = LAYOUT_ortho_5x15( + // Major scale Horizontal + KC_ESC, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C1, MI_D1, MI_E1, MI_F1, MI_G1, KC_NO, MI_TR0, + KC_TAB, MI_A1, MI_B1, MI_C2, MI_D2, MI_E2, MI_F2, MI_G2, MI_A2, MI_B2, MI_C3, MI_D3, MI_E3, KC_NO, MI_TRSU, + KC_SPC, MI_F3, MI_G3, MI_A3, MI_B3, MI_C4, MI_D4, MI_E4, MI_F4, MI_G4, MI_A4, MI_B4, MI_C5, KC_NO, MI_TRSD, + MI_SUST, MI_D5, MI_E5, MI_F5, MI_G5, MI_A5, MI_B5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + [14] = LAYOUT_ortho_5x15( + // Black Keys Horizontal + KC_ESC, MI_C, MI_D, MI_F, MI_G, MI_A, MI_C1, MI_D1, MI_F1, MI_G1, MI_A1, MI_C2, MI_D2, KC_NO, MI_TR0, + KC_TAB, MI_F2, MI_G2, MI_A2, MI_C3, MI_D3, MI_F3, MI_G3, MI_A3, MI_C4, MI_D4, MI_F4, MI_G4, KC_NO, MI_TRSU, + KC_SPC, MI_A4, MI_C, MI_D, MI_F, MI_G, MI_A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MI_TRSD, + MI_SUST, 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, MI_OCTU, + MO(15), KC_LCTL, KC_LALT, KC_LGUI, MI_BNDD, MI_SUST, MI_SUST, MI_SUST, MI_SUST, MI_BNDU, KC_NO, KC_NO, MI_MODD, MI_MODU, MI_OCTD + + ), + + [15] = LAYOUT_ortho_5x15( + // Settings + DB_TOGG, MI_CH1, MI_CH2, MI_CH3, MI_CH4, MI_CH5, KC_NO, KC_NO, MI_CH6, MI_CH7, MI_CH8, AU_TOGG, KC_NO, KC_NO, QK_BOOT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, DF(3), DF(4), DF(5), DF(6), KC_NO, KC_NO, KC_NO, + RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, KC_NO, KC_NO, DF(11), DF(12), DF(13), DF(14), KC_NO, KC_NO, DB_TOGG, + RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_NO, KC_NO, KC_NO, DF(7), DF(8), DF(9), DF(10), KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_TRNS, DF(0), DF(0), DF(0), DF(0), KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO + ) +}; + diff --git a/keyboards/ymdk/id75/keymaps/dothtm75/rules.mk b/keyboards/ymdk/id75/keymaps/dothtm75/rules.mk new file mode 100644 index 00000000000..56c4130708c --- /dev/null +++ b/keyboards/ymdk/id75/keymaps/dothtm75/rules.mk @@ -0,0 +1,2 @@ + +MIDI_ENABLE = yes diff --git a/keyboards/ymdk/id75/rules.mk b/keyboards/ymdk/id75/rules.mk index 47220e8853a..edbd3dd7181 100644 --- a/keyboards/ymdk/id75/rules.mk +++ b/keyboards/ymdk/id75/rules.mk @@ -4,5 +4,3 @@ MCU_LDSCRIPT = STM32F103xB # 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/ymdk/melody96/config.h b/keyboards/ymdk/melody96/config.h index a62c64fb37b..5f360813239 100644 --- a/keyboards/ymdk/melody96/config.h +++ b/keyboards/ymdk/melody96/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/ymdk/melody96/info.json b/keyboards/ymdk/melody96/info.json index 83c45eaa6be..37b3ba9cffb 100644 --- a/keyboards/ymdk/melody96/info.json +++ b/keyboards/ymdk/melody96/info.json @@ -17,6 +17,23 @@ "pin": "B6", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/ymdk/np21/config.h b/keyboards/ymdk/np21/config.h index 6ad2d4bdf00..6c187131d44 100644 --- a/keyboards/ymdk/np21/config.h +++ b/keyboards/ymdk/np21/config.h @@ -17,22 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 5 -//#define RGBLIGHT_HUE_STEP 8 -//#define RGBLIGHT_SAT_STEP 8 -//#define RGBLIGHT_VAL_STEP 8 -//#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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/ymdk/np21/info.json b/keyboards/ymdk/np21/info.json index 62fdf7e20c7..f420023deef 100644 --- a/keyboards/ymdk/np21/info.json +++ b/keyboards/ymdk/np21/info.json @@ -18,6 +18,21 @@ "levels": 12, "breathing": true }, + "rgblight": { + "led_count": 5, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, diff --git a/keyboards/ymdk/np24/u4rgb6/config.h b/keyboards/ymdk/np24/u4rgb6/config.h deleted file mode 100644 index 0f6e31d199f..00000000000 --- a/keyboards/ymdk/np24/u4rgb6/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* 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 RGBLED_NUM 6 -#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/ymdk/np24/u4rgb6/info.json b/keyboards/ymdk/np24/u4rgb6/info.json index 285baacdac0..b804473300a 100644 --- a/keyboards/ymdk/np24/u4rgb6/info.json +++ b/keyboards/ymdk/np24/u4rgb6/info.json @@ -16,6 +16,21 @@ "pin": "B7", "levels": 31 }, + "rgblight": { + "led_count": 6, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/ymdk/sp64/config.h b/keyboards/ymdk/sp64/config.h index 35e9f6b5a68..ae956e4207e 100644 --- a/keyboards/ymdk/sp64/config.h +++ b/keyboards/ymdk/sp64/config.h @@ -22,20 +22,3 @@ along with this program. If not, see . #define MATRIX_COLS 15 #define RIGHT_HALF - -/* RGB underglow */ -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#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 -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/ymdk/sp64/info.json b/keyboards/ymdk/sp64/info.json index dff795f0b9f..a0091c8f3da 100644 --- a/keyboards/ymdk/sp64/info.json +++ b/keyboards/ymdk/sp64/info.json @@ -17,7 +17,23 @@ "driver": "i2c" }, "rgblight": { - "max_brightness": 250 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "max_brightness": 250, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32a", "bootloader": "bootloadhid", diff --git a/keyboards/ymdk/wings/config.h b/keyboards/ymdk/wings/config.h deleted file mode 100644 index c8cfa14161f..00000000000 --- a/keyboards/ymdk/wings/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 alittlepeace -This 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 RGBLED_NUM 14 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ diff --git a/keyboards/ymdk/wings/info.json b/keyboards/ymdk/wings/info.json index 6a136f90d38..1e0a1995b65 100644 --- a/keyboards/ymdk/wings/info.json +++ b/keyboards/ymdk/wings/info.json @@ -17,6 +17,24 @@ "pin": "B6", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/ymdk/wingshs/config.h b/keyboards/ymdk/wingshs/config.h deleted file mode 100644 index fe80a59fe59..00000000000 --- a/keyboards/ymdk/wingshs/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2021 alittlepeace -This 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 RGBLED_NUM 80 -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ diff --git a/keyboards/ymdk/wingshs/info.json b/keyboards/ymdk/wingshs/info.json index 4c536e7eadc..4843e2d4c06 100644 --- a/keyboards/ymdk/wingshs/info.json +++ b/keyboards/ymdk/wingshs/info.json @@ -25,7 +25,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 160 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 80, + "max_brightness": 160, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/ymdk/yd60mq/12led/config.h b/keyboards/ymdk/yd60mq/12led/config.h deleted file mode 100644 index edea795f788..00000000000 --- a/keyboards/ymdk/yd60mq/12led/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define RGBLED_NUM 12 diff --git a/keyboards/ymdk/yd60mq/12led/info.json b/keyboards/ymdk/yd60mq/12led/info.json index 90ac25f360b..faa8ae570e0 100644 --- a/keyboards/ymdk/yd60mq/12led/info.json +++ b/keyboards/ymdk/yd60mq/12led/info.json @@ -1,5 +1,22 @@ { "usb": { "device_version": "0.0.1" + }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } } } diff --git a/keyboards/ymdk/yd60mq/16led/config.h b/keyboards/ymdk/yd60mq/16led/config.h deleted file mode 100644 index 00d3fcfc8cb..00000000000 --- a/keyboards/ymdk/yd60mq/16led/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define RGBLED_NUM 16 diff --git a/keyboards/ymdk/yd60mq/16led/info.json b/keyboards/ymdk/yd60mq/16led/info.json index e557e4d3076..47a3dbb0b52 100644 --- a/keyboards/ymdk/yd60mq/16led/info.json +++ b/keyboards/ymdk/yd60mq/16led/info.json @@ -1,5 +1,22 @@ { "usb": { "device_version": "0.0.2" + }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 16, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } } } diff --git a/keyboards/ymdk/yd60mq/config.h b/keyboards/ymdk/yd60mq/config.h index 135548b4ff0..6f34d5132a8 100644 --- a/keyboards/ymdk/yd60mq/config.h +++ b/keyboards/ymdk/yd60mq/config.h @@ -2,20 +2,3 @@ /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE - -/* prevent stuck modifiers */ - -#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_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -// RGBLED_NUM is defined in revisions diff --git a/keyboards/ymdk/ym68/config.h b/keyboards/ymdk/ym68/config.h deleted file mode 100644 index b35b9d3142a..00000000000 --- a/keyboards/ymdk/ym68/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 James Young (@noroadsleft) - * - * This 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 - -#if defined(RGBLIGHT_ENABLE) - #define RGBLED_NUM 20 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/ymdk/ym68/info.json b/keyboards/ymdk/ym68/info.json index 3daab4072aa..132d431adb8 100644 --- a/keyboards/ymdk/ym68/info.json +++ b/keyboards/ymdk/ym68/info.json @@ -18,6 +18,24 @@ "levels": 5, "breathing": true }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 20, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/ymdk/ymd09/info.json b/keyboards/ymdk/ymd09/info.json index d9cb9f50863..11552ae5b20 100644 --- a/keyboards/ymdk/ymd09/info.json +++ b/keyboards/ymdk/ymd09/info.json @@ -46,7 +46,7 @@ } }, "rgb_matrix": { - "driver": "WS2812", + "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 2], "x": 64, "y": 0}, //7 {"flags": 4, "matrix": [0, 1], "x": 32, "y": 0}, //8 diff --git a/keyboards/ymdk/ymd09/keymaps/vial/keymap.c b/keyboards/ymdk/ymd09/keymaps/vial/keymap.c index 15962e367aa..875366fbcff 100644 --- a/keyboards/ymdk/ymd09/keymaps/vial/keymap.c +++ b/keyboards/ymdk/ymd09/keymaps/vial/keymap.c @@ -8,13 +8,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT(RGB_RMOD, RGB_VAI, RGB_MOD, RGB_HUI, QK_BOOT, RGB_SAI, - RGB_HUD, RGB_VAD, RGB_SAD), - - [2] = LAYOUT(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), + RGB_HUD, RGB_VAD, RGB_SAD) }; diff --git a/keyboards/ymdk/ymd09/keymaps/vial/rules.mk b/keyboards/ymdk/ymd09/keymaps/vial/rules.mk index 7e0cf67c8a6..e089954dc84 100644 --- a/keyboards/ymdk/ymd09/keymaps/vial/rules.mk +++ b/keyboards/ymdk/ymd09/keymaps/vial/rules.mk @@ -3,3 +3,5 @@ VIAL_ENABLE = yes LTO_ENABLE = yes QMK_SETTINGS = no TAP_DANCE_ENABLE = no +COMBO_ENABLE = no +KEY_OVERRIDE_ENABLE = no diff --git a/keyboards/ymdk/ymd21/v2/config.h b/keyboards/ymdk/ymd21/v2/config.h deleted file mode 100644 index 955f702a8d3..00000000000 --- a/keyboards/ymdk/ymd21/v2/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2022 QMK / James Young (@noroadsleft) - * - * This 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 - -#if defined(RGBLIGHT_ENABLE) - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/ymdk/ymd21/v2/info.json b/keyboards/ymdk/ymd21/v2/info.json index 18b0ef9e7b5..9bd8d6e3708 100644 --- a/keyboards/ymdk/ymd21/v2/info.json +++ b/keyboards/ymdk/ymd21/v2/info.json @@ -21,7 +21,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 180 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "max_brightness": 180, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/ymdk/ymd40/air40/info.json b/keyboards/ymdk/ymd40/air40/info.json index cfa103de9a8..daf104ebfec 100644 --- a/keyboards/ymdk/ymd40/air40/info.json +++ b/keyboards/ymdk/ymd40/air40/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F1", "F0", "B0", "C7", "F4", "F5", "F6", "F7", "D4", "D6", "B4", "D7"], diff --git a/keyboards/ymdk/ymd40/v2/config.h b/keyboards/ymdk/ymd40/v2/config.h deleted file mode 100644 index 1a061e530b6..00000000000 --- a/keyboards/ymdk/ymd40/v2/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 James Young (@noroadsleft) - * - * This 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 - -#if defined(RGBLIGHT_ENABLE) - #define RGBLED_NUM 8 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/ymdk/ymd40/v2/info.json b/keyboards/ymdk/ymd40/v2/info.json index ab9648ff46a..6686030166b 100644 --- a/keyboards/ymdk/ymd40/v2/info.json +++ b/keyboards/ymdk/ymd40/v2/info.json @@ -21,7 +21,23 @@ "pin": "E2" }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 8, + "max_brightness": 150, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/ymdk/ymd67/config.h b/keyboards/ymdk/ymd67/config.h index 8a3612b8a55..6f34d5132a8 100644 --- a/keyboards/ymdk/ymd67/config.h +++ b/keyboards/ymdk/ymd67/config.h @@ -2,20 +2,3 @@ /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE - -/* prevent stuck modifiers */ - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/ymdk/ymd67/info.json b/keyboards/ymdk/ymd67/info.json index 39801fe04e9..65da379035f 100644 --- a/keyboards/ymdk/ymd67/info.json +++ b/keyboards/ymdk/ymd67/info.json @@ -17,6 +17,23 @@ "pin": "B7", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/ymdk/ymd75/config.h b/keyboards/ymdk/ymd75/config.h deleted file mode 100644 index 32bdab24781..00000000000 --- a/keyboards/ymdk/ymd75/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Base Copyright 2017 Luiz Ribeiro -Modified 2017 Andrew Novak -Modified 2018 Wayne Jones (WarmCatUK) - -This 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 RGBLED_NUM 16 -#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_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 15 -#define RGBLIGHT_VAL_STEP 18 -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/ymdk/ymd75/info.json b/keyboards/ymdk/ymd75/info.json deleted file mode 100644 index 930139be906..00000000000 --- a/keyboards/ymdk/ymd75/info.json +++ /dev/null @@ -1,280 +0,0 @@ -{ - "keyboard_name": "YMD75 / MT84", - "manufacturer": "YMDK", - "url": "", - "maintainer": "qmk", - "usb": { - "vid": "0x20A0", - "pid": "0x422D" - }, - "ws2812": { - "pin": "E2" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "Esc", "x": 0, "y": 0}, - {"label": "F1", "x": 1, "y": 0}, - {"label": "F2", "x": 2, "y": 0}, - {"label": "F3", "x": 3, "y": 0}, - {"label": "F4", "x": 4, "y": 0}, - {"label": "F5", "x": 5, "y": 0}, - {"label": "F6", "x": 6, "y": 0}, - {"label": "F7", "x": 7, "y": 0}, - {"label": "F8", "x": 8, "y": 0}, - {"label": "F9", "x": 9, "y": 0}, - {"label": "F10", "x": 10, "y": 0}, - {"label": "F11", "x": 11, "y": 0}, - {"label": "F12", "x": 12, "y": 0}, - {"label": "PrtSc", "x": 13, "y": 0}, - {"label": "Del", "x": 14, "y": 0}, - {"label": "Fn", "x": 15, "y": 0}, - {"label": "~", "x": 0, "y": 1}, - {"label": "!", "x": 1, "y": 1}, - {"label": "@", "x": 2, "y": 1}, - {"label": "#", "x": 3, "y": 1}, - {"label": "$", "x": 4, "y": 1}, - {"label": "%", "x": 5, "y": 1}, - {"label": "^", "x": 6, "y": 1}, - {"label": "&", "x": 7, "y": 1}, - {"label": "*", "x": 8, "y": 1}, - {"label": "(", "x": 9, "y": 1}, - {"label": ")", "x": 10, "y": 1}, - {"label": "_", "x": 11, "y": 1}, - {"label": "+", "x": 12, "y": 1}, - {"label": "Backspace", "x": 13, "y": 1, "w": 2}, - {"label": "Home", "x": 15, "y": 1}, - {"label": "Tab", "x": 0, "y": 2, "w": 1.5}, - {"label": "Q", "x": 1.5, "y": 2}, - {"label": "W", "x": 2.5, "y": 2}, - {"label": "E", "x": 3.5, "y": 2}, - {"label": "R", "x": 4.5, "y": 2}, - {"label": "T", "x": 5.5, "y": 2}, - {"label": "Y", "x": 6.5, "y": 2}, - {"label": "U", "x": 7.5, "y": 2}, - {"label": "I", "x": 8.5, "y": 2}, - {"label": "O", "x": 9.5, "y": 2}, - {"label": "P", "x": 10.5, "y": 2}, - {"label": "{", "x": 11.5, "y": 2}, - {"label": "}", "x": 12.5, "y": 2}, - {"label": "|", "x": 13.5, "y": 2, "w": 1.5}, - {"label": "End", "x": 15, "y": 2}, - {"label": "Caps Lock", "x": 0, "y": 3, "w": 1.75}, - {"label": "A", "x": 1.75, "y": 3}, - {"label": "S", "x": 2.75, "y": 3}, - {"label": "D", "x": 3.75, "y": 3}, - {"label": "F", "x": 4.75, "y": 3}, - {"label": "G", "x": 5.75, "y": 3}, - {"label": "H", "x": 6.75, "y": 3}, - {"label": "J", "x": 7.75, "y": 3}, - {"label": "K", "x": 8.75, "y": 3}, - {"label": "L", "x": 9.75, "y": 3}, - {"label": ":", "x": 10.75, "y": 3}, - {"label": "\"", "x": 11.75, "y": 3}, - {"label": "Enter", "x": 12.75, "y": 3, "w": 2.25}, - {"label": "Page Up", "x": 15, "y": 3}, - {"label": "Shift", "x": 0, "y": 4, "w": 2.25}, - {"label": "Z", "x": 2.25, "y": 4}, - {"label": "X", "x": 3.25, "y": 4}, - {"label": "C", "x": 4.25, "y": 4}, - {"label": "V", "x": 5.25, "y": 4}, - {"label": "B", "x": 6.25, "y": 4}, - {"label": "N", "x": 7.25, "y": 4}, - {"label": "M", "x": 8.25, "y": 4}, - {"label": "<", "x": 9.25, "y": 4}, - {"label": ">", "x": 10.25, "y": 4}, - {"label": "?", "x": 11.25, "y": 4}, - {"label": "Shift", "x": 12.25, "y": 4, "w": 1.75}, - {"label": "\u2191", "x": 14, "y": 4}, - {"label": "Page Down", "x": 15, "y": 4}, - {"label": "Ctrl", "x": 0, "y": 5, "w": 1.25}, - {"label": "GUI", "x": 1.25, "y": 5, "w": 1.25}, - {"label": "Alt", "x": 2.5, "y": 5, "w": 1.25}, - {"x": 3.75, "y": 5, "w": 6.25}, - {"label": "Alt", "x": 10, "y": 5}, - {"label": "Fn", "x": 11, "y": 5}, - {"label": "Ctrl", "x": 12, "y": 5}, - {"label": "\u2190", "x": 13, "y": 5}, - {"label": "\u2193", "x": 14, "y": 5}, - {"label": "\u2192", "x": 15, "y": 5} - ] - }, - "LAYOUT_75_iso": { - "layout": [ - {"label": "Esc", "x": 0, "y": 0}, - {"label": "F1", "x": 1, "y": 0}, - {"label": "F2", "x": 2, "y": 0}, - {"label": "F3", "x": 3, "y": 0}, - {"label": "F4", "x": 4, "y": 0}, - {"label": "F5", "x": 5, "y": 0}, - {"label": "F6", "x": 6, "y": 0}, - {"label": "F7", "x": 7, "y": 0}, - {"label": "F8", "x": 8, "y": 0}, - {"label": "F9", "x": 9, "y": 0}, - {"label": "F10", "x": 10, "y": 0}, - {"label": "F11", "x": 11, "y": 0}, - {"label": "F12", "x": 12, "y": 0}, - {"label": "PrtSc", "x": 13, "y": 0}, - {"label": "Pause", "x": 14, "y": 0}, - {"label": "Delete", "x": 15, "y": 0}, - {"label": "~", "x": 0, "y": 1}, - {"label": "1", "x": 1, "y": 1}, - {"label": "2", "x": 2, "y": 1}, - {"label": "3", "x": 3, "y": 1}, - {"label": "4", "x": 4, "y": 1}, - {"label": "5", "x": 5, "y": 1}, - {"label": "6", "x": 6, "y": 1}, - {"label": "7", "x": 7, "y": 1}, - {"label": "8", "x": 8, "y": 1}, - {"label": "9", "x": 9, "y": 1}, - {"label": "0", "x": 10, "y": 1}, - {"label": "_", "x": 11, "y": 1}, - {"label": "+", "x": 12, "y": 1}, - {"label": "Backspace", "x": 13, "y": 1, "w": 2}, - {"label": "Home", "x": 15, "y": 1}, - {"label": "Tab", "x": 0, "y": 2, "w": 1.5}, - {"label": "Q", "x": 1.5, "y": 2}, - {"label": "W", "x": 2.5, "y": 2}, - {"label": "E", "x": 3.5, "y": 2}, - {"label": "R", "x": 4.5, "y": 2}, - {"label": "T", "x": 5.5, "y": 2}, - {"label": "Y", "x": 6.5, "y": 2}, - {"label": "U", "x": 7.5, "y": 2}, - {"label": "I", "x": 8.5, "y": 2}, - {"label": "O", "x": 9.5, "y": 2}, - {"label": "P", "x": 10.5, "y": 2}, - {"label": "{", "x": 11.5, "y": 2}, - {"label": "}", "x": 12.5, "y": 2}, - {"label": "Page Up", "x": 15, "y": 2}, - {"label": "Caps Lock", "x": 0, "y": 3, "w": 1.75}, - {"label": "A", "x": 1.75, "y": 3}, - {"label": "S", "x": 2.75, "y": 3}, - {"label": "D", "x": 3.75, "y": 3}, - {"label": "F", "x": 4.75, "y": 3}, - {"label": "G", "x": 5.75, "y": 3}, - {"label": "H", "x": 6.75, "y": 3}, - {"label": "J", "x": 7.75, "y": 3}, - {"label": "K", "x": 8.75, "y": 3}, - {"label": "L", "x": 9.75, "y": 3}, - {"label": ":", "x": 10.75, "y": 3}, - {"label": "@", "x": 11.75, "y": 3}, - {"label": "~", "x": 12.75, "y": 3}, - {"label": "Enter", "x": 13.75, "y": 2, "w": 1.25, "h": 2}, - {"label": "Page Down", "x": 15, "y": 3}, - {"label": "Shift", "x": 0, "y": 4, "w": 1.25}, - {"label": "|", "x": 1.25, "y": 4}, - {"label": "Z", "x": 2.25, "y": 4}, - {"label": "X", "x": 3.25, "y": 4}, - {"label": "C", "x": 4.25, "y": 4}, - {"label": "V", "x": 5.25, "y": 4}, - {"label": "B", "x": 6.25, "y": 4}, - {"label": "N", "x": 7.25, "y": 4}, - {"label": "M", "x": 8.25, "y": 4}, - {"label": "<", "x": 9.25, "y": 4}, - {"label": ">", "x": 10.25, "y": 4}, - {"label": "?", "x": 11.25, "y": 4}, - {"label": "Shift", "x": 12.25, "y": 4, "w": 1.75}, - {"label": "Up", "x": 14, "y": 4}, - {"label": "End", "x": 15, "y": 4}, - {"label": "Ctrl", "x": 0, "y": 5, "w": 1.25}, - {"label": "Win", "x": 1.25, "y": 5, "w": 1.25}, - {"label": "Alt", "x": 2.5, "y": 5, "w": 1.25}, - {"label": "Space", "x": 3.75, "y": 5, "w": 6.25}, - {"label": "AltGr", "x": 10, "y": 5}, - {"label": "Menu", "x": 11, "y": 5}, - {"label": "Ctrl", "x": 12, "y": 5}, - {"label": "Left", "x": 13, "y": 5}, - {"label": "Down", "x": 14, "y": 5}, - {"label": "Right", "x": 15, "y": 5} - ] - }, - "LAYOUT_75_iso_rwkl": { - "layout": [ - {"label": "Esc", "x": 0, "y": 0}, - {"label": "F1", "x": 1, "y": 0}, - {"label": "F2", "x": 2, "y": 0}, - {"label": "F3", "x": 3, "y": 0}, - {"label": "F4", "x": 4, "y": 0}, - {"label": "F5", "x": 5, "y": 0}, - {"label": "F6", "x": 6, "y": 0}, - {"label": "F7", "x": 7, "y": 0}, - {"label": "F8", "x": 8, "y": 0}, - {"label": "F9", "x": 9, "y": 0}, - {"label": "F10", "x": 10, "y": 0}, - {"label": "F11", "x": 11, "y": 0}, - {"label": "F12", "x": 12, "y": 0}, - {"label": "PrtSc", "x": 13, "y": 0}, - {"label": "Pause", "x": 14, "y": 0}, - {"label": "Delete", "x": 15, "y": 0}, - {"label": "~", "x": 0, "y": 1}, - {"label": "1", "x": 1, "y": 1}, - {"label": "2", "x": 2, "y": 1}, - {"label": "3", "x": 3, "y": 1}, - {"label": "4", "x": 4, "y": 1}, - {"label": "5", "x": 5, "y": 1}, - {"label": "6", "x": 6, "y": 1}, - {"label": "7", "x": 7, "y": 1}, - {"label": "8", "x": 8, "y": 1}, - {"label": "9", "x": 9, "y": 1}, - {"label": "0", "x": 10, "y": 1}, - {"label": "_", "x": 11, "y": 1}, - {"label": "+", "x": 12, "y": 1}, - {"label": "Backspace", "x": 13, "y": 1, "w": 2}, - {"label": "Home", "x": 15, "y": 1}, - {"label": "Tab", "x": 0, "y": 2, "w": 1.5}, - {"label": "Q", "x": 1.5, "y": 2}, - {"label": "W", "x": 2.5, "y": 2}, - {"label": "E", "x": 3.5, "y": 2}, - {"label": "R", "x": 4.5, "y": 2}, - {"label": "T", "x": 5.5, "y": 2}, - {"label": "Y", "x": 6.5, "y": 2}, - {"label": "U", "x": 7.5, "y": 2}, - {"label": "I", "x": 8.5, "y": 2}, - {"label": "O", "x": 9.5, "y": 2}, - {"label": "P", "x": 10.5, "y": 2}, - {"label": "{", "x": 11.5, "y": 2}, - {"label": "}", "x": 12.5, "y": 2}, - {"label": "Page Up", "x": 15, "y": 2}, - {"label": "Caps Lock", "x": 0, "y": 3, "w": 1.75}, - {"label": "A", "x": 1.75, "y": 3}, - {"label": "S", "x": 2.75, "y": 3}, - {"label": "D", "x": 3.75, "y": 3}, - {"label": "F", "x": 4.75, "y": 3}, - {"label": "G", "x": 5.75, "y": 3}, - {"label": "H", "x": 6.75, "y": 3}, - {"label": "J", "x": 7.75, "y": 3}, - {"label": "K", "x": 8.75, "y": 3}, - {"label": "L", "x": 9.75, "y": 3}, - {"label": ":", "x": 10.75, "y": 3}, - {"label": "@", "x": 11.75, "y": 3}, - {"label": "~", "x": 12.75, "y": 3}, - {"label": "Enter", "x": 13.75, "y": 2, "w": 1.25, "h": 2}, - {"label": "Page Down", "x": 15, "y": 3}, - {"label": "Shift", "x": 0, "y": 4, "w": 1.25}, - {"label": "|", "x": 1.25, "y": 4}, - {"label": "Z", "x": 2.25, "y": 4}, - {"label": "X", "x": 3.25, "y": 4}, - {"label": "C", "x": 4.25, "y": 4}, - {"label": "V", "x": 5.25, "y": 4}, - {"label": "B", "x": 6.25, "y": 4}, - {"label": "N", "x": 7.25, "y": 4}, - {"label": "M", "x": 8.25, "y": 4}, - {"label": "<", "x": 9.25, "y": 4}, - {"label": ">", "x": 10.25, "y": 4}, - {"label": "?", "x": 11.25, "y": 4}, - {"label": "Shift", "x": 12.25, "y": 4, "w": 1.75}, - {"label": "Up", "x": 14, "y": 4}, - {"label": "End", "x": 15, "y": 4}, - {"label": "Ctrl", "x": 0, "y": 5, "w": 1.25}, - {"label": "Win", "x": 1.25, "y": 5, "w": 1.25}, - {"label": "Alt", "x": 2.5, "y": 5, "w": 1.25}, - {"label": "Space", "x": 3.75, "y": 5, "w": 6.25}, - {"label": "AltGr", "x": 10, "y": 5, "w": 1.5}, - {"label": "Ctrl", "x": 11.5, "y": 5, "w": 1.5}, - {"label": "Left", "x": 13, "y": 5}, - {"label": "Down", "x": 14, "y": 5}, - {"label": "Right", "x": 15, "y": 5} - ] - } - } -} diff --git a/keyboards/ymdk/ymd75/keymaps/default_iso/keymap.c b/keyboards/ymdk/ymd75/keymaps/default_iso/keymap.c deleted file mode 100644 index 5041b72b9fa..00000000000 --- a/keyboards/ymdk/ymd75/keymaps/default_iso/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_75_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_PSCR, KC_PAUS, KC_DEL, - /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_NUHS, KC_ENT, KC_PGUP, - /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ - 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_PGDN, - /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), - - [1] = LAYOUT_75_iso( - /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, - /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ - RGB_MOD, RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_VOLD, - /* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ - _______, _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, - /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ) -}; diff --git a/keyboards/ymdk/ymd75/keymaps/default_iso_rwkl/keymap.c b/keyboards/ymdk/ymd75/keymaps/default_iso_rwkl/keymap.c deleted file mode 100644 index 0db1c8d288d..00000000000 --- a/keyboards/ymdk/ymd75/keymaps/default_iso_rwkl/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_75_iso_rwkl( - /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - 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_DEL, KC_HOME, - /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ - 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_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_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, MO(1), - /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┤ */ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┘ */ - ), - - [1] = LAYOUT_75_iso_rwkl( - /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, - /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - /* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, - /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______ - /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┘ */ - ) -}; diff --git a/keyboards/ymdk/ymd75/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/keymaps/via/keymap.c deleted file mode 100644 index e1b91490c3f..00000000000 --- a/keyboards/ymdk/ymd75/keymaps/via/keymap.c +++ /dev/null @@ -1,61 +0,0 @@ - /* Copyright 2021 kshpits - * - * This 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: Main Layer - * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - * │ ESC │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │PRSCR│PAUSE│ DEL │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┤ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ BACKSPACE │HOME │ - * ├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┼─────┤ - * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ END │ - * ├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┼─────┤ - * │ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ RETURN │PG_UP│ - * ├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────┬─────┼─────┤ - * │ LSHIFT │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ RSHIFT │ UP │PG_DN│ - * ├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴────┬┴────┬┴────┬─────┼─────┼─────┤ - * │LCTRL │L_GUI │L_ALT │ SPACE │R_ALT| FN │R_CTR│LEFT │DOWN │RIGHT│ - * └──────┴──────┴──────┴──────────────────────────────────────┴─────┴─────┴─────┴─────┴─────┘─────┘ - */ - [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_DEL, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, - _______, _______, _______, _______, _______, _______, KC_APP, KC_MPRV, KC_VOLD, KC_MNXT - ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/ymdk/ymd75/keymaps/vial/config.h b/keyboards/ymdk/ymd75/keymaps/vial/config.h index cb8f6f6c750..eea5087409a 100644 --- a/keyboards/ymdk/ymd75/keymaps/vial/config.h +++ b/keyboards/ymdk/ymd75/keymaps/vial/config.h @@ -5,3 +5,5 @@ #define VIAL_KEYBOARD_UID {0xE1, 0xA9, 0x51, 0xDE, 0x08, 0xE3, 0x75, 0x61} #define VIAL_UNLOCK_COMBO_ROWS { 5, 0 } #define VIAL_UNLOCK_COMBO_COLS { 0, 0 } + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/ymdk/ymd75/keymaps/vial/keymap.c b/keyboards/ymdk/ymd75/keymaps/vial/keymap.c index e1b91490c3f..2994bf53117 100644 --- a/keyboards/ymdk/ymd75/keymaps/vial/keymap.c +++ b/keyboards/ymdk/ymd75/keymaps/vial/keymap.c @@ -49,13 +49,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_APP, KC_MPRV, KC_VOLD, KC_MNXT - ), - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + ) }; diff --git a/keyboards/ymdk/ymd75/readme.md b/keyboards/ymdk/ymd75/readme.md index 78b4d089af3..3a66b428db7 100644 --- a/keyboards/ymdk/ymd75/readme.md +++ b/keyboards/ymdk/ymd75/readme.md @@ -2,23 +2,11 @@ 75% keyboard from YMDK. YMDK sell the board and name it "YMD75", however revision 1 of the PCB has "MT84" printed on both sides. -This firmware can also be flashed onto the KBDFans KBD75 Round 2 Bootmapper Client boards sold during the mid-2018 timeframe. - -* Keyboard Maintainer: [Wayne K Jones](github.com/WarmCatUK) -* Hardware Supported: - - rev1 (ATmega32a) - - rev2 (ATmega32a) - - rev3 (ATmega32u4) -* Hardware Availability: - -Make example for this keyboard (after setting up your build environment): - - make ymdk/ymd75/rev1:default - -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) - - make ymdk/ymd75/rev1:default:flash - -**Reset Key**: Hold down the key located at *Key below the top right key*, commonly programmed as *Backspace* while plugging in the keyboard. On PCB revision 2, enter the bootloader by holding `L_CTRL` while plugging in the keyboard. +* Hardware Supported: + - rev1 (ATmega32a) + - This firmware can also be flashed onto the KBDFans KBD75 Round 2 Bootmapper Client boards sold during the mid-2018 timeframe. + - rev2 (ATmega32a) + - rev3 (ATmega32u4) + - rev4 (APM32F103) 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/ymdk/ymd75/rev1/info.json b/keyboards/ymdk/ymd75/rev1/info.json index 0f280a2ecaa..5f35c77bc20 100644 --- a/keyboards/ymdk/ymd75/rev1/info.json +++ b/keyboards/ymdk/ymd75/rev1/info.json @@ -1,5 +1,11 @@ { + "keyboard_name": "YMD75 / MT84", + "manufacturer": "YMDK", + "url": "", + "maintainer": "qmk", "usb": { + "vid": "0x20A0", + "pid": "0x422D", "device_version": "1.0.0" }, "matrix_pins": { @@ -14,9 +20,27 @@ "ws2812": { "driver": "i2c" }, + "rgblight": { + "led_count": 16, + "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 + } + }, "indicators": { "caps_lock": "D1" }, + "dynamic_keymap": { + "layer_count": 3 + }, "processor": "atmega32a", "bootloader": "bootloadhid", "layouts": { diff --git a/keyboards/ymdk/ymd75/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/default/keymap.c similarity index 100% rename from keyboards/ymdk/ymd75/keymaps/default/keymap.c rename to keyboards/ymdk/ymd75/rev1/keymaps/default/keymap.c diff --git a/keyboards/ymdk/ymd75/rev1/keymaps/default_iso/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/default_iso/keymap.c new file mode 100644 index 00000000000..6e14c7ceb0f --- /dev/null +++ b/keyboards/ymdk/ymd75/rev1/keymaps/default_iso/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2017 Luiz Ribeiro +Modified 2018 Wayne K Jones + +This 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_75_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_PSCR, KC_PAUS, KC_DEL, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_NUHS, KC_ENT, KC_PGUP, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + 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_PGDN, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [1] = LAYOUT_75_iso( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + RGB_MOD, RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_VOLD, + /* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + _______, _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ) +}; diff --git a/keyboards/ymdk/ymd75/rev1/keymaps/default_iso_rwkl/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/default_iso_rwkl/keymap.c new file mode 100644 index 00000000000..ba3fde9cbe9 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev1/keymaps/default_iso_rwkl/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2017 Luiz Ribeiro +Modified 2018 Wayne K Jones + +This 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_75_iso_rwkl( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + 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_DEL, KC_HOME, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + 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_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_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, MO(1), + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┤ */ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┘ */ + ), + + [1] = LAYOUT_75_iso_rwkl( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + /* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______ + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┘ */ + ) +}; diff --git a/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c new file mode 100644 index 00000000000..0d39958db63 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 kshpits + * + * This 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: Main Layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ESC │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │PRSCR│PAUSE│ DEL │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ BACKSPACE │HOME │ + * ├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ END │ + * ├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┼─────┤ + * │ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ RETURN │PG_UP│ + * ├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────┬─────┼─────┤ + * │ LSHIFT │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ RSHIFT │ UP │PG_DN│ + * ├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴────┬┴────┬┴────┬─────┼─────┼─────┤ + * │LCTRL │L_GUI │L_ALT │ SPACE │R_ALT| FN │R_CTR│LEFT │DOWN │RIGHT│ + * └──────┴──────┴──────┴──────────────────────────────────────┴─────┴─────┴─────┴─────┴─────┘─────┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, KC_APP, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/ymdk/ymd75/keymaps/via/rules.mk b/keyboards/ymdk/ymd75/rev1/keymaps/via/rules.mk similarity index 100% rename from keyboards/ymdk/ymd75/keymaps/via/rules.mk rename to keyboards/ymdk/ymd75/rev1/keymaps/via/rules.mk diff --git a/keyboards/ymdk/ymd75/rev1/readme.md b/keyboards/ymdk/ymd75/rev1/readme.md new file mode 100644 index 00000000000..e4784d4eb98 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev1/readme.md @@ -0,0 +1,27 @@ +# YMD75 / MT84 + +75% keyboard from YMDK. YMDK sell the board and name it "YMD75", however revision 1 of the PCB has "MT84" printed on both sides. + +This firmware can also be flashed onto the KBDFans KBD75 Round 2 Bootmapper Client boards sold during the mid-2018 timeframe. + +* Keyboard Maintainer: [Wayne K Jones](github.com/WarmCatUK) +* Hardware Supported: rev1 (ATmega32a) +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make ymdk/ymd75/rev1:default + +Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) + + make ymdk/ymd75/rev1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Reset Key**: Hold down the key located at *Key below the top right key*, commonly programmed as *Backspace* while plugging in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ymdk/ymd75/rev2/info.json b/keyboards/ymdk/ymd75/rev2/info.json index f51a7ed3307..f20a19ee97e 100644 --- a/keyboards/ymdk/ymd75/rev2/info.json +++ b/keyboards/ymdk/ymd75/rev2/info.json @@ -1,5 +1,11 @@ { + "keyboard_name": "YMD75 / MT84", + "manufacturer": "YMDK", + "url": "", + "maintainer": "qmk", "usb": { + "vid": "0x20A0", + "pid": "0x422D", "device_version": "2.0.0" }, "matrix_pins": { @@ -14,9 +20,27 @@ "ws2812": { "driver": "i2c" }, + "rgblight": { + "led_count": 16, + "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 + } + }, "indicators": { "caps_lock": "D1" }, + "dynamic_keymap": { + "layer_count": 3 + }, "processor": "atmega32a", "bootloader": "bootloadhid", "layouts": { diff --git a/keyboards/ymdk/ymd75/rev2/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev2/keymaps/default/keymap.c new file mode 100644 index 00000000000..e51f88bb43b --- /dev/null +++ b/keyboards/ymdk/ymd75/rev2/keymaps/default/keymap.c @@ -0,0 +1,94 @@ +/* +Copyright 2017 Luiz Ribeiro +Modified 2018 Wayne K Jones + +This 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 _MAIN 0 +#define _FN 1 + +enum custom_keycodes { + P_MACRO = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 0: Main Layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ESC │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │PRSCR│ DEL │ FN │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ BACKSPACE │HOME │ + * ├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ END │ + * ├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┼─────┤ + * │ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ RETURN │PG_UP│ + * ├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────┬─────┼─────┤ + * │ LSHIFT │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ RSHIFT │ UP │PG_DN│ + * ├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴─────┴─┬───┴────┬─────┼─────┼─────┤ + * │LCTRL │L_GUI │L_ALT │ SPACE │ R_ALT │ R_CTRL │LEFT │DOWN │RIGHT│ + * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ + */ + [_MAIN] = 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_DEL, MO(_FN), + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* 1: Function Layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │R_TOG│R_MOD│R_HUI│R_SAI│R_VAI│R_HUD│R_SAD│R_VAD│ │ │ │VOL- │VOL+ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┤ + * │BLTOG│BLINC│BLDEC│ £ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────┬─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴─────┴─┬───┴────┬─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ + * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ + */ + [_FN] = LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, + BL_TOGG, BL_UP, BL_DOWN, P_MACRO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS ,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + + +// GBP £ Macro (sends alt 156 - windows users only) +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case P_MACRO: + register_code(KC_LALT); + tap_code(KC_KP_1); + tap_code(KC_KP_5); + tap_code(KC_KP_6); + unregister_code(KC_LALT); + return false; + } + } + return true; +}; diff --git a/keyboards/ymdk/ymd75/rev2/keymaps/default_iso/keymap.c b/keyboards/ymdk/ymd75/rev2/keymaps/default_iso/keymap.c new file mode 100644 index 00000000000..6e14c7ceb0f --- /dev/null +++ b/keyboards/ymdk/ymd75/rev2/keymaps/default_iso/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2017 Luiz Ribeiro +Modified 2018 Wayne K Jones + +This 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_75_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_PSCR, KC_PAUS, KC_DEL, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_NUHS, KC_ENT, KC_PGUP, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + 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_PGDN, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [1] = LAYOUT_75_iso( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + RGB_MOD, RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_VOLD, + /* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + _______, _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ) +}; diff --git a/keyboards/ymdk/ymd75/rev2/keymaps/default_iso_rwkl/keymap.c b/keyboards/ymdk/ymd75/rev2/keymaps/default_iso_rwkl/keymap.c new file mode 100644 index 00000000000..ba3fde9cbe9 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev2/keymaps/default_iso_rwkl/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2017 Luiz Ribeiro +Modified 2018 Wayne K Jones + +This 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_75_iso_rwkl( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + 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_DEL, KC_HOME, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + 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_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_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, MO(1), + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┤ */ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┘ */ + ), + + [1] = LAYOUT_75_iso_rwkl( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + /* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______ + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┘ */ + ) +}; diff --git a/keyboards/ymdk/ymd75/rev2/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/rev2/keymaps/via/keymap.c new file mode 100644 index 00000000000..0d39958db63 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev2/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 kshpits + * + * This 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: Main Layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ESC │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │PRSCR│PAUSE│ DEL │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ BACKSPACE │HOME │ + * ├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ END │ + * ├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┼─────┤ + * │ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ RETURN │PG_UP│ + * ├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────┬─────┼─────┤ + * │ LSHIFT │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ RSHIFT │ UP │PG_DN│ + * ├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴────┬┴────┬┴────┬─────┼─────┼─────┤ + * │LCTRL │L_GUI │L_ALT │ SPACE │R_ALT| FN │R_CTR│LEFT │DOWN │RIGHT│ + * └──────┴──────┴──────┴──────────────────────────────────────┴─────┴─────┴─────┴─────┴─────┘─────┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, KC_APP, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/ymdk/ymd75/rev2/keymaps/via/rules.mk b/keyboards/ymdk/ymd75/rev2/keymaps/via/rules.mk new file mode 100644 index 00000000000..152460f3047 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev2/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +KEY_LOCK_ENABLE = no diff --git a/keyboards/ymdk/ymd75/rev2/readme.md b/keyboards/ymdk/ymd75/rev2/readme.md new file mode 100644 index 00000000000..7d70ed3a50a --- /dev/null +++ b/keyboards/ymdk/ymd75/rev2/readme.md @@ -0,0 +1,26 @@ +# YMD75 + +75% keyboard from YMDK. YMDK sell the board and name it "YMD75". + +* Keyboard Maintainer: [Wayne K Jones](github.com/WarmCatUK) +* Hardware Supported: rev2 (ATmega32a) +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make ymdk/ymd75/rev2:default + +Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) + + make ymdk/ymd75/rev2: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 +* **Reset Key**: Enter the bootloader by holding `L_CTRL` while plugging in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ymdk/ymd75/rev3/config.h b/keyboards/ymdk/ymd75/rev3/config.h index 968045a7c9b..1b2bbb1da0a 100644 --- a/keyboards/ymdk/ymd75/rev3/config.h +++ b/keyboards/ymdk/ymd75/rev3/config.h @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #pragma once #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 4 diff --git a/keyboards/ymdk/ymd75/rev3/info.json b/keyboards/ymdk/ymd75/rev3/info.json index 23922b1f688..45968ab5fb8 100644 --- a/keyboards/ymdk/ymd75/rev3/info.json +++ b/keyboards/ymdk/ymd75/rev3/info.json @@ -1,5 +1,11 @@ { + "keyboard_name": "YMD75 / MT84", + "manufacturer": "YMDK", + "url": "", + "maintainer": "qmk", "usb": { + "vid": "0x20A0", + "pid": "0x422D", "device_version": "3.0.0" }, "matrix_pins": { @@ -11,6 +17,24 @@ "pin": "B6", "levels": 12 }, + "ws2812": { + "pin": "E2" + }, + "rgblight": { + "led_count": 16, + "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 + } + }, "indicators": { "caps_lock": "C7" }, diff --git a/keyboards/ymdk/ymd75/rev3/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev3/keymaps/default/keymap.c new file mode 100644 index 00000000000..e51f88bb43b --- /dev/null +++ b/keyboards/ymdk/ymd75/rev3/keymaps/default/keymap.c @@ -0,0 +1,94 @@ +/* +Copyright 2017 Luiz Ribeiro +Modified 2018 Wayne K Jones + +This 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 _MAIN 0 +#define _FN 1 + +enum custom_keycodes { + P_MACRO = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 0: Main Layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ESC │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │PRSCR│ DEL │ FN │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ BACKSPACE │HOME │ + * ├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ END │ + * ├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┼─────┤ + * │ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ RETURN │PG_UP│ + * ├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────┬─────┼─────┤ + * │ LSHIFT │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ RSHIFT │ UP │PG_DN│ + * ├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴─────┴─┬───┴────┬─────┼─────┼─────┤ + * │LCTRL │L_GUI │L_ALT │ SPACE │ R_ALT │ R_CTRL │LEFT │DOWN │RIGHT│ + * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ + */ + [_MAIN] = 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_DEL, MO(_FN), + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* 1: Function Layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │R_TOG│R_MOD│R_HUI│R_SAI│R_VAI│R_HUD│R_SAD│R_VAD│ │ │ │VOL- │VOL+ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┤ + * │BLTOG│BLINC│BLDEC│ £ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────┬─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴─────┴─┬───┴────┬─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ + * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ + */ + [_FN] = LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, + BL_TOGG, BL_UP, BL_DOWN, P_MACRO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS ,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + + +// GBP £ Macro (sends alt 156 - windows users only) +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case P_MACRO: + register_code(KC_LALT); + tap_code(KC_KP_1); + tap_code(KC_KP_5); + tap_code(KC_KP_6); + unregister_code(KC_LALT); + return false; + } + } + return true; +}; diff --git a/keyboards/ymdk/ymd75/rev3/keymaps/default_iso/keymap.c b/keyboards/ymdk/ymd75/rev3/keymaps/default_iso/keymap.c new file mode 100644 index 00000000000..6e14c7ceb0f --- /dev/null +++ b/keyboards/ymdk/ymd75/rev3/keymaps/default_iso/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2017 Luiz Ribeiro +Modified 2018 Wayne K Jones + +This 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_75_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_PSCR, KC_PAUS, KC_DEL, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_NUHS, KC_ENT, KC_PGUP, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + 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_PGDN, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [1] = LAYOUT_75_iso( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + RGB_MOD, RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_VOLD, + /* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + _______, _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ) +}; diff --git a/keyboards/ymdk/ymd75/rev3/keymaps/default_iso_rwkl/keymap.c b/keyboards/ymdk/ymd75/rev3/keymaps/default_iso_rwkl/keymap.c new file mode 100644 index 00000000000..ba3fde9cbe9 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev3/keymaps/default_iso_rwkl/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2017 Luiz Ribeiro +Modified 2018 Wayne K Jones + +This 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_75_iso_rwkl( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + 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_DEL, KC_HOME, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + 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_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_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, MO(1), + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┤ */ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┘ */ + ), + + [1] = LAYOUT_75_iso_rwkl( + /* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, + /* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + /* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + /* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + /* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______ + /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┘ */ + ) +}; diff --git a/keyboards/ymdk/ymd75/rev3/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/rev3/keymaps/via/keymap.c new file mode 100644 index 00000000000..0d39958db63 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev3/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2021 kshpits + * + * This 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: Main Layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ESC │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │PRSCR│PAUSE│ DEL │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ BACKSPACE │HOME │ + * ├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬────────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ END │ + * ├────────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴────────┼─────┤ + * │ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ RETURN │PG_UP│ + * ├─────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────┬─────┼─────┤ + * │ LSHIFT │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ RSHIFT │ UP │PG_DN│ + * ├──────┬─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴────┬┴────┬┴────┬─────┼─────┼─────┤ + * │LCTRL │L_GUI │L_ALT │ SPACE │R_ALT| FN │R_CTR│LEFT │DOWN │RIGHT│ + * └──────┴──────┴──────┴──────────────────────────────────────┴─────┴─────┴─────┴─────┴─────┘─────┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, KC_APP, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/ymdk/ymd75/rev3/keymaps/via/rules.mk b/keyboards/ymdk/ymd75/rev3/keymaps/via/rules.mk new file mode 100644 index 00000000000..152460f3047 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev3/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +KEY_LOCK_ENABLE = no diff --git a/keyboards/ymdk/ymd75/rev3/readme.md b/keyboards/ymdk/ymd75/rev3/readme.md new file mode 100644 index 00000000000..0e705d40ffa --- /dev/null +++ b/keyboards/ymdk/ymd75/rev3/readme.md @@ -0,0 +1,24 @@ +# YMD75 + +75% keyboard from YMDK. YMDK sell the board and name it "YMD75". + +* Keyboard Maintainer: [Wayne K Jones](github.com/WarmCatUK) +* Hardware Supported: rev3 (ATmega32u4) +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make ymdk/ymd75/rev3:default + +Flashing example for this keyboard: + + make ymdk/ymd75/rev3: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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ymdk/ymd75/rev3/rules.mk b/keyboards/ymdk/ymd75/rev3/rules.mk index e3b96df9c27..58ad1837e0a 100644 --- a/keyboards/ymdk/ymd75/rev3/rules.mk +++ b/keyboards/ymdk/ymd75/rev3/rules.mk @@ -9,5 +9,5 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output + KEY_LOCK_ENABLE = yes diff --git a/keyboards/ymdk/ymd75/rules.mk b/keyboards/ymdk/ymd75/rules.mk deleted file mode 100644 index ec66e0734a6..00000000000 --- a/keyboards/ymdk/ymd75/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ymdk/ymd75/rev1 diff --git a/keyboards/ymdk/ymd96/config.h b/keyboards/ymdk/ymd96/config.h deleted file mode 100644 index ecb03b59175..00000000000 --- a/keyboards/ymdk/ymd96/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Base Copyright 2017 Luiz Ribeiro -Modified 2017 Andrew Novak -Modified 2018 Harshit Goel -This 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 TAPPING_TOGGLE 3 - -/* RGB underglow */ -#define RGBLED_NUM 18 -#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_VAL_STEP 20*/ diff --git a/keyboards/ymdk/ymd96/info.json b/keyboards/ymdk/ymd96/info.json index f603439d398..d947050f3da 100644 --- a/keyboards/ymdk/ymd96/info.json +++ b/keyboards/ymdk/ymd96/info.json @@ -19,6 +19,21 @@ "levels": 12, "breathing": true }, + "rgblight": { + "led_count": 18, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "driver": "i2c" }, @@ -29,6 +44,9 @@ }, "processor": "atmega32a", "bootloader": "bootloadhid", + "tapping": { + "toggle": 3 + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/yncognito/batpad/info.json b/keyboards/yncognito/batpad/info.json index ec57403a66d..4ec1dc045ff 100644 --- a/keyboards/yncognito/batpad/info.json +++ b/keyboards/yncognito/batpad/info.json @@ -12,7 +12,7 @@ "pin": "B5" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["F1", "F0", "D5", "D3"], diff --git a/keyboards/yoichiro/lunakey_macro/config.h b/keyboards/yoichiro/lunakey_macro/config.h index ec059fd01ef..4c3ced2c426 100644 --- a/keyboards/yoichiro/lunakey_macro/config.h +++ b/keyboards/yoichiro/lunakey_macro/config.h @@ -30,23 +30,6 @@ along with this program. If not, see . /* Layer Count */ #define DYNAMIC_KEYMAP_LAYER_COUNT 3 - #define RGBLED_NUM 5 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// #define RGBLIGHT_LAYERS -#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 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/yoichiro/lunakey_macro/info.json b/keyboards/yoichiro/lunakey_macro/info.json index f892a9db7fe..46b7ca26f45 100644 --- a/keyboards/yoichiro/lunakey_macro/info.json +++ b/keyboards/yoichiro/lunakey_macro/info.json @@ -13,6 +13,24 @@ "rows": ["E6", "B4", "B5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 5, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/yoichiro/lunakey_mini/config.h b/keyboards/yoichiro/lunakey_mini/config.h index 8040e082a37..079dd3e3d73 100644 --- a/keyboards/yoichiro/lunakey_mini/config.h +++ b/keyboards/yoichiro/lunakey_mini/config.h @@ -17,26 +17,6 @@ along with this program. If not, see . #pragma once - #define RGBLED_NUM 12 - #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 6, 6 } - #define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #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 -#define RGBLIGHT_EFFECT_TWINKLE - /* Audio Support */ #define AUDIO_PIN C6 diff --git a/keyboards/yoichiro/lunakey_mini/info.json b/keyboards/yoichiro/lunakey_mini/info.json index 1347f73cb08..aa00e7e69e3 100644 --- a/keyboards/yoichiro/lunakey_mini/info.json +++ b/keyboards/yoichiro/lunakey_mini/info.json @@ -16,6 +16,26 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "sleep": true, + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/yoichiro/lunakey_pico/config.h b/keyboards/yoichiro/lunakey_pico/config.h index cf819293be9..a95edc0358b 100644 --- a/keyboards/yoichiro/lunakey_pico/config.h +++ b/keyboards/yoichiro/lunakey_pico/config.h @@ -15,9 +15,6 @@ #define WS2812_PIO_USE_PIO1 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/yoichiro/lunakey_pico/info.json b/keyboards/yoichiro/lunakey_pico/info.json index 2b477e726c2..bf4b2a25109 100644 --- a/keyboards/yoichiro/lunakey_pico/info.json +++ b/keyboards/yoichiro/lunakey_pico/info.json @@ -26,6 +26,7 @@ }, "rgblight": { "led_count": 12, + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], "sleep": true, "split": true, "split_count": [6, 6], diff --git a/keyboards/yosino58/keymaps/default/keymap.c b/keyboards/yosino58/keymaps/default/keymap.c index 45ee46f7ceb..512c0ec4b19 100644 --- a/keyboards/yosino58/keymaps/default/keymap.c +++ b/keyboards/yosino58/keymaps/default/keymap.c @@ -200,8 +200,9 @@ bool oled_task_user(void) { int rowa = 0; //Set Indicator icon - if (host_keyboard_leds() & (1< -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 - -/* ws2812 RGB LED */ -#define RGBLED_NUM 12 // Number of LEDs - -/* - * 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/yosino58/rev1/info.json b/keyboards/yosino58/rev1/info.json index 730c82faa48..c0dc03831fa 100644 --- a/keyboards/yosino58/rev1/info.json +++ b/keyboards/yosino58/rev1/info.json @@ -16,6 +16,9 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "led_count": 12 + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/yosino58/rev1/rules.mk b/keyboards/yosino58/rev1/rules.mk index a51a58c5ead..2fcc81da0f6 100644 --- a/keyboards/yosino58/rev1/rules.mk +++ b/keyboards/yosino58/rev1/rules.mk @@ -11,4 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SPLIT_KEYBOARD = yes -OLED_DRIVER = SSD1306 diff --git a/keyboards/yushakobo/navpad/10/config.h b/keyboards/yushakobo/navpad/10/config.h index bb842334bef..23285a342dd 100644 --- a/keyboards/yushakobo/navpad/10/config.h +++ b/keyboards/yushakobo/navpad/10/config.h @@ -17,26 +17,10 @@ along with this program. If not, see . #pragma once -# define RGBLED_NUM 9 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* disable action features */ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT #define QUICK_TAP_TERM 0 -#define TAPPING_TERM 132 #define TAPPING_LAYER_TERM 90 diff --git a/keyboards/yushakobo/navpad/10/info.json b/keyboards/yushakobo/navpad/10/info.json index 81b2740f324..ef0cdf5cbed 100644 --- a/keyboards/yushakobo/navpad/10/info.json +++ b/keyboards/yushakobo/navpad/10/info.json @@ -12,11 +12,22 @@ {"pin_a": "B5", "pin_b": "B6"} ] }, + "tapping": { + "term": 132 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 120 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 9, + "max_brightness": 120, + "sleep": true, + "animations": { + "rainbow_swirl": true, + "rgb_test": true + } }, "processor": "atmega32u4", "bootloader": "caterina" diff --git a/keyboards/yushakobo/navpad/10/rev1/config.h b/keyboards/yushakobo/navpad/10/rev1/config.h deleted file mode 100644 index d4a4e48d776..00000000000 --- a/keyboards/yushakobo/navpad/10/rev1/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 yushakobo - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 8, 7 } diff --git a/keyboards/yushakobo/navpad/10/rev1/info.json b/keyboards/yushakobo/navpad/10/rev1/info.json index bd20c0d0b47..a35dc4d5e97 100644 --- a/keyboards/yushakobo/navpad/10/rev1/info.json +++ b/keyboards/yushakobo/navpad/10/rev1/info.json @@ -2,6 +2,9 @@ "usb": { "device_version": "0.0.1" }, + "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 8, 7] + }, "matrix_pins": { "cols": ["F5", "F6", "B2", "B3", "B1", "F7"], "rows": ["D4", "C6", "D7", "E6", "B4", "F4"] diff --git a/keyboards/yushakobo/navpad/10_helix_r/config.h b/keyboards/yushakobo/navpad/10_helix_r/config.h index 95c70244a41..028791d717c 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/config.h +++ b/keyboards/yushakobo/navpad/10_helix_r/config.h @@ -19,34 +19,10 @@ along with this program. If not, see . #define EE_HANDS -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 8, 7, \ - 9, 10, 11, 12, 13, 14, \ - 20, 19, 18, 17, 16, 15, \ - 21, 22, 23, 24, 25, 26, \ - 33, 32, 31, 30, 29, 28, 27, \ - 34, 35, 36, 37, 38, 39, 40 } - -# define RGBLED_NUM 9+32 -# define RGBLED_SPLIT { 9, 32 } -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 - /* disable action features */ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT #define QUICK_TAP_TERM 0 -#define TAPPING_TERM 132 #define TAPPING_LAYER_TERM 90 diff --git a/keyboards/yushakobo/navpad/10_helix_r/info.json b/keyboards/yushakobo/navpad/10_helix_r/info.json index f086173867c..1f01ffde5f9 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/info.json +++ b/keyboards/yushakobo/navpad/10_helix_r/info.json @@ -34,11 +34,24 @@ } } }, + "tapping": { + "term": 132 + }, "ws2812": { "pin": "D3" }, "rgblight": { - "max_brightness": 120 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 41, + "max_brightness": 120, + "led_map": [0, 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11, 12, 13, 14, 20, 19, 18, 17, 16, 15, 21, 22, 23, 24, 25, 26, 33, 32, 31, 30, 29, 28, 27, 34, 35, 36, 37, 38, 39, 40], + "sleep": true, + "split_count": [9, 32], + "animations": { + "rainbow_swirl": true, + "rgb_test": true + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/yushakobo/quick17/config.h b/keyboards/yushakobo/quick17/config.h index 00018d319c4..8fb9e393ee3 100644 --- a/keyboards/yushakobo/quick17/config.h +++ b/keyboards/yushakobo/quick17/config.h @@ -17,10 +17,8 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 18 - #ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_LED_COUNT 18 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended @@ -32,40 +30,11 @@ along with this program. If not, see . // #define RGB_MATRIX_DEFAULT_HUE 128 // #define RGB_MATRIX_DEFAULT_SAT 255 #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 #endif - - - -#ifdef RGBLIGHT_ENABLE -# define RGBLIGHT_LED_MAP {\ - 6, 7, 12, 13, 14, 15,\ - 16, 17, 11, 10, 9, 8,\ - 0, 1, 2, 3, 4, 5\ - } -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -//# 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 - #define RGBLIGHT_LAYERS #define RGBLIGHT_MAX_LAYERS 8 -#endif - /* disable action features */ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING diff --git a/keyboards/yushakobo/quick17/info.json b/keyboards/yushakobo/quick17/info.json index 1889a006438..58374a7de78 100644 --- a/keyboards/yushakobo/quick17/info.json +++ b/keyboards/yushakobo/quick17/info.json @@ -9,10 +9,24 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812", + "sat_steps": 8, + "val_steps": 8, + "speed_steps": 10 }, "rgblight": { - "max_brightness": 150 + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 18, + "max_brightness": 150, + "led_map": [6, 7, 12, 13, 14, 15, 16, 17, 11, 10, 9, 8, 0, 1, 2, 3, 4, 5], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true + } }, "matrix_pins": { "cols": ["F5", "D4", "E6", "F7", "C6", "D7"], diff --git a/keyboards/yushakobo/quick7/config.h b/keyboards/yushakobo/quick7/config.h index 0a35045845e..1c876487949 100644 --- a/keyboards/yushakobo/quick7/config.h +++ b/keyboards/yushakobo/quick7/config.h @@ -17,23 +17,6 @@ along with this program. If not, see . #pragma once -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 13 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# 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 -#endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/yushakobo/quick7/info.json b/keyboards/yushakobo/quick7/info.json index 79458d1564f..54d365d0775 100644 --- a/keyboards/yushakobo/quick7/info.json +++ b/keyboards/yushakobo/quick7/info.json @@ -14,6 +14,18 @@ {"pin_a": "F5", "pin_b": "F6"} ] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 13, + "sleep": true, + "animations": { + "rainbow_mood": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/yynmt/dozen0/config.h b/keyboards/yynmt/dozen0/config.h index e94b19675f3..eb679ebba0a 100644 --- a/keyboards/yynmt/dozen0/config.h +++ b/keyboards/yynmt/dozen0/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 2 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/yynmt/dozen0/info.json b/keyboards/yynmt/dozen0/info.json index 9a2417f0393..a4f3800f889 100644 --- a/keyboards/yynmt/dozen0/info.json +++ b/keyboards/yynmt/dozen0/info.json @@ -8,6 +8,23 @@ "pid": "0xEA4F", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 2, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/yynmt/dozen0/keymaps/f12/keymap.c b/keyboards/yynmt/dozen0/keymaps/f12/keymap.c index 167e29e1062..33512faa678 100644 --- a/keyboards/yynmt/dozen0/keymaps/f12/keymap.c +++ b/keyboards/yynmt/dozen0/keymaps/f12/keymap.c @@ -22,19 +22,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 ), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/yynmt/kagamidget/config.h b/keyboards/yynmt/kagamidget/config.h index f50a2c72c3a..eb679ebba0a 100644 --- a/keyboards/yynmt/kagamidget/config.h +++ b/keyboards/yynmt/kagamidget/config.h @@ -17,21 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/yynmt/kagamidget/info.json b/keyboards/yynmt/kagamidget/info.json index 4165c966bf4..e9bc92dea33 100644 --- a/keyboards/yynmt/kagamidget/info.json +++ b/keyboards/yynmt/kagamidget/info.json @@ -8,6 +8,23 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/z12/rules.mk b/keyboards/z12/rules.mk index 65ce7f2dea5..102b2e62a3c 100644 --- a/keyboards/z12/rules.mk +++ b/keyboards/z12/rules.mk @@ -13,5 +13,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes # Enables Link Time Optimization (LTO) which reduces the compiled size OLED_ENABLE = yes # Enables the use of OLED displays -OLED_DRIVER = SSD1306 # Enables the use of OLED displays - diff --git a/keyboards/zfrontier/big_switch/config.h b/keyboards/zfrontier/big_switch/config.h index eecce57fe6a..e4aebce30c5 100644 --- a/keyboards/zfrontier/big_switch/config.h +++ b/keyboards/zfrontier/big_switch/config.h @@ -17,22 +17,7 @@ along with this program. If not, see . #pragma once -/* RGB light config */ -#define RGBLED_NUM 4 -#define RGBLIGHT_VAL_STEP 17 -#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_EFFECT_BREATHE_CENTER 2.0 #define RGBLIGHT_EFFECT_BREATHE_MAX 255 -/* long tapping config */ -#define TAPPING_TERM 500 #define PERMISSIVE_HOLD diff --git a/keyboards/zfrontier/big_switch/info.json b/keyboards/zfrontier/big_switch/info.json index 02c40f61257..9f19a030d16 100644 --- a/keyboards/zfrontier/big_switch/info.json +++ b/keyboards/zfrontier/big_switch/info.json @@ -12,6 +12,24 @@ "cols": ["F1"], "rows": ["F0"] }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "tapping": { + "term": 500 + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/zj68/config.h b/keyboards/zj68/config.h index eff7fc2d491..f97ce7b0f84 100644 --- a/keyboards/zj68/config.h +++ b/keyboards/zj68/config.h @@ -22,18 +22,3 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 14 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/zj68/info.json b/keyboards/zj68/info.json index 6d0df4a0c5f..e2916ce4e22 100644 --- a/keyboards/zj68/info.json +++ b/keyboards/zj68/info.json @@ -16,6 +16,23 @@ "pin": "B6", "levels": 5 }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 14, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "E2" }, diff --git a/keyboards/zlant/config.h b/keyboards/zlant/config.h index 8471167fcd9..5f360813239 100755 --- a/keyboards/zlant/config.h +++ b/keyboards/zlant/config.h @@ -5,18 +5,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_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 RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/zlant/info.json b/keyboards/zlant/info.json index 9f01b095185..7fba339db1c 100644 --- a/keyboards/zlant/info.json +++ b/keyboards/zlant/info.json @@ -12,6 +12,23 @@ "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B7", "D1", "D2", "D3", "B3", "B2"], "rows": ["B0", "B1", "D4", "D5"] }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 12, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "D6" }, diff --git a/keyboards/zoo/wampus/config.h b/keyboards/zoo/wampus/config.h index 310b4f57568..eafc776bef9 100644 --- a/keyboards/zoo/wampus/config.h +++ b/keyboards/zoo/wampus/config.h @@ -21,18 +21,6 @@ along with this program. If not, see . #define BACKLIGHT_PWM_CHANNEL 1 #define BACKLIGHT_PAL_MODE 1 -// RGB Underglow WS2812 Matrix defines -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 20 // SPI RGB Driver #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 diff --git a/keyboards/zoo/wampus/info.json b/keyboards/zoo/wampus/info.json index ee3c3dfe478..6478e67a80c 100644 --- a/keyboards/zoo/wampus/info.json +++ b/keyboards/zoo/wampus/info.json @@ -17,6 +17,21 @@ "pin": "A6", "breathing": true }, + "rgblight": { + "led_count": 20, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B15", "driver": "spi" diff --git a/keyboards/zoo/wampus/rules.mk b/keyboards/zoo/wampus/rules.mk index 34d5f258fc7..fe3c88063d2 100644 --- a/keyboards/zoo/wampus/rules.mk +++ b/keyboards/zoo/wampus/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output OLED_ENABLE = no # Enables the use of OLED displays -# Enter lower-power sleep mode when on the ChibiOS idle thread -OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/zvecr/split_blackpill/config.h b/keyboards/zvecr/split_blackpill/config.h index 3cb23cdcc58..41739356422 100644 --- a/keyboards/zvecr/split_blackpill/config.h +++ b/keyboards/zvecr/split_blackpill/config.h @@ -15,24 +15,9 @@ */ #pragma once -#define MATRIX_IO_DELAY 5 - #define SPLIT_HAND_PIN B3 #define SELECT_SOFT_SERIAL_SPEED 0 -#define RGBLED_NUM 24 -#define RGBLED_SPLIT { 12, 12 } -#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 WS2812_PWM_DRIVER PWMD3 #define WS2812_PWM_CHANNEL 1 #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 diff --git a/keyboards/zvecr/split_blackpill/info.json b/keyboards/zvecr/split_blackpill/info.json index f657556db9a..377ec44f97e 100644 --- a/keyboards/zvecr/split_blackpill/info.json +++ b/keyboards/zvecr/split_blackpill/info.json @@ -10,7 +10,8 @@ }, "matrix_pins": { "cols": ["B11", "B10", "B1", "B0", "A7", "A6"], - "rows": ["B15", "B14", "B13", "B12"] + "rows": ["B15", "B14", "B13", "B12"], + "io_delay": 5 }, "diode_direction": "COL2ROW", "split": { @@ -25,6 +26,22 @@ } } }, + "rgblight": { + "led_count": 24, + "split_count": [12, 12], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, "ws2812": { "pin": "B4", "driver": "pwm" diff --git a/keyboards/zvecr/zv48/config.h b/keyboards/zvecr/zv48/config.h index 25caa13057d..e503f07b801 100644 --- a/keyboards/zvecr/zv48/config.h +++ b/keyboards/zvecr/zv48/config.h @@ -15,25 +15,10 @@ */ #pragma once -#define MATRIX_IO_DELAY 5 - #define SPLIT_HAND_PIN B9 //#define SELECT_SOFT_SERIAL_SPEED 0 #define SERIAL_USART_SPEED 921600 -#define RGBLED_NUM 48 -#define RGBLED_SPLIT {24, 24} -#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 WS2812_PWM_DRIVER PWMD3 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_PAL_MODE 2 diff --git a/keyboards/zvecr/zv48/info.json b/keyboards/zvecr/zv48/info.json index 942a089b649..e58651499a9 100644 --- a/keyboards/zvecr/zv48/info.json +++ b/keyboards/zvecr/zv48/info.json @@ -10,7 +10,8 @@ }, "matrix_pins": { "cols": ["B15", "B10", "B0", "A5", "A4", "A3"], - "rows": ["A10", "A15", "B3", "B4"] + "rows": ["A10", "A15", "B3", "B4"], + "io_delay": 5 }, "diode_direction": "COL2ROW", "encoder": { @@ -23,7 +24,21 @@ "driver": "pwm" }, "rgblight": { - "max_brightness": 120 + "led_count": 48, + "max_brightness": 120, + "split_count": [24, 24], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "split": { "soft_serial_pin": "B6", diff --git a/keyboards/zykrah/fuyu/config.h b/keyboards/zykrah/fuyu/config.h index 92fdcaa5869..0f24dfe7e35 100644 --- a/keyboards/zykrah/fuyu/config.h +++ b/keyboards/zykrah/fuyu/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . /* The number of LEDs connected (7 Snowflake, 34 Underglow) */ #define DRIVER_LED_TOTAL 41 -#define RGBLED_NUM 41 #define RGB_MATRIX_LED_COUNT 41 /* Caps locks LED index default is 0 (LED1 on PCB) */ diff --git a/keyboards/zykrah/fuyu/info.json b/keyboards/zykrah/fuyu/info.json index 5ac93424dbe..874114bfcae 100644 --- a/keyboards/zykrah/fuyu/info.json +++ b/keyboards/zykrah/fuyu/info.json @@ -24,7 +24,7 @@ "cols": ["GP29", "GP28", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP27", "GP9", "GP1", "GP0"] }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "ws2812": { "pin": "GP2", diff --git a/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c b/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c index 3af6af50913..37e459893ca 100644 --- a/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c +++ b/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c @@ -109,9 +109,9 @@ void update_led(void) { } } -void led_set_user(uint8_t usb_led) { +bool led_update_user(led_t led_state) { // Caps Lock Indicator - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + if (led_state.caps_lock) { writePinLow(B2); rgblight_setrgb(255, 110, 0); } @@ -133,6 +133,7 @@ void led_set_user(uint8_t usb_led) { } update_led(); } + return false; } layer_state_t layer_state_set_user(layer_state_t state) { diff --git a/layouts/community/60_iso/bifbofii/keymap.c b/layouts/community/60_iso/bifbofii/keymap.c index d9d7383c3d5..890bdb4c569 100755 --- a/layouts/community/60_iso/bifbofii/keymap.c +++ b/layouts/community/60_iso/bifbofii/keymap.c @@ -123,9 +123,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [UNICODE] = LAYOUT_60_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, - _______, _______, _______, X(EUR), _______, _______, _______, XP(SUE, BUE), _______, XP(SOE, BOE), _______, _______, _______, - KC_TRNS, XP(SAE, BAE), X(SS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, - KC_LSFT, _______, _______, _______, X(CPR), _______, _______, _______, _______, _______, _______, _______, KC_RSFT, + _______, _______, _______, UM(EUR), _______, _______, _______, UP(SUE, BUE), _______, UP(SOE, BOE), _______, _______, _______, + KC_TRNS, UP(SAE, BAE), UM(SS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, + KC_LSFT, _______, _______, _______, UM(CPR), _______, _______, _______, _______, _______, _______, _______, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, _______ ), diff --git a/layouts/community/60_iso/unxmaal/rules.mk b/layouts/community/60_iso/unxmaal/rules.mk index c2d3c6b0758..5c9eb2a26d9 100644 --- a/layouts/community/60_iso/unxmaal/rules.mk +++ b/layouts/community/60_iso/unxmaal/rules.mk @@ -1,7 +1,7 @@ # Only enable RGBLIGHT on avr boards ifeq ($(strip $(PLATFORM_KEY)),avr) # ...that are at least prepared for it - ifdef RGBLIGHT_DRIVER + ifeq ($(strip $(RGBLIGHT_SUPPORTED)),yes) RGBLIGHT_ENABLE = yes # Enable RGB Underglow endif endif diff --git a/layouts/community/65_ansi_blocker/spidey3/keymap.c b/layouts/community/65_ansi_blocker/spidey3/keymap.c index 5f8080d4711..81ee2bf3a7d 100644 --- a/layouts/community/65_ansi_blocker/spidey3/keymap.c +++ b/layouts/community/65_ansi_blocker/spidey3/keymap.c @@ -32,10 +32,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // Glyph Transformation [_GLYPH] = LAYOUT_65_ansi_blocker( - QK_BOOT, X(SAD), X(MEH), X(HAPPY), X(ANGRY), X(THUMBDN), X(THUMBUP), X(SPIDER), X_BUL, X(LOL), X(SURPRISE),X_DASH, SPI_GFLOCK, XXXXXXX, XXXXXXX, + QK_BOOT, UM(SAD), UM(MEH), UM(HAPPY), UM(ANGRY), UM(THUMBDN),UM(THUMBUP),UM(SPIDER), X_BUL, UM(LOL), UM(SURPRISE),X_DASH, SPI_GFLOCK, XXXXXXX, XXXXXXX, EE_CLR, SPI_NORMAL, SPI_WIDE, SPI_SCRIPT, SPI_BLOCKS, SPI_CIRCLE, SPI_SQUARE, SPI_PARENS, SPI_FRAKTR, SPI_BOLD, SPI_MATH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, X(LARR), X(RARR), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UM(LARR), UM(RARR), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX ) }; diff --git a/layouts/community/75_ansi/spidey3/keymap.c b/layouts/community/75_ansi/spidey3/keymap.c index 5c2f6a150b8..4e251b41dbe 100644 --- a/layouts/community/75_ansi/spidey3/keymap.c +++ b/layouts/community/75_ansi/spidey3/keymap.c @@ -24,10 +24,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // FN [_FN] = LAYOUT_75_ansi( QK_BOOT, SPI_NORMAL, SPI_WIDE, SPI_SCRIPT, SPI_BLOCKS, SPI_CIRCLE, SPI_SQUARE, SPI_PARENS, SPI_FRAKTR, SPI_BOLD, SPI_MATH, XXXXXXX, SPI_GFLOCK, KC_SLEP, CH_SUSP, KC_PWR, - EE_CLR, X(SAD), X(MEH), X(HAPPY), X(ANGRY), X(THUMBDN), X(THUMBUP), X(SPIDER), X_BUL, X(LOL), X(SURPRISE),X_DASH, XXXXXXX, KC_PAUS, KC_SCRL, + EE_CLR, UM(SAD), UM(MEH), UM(HAPPY), UM(ANGRY), UM(THUMBDN),UM(THUMBUP),UM(SPIDER), X_BUL, UM(LOL), UM(SURPRISE),X_DASH, XXXXXXX, KC_PAUS, KC_SCRL, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, SPI_GLO, VK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, KC_BRIU, XXXXXXX, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_G, RGB_M_TW, UC_LINX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BRID, - _______, XXXXXXX, UC_EMAC, UC_WINC, UC_NEXT, NK_TOGG, TG(_NUMPAD),UC_MAC, X(LARR), X(RARR), DB_TOGG, _______, KC_VOLU, KC_MUTE, + _______, XXXXXXX, UC_EMAC, UC_WINC, UC_NEXT, NK_TOGG, TG(_NUMPAD),UC_MAC, UM(LARR), UM(RARR), DB_TOGG, _______, KC_VOLU, KC_MUTE, _______, _______, _______, KC_MPLY, KC_ASST, _______, KC_CPNL, KC_MPRV, KC_VOLD, KC_MNXT ) }; diff --git a/layouts/community/ergodox/colemak_code_friendly/keymap.c b/layouts/community/ergodox/colemak_code_friendly/keymap.c index ae5bdcc5b8c..d9e3c9fa610 100644 --- a/layouts/community/ergodox/colemak_code_friendly/keymap.c +++ b/layouts/community/ergodox/colemak_code_friendly/keymap.c @@ -310,9 +310,6 @@ void matrix_init_user(void) { void matrix_scan_user(void) { uint8_t layer = get_highest_layer(layer_state); - //led 1, RED, Caps-Lock ON - //if (host_keyboard_leds() & (1<mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || host_keyboard_led_state().caps_lock) { ergodox_right_led_1_on(); } else { ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/ordinary_osx/keymap.c b/layouts/community/ergodox/ordinary_osx/keymap.c index f67a6d6da03..3de64f4994a 100644 --- a/layouts/community/ergodox/ordinary_osx/keymap.c +++ b/layouts/community/ergodox/ordinary_osx/keymap.c @@ -238,7 +238,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { // shift or caps lock turns on red light - if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || host_keyboard_led_state().caps_lock) { ergodox_right_led_1_on(); } else { ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/osx_neo2/keymap.c b/layouts/community/ergodox/osx_neo2/keymap.c index 5b279073cc8..079a92a97e7 100644 --- a/layouts/community/ergodox/osx_neo2/keymap.c +++ b/layouts/community/ergodox/osx_neo2/keymap.c @@ -686,7 +686,7 @@ 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)) { + if (host_keyboard_led_state().caps_lock) { unregister_code(KC_LOCKING_CAPS_LOCK); } else { register_code(KC_LOCKING_CAPS_LOCK); @@ -697,11 +697,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return process_record_user_shifted(keycode, record); }; -// Runs just one time when the keyboard initializes. -void matrix_init_user(void){ - -}; - // Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = get_highest_layer(layer_state); diff --git a/layouts/community/ergodox/software_neo2/keymap.c b/layouts/community/ergodox/software_neo2/keymap.c index c191a034f20..1c68a68b0fb 100644 --- a/layouts/community/ergodox/software_neo2/keymap.c +++ b/layouts/community/ergodox/software_neo2/keymap.c @@ -106,7 +106,7 @@ void matrix_scan_user(void) { ergodox_right_led_3_off(); ergodox_board_led_off(); - if (host_keyboard_leds() & (1<. +*/ + +#include "scotto.h" + +#define LAYOUT_ortho_4x10_wrapper(...) LAYOUT_ortho_4x10(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4x10_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3a_________________, + KC_NO, KC_NO, _______THUMB6_1_______, KC_NO, KC_NO + ), + [1] = LAYOUT_ortho_4x10_wrapper( + ______________SYM_MEDIA_NAV1______________, + ______________SYM_MEDIA_NAV2______________, + ______________SYM_MEDIA_NAV3______________, + KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO + ), + [2] = LAYOUT_ortho_4x10_wrapper( + _________________NUM_SYM1_________________, + _________________NUM_SYM2_________________, + _________________NUM_SYM3a________________, + KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO + ), + [3] = LAYOUT_ortho_4x10_wrapper( + ________________FUNC_SYS1a________________, + ________________FUNC_SYS2_________________, + ________________FUNC_SYS3_________________, + KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO + ), + [4] = LAYOUT_ortho_4x10_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3a_________________, + KC_NO, KC_NO, _______THUMB6_4_______, KC_NO, KC_NO + ), + [5] = LAYOUT_ortho_4x10_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3b_________________, + KC_NO, KC_NO, _______THUMB6_5_______, KC_NO, KC_NO + ), + [6] = LAYOUT_ortho_4x10_wrapper( + ______________SYM_MEDIA_NAV1______________, + ______________SYM_MEDIA_NAV2______________, + ______________SYM_MEDIA_NAV3______________, + KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO + ), + [7] = LAYOUT_ortho_4x10_wrapper( + _________________NUM_SYM1_________________, + _________________NUM_SYM2_________________, + _________________NUM_SYM3b________________, + KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO + ), + [8] = LAYOUT_ortho_4x10_wrapper( + ________________FUNC_SYS1b________________, + ________________FUNC_SYS2_________________, + ________________FUNC_SYS3_________________, + KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO + ) +}; diff --git a/layouts/community/ortho_4x12/bifbofii/keymap.c b/layouts/community/ortho_4x12/bifbofii/keymap.c index 7c25fed016f..e7f427127ee 100644 --- a/layouts/community/ortho_4x12/bifbofii/keymap.c +++ b/layouts/community/ortho_4x12/bifbofii/keymap.c @@ -146,9 +146,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ */ [UNICODE] = LAYOUT_ortho_4x12( - _______, _______, _______, X(EUR), _______, _______, _______, XP(SUE, BUE), _______, XP(SOE, BOE), _______, _______, - _______, XP(SAE, BAE), X(SS), _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, X(CPR), _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, UM(EUR), _______, _______, _______, UP(SUE, BUE), _______, UP(SOE, BOE), _______, _______, + _______, UP(SAE, BAE), UM(SS), _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, UM(CPR), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/layouts/community/ortho_4x12/brandonschlack/keymap.c b/layouts/community/ortho_4x12/brandonschlack/keymap.c index 7361de1a039..04c83de9e9b 100644 --- a/layouts/community/ortho_4x12/brandonschlack/keymap.c +++ b/layouts/community/ortho_4x12/brandonschlack/keymap.c @@ -100,12 +100,13 @@ void keyboard_post_init_keymap(void) { } // Use Green LED for Caps Lock -void led_set_user(uint8_t usb_led) { - if (IS_LED_OFF(usb_led, USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { writePinLow(LED_GREEN); } else { writePinHigh(LED_GREEN); } + return false; } #endif diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h index 8443ff054fd..7db0afa40f2 100644 --- a/layouts/community/ortho_4x12/drashna/config.h +++ b/layouts/community/ortho_4x12/drashna/config.h @@ -105,49 +105,49 @@ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ //#define MIDI_TONE_KEYCODE_OCTAVES 2 -#define FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ -#define FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ -#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ +#define DRV2605L_FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/ +#define DRV2605L_FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */ +#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* default 3V ERM vibration motor voltage and library*/ -#if FB_ERM_LRA == 0 -# define RATED_VOLTAGE 3 -# define V_RMS 2.3 -# define V_PEAK 3.30 +#if DRV2605L_FB_ERM_LRA == 0 +# define DRV2605L_RATED_VOLTAGE 3 +# define DRV2605L_V_RMS 2.3 +# define DRV2605L_V_PEAK 3.30 /* Library Selection */ -# define LIB_SELECTION 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ +# define DRV2605L_LIBRARY 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ /* default 2V LRA voltage and library */ -#elif FB_ERM_LRA == 1 -# define RATED_VOLTAGE 2 -# define V_RMS 2.0 -# define V_PEAK 2.85 -# define F_LRA 200 +#elif DRV2605L_FB_ERM_LRA == 1 +# define DRV2605L_RATED_VOLTAGE 2 +# define DRV2605L_V_RMS 2.0 +# define DRV2605L_V_PEAK 2.85 +# define DRV2605L_F_LRA 200 /* Library Selection */ -# define LIB_SELECTION 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ +# define DRV2605L_LIBRARY 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */ #endif /* Control 1 register settings */ -#define DRIVE_TIME 25 -#define AC_COUPLE 0 -#define STARTUP_BOOST 1 +#define DRV2605L_DRIVE_TIME 25 +#define DRV2605L_AC_COUPLE 0 +#define DRV2605L_STARTUP_BOOST 1 /* Control 2 Settings */ -#define BIDIR_INPUT 1 -#define BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ -#define SAMPLE_TIME 3 -#define BLANKING_TIME 1 -#define IDISS_TIME 1 +#define DRV2605L_BIDIR_INPUT 1 +#define DRV2605L_BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */ +#define DRV2605L_SAMPLE_TIME 3 +#define DRV2605L_BLANKING_TIME 1 +#define DRV2605L_IDISS_TIME 1 /* Control 3 settings */ -#define NG_THRESH 2 -#define ERM_OPEN_LOOP 1 -#define SUPPLY_COMP_DIS 0 -#define DATA_FORMAT_RTO 0 -#define LRA_DRIVE_MODE 0 -#define N_PWM_ANALOG 0 -#define LRA_OPEN_LOOP 0 +#define DRV2605L_NG_THRESH 2 +#define DRV2605L_ERM_OPEN_LOOP 1 +#define DRV2605L_SUPPLY_COMP_DIS 0 +#define DRV2605L_DATA_FORMAT_RTO 0 +#define DRV2605L_LRA_DRIVE_MODE 0 +#define DRV2605L_N_PWM_ANALOG 0 +#define DRV2605L_LRA_OPEN_LOOP 0 /* Control 4 settings */ -#define ZC_DET_TIME 0 -#define AUTO_CAL_TIME 3 +#define DRV2605L_ZC_DET_TIME 0 +#define DRV2605L_AUTO_CAL_TIME 3 diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c index 475ccc5c3ab..cdf41fc5dc2 100644 --- a/layouts/community/ortho_4x12/drashna/keymap.c +++ b/layouts/community/ortho_4x12/drashna/keymap.c @@ -184,7 +184,7 @@ led_config_t g_led_config = { bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { uint8_t this_mod = get_mods(); - uint8_t this_led = host_keyboard_leds(); + led_t this_led = host_keyboard_led_state(); uint8_t this_osm = get_oneshot_mods(); # ifdef KEYBOARD_planck_ez # define THUMB_LED 41 @@ -208,7 +208,7 @@ bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { break; } - if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { + if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) { if (!layer_state_cmp(layer_state, _ADJUST)) { RGB_MATRIX_INDICATOR_SET_COLOR(24, 0x00, 0xFF, 0x00); } diff --git a/layouts/community/split_3x5_2/scotto/keymap.c b/layouts/community/split_3x5_2/scotto/keymap.c new file mode 100644 index 00000000000..fcba0f483b2 --- /dev/null +++ b/layouts/community/split_3x5_2/scotto/keymap.c @@ -0,0 +1,78 @@ +/* +Copyright 2023 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 "scotto.h" + +#define LAYOUT_split_3x5_2_wrapper(...) LAYOUT_split_3x5_2(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_2_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3a_________________, + _______THUMB4_1_______ + ), + [1] = LAYOUT_split_3x5_2_wrapper( + ______________SYM_MEDIA_NAV1______________, + ______________SYM_MEDIA_NAV2______________, + ______________SYM_MEDIA_NAV3______________, + _____THUMB4_TRNS______ + ), + [2] = LAYOUT_split_3x5_2_wrapper( + _________________NUM_SYM1_________________, + _________________NUM_SYM2_________________, + _________________NUM_SYM3a________________, + _____THUMB4_TRNS______ + ), + [3] = LAYOUT_split_3x5_2_wrapper( + ________________FUNC_SYS1a________________, + ________________FUNC_SYS2_________________, + ________________FUNC_SYS3_________________, + _____THUMB4_TRNS______ + ), + [4] = LAYOUT_split_3x5_2_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3a_________________, + _______THUMB4_4_______ + ), + [5] = LAYOUT_split_3x5_2_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3b_________________, + _______THUMB4_5_______ + ), + [6] = LAYOUT_split_3x5_2_wrapper( + ______________SYM_MEDIA_NAV1______________, + ______________SYM_MEDIA_NAV2______________, + ______________SYM_MEDIA_NAV3______________, + _____THUMB4_TRNS______ + ), + [7] = LAYOUT_split_3x5_2_wrapper( + _________________NUM_SYM1_________________, + _________________NUM_SYM2_________________, + _________________NUM_SYM3b________________, + _____THUMB4_TRNS______ + ), + [8] = LAYOUT_split_3x5_2_wrapper( + ________________FUNC_SYS1b________________, + ________________FUNC_SYS2_________________, + ________________FUNC_SYS3_________________, + _____THUMB4_TRNS______ + ) +}; diff --git a/layouts/community/split_3x5_3/scotto/keymap.c b/layouts/community/split_3x5_3/scotto/keymap.c new file mode 100644 index 00000000000..b0d4d9a038f --- /dev/null +++ b/layouts/community/split_3x5_3/scotto/keymap.c @@ -0,0 +1,75 @@ +/* +Copyright 2023 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 "scotto.h" + +#define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3a_________________, + _______THUMB6_1_______ + ), + [1] = LAYOUT_split_3x5_3_wrapper( + ______________SYM_MEDIA_NAV1______________, + ______________SYM_MEDIA_NAV2______________, + ______________SYM_MEDIA_NAV3______________, + _____THUMB6_TRNS______ + ), + [2] = LAYOUT_split_3x5_3_wrapper( + _________________NUM_SYM1_________________, + _________________NUM_SYM2_________________, + _________________NUM_SYM3a________________, + _____THUMB6_TRNS______ + ), + [3] = LAYOUT_split_3x5_3_wrapper( + ________________FUNC_SYS1a________________, + ________________FUNC_SYS2_________________, + ________________FUNC_SYS3_________________, + _____THUMB6_TRNS______ + ), + [4] = LAYOUT_split_3x5_3_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3a_________________, + _______THUMB6_4_______ + ), + [5] = LAYOUT_split_3x5_3_wrapper( + _________________KEYMAP1__________________, + _________________KEYMAP2__________________, + _________________KEYMAP3b_________________, + _______THUMB6_5_______ + ), + [6] = LAYOUT_split_3x5_3_wrapper( + ______________SYM_MEDIA_NAV1______________, + ______________SYM_MEDIA_NAV2______________, + ______________SYM_MEDIA_NAV3______________, + _____THUMB6_TRNS______ + ), + [7] = LAYOUT_split_3x5_3_wrapper( + _________________NUM_SYM1_________________, + _________________NUM_SYM2_________________, + _________________NUM_SYM3b________________, + _____THUMB6_TRNS______ + ), + [8] = LAYOUT_split_3x5_3_wrapper( + ________________FUNC_SYS1b________________, + ________________FUNC_SYS2_________________, + ________________FUNC_SYS3_________________, + _____THUMB6_TRNS______ + ) +}; diff --git a/layouts/community/split_3x6_3/bcat/rules.mk b/layouts/community/split_3x6_3/bcat/rules.mk index 29e52b92db5..e0ce760a791 100644 --- a/layouts/community/split_3x6_3/bcat/rules.mk +++ b/layouts/community/split_3x6_3/bcat/rules.mk @@ -4,6 +4,5 @@ ifeq ($(strip $(KEYBOARD)), crkbd/rev1) BOOTLOADER = atmel-dfu # Elite-C OLED_ENABLE = yes # dual 128x32 OLED screens - OLED_DRIVER = SSD1306 RGB_MATRIX_ENABLE = yes # per-key RGB and underglow endif diff --git a/layouts/community/split_3x6_3/drashna/config.h b/layouts/community/split_3x6_3/drashna/config.h index 92065e8f314..cfed26931bb 100644 --- a/layouts/community/split_3x6_3/drashna/config.h +++ b/layouts/community/split_3x6_3/drashna/config.h @@ -24,7 +24,6 @@ #define SPLIT_MODS_ENABLE #undef USE_I2C -#undef SSD1306OLED // #define QUICK_TAP_TERM 0 // #define TAPPING_TERM 100 diff --git a/layouts/community/tkl_ansi/brandonschlack/keymap.c b/layouts/community/tkl_ansi/brandonschlack/keymap.c index 8e5743136ca..9b425c477af 100644 --- a/layouts/community/tkl_ansi/brandonschlack/keymap.c +++ b/layouts/community/tkl_ansi/brandonschlack/keymap.c @@ -96,7 +96,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } - -void led_set_user(uint8_t usb_led) { - -} diff --git a/layouts/default/60_abnt2/default_60_abnt2/keymap.c b/layouts/default/60_abnt2/default_60_abnt2/keymap.c index a5a8f61cb60..712931016ae 100644 --- a/layouts/default/60_abnt2/default_60_abnt2/keymap.c +++ b/layouts/default/60_abnt2/default_60_abnt2/keymap.c @@ -30,11 +30,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ * │ ' │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Delete│ - * └───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───────┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ * │ Tab │ Q │ W │ E │Rst│ T │Ins│Hom│ ↑ │End│PgU│ ´ │ [ │ │ - * ├─────┴┬──┴┬──┴┬──└───┘┬──└───┴┬──┴┬──┴┬──┴┬──┴┐──┴┬──┴┐ Ent│ + * ├─────┴┬──┴┬──┴┬──┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ * │ Caps │ A │ S │ D │ F │ G │ H │ ← │ ↓ │ → │PgD│ ~ │ ] │ │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─└───┴───┴───┴───┘─┬─┴─┬─┴────┤ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ ; │ / │ Shift│ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤ * │Ctrl│GUI │Alt │ │ Alt│ GUI│ MO1│Ctrl│ diff --git a/layouts/default/60_jis/default_60_jis/keymap.c b/layouts/default/60_jis/default_60_jis/keymap.c new file mode 100644 index 00000000000..caaa82d38a7 --- /dev/null +++ b/layouts/default/60_jis/default_60_jis/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ZHK│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ^ │ ¥ │Bsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ @ │ [ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ + * │ Eisu │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ ] │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ \ │ Shft │ + * ├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴─┬─┴──┬┴───┼───┴┬──┴─┬────┤ + * │Ctrl│GUI │Alt │Mhen│ Space │Henk│Kana│Alt │GUI │Ctrl│ + * └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_jis( + 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_INT3, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, KC_RGUI, KC_RCTL + ) +}; diff --git a/layouts/default/60_jis/info.json b/layouts/default/60_jis/info.json new file mode 100644 index 00000000000..56972148bda --- /dev/null +++ b/layouts/default/60_jis/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "60% JIS layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_jis": { + "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": 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.75, "y": 1, "w": 1.25, "h": 2}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + + {"x": 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}, + {"x": 13.25, "y": 3, "w": 1.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": 1.25}, + {"x": 5, "y": 4, "w": 3.75}, + {"x": 8.75, "y": 4, "w": 1.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/layouts/default/60_jis/layout.json b/layouts/default/60_jis/layout.json new file mode 100644 index 00000000000..a93cc2bbfd2 --- /dev/null +++ b/layouts/default/60_jis/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:2.25},"","","","","","","","","","","","",{w:1.75},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:3.75},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},""] diff --git a/layouts/default/60_jis/readme.md b/layouts/default/60_jis/readme.md new file mode 100644 index 00000000000..236abdfa074 --- /dev/null +++ b/layouts/default/60_jis/readme.md @@ -0,0 +1,3 @@ +# 60_jis + + LAYOUT_60_jis diff --git a/layouts/default/64_ansi/default_64_ansi/keymap.c b/layouts/default/64_ansi/default_64_ansi/keymap.c index fdbb44117fb..ede754b2ca7 100644 --- a/layouts/default/64_ansi/default_64_ansi/keymap.c +++ b/layouts/default/64_ansi/default_64_ansi/keymap.c @@ -4,6 +4,19 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Sft│ ↑ │mo1│ + * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ + * │Ctrl│GUI │Alt │ │Alt│Ctl│ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ [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_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, @@ -11,6 +24,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Delete│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │PSn│SLk│Pause│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │PgU│ │ + * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │mo2│Hom│PgD│End│ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ [1] = LAYOUT_64_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, @@ -18,9 +44,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, MO(2), KC_HOME, KC_PGDN, KC_END ), + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │QBt│ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ [2] = LAYOUT_64_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/layouts/default/64_iso/default_64_iso/keymap.c b/layouts/default/64_iso/default_64_iso/keymap.c index 1dfcdd3eb70..a28e652024b 100644 --- a/layouts/default/64_iso/default_64_iso/keymap.c +++ b/layouts/default/64_iso/default_64_iso/keymap.c @@ -4,6 +4,19 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├───┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤ + * │Sft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Sft│ ↑ │mo1│ + * ├───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ + * │Ctrl│GUI │Alt │ │Alt│Ctl│ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ [0] = LAYOUT_64_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_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, @@ -11,6 +24,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Delete│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │PSn│SLk│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │PgU│ │ + * ├───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │mo2│Hom│PgD│End│ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ [1] = LAYOUT_64_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, @@ -18,9 +44,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, MO(2), KC_HOME, KC_PGDN, KC_END ), + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │QBt│ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ [2] = LAYOUT_64_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/layouts/default/fullsize_jis/default_fullsize_jis/keymap.c b/layouts/default/fullsize_jis/default_fullsize_jis/keymap.c new file mode 100644 index 00000000000..068bd5024bf --- /dev/null +++ b/layouts/default/fullsize_jis/default_fullsize_jis/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ZHK│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ^ │ ¥ │Bsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ @ │ [ │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │ + * │ Eisu │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ : │ ] │ │ │ 4 │ 5 │ 6 │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ ├───┼───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ \ │ Shft │ │ ↑ │ │ 1 │ 2 │ 3 │ │ + * ├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┼───┴┬──┴─┬─┴─┬─┴─┬─┴─┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ + * │Ctrl│GUI │Alt │Mhen│ Space │Henk│Kana│Alt│GUI│App│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ + * └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ + */ + [0] = LAYOUT_fullsize_jis( + 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_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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/layouts/default/fullsize_jis/info.json b/layouts/default/fullsize_jis/info.json new file mode 100644 index 00000000000..8acd5f2fe3a --- /dev/null +++ b/layouts/default/fullsize_jis/info.json @@ -0,0 +1,125 @@ +{ + "keyboard_name": "Fullsize JIS layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_fullsize_jis": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "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": 18.5, "y": 1.25}, + {"x": 19.5, "y": 1.25}, + {"x": 20.5, "y": 1.25}, + {"x": 21.5, "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.75, "y": 2.25, "w": 1.25, "h": 2}, + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.25}, + {"x": 17.25, "y": 2.25}, + {"x": 18.5, "y": 2.25}, + {"x": 19.5, "y": 2.25}, + {"x": 20.5, "y": 2.25}, + {"x": 21.5, "y": 2.25, "h": 2}, + + {"x": 0, "y": 3.25, "w": 1.75}, + {"x": 1.75, "y": 3.25}, + {"x": 2.75, "y": 3.25}, + {"x": 3.75, "y": 3.25}, + {"x": 4.75, "y": 3.25}, + {"x": 5.75, "y": 3.25}, + {"x": 6.75, "y": 3.25}, + {"x": 7.75, "y": 3.25}, + {"x": 8.75, "y": 3.25}, + {"x": 9.75, "y": 3.25}, + {"x": 10.75, "y": 3.25}, + {"x": 11.75, "y": 3.25}, + {"x": 12.75, "y": 3.25}, + {"x": 18.5, "y": 3.25}, + {"x": 19.5, "y": 3.25}, + {"x": 20.5, "y": 3.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}, + {"x": 13.25, "y": 4.25, "w": 1.75}, + {"x": 16.25, "y": 4.25}, + {"x": 18.5, "y": 4.25}, + {"x": 19.5, "y": 4.25}, + {"x": 20.5, "y": 4.25}, + {"x": 21.5, "y": 4.25, "h": 2}, + + {"x": 0, "y": 5.25, "w": 1.25}, + {"x": 1.25, "y": 5.25, "w": 1.25}, + {"x": 2.5, "y": 5.25, "w": 1.25}, + {"x": 3.75, "y": 5.25, "w": 1.25}, + {"x": 5, "y": 5.25, "w": 3.25}, + {"x": 8.25, "y": 5.25, "w": 1.25}, + {"x": 9.5, "y": 5.25, "w": 1.25}, + {"x": 10.75, "y": 5.25}, + {"x": 11.75, "y": 5.25}, + {"x": 12.75, "y": 5.25}, + {"x": 13.75, "y": 5.25, "w": 1.25}, + {"x": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25}, + {"x": 18.5, "y": 5.25, "w": 2}, + {"x": 20.5, "y": 5.25} + ] + } + } +} diff --git a/layouts/default/fullsize_jis/layout.json b/layouts/default/fullsize_jis/layout.json new file mode 100644 index 00000000000..e8caad88788 --- /dev/null +++ b/layouts/default/fullsize_jis/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","","",{x:0.25},"","","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""], +[{w:1.75},"","","","","","","","","","","","","",{x:4.75},"","",""], +[{w:2.25},"","","","","","","","","","","","",{w:1.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:3.25},"",{w:1.25},"",{w:1.25},"","","","",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""] diff --git a/layouts/default/fullsize_jis/readme.md b/layouts/default/fullsize_jis/readme.md new file mode 100644 index 00000000000..93853251572 --- /dev/null +++ b/layouts/default/fullsize_jis/readme.md @@ -0,0 +1,3 @@ +# fullsize_jis + + LAYOUT_fullsize_jis diff --git a/layouts/default/readme.md b/layouts/default/readme.md index a728d93d1a2..439613911ac 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -154,6 +154,21 @@ LAYOUT_60_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +``` +LAYOUT_60_jis +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴─┬─┴──┬┴───┼───┴┬──┴─┬────┤ +│ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ +``` + ``` LAYOUT_60_tsangan_hhkb ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ @@ -623,6 +638,24 @@ LAYOUT_tkl_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +``` +LAYOUT_tkl_jis +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴─┬─┴──┬┴───┼───┴┬──┴─┬────┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ +``` + ``` LAYOUT_tkl_f13_ansi ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ @@ -767,6 +800,25 @@ LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘└───┴───┴───┘ ``` +``` +LAYOUT_tkl_f13_jis +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │└───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴─┬─┴──┬┴───┼───┴┬──┴─┬────┤┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ ││ │ │ │ +└────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘└───┴───┴───┘ + +``` + ``` LAYOUT_tkl_nofrow_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ @@ -872,6 +924,23 @@ LAYOUT_fullsize_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +``` +LAYOUT_fullsize_jis +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ ├───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ ├───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┼───┴┬──┴─┬─┴─┬─┴─┬─┴─┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ +``` ### Split Layouts diff --git a/layouts/default/tkl_f13_jis/default_tkl_f13_jis/keymap.c b/layouts/default/tkl_f13_jis/default_tkl_f13_jis/keymap.c new file mode 100644 index 00000000000..ec5c35cb542 --- /dev/null +++ b/layouts/default/tkl_f13_jis/default_tkl_f13_jis/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ + * │ZHK│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ^ │ ¥ │Bsp││Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ @ │ [ │ ││Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│└───┴───┴───┘ + * │ Eisu │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ : │ ] │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ \ │ Shft │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴─┬─┴──┬┴───┼───┴┬──┴─┬────┤┌───┼───┼───┐ + * │Ctrl│GUI │Alt │Mhen│ Space │Henk│Kana│Alt │GUI │Ctrl││ ← │ ↓ │ → │ + * └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [0] = LAYOUT_tkl_f13_jis( + 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_INT3, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_f13_jis/info.json b/layouts/default/tkl_f13_jis/info.json new file mode 100644 index 00000000000..97f5bd3880e --- /dev/null +++ b/layouts/default/tkl_f13_jis/info.json @@ -0,0 +1,108 @@ +{ + "keyboard_name": "Tenkeyless JIS layout with F13 key", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_f13_jis": { + "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.75, "y": 2.25, "w": 1.25, "h": 2}, + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.25}, + {"x": 17.25, "y": 2.25}, + + {"x": 0, "y": 3.25, "w": 1.75}, + {"x": 1.75, "y": 3.25}, + {"x": 2.75, "y": 3.25}, + {"x": 3.75, "y": 3.25}, + {"x": 4.75, "y": 3.25}, + {"x": 5.75, "y": 3.25}, + {"x": 6.75, "y": 3.25}, + {"x": 7.75, "y": 3.25}, + {"x": 8.75, "y": 3.25}, + {"x": 9.75, "y": 3.25}, + {"x": 10.75, "y": 3.25}, + {"x": 11.75, "y": 3.25}, + {"x": 12.75, "y": 3.25}, + + {"x": 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}, + {"x": 13.25, "y": 4.25, "w": 1.75}, + {"x": 16.25, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 1.25}, + {"x": 1.25, "y": 5.25, "w": 1.25}, + {"x": 2.5, "y": 5.25, "w": 1.25}, + {"x": 3.75, "y": 5.25, "w": 1.25}, + {"x": 5, "y": 5.25, "w": 3.75}, + {"x": 8.75, "y": 5.25, "w": 1.25}, + {"x": 10, "y": 5.25, "w": 1.25}, + {"x": 11.25, "y": 5.25, "w": 1.25}, + {"x": 12.5, "y": 5.25, "w": 1.25}, + {"x": 13.75, "y": 5.25, "w": 1.25}, + {"x": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/layouts/default/tkl_f13_jis/layout.json b/layouts/default/tkl_f13_jis/layout.json new file mode 100644 index 00000000000..8b20546b74a --- /dev/null +++ b/layouts/default/tkl_f13_jis/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:2.25},"","","","","","","","","","","","",{w:1.75},"",{x:1.25},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:3.75},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_f13_jis/readme.md b/layouts/default/tkl_f13_jis/readme.md new file mode 100644 index 00000000000..cc49ffd8301 --- /dev/null +++ b/layouts/default/tkl_f13_jis/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_jis + + LAYOUT_tkl_f13_jis diff --git a/layouts/default/tkl_jis/default_tkl_jis/keymap.c b/layouts/default/tkl_jis/default_tkl_jis/keymap.c new file mode 100644 index 00000000000..c60165afcb2 --- /dev/null +++ b/layouts/default/tkl_jis/default_tkl_jis/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ZHK│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ^ │ ¥ │Bsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ @ │ [ │ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ + * │ Eisu │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ : │ ] │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ \ │ Shft │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴─┬─┴──┬┴───┼───┴┬──┴─┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │Mhen│ Space │Henk│Kana│Alt │GUI │Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_jis( + 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_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_INT3, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_jis/info.json b/layouts/default/tkl_jis/info.json new file mode 100644 index 00000000000..513852193a5 --- /dev/null +++ b/layouts/default/tkl_jis/info.json @@ -0,0 +1,107 @@ +{ + "keyboard_name": "Tenkeyless JIS layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_jis": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "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.75, "y": 2.25, "w": 1.25, "h": 2}, + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.25}, + {"x": 17.25, "y": 2.25}, + + {"x": 0, "y": 3.25, "w": 1.75}, + {"x": 1.75, "y": 3.25}, + {"x": 2.75, "y": 3.25}, + {"x": 3.75, "y": 3.25}, + {"x": 4.75, "y": 3.25}, + {"x": 5.75, "y": 3.25}, + {"x": 6.75, "y": 3.25}, + {"x": 7.75, "y": 3.25}, + {"x": 8.75, "y": 3.25}, + {"x": 9.75, "y": 3.25}, + {"x": 10.75, "y": 3.25}, + {"x": 11.75, "y": 3.25}, + {"x": 12.75, "y": 3.25}, + + {"x": 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}, + {"x": 13.25, "y": 4.25, "w": 1.75}, + {"x": 16.25, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 1.25}, + {"x": 1.25, "y": 5.25, "w": 1.25}, + {"x": 2.5, "y": 5.25, "w": 1.25}, + {"x": 3.75, "y": 5.25, "w": 1.25}, + {"x": 5, "y": 5.25, "w": 3.75}, + {"x": 8.75, "y": 5.25, "w": 1.25}, + {"x": 10, "y": 5.25, "w": 1.25}, + {"x": 11.25, "y": 5.25, "w": 1.25}, + {"x": 12.5, "y": 5.25, "w": 1.25}, + {"x": 13.75, "y": 5.25, "w": 1.25}, + {"x": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/layouts/default/tkl_jis/layout.json b/layouts/default/tkl_jis/layout.json new file mode 100644 index 00000000000..c7a6833b75d --- /dev/null +++ b/layouts/default/tkl_jis/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:2.25},"","","","","","","","","","","","",{w:1.75},"",{x:1.25},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:3.75},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_jis/readme.md b/layouts/default/tkl_jis/readme.md new file mode 100644 index 00000000000..59505a19664 --- /dev/null +++ b/layouts/default/tkl_jis/readme.md @@ -0,0 +1,5 @@ +# tkl_jis + + LAYOUT_tkl_jis + +A standard JIS TKL layout. diff --git a/lib/chibios-contrib b/lib/chibios-contrib index a224be155ae..da78eb3759b 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit a224be155ae18d38deccf33a6c1d259b9a5ad8d3 +Subproject commit da78eb3759b8d1779b237657c7667baa4aa95ca1 diff --git a/lib/python/qmk/c_parse.py b/lib/python/qmk/c_parse.py index 7dd464bd341..08d23cf5ba9 100644 --- a/lib/python/qmk/c_parse.py +++ b/lib/python/qmk/c_parse.py @@ -241,19 +241,24 @@ def _parse_led_config(file, matrix_cols, matrix_rows): position_raw = [] flags = [] - found_led_config = False + found_led_config_t = False + found_g_led_config = False bracket_count = 0 section = 0 current_row_index = 0 current_row = [] for _type, value in lex(_preprocess_c_file(file), CLexer()): - # Assume g_led_config..stuff..; - if value == 'g_led_config': - found_led_config = True + if not found_g_led_config: + # Check for type + if value == 'led_config_t': + found_led_config_t = True + # Type found, now check for name + elif found_led_config_t and value == 'g_led_config': + found_g_led_config = True elif value == ';': - found_led_config = False - elif found_led_config: + found_g_led_config = False + else: # Assume bracket count hints to section of config we are within if value == '{': bracket_count += 1 diff --git a/lib/python/qmk/cli/generate/keyboard_h.py b/lib/python/qmk/cli/generate/keyboard_h.py index fa4036e39a6..b9e89032b9e 100755 --- a/lib/python/qmk/cli/generate/keyboard_h.py +++ b/lib/python/qmk/cli/generate/keyboard_h.py @@ -37,14 +37,19 @@ def _generate_layouts(keyboard, kb_info_json): row, col = key_data['matrix'] identifier = f'k{ROW_LETTERS[row]}{COL_LETTERS[col]}' - try: - layout_matrix[row][col] = identifier - layout_keys.append(identifier) - except IndexError: + if row >= row_num or col >= col_num: key_name = key_data.get('label', identifier) - cli.log.error(f'{keyboard}/{layout_name}: Matrix data out of bounds at index {index} ({key_name}): [{row}, {col}]') + if row >= row_num: + cli.log.error(f'{keyboard}/{layout_name}: Matrix row for key {index} ({key_name}) is {row} but must be less than {row_num}') + + if col >= col_num: + cli.log.error(f'{keyboard}/{layout_name}: Matrix column for key {index} ({key_name}) is {col} but must be less than {col_num}') + return [] + layout_matrix[row][col] = identifier + layout_keys.append(identifier) + lines.append('') lines.append(f'#define {layout_name}({", ".join(layout_keys)}) {{ \\') diff --git a/lib/python/qmk/cli/generate/keycodes.py b/lib/python/qmk/cli/generate/keycodes.py index 3b69b17ed1c..ed8b6827bdf 100644 --- a/lib/python/qmk/cli/generate/keycodes.py +++ b/lib/python/qmk/cli/generate/keycodes.py @@ -96,6 +96,11 @@ def _generate_helpers(lines, keycodes): def _generate_aliases(lines, keycodes): + # Work around ChibiOS ch.h include guard + if 'CH_H' in [value['key'] for value in keycodes['aliases'].values()]: + lines.append('') + lines.append('#undef CH_H') + lines.append('') lines.append('// Aliases') for key, value in keycodes["aliases"].items(): diff --git a/lib/python/qmk/cli/info.py b/lib/python/qmk/cli/info.py index 02cc6051ecc..e662407474e 100755 --- a/lib/python/qmk/cli/info.py +++ b/lib/python/qmk/cli/info.py @@ -38,6 +38,10 @@ def _strip_api_content(info_json): if 'matrix_pins' in info_json: info_json.pop('matrix_size', None) + for feature in ['rgb_matrix', 'led_matrix']: + if info_json.get(feature, {}).get("layout", None): + info_json[feature].pop('led_count', None) + return info_json diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index 52c1cae4c2d..ddd946a32bc 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -53,20 +53,22 @@ def mass_compile(cli): keyboard_name = target[0] keymap_name = target[1] keyboard_safe = keyboard_name.replace('/', '_') + build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" # yapf: disable f.write( f"""\ all: {keyboard_safe}_{keymap_name}_binary {keyboard_safe}_{keymap_name}_binary: - @rm -f "{QMK_FIRMWARE}/.build/failed.log.{keyboard_safe}.{keymap_name}" || true - @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" + @rm -f "{build_log}" || true + @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(cli.args.env)} \\ - >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" 2>&1 \\ - || cp "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" "{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" - @{{ grep '\[ERRORS\]' "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ - || {{ grep '\[WARNINGS\]' "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + >>"{build_log}" 2>&1 \\ + || cp "{build_log}" "{failed_log}" + @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || {{ grep '\[WARNINGS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" - @rm -f "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" || true + @rm -f "{build_log}" || true """# noqa ) # yapf: enable @@ -77,7 +79,6 @@ def mass_compile(cli): f"""\ @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}" || true @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true """# noqa ) diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index b1eac139576..660b2ff72e6 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -9,7 +9,7 @@ from milc import cli import jsonschema -from qmk.constants import KEYBOARD_OUTPUT_PREFIX +from qmk.constants import INTERMEDIATE_OUTPUT_PREFIX from qmk.json_schema import json_load, validate @@ -134,16 +134,13 @@ def compile_configurator_json(user_keymap, bootloader=None, parallel=1, clean=Fa keyboard_filesafe = user_keymap['keyboard'].replace('/', '_') target = f'{keyboard_filesafe}_{user_keymap["keymap"]}' - keyboard_output = Path(f'{KEYBOARD_OUTPUT_PREFIX}{keyboard_filesafe}') - keymap_output = Path(f'{keyboard_output}_{user_keymap["keymap"]}') - keymap_dir = keymap_output / 'src' + intermediate_output = Path(f'{INTERMEDIATE_OUTPUT_PREFIX}{keyboard_filesafe}_{user_keymap["keymap"]}') + keymap_dir = intermediate_output / 'src' keymap_json = keymap_dir / 'keymap.json' if clean: - if keyboard_output.exists(): - shutil.rmtree(keyboard_output) - if keymap_output.exists(): - shutil.rmtree(keymap_output) + if intermediate_output.exists(): + shutil.rmtree(intermediate_output) # begin with making the deepest folder in the tree keymap_dir.mkdir(exist_ok=True, parents=True) @@ -183,13 +180,12 @@ def compile_configurator_json(user_keymap, bootloader=None, parallel=1, clean=Fa f'KEYMAP={user_keymap["keymap"]}', f'KEYBOARD_FILESAFE={keyboard_filesafe}', f'TARGET={target}', - f'KEYBOARD_OUTPUT={keyboard_output}', - f'KEYMAP_OUTPUT={keymap_output}', - f'MAIN_KEYMAP_PATH_1={keymap_output}', - f'MAIN_KEYMAP_PATH_2={keymap_output}', - f'MAIN_KEYMAP_PATH_3={keymap_output}', - f'MAIN_KEYMAP_PATH_4={keymap_output}', - f'MAIN_KEYMAP_PATH_5={keymap_output}', + f'INTERMEDIATE_OUTPUT={intermediate_output}', + f'MAIN_KEYMAP_PATH_1={intermediate_output}', + f'MAIN_KEYMAP_PATH_2={intermediate_output}', + f'MAIN_KEYMAP_PATH_3={intermediate_output}', + f'MAIN_KEYMAP_PATH_4={intermediate_output}', + f'MAIN_KEYMAP_PATH_5={intermediate_output}', f'KEYMAP_JSON={keymap_json}', f'KEYMAP_PATH={keymap_dir}', f'VERBOSE={verbose}', @@ -223,9 +219,6 @@ def parse_configurator_json(configurator_file): if 'target' in aliases[orig_keyboard]: user_keymap['keyboard'] = aliases[orig_keyboard]['target'] - if 'layouts' in aliases[orig_keyboard] and user_keymap['layout'] in aliases[orig_keyboard]['layouts']: - user_keymap['layout'] = aliases[orig_keyboard]['layouts'][user_keymap['layout']] - return user_keymap diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index 8a13029a8a8..97bd84aa234 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py @@ -14,7 +14,7 @@ MAX_KEYBOARD_SUBFOLDERS = 5 # Supported processor types -CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95' +CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32H723', 'STM32H733', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95' LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85' @@ -36,6 +36,8 @@ "STM32F446": "stm32-dfu", "STM32G431": "stm32-dfu", "STM32G474": "stm32-dfu", + "STM32H723": "stm32-dfu", + "STM32H733": "stm32-dfu", "STM32L412": "stm32-dfu", "STM32L422": "stm32-dfu", "STM32L432": "stm32-dfu", @@ -82,6 +84,7 @@ }, 'apm32-dfu': {("314b", "0106")}, 'gd32v-dfu': {("28e9", "0189")}, + 'wb32-dfu': {("342d", "dfa0")}, 'bootloadhid': {("16c0", "05df")}, 'usbasploader': {("16c0", "05dc")}, 'usbtinyisp': {("1782", "0c9f")}, @@ -123,7 +126,7 @@ # Constants that should match their counterparts in make BUILD_DIR = environ.get('BUILD_DIR', '.build') -KEYBOARD_OUTPUT_PREFIX = f'{BUILD_DIR}/obj_' +INTERMEDIATE_OUTPUT_PREFIX = f'{BUILD_DIR}/obj_' # Headers for generated files GPL2_HEADER_C_LIKE = f'''\ diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index f83665d9acc..9ecb5e4b9c8 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -96,7 +96,7 @@ def _find_bootloader(): details = 'halfkay' else: details = 'qmk-hid' - elif bl == 'stm32-dfu' or bl == 'apm32-dfu' or bl == 'gd32v-dfu' or bl == 'kiibohd': + elif bl in {'apm32-dfu', 'gd32v-dfu', 'kiibohd', 'stm32-dfu'}: details = (vid, pid) else: details = None @@ -181,9 +181,18 @@ def _flash_dfu_util(details, file): cli.run(['dfu-util', '-a', '0', '-d', f'{details[0]}:{details[1]}', '-s', '0x08000000:leave', '-D', file], capture_output=False) +def _flash_wb32_dfu_updater(file): + if shutil.which('wb32-dfu-updater_cli'): + cmd = 'wb32-dfu-updater_cli' + else: + return True + + cli.run([cmd, '-t', '-s', '0x08000000', '-D', file], capture_output=False) + + def _flash_isp(mcu, programmer, file): programmer = 'usbasp' if programmer == 'usbasploader' else 'usbtiny' - # Check if the provide mcu has an avrdude-specific name, otherwise pass on what the user provided + # Check if the provided mcu has an avrdude-specific name, otherwise pass on what the user provided mcu = AVRDUDE_MCU.get(mcu, mcu) cli.run(['avrdude', '-p', mcu, '-c', programmer, '-U', f'flash:w:{file}:i'], capture_output=False) @@ -211,8 +220,11 @@ def flasher(mcu, file): return (True, "Please make sure 'teensy_loader_cli' or 'hid_bootloader_cli' is available on your system.") else: return (True, "Specifying the MCU with '-m' is necessary for HalfKay/HID bootloaders!") - elif bl == 'stm32-dfu' or bl == 'apm32-dfu' or bl == 'gd32v-dfu' or bl == 'kiibohd': + elif bl in {'apm32-dfu', 'gd32v-dfu', 'kiibohd', 'stm32-dfu'}: _flash_dfu_util(details, file) + elif bl == 'wb32-dfu': + if _flash_wb32_dfu_updater(file): + return (True, "Please make sure 'wb32-dfu-updater_cli' is available on your system.") elif bl == 'usbasploader' or bl == 'usbtinyisp': if mcu: _flash_isp(mcu, bl, file) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index dbd26153d84..9c8521a2a3e 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -706,6 +706,9 @@ def _extract_led_config(info_data, keyboard): except Exception as e: _log_warning(info_data, f'led_config: {file.name}: {e}') + if info_data[feature].get("layout", None) and not info_data[feature].get("led_count", None): + info_data[feature]["led_count"] = len(info_data[feature]["layout"]) + return info_data diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 0c980faf2b8..235b62640c2 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -182,7 +182,7 @@ def render_layout(layout_data, render_ascii, key_labels=None): if x >= 0.25 and w == 1.25 and h == 2: render_key_isoenter(textpad, x, y, w, h, label, style) - elif w == 2.25 and h == 2: + elif w == 1.5 and h == 2: render_key_baenter(textpad, x, y, w, h, label, style) else: render_key_rect(textpad, x, y, w, h, label, style) @@ -275,7 +275,7 @@ def render_key_baenter(textpad, x, y, w, h, label, style): w = ceil(w * 4) h = ceil(h * 3) - label_len = w - 2 + label_len = w + 1 label_leftover = label_len - len(label) if len(label) > label_len: @@ -292,9 +292,9 @@ def render_key_baenter(textpad, x, y, w, h, label, style): lab_line = array('u', box_chars['v'] + label_middle + box_chars['v']) bot_line = array('u', box_chars['bl'] + label_border_bottom + box_chars['br']) - textpad[y][x + 3:x + w] = top_line - textpad[y + 1][x + 3:x + w] = mid_line - textpad[y + 2][x + 3:x + w] = mid_line - textpad[y + 3][x:x + w] = crn_line - textpad[y + 4][x:x + w] = lab_line - textpad[y + 5][x:x + w] = bot_line + textpad[y][x:x + w] = top_line + textpad[y + 1][x:x + w] = mid_line + textpad[y + 2][x:x + w] = mid_line + textpad[y + 3][x - 3:x + w] = crn_line + textpad[y + 4][x - 3:x + w] = lab_line + textpad[y + 5][x - 3:x + w] = bot_line diff --git a/lib/python/qmk/painter.py b/lib/python/qmk/painter.py index 48310c89616..381a9964431 100644 --- a/lib/python/qmk/painter.py +++ b/lib/python/qmk/painter.py @@ -191,6 +191,12 @@ def convert_requested_format(im, format): return im +def rgb_to565(r, g, b): + msb = ((r >> 3 & 0x1F) << 3) + (g >> 5 & 0x07) + lsb = ((g >> 2 & 0x07) << 5) + (b >> 3 & 0x1F) + return [msb, lsb] + + def convert_image_bytes(im, format): """Convert the supplied image to the equivalent bytes required by the QMK firmware. """ @@ -248,41 +254,25 @@ def convert_image_bytes(im, format): if image_format == 'IMAGE_FORMAT_RGB565': # Take the red, green, and blue channels - image_bytes_red = im.tobytes("raw", "R") - image_bytes_green = im.tobytes("raw", "G") - image_bytes_blue = im.tobytes("raw", "B") - image_pixels_len = len(image_bytes_red) + red = im.tobytes("raw", "R") + green = im.tobytes("raw", "G") + blue = im.tobytes("raw", "B") # No palette palette = None - bytearray = [] - for x in range(image_pixels_len): - # 5 bits of red, 3 MSb of green - byte = ((image_bytes_red[x] >> 3 & 0x1F) << 3) + (image_bytes_green[x] >> 5 & 0x07) - bytearray.append(byte) - # 3 LSb of green, 5 bits of blue - byte = ((image_bytes_green[x] >> 2 & 0x07) << 5) + (image_bytes_blue[x] >> 3 & 0x1F) - bytearray.append(byte) + bytearray = [byte for r, g, b in zip(red, green, blue) for byte in rgb_to565(r, g, b)] if image_format == 'IMAGE_FORMAT_RGB888': # Take the red, green, and blue channels - image_bytes_red = im.tobytes("raw", "R") - image_bytes_green = im.tobytes("raw", "G") - image_bytes_blue = im.tobytes("raw", "B") - image_pixels_len = len(image_bytes_red) + red = im.tobytes("raw", "R") + green = im.tobytes("raw", "G") + blue = im.tobytes("raw", "B") # No palette palette = None - bytearray = [] - for x in range(image_pixels_len): - byte = image_bytes_red[x] - bytearray.append(byte) - byte = image_bytes_green[x] - bytearray.append(byte) - byte = image_bytes_blue[x] - bytearray.append(byte) + bytearray = [byte for r, g, b in zip(red, green, blue) for byte in (r, g, b)] if len(bytearray) != expected_byte_count: raise Exception(f"Wrong byte count, was {len(bytearray)}, expected {expected_byte_count}") diff --git a/platforms/avr/drivers/audio_pwm_hardware.c b/platforms/avr/drivers/audio_pwm_hardware.c index 2fc448ea580..6799cf2fdde 100644 --- a/platforms/avr/drivers/audio_pwm_hardware.c +++ b/platforms/avr/drivers/audio_pwm_hardware.c @@ -15,13 +15,9 @@ * along with this program. If not, see . */ -#if defined(__AVR__) -# include -# include -# include -#endif - #include "audio.h" +#include "gpio.h" +#include extern bool playing_note; extern bool playing_melody; diff --git a/platforms/avr/drivers/backlight_pwm.c b/platforms/avr/drivers/backlight_pwm.c new file mode 100644 index 00000000000..74d25753a4e --- /dev/null +++ b/platforms/avr/drivers/backlight_pwm.c @@ -0,0 +1,327 @@ +#include "backlight.h" +#include "gpio.h" +#include "progmem.h" +#include +#include + +// Maximum duty cycle limit +#ifndef BACKLIGHT_LIMIT_VAL +# define BACKLIGHT_LIMIT_VAL 255 +#endif + +#if (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) && (BACKLIGHT_PIN == B5 || BACKLIGHT_PIN == B6 || BACKLIGHT_PIN == B7) +# define ICRx ICR1 +# define TCCRxA TCCR1A +# define TCCRxB TCCR1B +# define TIMERx_OVF_vect TIMER1_OVF_vect +# define TIMSKx TIMSK1 +# define TOIEx TOIE1 + +# if BACKLIGHT_PIN == B5 +# define COMxx0 COM1A0 +# define COMxx1 COM1A1 +# define OCRxx OCR1A +# elif BACKLIGHT_PIN == B6 +# define COMxx0 COM1B0 +# define COMxx1 COM1B1 +# define OCRxx OCR1B +# elif BACKLIGHT_PIN == B7 +# define COMxx0 COM1C0 +# define COMxx1 COM1C1 +# define OCRxx OCR1C +# endif +#elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) && (BACKLIGHT_PIN == C4 || BACKLIGHT_PIN == C5 || BACKLIGHT_PIN == C6) +# define ICRx ICR3 +# define TCCRxA TCCR3A +# define TCCRxB TCCR3B +# define TIMERx_OVF_vect TIMER3_OVF_vect +# define TIMSKx TIMSK3 +# define TOIEx TOIE3 + +# if BACKLIGHT_PIN == C4 +# if (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) +# error This MCU has no C4 pin! +# else +# define COMxx0 COM3C0 +# define COMxx1 COM3C1 +# define OCRxx OCR3C +# endif +# elif BACKLIGHT_PIN == C5 +# if (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) +# error This MCU has no C5 pin! +# else +# define COMxx0 COM3B0 +# define COMxx1 COM3B1 +# define OCRxx OCR3B +# endif +# elif BACKLIGHT_PIN == C6 +# define COMxx0 COM3A0 +# define COMxx1 COM3A1 +# define OCRxx OCR3A +# endif +#elif (defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__)) && (BACKLIGHT_PIN == B7 || BACKLIGHT_PIN == C5 || BACKLIGHT_PIN == C6) +# define ICRx ICR1 +# define TCCRxA TCCR1A +# define TCCRxB TCCR1B +# define TIMERx_OVF_vect TIMER1_OVF_vect +# define TIMSKx TIMSK1 +# define TOIEx TOIE1 + +# if BACKLIGHT_PIN == B7 +# define COMxx0 COM1C0 +# define COMxx1 COM1C1 +# define OCRxx OCR1C +# elif BACKLIGHT_PIN == C5 +# define COMxx0 COM1B0 +# define COMxx1 COM1B1 +# define OCRxx OCR1B +# elif BACKLIGHT_PIN == C6 +# define COMxx0 COM1A0 +# define COMxx1 COM1A1 +# define OCRxx OCR1A +# endif +#elif defined(__AVR_ATmega32A__) && (BACKLIGHT_PIN == D4 || BACKLIGHT_PIN == D5) +# define ICRx ICR1 +# define TCCRxA TCCR1A +# define TCCRxB TCCR1B +# define TIMERx_OVF_vect TIMER1_OVF_vect +# define TIMSKx TIMSK +# define TOIEx TOIE1 + +# if BACKLIGHT_PIN == D4 +# define COMxx0 COM1B0 +# define COMxx1 COM1B1 +# define OCRxx OCR1B +# elif BACKLIGHT_PIN == D5 +# define COMxx0 COM1A0 +# define COMxx1 COM1A1 +# define OCRxx OCR1A +# endif +#elif (defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)) && (BACKLIGHT_PIN == B1 || BACKLIGHT_PIN == B2) +# define ICRx ICR1 +# define TCCRxA TCCR1A +# define TCCRxB TCCR1B +# define TIMERx_OVF_vect TIMER1_OVF_vect +# define TIMSKx TIMSK1 +# define TOIEx TOIE1 + +# if BACKLIGHT_PIN == B1 +# define COMxx0 COM1A0 +# define COMxx1 COM1A1 +# define OCRxx OCR1A +# elif BACKLIGHT_PIN == B2 +# define COMxx0 COM1B0 +# define COMxx1 COM1B1 +# define OCRxx OCR1B +# endif +#endif + +#ifndef BACKLIGHT_RESOLUTION +# define BACKLIGHT_RESOLUTION 0xFFFFU +#endif + +#if (BACKLIGHT_RESOLUTION > 0xFFFF || BACKLIGHT_RESOLUTION < 0x00FF) +# error "Backlight resolution must be between 0x00FF and 0xFFFF" +#endif + +#define BREATHING_SCALE_FACTOR F_CPU / BACKLIGHT_RESOLUTION / 120 + +static inline void enable_pwm(void) { +#if BACKLIGHT_ON_STATE == 1 + TCCRxA |= _BV(COMxx1); +#else + TCCRxA |= _BV(COMxx1) | _BV(COMxx0); +#endif +} + +static inline void disable_pwm(void) { +#if BACKLIGHT_ON_STATE == 1 + TCCRxA &= ~(_BV(COMxx1)); +#else + TCCRxA &= ~(_BV(COMxx1) | _BV(COMxx0)); +#endif +} + +// See http://jared.geek.nz/2013/feb/linear-led-pwm +static uint16_t cie_lightness(uint16_t v) { + if (v <= (uint32_t)ICRx / 12) // If the value is less than or equal to ~8% of max + { + return v / 9; // Same as dividing by 900% + } else { + // In the next two lines values are bit-shifted. This is to avoid loosing decimals in integer math. + uint32_t y = (((uint32_t)v + (uint32_t)ICRx / 6) << 5) / ((uint32_t)ICRx / 6 + ICRx); // If above 8%, add ~16% of max, and normalize with (max + ~16% max) + uint32_t out = (y * y * y * ICRx) >> 15; // Cube it and undo the bit-shifting. (which is now three times as much due to the cubing) + + if (out > ICRx) // Avoid overflows + { + out = ICRx; + } + return (uint16_t)out; + } +} + +// rescale the supplied backlight value to be in terms of the value limit // range for val is [0..ICRx]. PWM pin is high while the timer count is below val. +static uint32_t rescale_limit_val(uint32_t val) { + return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256; +} + +// range for val is [0..ICRx]. PWM pin is high while the timer count is below val. +static inline void set_pwm(uint16_t val) { + OCRxx = val; +} + +void backlight_set(uint8_t level) { + if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS; + + if (level == 0) { + // Turn off PWM control on backlight pin + disable_pwm(); + } else { + // Turn on PWM control of backlight pin + enable_pwm(); + } + // Set the brightness + set_pwm(cie_lightness(rescale_limit_val(ICRx * (uint32_t)level / BACKLIGHT_LEVELS))); +} + +void backlight_task(void) {} + +#ifdef BACKLIGHT_BREATHING +# define BREATHING_NO_HALT 0 +# define BREATHING_HALT_OFF 1 +# define BREATHING_HALT_ON 2 +# define BREATHING_STEPS 128 + +static uint8_t breathing_halt = BREATHING_NO_HALT; +static uint16_t breathing_counter = 0; + +static uint8_t breath_scale_counter = 1; +/* Run the breathing loop at ~120Hz*/ +const uint8_t breathing_ISR_frequency = 120; + +bool is_breathing(void) { + return !!(TIMSKx & _BV(TOIEx)); +} + +# define breathing_interrupt_enable() \ + do { \ + TIMSKx |= _BV(TOIEx); \ + } while (0) +# define breathing_interrupt_disable() \ + do { \ + TIMSKx &= ~_BV(TOIEx); \ + } while (0) + +# define breathing_min() \ + do { \ + breathing_counter = 0; \ + } while (0) +# define breathing_max() \ + do { \ + breathing_counter = get_breathing_period() * breathing_ISR_frequency / 2; \ + } while (0) + +void breathing_enable(void) { + breathing_counter = 0; + breathing_halt = BREATHING_NO_HALT; + breathing_interrupt_enable(); +} + +void breathing_pulse(void) { + if (get_backlight_level() == 0) + breathing_min(); + else + breathing_max(); + breathing_halt = BREATHING_HALT_ON; + breathing_interrupt_enable(); +} + +void breathing_disable(void) { + breathing_interrupt_disable(); + // Restore backlight level + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) { + if (get_backlight_level() == 0) + breathing_halt = BREATHING_HALT_OFF; + else + breathing_halt = BREATHING_HALT_ON; +} + +/* To generate breathing curve in python: + * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] + */ +static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {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}; + +// Use this before the cie_lightness function. +static inline uint16_t scale_backlight(uint16_t v) { + return v / BACKLIGHT_LEVELS * get_backlight_level(); +} + +/* Assuming a 16MHz CPU clock and a timer that resets at 64k (ICR1), the following interrupt handler will run + * about 244 times per second. + * + * The following ISR runs at F_CPU/ISRx. With a 16MHz clock and default pwm resolution, that means 244Hz + */ +ISR(TIMERx_OVF_vect) { + // Only run this ISR at ~120 Hz + if (breath_scale_counter++ == BREATHING_SCALE_FACTOR) { + breath_scale_counter = 1; + } else { + return; + } + uint16_t interval = (uint16_t)get_breathing_period() * breathing_ISR_frequency / BREATHING_STEPS; + // resetting after one period to prevent ugly reset at overflow. + breathing_counter = (breathing_counter + 1) % (get_breathing_period() * breathing_ISR_frequency); + uint8_t index = breathing_counter / interval; + // limit index to max step value + if (index >= BREATHING_STEPS) { + index = BREATHING_STEPS - 1; + } + + if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) || ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1))) { + breathing_interrupt_disable(); + } + + // Set PWM to a brightnessvalue scaled to the configured resolution + set_pwm(cie_lightness(rescale_limit_val(scale_backlight((uint32_t)pgm_read_byte(&breathing_table[index]) * ICRx / 255)))); +} + +#endif // BACKLIGHT_BREATHING + +void backlight_init_ports(void) { + setPinOutput(BACKLIGHT_PIN); +#if BACKLIGHT_ON_STATE == 1 + writePinLow(BACKLIGHT_PIN); +#else + writePinHigh(BACKLIGHT_PIN); +#endif + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + /* + 14.8.3: + "In fast PWM mode, the compare units allow generation of PWM waveforms on the OCnx pins. Setting the COMnx1:0 bits to two will produce a non-inverted PWM [..]." + "In fast PWM mode the counter is incremented until the counter value matches either one of the fixed values 0x00FF, 0x01FF, or 0x03FF (WGMn3:0 = 5, 6, or 7), the value in ICRn (WGMn3:0 = 14), or the value in OCRnA (WGMn3:0 = 15)." + */ + TCCRxA = _BV(COMxx1) | _BV(WGM11); // = 0b00001010; + TCCRxB = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + ICRx = BACKLIGHT_RESOLUTION; + + backlight_init(); + +#ifdef BACKLIGHT_BREATHING + if (is_backlight_breathing()) { + breathing_enable(); + } +#endif +} diff --git a/platforms/avr/drivers/backlight_timer.c b/platforms/avr/drivers/backlight_timer.c new file mode 100644 index 00000000000..e1f4286557f --- /dev/null +++ b/platforms/avr/drivers/backlight_timer.c @@ -0,0 +1,267 @@ +#include "backlight.h" +#include "backlight_driver_common.h" +#include "progmem.h" +#include +#include + +// Maximum duty cycle limit +#ifndef BACKLIGHT_LIMIT_VAL +# define BACKLIGHT_LIMIT_VAL 255 +#endif + +#ifndef BACKLIGHT_PWM_TIMER +# define BACKLIGHT_PWM_TIMER 1 +#endif + +#if BACKLIGHT_PWM_TIMER == 1 +# define ICRx ICR1 +# define TCCRxA TCCR1A +# define TCCRxB TCCR1B +# define TIMERx_COMPA_vect TIMER1_COMPA_vect +# define TIMERx_OVF_vect TIMER1_OVF_vect +# if defined(__AVR_ATmega32A__) // This MCU has only one TIMSK register +# define TIMSKx TIMSK +# else +# define TIMSKx TIMSK1 +# endif +# define TOIEx TOIE1 + +# define OCIExA OCIE1A +# define OCRxx OCR1A +#elif BACKLIGHT_PWM_TIMER == 3 +# define ICRx ICR1 +# define TCCRxA TCCR3A +# define TCCRxB TCCR3B +# define TIMERx_COMPA_vect TIMER3_COMPA_vect +# define TIMERx_OVF_vect TIMER3_OVF_vect +# define TIMSKx TIMSK3 +# define TOIEx TOIE3 + +# define OCIExA OCIE3A +# define OCRxx OCR3A +#else +# error Invalid backlight PWM timer! +#endif + +#ifndef BACKLIGHT_RESOLUTION +# define BACKLIGHT_RESOLUTION 0xFFFFU +#endif + +#if (BACKLIGHT_RESOLUTION > 0xFFFF || BACKLIGHT_RESOLUTION < 0x00FF) +# error "Backlight resolution must be between 0x00FF and 0xFFFF" +#endif + +#define BREATHING_SCALE_FACTOR F_CPU / BACKLIGHT_RESOLUTION / 120 + +// The idea of software PWM assisted by hardware timers is the following +// we use the hardware timer in fast PWM mode like for hardware PWM, but +// instead of letting the Output Match Comparator control the led pin +// (which is not possible since the backlight is not wired to PWM pins on the +// CPU), we do the LED on/off by oursleves. +// The timer is setup to count up to 0xFFFF, and we set the Output Compare +// register to the current 16bits backlight level (after CIE correction). +// This means the CPU will trigger a compare match interrupt when the counter +// reaches the backlight level, where we turn off the LEDs, +// but also an overflow interrupt when the counter rolls back to 0, +// in which we're going to turn on the LEDs. +// The LED will then be on for OCRxx/0xFFFF time, adjusted every 244Hz, +// or F_CPU/BACKLIGHT_RESOLUTION if used. + +// Triggered when the counter reaches the OCRx value +ISR(TIMERx_COMPA_vect) { + backlight_pins_off(); +} + +// Triggered when the counter reaches the TOP value +// this one triggers at F_CPU/ICRx = 16MHz/65536 =~ 244 Hz +ISR(TIMERx_OVF_vect) { +#ifdef BACKLIGHT_BREATHING + if (is_breathing()) { + breathing_task(); + } +#endif + // for very small values of OCRxx (or backlight level) + // we can't guarantee this whole code won't execute + // at the same time as the compare match interrupt + // which means that we might turn on the leds while + // trying to turn them off, leading to flickering + // artifacts (especially while breathing, because breathing_task + // takes many computation cycles). + // so better not turn them on while the counter TOP is very low. + if (OCRxx > ICRx / 250 + 5) { + backlight_pins_on(); + } +} + +// See http://jared.geek.nz/2013/feb/linear-led-pwm +static uint16_t cie_lightness(uint16_t v) { + if (v <= (uint32_t)ICRx / 12) // If the value is less than or equal to ~8% of max + { + return v / 9; // Same as dividing by 900% + } else { + // In the next two lines values are bit-shifted. This is to avoid loosing decimals in integer math. + uint32_t y = (((uint32_t)v + (uint32_t)ICRx / 6) << 5) / ((uint32_t)ICRx / 6 + ICRx); // If above 8%, add ~16% of max, and normalize with (max + ~16% max) + uint32_t out = (y * y * y * ICRx) >> 15; // Cube it and undo the bit-shifting. (which is now three times as much due to the cubing) + + if (out > ICRx) // Avoid overflows + { + out = ICRx; + } + return (uint16_t)out; + } +} + +// rescale the supplied backlight value to be in terms of the value limit // range for val is [0..ICRx]. PWM pin is high while the timer count is below val. +static uint32_t rescale_limit_val(uint32_t val) { + return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256; +} + +// range for val is [0..ICRx]. PWM pin is high while the timer count is below val. +static inline void set_pwm(uint16_t val) { + OCRxx = val; +} + +void backlight_set(uint8_t level) { + if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS; + + if (level == 0) { + if (OCRxx) { + TIMSKx &= ~(_BV(OCIExA)); + TIMSKx &= ~(_BV(TOIEx)); + } + backlight_pins_off(); + } else { + if (!OCRxx) { + TIMSKx |= _BV(OCIExA); + TIMSKx |= _BV(TOIEx); + } + } + // Set the brightness + set_pwm(cie_lightness(rescale_limit_val(ICRx * (uint32_t)level / BACKLIGHT_LEVELS))); +} + +void backlight_task(void) {} + +#ifdef BACKLIGHT_BREATHING +# define BREATHING_NO_HALT 0 +# define BREATHING_HALT_OFF 1 +# define BREATHING_HALT_ON 2 +# define BREATHING_STEPS 128 + +static uint8_t breathing_halt = BREATHING_NO_HALT; +static uint16_t breathing_counter = 0; + +static uint8_t breath_scale_counter = 1; +/* Run the breathing loop at ~120Hz*/ +const uint8_t breathing_ISR_frequency = 120; + +static bool breathing = false; + +bool is_breathing(void) { + return breathing; +} + +# define breathing_interrupt_enable() \ + do { \ + breathing = true; \ + } while (0) +# define breathing_interrupt_disable() \ + do { \ + breathing = false; \ + } while (0) + +# define breathing_min() \ + do { \ + breathing_counter = 0; \ + } while (0) +# define breathing_max() \ + do { \ + breathing_counter = get_breathing_period() * breathing_ISR_frequency / 2; \ + } while (0) + +void breathing_enable(void) { + breathing_counter = 0; + breathing_halt = BREATHING_NO_HALT; + breathing_interrupt_enable(); +} + +void breathing_pulse(void) { + if (get_backlight_level() == 0) + breathing_min(); + else + breathing_max(); + breathing_halt = BREATHING_HALT_ON; + breathing_interrupt_enable(); +} + +void breathing_disable(void) { + breathing_interrupt_disable(); + // Restore backlight level + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) { + if (get_backlight_level() == 0) + breathing_halt = BREATHING_HALT_OFF; + else + breathing_halt = BREATHING_HALT_ON; +} + +/* To generate breathing curve in python: + * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] + */ +static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {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}; + +// Use this before the cie_lightness function. +static inline uint16_t scale_backlight(uint16_t v) { + return v / BACKLIGHT_LEVELS * get_backlight_level(); +} + +void breathing_task(void) { + // Only run this ISR at ~120 Hz + if (breath_scale_counter++ == BREATHING_SCALE_FACTOR) { + breath_scale_counter = 1; + } else { + return; + } + uint16_t interval = (uint16_t)get_breathing_period() * breathing_ISR_frequency / BREATHING_STEPS; + // resetting after one period to prevent ugly reset at overflow. + breathing_counter = (breathing_counter + 1) % (get_breathing_period() * breathing_ISR_frequency); + uint8_t index = breathing_counter / interval; + // limit index to max step value + if (index >= BREATHING_STEPS) { + index = BREATHING_STEPS - 1; + } + + if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) || ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1))) { + breathing_interrupt_disable(); + } + + // Set PWM to a brightnessvalue scaled to the configured resolution + set_pwm(cie_lightness(rescale_limit_val(scale_backlight((uint32_t)pgm_read_byte(&breathing_table[index]) * ICRx / 255)))); +} + +#endif // BACKLIGHT_BREATHING + +void backlight_init_ports(void) { + // Setup backlight pin as output and output to on state. + backlight_pins_init(); + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // TimerX setup, Fast PWM mode count to TOP set in ICRx + TCCRxA = _BV(WGM11); // = 0b00000010; + // clock select clk/1 + TCCRxB = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + ICRx = BACKLIGHT_RESOLUTION; + + backlight_init(); + +#ifdef BACKLIGHT_BREATHING + if (is_backlight_breathing()) { + breathing_enable(); + } +#endif +} diff --git a/platforms/avr/platform.mk b/platforms/avr/platform.mk index 39a11b28e47..09028d80af3 100644 --- a/platforms/avr/platform.mk +++ b/platforms/avr/platform.mk @@ -12,8 +12,7 @@ HEX = $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) BIN = -# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523 -ifneq ($(findstring 12.,$(shell avr-gcc --version 2>/dev/null)),) +ifeq ("$(shell echo "int main(){}" | $(CC) --param=min-pagesize=0 -x c - -o /dev/null 2>&1)", "") COMPILEFLAGS += --param=min-pagesize=0 endif diff --git a/platforms/avr/printf.mk b/platforms/avr/printf.mk index 060ad88c57c..c6490169d83 100644 --- a/platforms/avr/printf.mk +++ b/platforms/avr/printf.mk @@ -1,2 +1,2 @@ -TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/xprintf.S -TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c +SRC += $(PLATFORM_COMMON_DIR)/xprintf.S +SRC += $(PLATFORM_COMMON_DIR)/printf.c diff --git a/platforms/avr/sleep_led.c b/platforms/avr/sleep_led.c index b05431633ba..ad6253be93f 100644 --- a/platforms/avr/sleep_led.c +++ b/platforms/avr/sleep_led.c @@ -109,16 +109,19 @@ ISR(TIMERx_COMPA_vect) { uint8_t duration : 2; uint8_t index : 6; } pwm; - } timer = {.row = 0}; + } timer = {.row = 0}; + static led_t led_state = {0}; timer.row++; // LED on if (timer.pwm.count == 0) { - led_set(1 << USB_LED_CAPS_LOCK); + led_state.caps_lock = true; + led_set(led_state.raw); } // LED off if (timer.pwm.count == pgm_read_byte(&breathing_table[timer.pwm.index])) { - led_set(0); + led_state.caps_lock = false; + led_set(led_state.raw); } } diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h index ab293c0b404..8621807cbbc 100644 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h @@ -106,7 +106,6 @@ #define RP_USB_USE_USBD0 TRUE #define RP_USB_FORCE_VBUS_DETECT TRUE #define RP_USE_EXTERNAL_VBUS_DETECT FALSE -#define RP_USB_USE_SOF_INTR TRUE #define RP_USB_USE_ERROR_DATA_SEQ_INTR FALSE #endif /* MCUCONF_H */ diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h index b91d7624199..902f9b5005b 100644 --- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h @@ -106,7 +106,6 @@ #define RP_USB_USE_USBD0 TRUE #define RP_USB_FORCE_VBUS_DETECT TRUE #define RP_USE_EXTERNAL_VBUS_DETECT FALSE -#define RP_USB_USE_SOF_INTR TRUE #define RP_USB_USE_ERROR_DATA_SEQ_INTR FALSE #endif /* MCUCONF_H */ diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_H723XG/board/board.mk new file mode 100644 index 00000000000..3511f752a91 --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/board/board.mk @@ -0,0 +1,12 @@ +# List of all the board related files. +BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_H723ZG/board.c + +# Extra files +BOARDSRC += $(BOARD_PATH)/board/extra.c + +# Required include directories +BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_H723ZG + +# Shared variables +ALLCSRC += $(BOARDSRC) +ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/board/extra.c b/platforms/chibios/boards/GENERIC_STM32_H723XG/board/extra.c new file mode 100755 index 00000000000..fce0b4abad1 --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/board/extra.c @@ -0,0 +1,36 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include +#define BOOTLOADER_MAGIC 0xDEADBEEF + +//////////////////////////////////////////////////////////////////////////////// +// Different signalling for bootloader entry +// - RAM is cleared on reset, so we can't use the usual __ram0_end__ symbol. +// - Use backup registers in the RTC peripheral to store the magic value instead. + +static inline void enable_backup_register_access(void) { + PWR->CR1 |= PWR_CR1_DBP; +} + +static inline void disable_backup_register_access(void) { + PWR->CR1 &= ~PWR_CR1_DBP; +} + +void bootloader_marker_enable(void) { + enable_backup_register_access(); + RTC->BKP0R = BOOTLOADER_MAGIC; + disable_backup_register_access(); +} + +bool bootloader_marker_active(void) { + enable_backup_register_access(); + bool ret = RTC->BKP0R == BOOTLOADER_MAGIC; + disable_backup_register_access(); + return ret; +} + +void bootloader_marker_disable(void) { + enable_backup_register_access(); + RTC->BKP0R = 0; + disable_backup_register_access(); +} diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/config.h new file mode 100644 index 00000000000..f43df29b54a --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define USB_DRIVER USBD2 + +#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP +# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE +#endif diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h new file mode 100644 index 00000000000..0239ec5273b --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h @@ -0,0 +1,511 @@ +/* + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + + 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 + + http://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. +*/ + +#ifndef MCUCONF_H +#define MCUCONF_H + +/* + * STM32H723/33/25/35 drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32H7xx_MCUCONF +#define STM32H723_MCUCONF +#define STM32H733_MCUCONF +#define STM32H725_MCUCONF +#define STM32H735_MCUCONF + +/* + * General settings. + */ +#define STM32_NO_INIT FALSE + +/* + * Memory attributes settings. + */ +#define STM32_NOCACHE_ENABLE FALSE +#define STM32_NOCACHE_MPU_REGION MPU_REGION_6 +#define STM32_NOCACHE_RBAR 0x24000000U +#define STM32_NOCACHE_RASR MPU_RASR_SIZE_16K + +/* + * PWR system settings. + * Reading STM32 Reference Manual is required, settings in PWR_CR3 are + * very critical. + * Register constants are taken from the ST header. + */ +#define STM32_VOS STM32_VOS_SCALE0 +#define STM32_PWR_CR1 (PWR_CR1_SVOS_1 | PWR_CR1_SVOS_0) +#define STM32_PWR_CR2 (PWR_CR2_BREN) +#define STM32_PWR_CR3 (PWR_CR3_LDOEN | PWR_CR3_USB33DEN) +#define STM32_PWR_CPUCR 0 + +/* + * Clock tree static settings. + * Reading STM32 Reference Manual is required. + */ +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED FALSE +#define STM32_CSI_ENABLED FALSE +#define STM32_HSI48_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_HSIDIV STM32_HSIDIV_DIV1 + +/* + * PLLs static settings. + * Reading STM32 Reference Manual is required. + */ +#define STM32_PLLSRC STM32_PLLSRC_HSE_CK +#define STM32_PLLCFGR_MASK ~0 +#define STM32_PLL1_ENABLED TRUE +#define STM32_PLL1_P_ENABLED TRUE +#define STM32_PLL1_Q_ENABLED TRUE +#define STM32_PLL1_R_ENABLED TRUE +#define STM32_PLL1_DIVM_VALUE 4 +#define STM32_PLL1_DIVN_VALUE 275 +#define STM32_PLL1_FRACN_VALUE 0 +#define STM32_PLL1_DIVP_VALUE 1 +#define STM32_PLL1_DIVQ_VALUE 10 +#define STM32_PLL1_DIVR_VALUE 4 +#define STM32_PLL2_ENABLED TRUE +#define STM32_PLL2_P_ENABLED TRUE +#define STM32_PLL2_Q_ENABLED TRUE +#define STM32_PLL2_R_ENABLED TRUE +#define STM32_PLL2_DIVM_VALUE 4 +#define STM32_PLL2_DIVN_VALUE 400 +#define STM32_PLL2_FRACN_VALUE 0 +#define STM32_PLL2_DIVP_VALUE 40 +#define STM32_PLL2_DIVQ_VALUE 8 +#define STM32_PLL2_DIVR_VALUE 8 +#define STM32_PLL3_ENABLED TRUE +#define STM32_PLL3_P_ENABLED TRUE +#define STM32_PLL3_Q_ENABLED TRUE +#define STM32_PLL3_R_ENABLED TRUE +#define STM32_PLL3_DIVM_VALUE 4 +#define STM32_PLL3_DIVN_VALUE 240 +#define STM32_PLL3_FRACN_VALUE 0 +#define STM32_PLL3_DIVP_VALUE 10 +#define STM32_PLL3_DIVQ_VALUE 10 +#define STM32_PLL3_DIVR_VALUE 10 + +/* + * Core clocks dynamic settings (can be changed at runtime). + * Reading STM32 Reference Manual is required. + */ +#define STM32_SW STM32_SW_PLL1_P_CK +#define STM32_RTCSEL STM32_RTCSEL_LSI_CK +#define STM32_D1CPRE STM32_D1CPRE_DIV1 +#define STM32_D1HPRE STM32_D1HPRE_DIV2 +#define STM32_D1PPRE3 STM32_D1PPRE3_DIV2 +#define STM32_D2PPRE1 STM32_D2PPRE1_DIV2 +#define STM32_D2PPRE2 STM32_D2PPRE2_DIV2 +#define STM32_D3PPRE4 STM32_D3PPRE4_DIV2 + +/* + * Peripherals clocks static settings. + * Reading STM32 Reference Manual is required. + */ +#define STM32_MCO1SEL STM32_MCO1SEL_HSI_CK +#define STM32_MCO1PRE_VALUE 4 +#define STM32_MCO2SEL STM32_MCO2SEL_SYS_CK +#define STM32_MCO2PRE_VALUE 4 +#define STM32_TIMPRE_ENABLE TRUE +#define STM32_HRTIMSEL 0 +#define STM32_STOPKERWUCK 0 +#define STM32_STOPWUCK 0 +#define STM32_RTCPRE_VALUE 8 +#define STM32_CKPERSEL STM32_CKPERSEL_HSE_CK +#define STM32_SDMMCSEL STM32_SDMMCSEL_PLL1_Q_CK +#define STM32_OCTOSPISEL STM32_OCTOSPISEL_HCLK +#define STM32_FMCSEL STM32_FMCSEL_HCLK +#define STM32_SWPSEL STM32_SWPSEL_PCLK1 +#define STM32_FDCANSEL STM32_FDCANSEL_HSE_CK +#define STM32_DFSDM1SEL STM32_DFSDM1SEL_PCLK2 +#define STM32_SPDIFSEL STM32_SPDIFSEL_PLL1_Q_CK +#define STM32_SPI45SEL STM32_SPI45SEL_PCLK2 +#define STM32_SPI123SEL STM32_SPI123SEL_PLL1_Q_CK +#define STM32_SAI1SEL STM32_SAI1SEL_PLL1_Q_CK +#define STM32_LPTIM1SEL STM32_LPTIM1SEL_PCLK1 +#define STM32_CECSEL STM32_CECSEL_LSE_CK +#define STM32_USBSEL STM32_USBSEL_PLL3_Q_CK +#define STM32_I2C1235SEL STM32_I2C1235SEL_PCLK1 +#define STM32_RNGSEL STM32_RNGSEL_PLL1_Q_CK +#define STM32_USART16910SEL STM32_USART16910SEL_PCLK2 +#define STM32_USART234578SEL STM32_USART234578SEL_PCLK1 +#define STM32_SPI6SEL STM32_SPI6SEL_PCLK4 +#define STM32_SAI4BSEL STM32_SAI4BSEL_PLL1_Q_CK +#define STM32_SAI4ASEL STM32_SAI4ASEL_PLL1_Q_CK +#define STM32_ADCSEL STM32_ADCSEL_PLL2_P_CK +#define STM32_LPTIM345SEL STM32_LPTIM345SEL_PCLK4 +#define STM32_LPTIM2SEL STM32_LPTIM2SEL_PCLK4 +#define STM32_I2C4SEL STM32_I2C4SEL_PCLK4 +#define STM32_LPUART1SEL STM32_LPUART1SEL_PCLK4 + +/* + * IRQ system settings. + */ +#define STM32_IRQ_EXTI0_PRIORITY 6 +#define STM32_IRQ_EXTI1_PRIORITY 6 +#define STM32_IRQ_EXTI2_PRIORITY 6 +#define STM32_IRQ_EXTI3_PRIORITY 6 +#define STM32_IRQ_EXTI4_PRIORITY 6 +#define STM32_IRQ_EXTI5_9_PRIORITY 6 +#define STM32_IRQ_EXTI10_15_PRIORITY 6 +#define STM32_IRQ_EXTI16_PRIORITY 6 +#define STM32_IRQ_EXTI17_PRIORITY 6 +#define STM32_IRQ_EXTI18_PRIORITY 6 +#define STM32_IRQ_EXTI19_PRIORITY 6 +#define STM32_IRQ_EXTI20_21_PRIORITY 6 + +#define STM32_IRQ_FDCAN1_PRIORITY 10 +#define STM32_IRQ_FDCAN2_PRIORITY 10 + +#define STM32_IRQ_MDMA_PRIORITY 9 + +#define STM32_IRQ_OCTOSPI1_PRIORITY 10 +#define STM32_IRQ_OCTOSPI2_PRIORITY 10 + +#define STM32_IRQ_SDMMC1_PRIORITY 9 +#define STM32_IRQ_SDMMC2_PRIORITY 9 + +#define STM32_IRQ_TIM1_UP_PRIORITY 7 +#define STM32_IRQ_TIM1_CC_PRIORITY 7 +#define STM32_IRQ_TIM2_PRIORITY 7 +#define STM32_IRQ_TIM3_PRIORITY 7 +#define STM32_IRQ_TIM4_PRIORITY 7 +#define STM32_IRQ_TIM5_PRIORITY 7 +#define STM32_IRQ_TIM6_PRIORITY 7 +#define STM32_IRQ_TIM7_PRIORITY 7 +#define STM32_IRQ_TIM8_BRK_TIM12_PRIORITY 7 +#define STM32_IRQ_TIM8_UP_TIM13_PRIORITY 7 +#define STM32_IRQ_TIM8_TRGCO_TIM14_PRIORITY 7 +#define STM32_IRQ_TIM8_CC_PRIORITY 7 +#define STM32_IRQ_TIM15_PRIORITY 7 +#define STM32_IRQ_TIM16_PRIORITY 7 +#define STM32_IRQ_TIM17_PRIORITY 7 + +#define STM32_IRQ_USART1_PRIORITY 12 +#define STM32_IRQ_USART2_PRIORITY 12 +#define STM32_IRQ_USART3_PRIORITY 12 +#define STM32_IRQ_UART4_PRIORITY 12 +#define STM32_IRQ_UART5_PRIORITY 12 +#define STM32_IRQ_USART6_PRIORITY 12 +#define STM32_IRQ_UART7_PRIORITY 12 +#define STM32_IRQ_UART8_PRIORITY 12 +#define STM32_IRQ_UART9_PRIORITY 12 +#define STM32_IRQ_USART10_PRIORITY 12 +#define STM32_IRQ_LPUART1_PRIORITY 12 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_DUAL_MODE FALSE +#define STM32_ADC_SAMPLES_SIZE 16 +#define STM32_ADC_USE_ADC12 FALSE +#define STM32_ADC_ADC12_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_ADC_ADC12_DMA_PRIORITY 2 +#define STM32_ADC_ADC12_IRQ_PRIORITY 5 +#define STM32_ADC_ADC12_CLOCK_MODE ADC_CCR_CKMODE_AHB_DIV4 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_FDCAN1 FALSE +#define STM32_CAN_USE_FDCAN2 FALSE + +/* + * DAC driver system settings. + */ +#define STM32_DAC_DUAL_MODE FALSE +#define STM32_DAC_USE_DAC1_CH1 FALSE +#define STM32_DAC_USE_DAC1_CH2 FALSE +#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10 +#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10 +#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2 +#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2 +#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID_ANY + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM4 FALSE +#define STM32_GPT_USE_TIM5 FALSE +#define STM32_GPT_USE_TIM6 FALSE +#define STM32_GPT_USE_TIM7 FALSE +#define STM32_GPT_USE_TIM8 FALSE +#define STM32_GPT_USE_TIM12 FALSE +#define STM32_GPT_USE_TIM13 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_USE_TIM15 FALSE +#define STM32_GPT_USE_TIM16 FALSE +#define STM32_GPT_USE_TIM17 FALSE + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_USE_I2C3 FALSE +#define STM32_I2C_USE_I2C4 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C4_RX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_I2C_I2C4_TX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C4_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_PRIORITY 3 +#define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_I2C3_DMA_PRIORITY 3 +#define STM32_I2C_I2C4_DMA_PRIORITY 3 +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_USE_TIM4 FALSE +#define STM32_ICU_USE_TIM5 FALSE +#define STM32_ICU_USE_TIM8 FALSE +#define STM32_ICU_USE_TIM12 FALSE +#define STM32_ICU_USE_TIM13 FALSE +#define STM32_ICU_USE_TIM14 FALSE +#define STM32_ICU_USE_TIM15 FALSE +#define STM32_ICU_USE_TIM16 FALSE +#define STM32_ICU_USE_TIM17 FALSE + +/* + * MAC driver system settings. + */ +#define STM32_MAC_TRANSMIT_BUFFERS 2 +#define STM32_MAC_RECEIVE_BUFFERS 4 +#define STM32_MAC_BUFFERS_SIZE 1522 +#define STM32_MAC_PHY_TIMEOUT 100 +#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE +#define STM32_MAC_ETH1_IRQ_PRIORITY 13 +#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_USE_TIM4 FALSE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM8 FALSE +#define STM32_PWM_USE_TIM12 FALSE +#define STM32_PWM_USE_TIM13 FALSE +#define STM32_PWM_USE_TIM14 FALSE +#define STM32_PWM_USE_TIM15 FALSE +#define STM32_PWM_USE_TIM16 FALSE +#define STM32_PWM_USE_TIM17 FALSE + +/* + * RTC driver system settings. + */ +#define STM32_RTC_PRESA_VALUE 32 +#define STM32_RTC_PRESS_VALUE 1024 +#define STM32_RTC_CR_INIT 0 +#define STM32_RTC_TAMPCR_INIT 0 + +/* + * SDC driver system settings. + */ +#define STM32_SDC_USE_SDMMC1 FALSE +#define STM32_SDC_USE_SDMMC2 FALSE +#define STM32_SDC_SDMMC_UNALIGNED_SUPPORT TRUE +#define STM32_SDC_SDMMC_WRITE_TIMEOUT 10000 +#define STM32_SDC_SDMMC_READ_TIMEOUT 10000 +#define STM32_SDC_SDMMC_CLOCK_DELAY 10 +#define STM32_SDC_SDMMC_PWRSAV TRUE + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_SERIAL_USE_UART4 FALSE +#define STM32_SERIAL_USE_UART5 FALSE +#define STM32_SERIAL_USE_USART6 FALSE +#define STM32_SERIAL_USE_UART7 FALSE +#define STM32_SERIAL_USE_UART8 FALSE +#define STM32_SERIAL_USE_UART9 FALSE +#define STM32_SERIAL_USE_USART10 FALSE +#define STM32_SERIAL_USE_LPUART1 FALSE + +/* + * SIO driver system settings. + */ +#define STM32_SIO_USE_USART1 FALSE +#define STM32_SIO_USE_USART2 FALSE +#define STM32_SIO_USE_USART3 FALSE +#define STM32_SIO_USE_UART4 FALSE +#define STM32_SIO_USE_UART5 FALSE +#define STM32_SIO_USE_USART6 FALSE +#define STM32_SIO_USE_UART7 FALSE +#define STM32_SIO_USE_UART8 FALSE +#define STM32_SIO_USE_UART9 FALSE +#define STM32_SIO_USE_USART10 FALSE +#define STM32_SIO_USE_LPUART1 FALSE + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_USE_SPI4 FALSE +#define STM32_SPI_USE_SPI5 FALSE +#define STM32_SPI_USE_SPI6 FALSE +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI6_RX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_SPI_SPI6_TX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI4_DMA_PRIORITY 1 +#define STM32_SPI_SPI5_DMA_PRIORITY 1 +#define STM32_SPI_SPI6_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_SPI4_IRQ_PRIORITY 10 +#define STM32_SPI_SPI5_IRQ_PRIORITY 10 +#define STM32_SPI_SPI6_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 8 +#define STM32_ST_USE_TIMER 2 + +/* + * TRNG driver system settings. + */ +#define STM32_TRNG_USE_RNG1 FALSE + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART3 FALSE +#define STM32_UART_USE_UART4 FALSE +#define STM32_UART_USE_UART5 FALSE +#define STM32_UART_USE_USART6 FALSE +#define STM32_UART_USE_UART7 FALSE +#define STM32_UART_USE_UART8 FALSE +#define STM32_UART_USE_UART9 FALSE +#define STM32_UART_USE_USART10 FALSE +#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART7_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART7_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART8_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART8_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART9_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART9_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART10_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART10_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART3_DMA_PRIORITY 0 +#define STM32_UART_UART4_DMA_PRIORITY 0 +#define STM32_UART_UART5_DMA_PRIORITY 0 +#define STM32_UART_USART6_DMA_PRIORITY 0 +#define STM32_UART_UART7_DMA_PRIORITY 0 +#define STM32_UART_UART8_DMA_PRIORITY 0 +#define STM32_UART_UART9_DMA_PRIORITY 0 +#define STM32_UART_USART10_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_OTG2 TRUE +#define STM32_USB_OTG2_IRQ_PRIORITY 14 +#define STM32_USB_OTG2_RX_FIFO_SIZE 1024 +#define STM32_USB_HOST_WAKEUP_DURATION 2 + +/* + * WDG driver system settings. + */ +#define STM32_WDG_USE_IWDG FALSE + +/* + * WSPI driver system settings. + */ +#define STM32_WSPI_USE_OCTOSPI1 FALSE +#define STM32_WSPI_USE_OCTOSPI2 FALSE +#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1 +#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1 +#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE +#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE +#define STM32_WSPI_OCTOSPI1_DHQC FALSE +#define STM32_WSPI_OCTOSPI2_DHQC FALSE +#define STM32_WSPI_OCTOSPI1_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY +#define STM32_WSPI_OCTOSPI2_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY +#define STM32_WSPI_OCTOSPI1_MDMA_PRIORITY 1 +#define STM32_WSPI_OCTOSPI2_MDMA_PRIORITY 1 +#define STM32_WSPI_OCTOSPI1_MDMA_IRQ_PRIORITY 10 +#define STM32_WSPI_OCTOSPI2_MDMA_IRQ_PRIORITY 10 +#define STM32_WSPI_DMA_ERROR_HOOK(wspip) osalSysHalt("MDMA failure") + +#endif /* MCUCONF_H */ diff --git a/platforms/chibios/boards/IC_TEENSY_3_1/board/board.c b/platforms/chibios/boards/IC_TEENSY_3_1/board/board.c index 424e0c975b4..189d90952d8 100644 --- a/platforms/chibios/boards/IC_TEENSY_3_1/board/board.c +++ b/platforms/chibios/boards/IC_TEENSY_3_1/board/board.c @@ -147,5 +147,5 @@ void boardInit(void) {} void restart_usb_driver(USBDriver *usbp) { - // Do nothing. Restarting the USB driver on these boards breaks it. + // Do nothing. Restarting the USB driver on these boards breaks it. } diff --git a/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h b/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h index eb51e251718..0c2ef592d6f 100644 --- a/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h +++ b/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h @@ -106,7 +106,6 @@ #define RP_USB_USE_USBD0 TRUE #define RP_USB_FORCE_VBUS_DETECT TRUE #define RP_USE_EXTERNAL_VBUS_DETECT FALSE -#define RP_USB_USE_SOF_INTR TRUE #define RP_USB_USE_ERROR_DATA_SEQ_INTR FALSE #endif /* MCUCONF_H */ diff --git a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h index f19f08e93c0..493dcf64342 100644 --- a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h +++ b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h @@ -106,7 +106,6 @@ #define RP_USB_USE_USBD0 TRUE #define RP_USB_FORCE_VBUS_DETECT TRUE #define RP_USE_EXTERNAL_VBUS_DETECT FALSE -#define RP_USB_USE_SOF_INTR TRUE #define RP_USB_USE_ERROR_DATA_SEQ_INTR FALSE #endif /* MCUCONF_H */ diff --git a/platforms/chibios/bootloaders/rp2040.c b/platforms/chibios/bootloaders/rp2040.c index bedc00f32ea..524d13e636f 100644 --- a/platforms/chibios/bootloaders/rp2040.c +++ b/platforms/chibios/bootloaders/rp2040.c @@ -1,9 +1,10 @@ // Copyright 2022 Stefan Kerkmann // SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" #include "hal.h" #include "bootloader.h" +#include "gpio.h" +#include "wait.h" #include "pico/bootrom.h" #if !defined(RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED) diff --git a/platforms/chibios/bootloaders/stm32_dfu.c b/platforms/chibios/bootloaders/stm32_dfu.c index f845bf21e92..fba3086e7af 100644 --- a/platforms/chibios/bootloaders/stm32_dfu.c +++ b/platforms/chibios/bootloaders/stm32_dfu.c @@ -1,4 +1,4 @@ -/* Copyright 2021 QMK +/* Copyright 2021-2023 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,12 +15,17 @@ */ #include "bootloader.h" +#include "util.h" #include #include #include "wait.h" -extern uint32_t __ram0_end__; +#ifndef STM32_BOOTLOADER_RAM_SYMBOL +# define STM32_BOOTLOADER_RAM_SYMBOL __ram0_end__ +#endif + +extern uint32_t STM32_BOOTLOADER_RAM_SYMBOL; #ifndef STM32_BOOTLOADER_DUAL_BANK # define STM32_BOOTLOADER_DUAL_BANK FALSE @@ -72,10 +77,25 @@ void enter_bootloader_mode_if_requested(void) {} /* This code should be checked whether it runs correctly on platforms */ # define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0)) # define BOOTLOADER_MAGIC 0xDEADBEEF -# define MAGIC_ADDR (unsigned long *)(SYMVAL(__ram0_end__) - 4) +# define MAGIC_ADDR (unsigned long *)(SYMVAL(STM32_BOOTLOADER_RAM_SYMBOL) - 4) + +__attribute__((weak)) void bootloader_marker_enable(void) { + uint32_t *marker = (uint32_t *)MAGIC_ADDR; + *marker = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader +} + +__attribute__((weak)) bool bootloader_marker_active(void) { + const uint32_t *marker = (const uint32_t *)MAGIC_ADDR; + return (*marker == BOOTLOADER_MAGIC) ? true : false; +} + +__attribute__((weak)) void bootloader_marker_disable(void) { + uint32_t *marker = (uint32_t *)MAGIC_ADDR; + *marker = 0; +} __attribute__((weak)) void bootloader_jump(void) { - *MAGIC_ADDR = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader + bootloader_marker_enable(); NVIC_SystemReset(); } @@ -84,18 +104,44 @@ __attribute__((weak)) void mcu_reset(void) { } void enter_bootloader_mode_if_requested(void) { - unsigned long *check = MAGIC_ADDR; - if (*check == BOOTLOADER_MAGIC) { - *check = 0; + if (bootloader_marker_active()) { + bootloader_marker_disable(); + + struct system_memory_vector_t { + uint32_t stack_top; + void (*entrypoint)(void); + }; + const struct system_memory_vector_t *bootloader = (const struct system_memory_vector_t *)(STM32_BOOTLOADER_ADDRESS); + + __disable_irq(); + +# if defined(QMK_MCU_ARCH_CORTEX_M7) + SCB_DisableDCache(); + SCB_DisableICache(); +# endif + +# if defined(__MPU_PRESENT) && (__MPU_PRESENT == 1U) + ARM_MPU_Disable(); +# endif + + SysTick->CTRL = 0; + SysTick->VAL = 0; + SysTick->LOAD = 0; + + // Clear interrupt enable and interrupt pending registers + for (int i = 0; i < ARRAY_SIZE(NVIC->ICER); i++) { + NVIC->ICER[i] = 0xFFFFFFFF; + NVIC->ICPR[i] = 0xFFFFFFFF; + } + __set_CONTROL(0); - __set_MSP(*(__IO uint32_t *)STM32_BOOTLOADER_ADDRESS); + __set_MSP(bootloader->stack_top); __enable_irq(); - typedef void (*BootJump_t)(void); - BootJump_t boot_jump = *(BootJump_t *)(STM32_BOOTLOADER_ADDRESS + 4); - boot_jump(); - while (1) - ; + // Jump to bootloader + bootloader->entrypoint(); + while (true) { + } } } #endif diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 52632a051ed..1f8a7842fe2 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -71,7 +71,11 @@ // STM32 compatibility #if defined(MCU_STM32) -# define CPU_CLOCK STM32_SYSCLK +# if defined(STM32_CORE_CK) +# define CPU_CLOCK STM32_CORE_CK +# else +# define CPU_CLOCK STM32_SYSCLK +# endif # if defined(STM32F1XX) # define USE_GPIOV1 diff --git a/platforms/chibios/config.h b/platforms/chibios/config.h new file mode 100644 index 00000000000..006415a5dc5 --- /dev/null +++ b/platforms/chibios/config.h @@ -0,0 +1,7 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#ifndef CORTEX_ENABLE_WFI_IDLE +# define CORTEX_ENABLE_WFI_IDLE TRUE +#endif // CORTEX_ENABLE_WFI_IDLE diff --git a/platforms/chibios/drivers/audio_dac_additive.c b/platforms/chibios/drivers/audio_dac_additive.c index d29147ca3b9..22e4fa2608f 100644 --- a/platforms/chibios/drivers/audio_dac_additive.c +++ b/platforms/chibios/drivers/audio_dac_additive.c @@ -16,8 +16,9 @@ */ #include "audio.h" -#include -#include +#include "gpio.h" +#include +#include "util.h" // Need to disable GCC's "tautological-compare" warning for this file, as it causes issues when running `KEEP_INTERMEDIATES=yes`. Corresponding pop at the end of the file. #pragma GCC diagnostic push @@ -65,7 +66,7 @@ static const dacsample_t dac_buffer_triangle[AUDIO_DAC_BUFFER_SIZE] = { #endif // AUDIO_DAC_SAMPLE_WAVEFORM_TRIANGLE #ifdef AUDIO_DAC_SAMPLE_WAVEFORM_SQUARE static const dacsample_t dac_buffer_square[AUDIO_DAC_BUFFER_SIZE] = { - [0 ... AUDIO_DAC_BUFFER_SIZE / 2 - 1] = 0, // first and + [0 ... AUDIO_DAC_BUFFER_SIZE / 2 - 1] = AUDIO_DAC_OFF_VALUE, // first and [AUDIO_DAC_BUFFER_SIZE / 2 ... AUDIO_DAC_BUFFER_SIZE - 1] = AUDIO_DAC_SAMPLE_MAX, // second half }; #endif // AUDIO_DAC_SAMPLE_WAVEFORM_SQUARE @@ -88,7 +89,7 @@ static dacsample_t dac_buffer_empty[AUDIO_DAC_BUFFER_SIZE] = {AUDIO_DAC_OFF_VALU /* keep track of the sample position for for each frequency */ static float dac_if[AUDIO_MAX_SIMULTANEOUS_TONES] = {0.0}; -static float active_tones_snapshot[AUDIO_MAX_SIMULTANEOUS_TONES] = {0, 0}; +static float active_tones_snapshot[AUDIO_MAX_SIMULTANEOUS_TONES] = {0}; static uint8_t active_tones_snapshot_length = 0; typedef enum { @@ -134,7 +135,7 @@ __attribute__((weak)) uint16_t dac_value_generate(void) { * timer runs with 3*AUDIO_DAC_SAMPLE_RATE; and the DAC callback * is called twice per conversion.*/ - dac_if[i] = fmod(dac_if[i], AUDIO_DAC_BUFFER_SIZE); + dac_if[i] = fmodf(dac_if[i], AUDIO_DAC_BUFFER_SIZE); // Wavetable generation/lookup uint16_t dac_i = (uint16_t)dac_if[i]; diff --git a/platforms/chibios/drivers/audio_dac_basic.c b/platforms/chibios/drivers/audio_dac_basic.c index 4ea23a2158e..9a3f3fea1f3 100644 --- a/platforms/chibios/drivers/audio_dac_basic.c +++ b/platforms/chibios/drivers/audio_dac_basic.c @@ -16,8 +16,7 @@ */ #include "audio.h" -#include "ch.h" -#include "hal.h" +#include "gpio.h" // Need to disable GCC's "tautological-compare" warning for this file, as it causes issues when running `KEEP_INTERMEDIATES=yes`. Corresponding pop at the end of the file. #pragma GCC diagnostic push diff --git a/platforms/chibios/drivers/audio_pwm_hardware.c b/platforms/chibios/drivers/audio_pwm_hardware.c index 54dac466058..40d891326fd 100644 --- a/platforms/chibios/drivers/audio_pwm_hardware.c +++ b/platforms/chibios/drivers/audio_pwm_hardware.c @@ -12,8 +12,7 @@ // function. #include "audio.h" -#include "ch.h" -#include "hal.h" +#include "gpio.h" #if !defined(AUDIO_PIN) # error "Audio feature enabled, but no pin selected - see docs/feature_audio under the ARM PWM settings" diff --git a/platforms/chibios/drivers/audio_pwm_software.c b/platforms/chibios/drivers/audio_pwm_software.c index e01f86ea526..663a9eca165 100644 --- a/platforms/chibios/drivers/audio_pwm_software.c +++ b/platforms/chibios/drivers/audio_pwm_software.c @@ -25,8 +25,7 @@ this driver uses the chibios-PWM system to produce a square-wave on any given ou */ #include "audio.h" -#include "ch.h" -#include "hal.h" +#include "gpio.h" #if !defined(AUDIO_PIN) # error "Audio feature enabled, but no pin selected - see docs/feature_audio under the ARM PWM settings" diff --git a/platforms/chibios/drivers/backlight_pwm.c b/platforms/chibios/drivers/backlight_pwm.c new file mode 100644 index 00000000000..01e6f71307a --- /dev/null +++ b/platforms/chibios/drivers/backlight_pwm.c @@ -0,0 +1,173 @@ +#include "backlight.h" +#include "gpio.h" +#include "wait.h" +#include + +// Maximum duty cycle limit +#ifndef BACKLIGHT_LIMIT_VAL +# define BACKLIGHT_LIMIT_VAL 255 +#endif + +#ifndef BACKLIGHT_PAL_MODE +# if defined(USE_GPIOV1) +# define BACKLIGHT_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +// GPIOV2 && GPIOV3 +# define BACKLIGHT_PAL_MODE 2 +# endif +#endif + +// GENERIC +#ifndef BACKLIGHT_PWM_DRIVER +# define BACKLIGHT_PWM_DRIVER PWMD4 +#endif +#ifndef BACKLIGHT_PWM_CHANNEL +# define BACKLIGHT_PWM_CHANNEL 3 +#endif + +// Support for pins which are on TIM1_CH1N - requires STM32_PWM_USE_ADVANCED +#ifdef BACKLIGHT_PWM_COMPLEMENTARY_OUTPUT +# if BACKLIGHT_ON_STATE == 1 +# define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_LOW; +# else +# define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_HIGH; +# endif +#else +# if BACKLIGHT_ON_STATE == 1 +# define PWM_OUTPUT_MODE PWM_OUTPUT_ACTIVE_HIGH; +# else +# define PWM_OUTPUT_MODE PWM_OUTPUT_ACTIVE_LOW; +# endif +#endif + +#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) { + if (v <= 5243) // if below 8% of max + return v / 9; // same as dividing by 900% + else { + uint32_t y = (((uint32_t)v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare + // 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 + return 0xFFFFU; + } else { + return (uint16_t)y; + } + } +} + +static uint32_t rescale_limit_val(uint32_t val) { + // rescale the supplied backlight value to be in terms of the value limit + return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256; +} + +void backlight_init_ports(void) { +#ifdef USE_GPIOV1 + palSetPadMode(PAL_PORT(BACKLIGHT_PIN), PAL_PAD(BACKLIGHT_PIN), BACKLIGHT_PAL_MODE); +#else + palSetPadMode(PAL_PORT(BACKLIGHT_PIN), PAL_PAD(BACKLIGHT_PIN), PAL_MODE_ALTERNATE(BACKLIGHT_PAL_MODE)); +#endif + + pwmCFG.channels[BACKLIGHT_PWM_CHANNEL - 1].mode = PWM_OUTPUT_MODE; + pwmStart(&BACKLIGHT_PWM_DRIVER, &pwmCFG); + + backlight_set(get_backlight_level()); + +#ifdef BACKLIGHT_BREATHING + chVTObjectInit(&breathing_vt); + if (is_backlight_breathing()) { + breathing_enable(); + } +#endif +} + +void backlight_set(uint8_t level) { + if (level > BACKLIGHT_LEVELS) { + level = BACKLIGHT_LEVELS; + } + + if (level == 0) { + // Turn backlight off + pwmDisableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1); + } else { + // Turn backlight on + uint32_t duty = (uint32_t)(cie_lightness(rescale_limit_val(0xFFFF * (uint32_t)level / BACKLIGHT_LEVELS))); + pwmEnableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty)); + } +} + +void backlight_task(void) {} + +#ifdef BACKLIGHT_BREATHING + +# define BREATHING_STEPS 128 + +/* To generate breathing curve in python: + * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] + */ +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}; + +static void breathing_callback(virtual_timer_t *vtp, void *p); + +bool is_breathing(void) { + return chVTIsArmed(&breathing_vt); +} + +void breathing_enable(void) { + /* Update frequency is 256Hz -> 3906us intervals */ + chVTSetContinuous(&breathing_vt, TIME_US2I(3906), breathing_callback, NULL); +} + +void breathing_disable(void) { + chVTReset(&breathing_vt); + + // Restore backlight level + backlight_set(get_backlight_level()); +} + +// Use this before the cie_lightness function. +static inline uint16_t scale_backlight(uint16_t v) { + return v / BACKLIGHT_LEVELS * get_backlight_level(); +} + +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; + + // resetting after one period to prevent ugly reset at overflow. + static uint16_t breathing_counter = 0; + breathing_counter = (breathing_counter + 1) % (breathing_period * 256); + uint8_t index = breathing_counter / interval % BREATHING_STEPS; + uint32_t duty = cie_lightness(rescale_limit_val(scale_backlight(breathing_table[index] * 256))); + + chSysLockFromISR(); + pwmEnableChannelI(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty)); + chSysUnlockFromISR(); +} + +// TODO: integrate generic pulse solution +void breathing_pulse(void) { + backlight_set(is_backlight_enabled() ? 0 : BACKLIGHT_LEVELS); + wait_ms(10); + backlight_set(is_backlight_enabled() ? get_backlight_level() : 0); +} + +#endif diff --git a/platforms/chibios/drivers/backlight_timer.c b/platforms/chibios/drivers/backlight_timer.c new file mode 100644 index 00000000000..0fabee93b1c --- /dev/null +++ b/platforms/chibios/drivers/backlight_timer.c @@ -0,0 +1,178 @@ +#include "backlight.h" +#include "backlight_driver_common.h" +#include "wait.h" + +#ifndef BACKLIGHT_GPT_DRIVER +# define BACKLIGHT_GPT_DRIVER GPTD15 +#endif + +// Platform specific implementations +static void backlight_timer_configure(bool enable); +static void backlight_timer_set_duty(uint16_t duty); +static uint16_t backlight_timer_get_duty(void); + +// See http://jared.geek.nz/2013/feb/linear-led-pwm +static uint16_t cie_lightness(uint16_t v) { + if (v <= 5243) // if below 8% of max + return v / 9; // same as dividing by 900% + else { + uint32_t y = (((uint32_t)v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare + // 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 + return 0xFFFFU; + else + return (uint16_t)y; + } +} + +void backlight_init_ports(void) { + backlight_pins_init(); + + backlight_set(get_backlight_level()); + +#ifdef BACKLIGHT_BREATHING + if (is_backlight_breathing()) { + breathing_enable(); + } +#endif +} + +void backlight_set(uint8_t level) { + if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS; + + backlight_pins_off(); + + backlight_timer_set_duty(cie_lightness(0xFFFFU / BACKLIGHT_LEVELS * level)); + backlight_timer_configure(level != 0); +} + +static void backlight_timer_top(void) { +#ifdef BACKLIGHT_BREATHING + if (is_breathing()) { + breathing_task(); + } +#endif + + if (backlight_timer_get_duty() > 256) { + backlight_pins_on(); + } +} + +static void backlight_timer_cmp(void) { + backlight_pins_off(); +} + +void backlight_task(void) {} + +#ifdef BACKLIGHT_BREATHING +# define BREATHING_STEPS 128 + +static bool breathing = false; +static uint16_t breathing_counter = 0; + +/* To generate breathing curve in python: + * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] + */ +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}; + +// Use this before the cie_lightness function. +static inline uint16_t scale_backlight(uint16_t v) { + return v / BACKLIGHT_LEVELS * get_backlight_level(); +} + +void breathing_task(void) { + uint8_t breathing_period = get_breathing_period(); + uint16_t interval = (uint16_t)breathing_period * 256 / BREATHING_STEPS; + // resetting after one period to prevent ugly reset at overflow. + breathing_counter = (breathing_counter + 1) % (breathing_period * 256); + uint8_t index = breathing_counter / interval % BREATHING_STEPS; + + // printf("index:%u\n", index); + + backlight_timer_set_duty(cie_lightness(scale_backlight((uint16_t)breathing_table[index] * 256))); +} + +bool is_breathing(void) { + return breathing; +} + +void breathing_enable(void) { + breathing_counter = 0; + breathing = true; +} +void breathing_disable(void) { + breathing = false; +} + +void breathing_pulse(void) { + backlight_set(is_backlight_enabled() ? 0 : BACKLIGHT_LEVELS); + wait_ms(10); + backlight_set(is_backlight_enabled() ? get_backlight_level() : 0); +} +#endif + +#ifdef PROTOCOL_CHIBIOS +// On Platforms where timers fire every tick and have no capture/top events +// - fake event in the normal timer callback +uint16_t s_duty = 0; + +static void timerCallback(void) { + /* Software PWM + * timer:1111 1111 1111 1111 + * \______/| \_______/____ count(0-255) + * \ \______________ unused(1) + * \__________________ index of step table(0-127) + */ + + // this works for cca 65536 irqs/sec + static union { + uint16_t raw; + struct { + uint16_t count : 8; + uint8_t dummy : 1; + uint8_t index : 7; + } pwm; + } timer = {.raw = 0}; + + timer.raw++; + + if (timer.pwm.count == 0) { + // LED on + backlight_timer_top(); + } else if (timer.pwm.count == (s_duty / 256)) { + // LED off + backlight_timer_cmp(); + } +} + +static void backlight_timer_set_duty(uint16_t duty) { + s_duty = duty; +} +static uint16_t backlight_timer_get_duty(void) { + return s_duty; +} + +// ChibiOS - Map GPT timer onto Software PWM +static void gptTimerCallback(GPTDriver *gptp) { + (void)gptp; + timerCallback(); +} + +static void backlight_timer_configure(bool enable) { + static const GPTConfig gptcfg = {1000000, gptTimerCallback, 0, 0}; + + static bool s_init = false; + if (!s_init) { + gptStart(&BACKLIGHT_GPT_DRIVER, &gptcfg); + s_init = true; + } + + if (enable) { + gptStartContinuous(&BACKLIGHT_GPT_DRIVER, gptcfg.frequency / 0xFFFF); + } else { + gptStopTimer(&BACKLIGHT_GPT_DRIVER); + } +} +#endif diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c index 4c7a5daa171..7c49f9d0059 100644 --- a/platforms/chibios/drivers/i2c_master.c +++ b/platforms/chibios/drivers/i2c_master.c @@ -24,8 +24,10 @@ * STM32_I2C_USE_I2C1 is TRUE in the mcuconf.h file. Pins B6 and B7 are used * but using any other I2C pins should be trivial. */ -#include "quantum.h" + #include "i2c_master.h" +#include "gpio.h" +#include "chibios_config.h" #include #include #include diff --git a/platforms/chibios/drivers/serial.c b/platforms/chibios/drivers/serial.c index 0dd8e71ae82..f087d0c2edf 100644 --- a/platforms/chibios/drivers/serial.c +++ b/platforms/chibios/drivers/serial.c @@ -2,8 +2,8 @@ * WARNING: be careful changing this code, it is very timing dependent */ -#include "quantum.h" #include "serial.h" +#include "gpio.h" #include "wait.h" #include "synchronization_util.h" diff --git a/platforms/chibios/drivers/serial_protocol.c b/platforms/chibios/drivers/serial_protocol.c index ccaf73282dd..e0f583ccde6 100644 --- a/platforms/chibios/drivers/serial_protocol.c +++ b/platforms/chibios/drivers/serial_protocol.c @@ -3,10 +3,8 @@ #include -#include "quantum.h" #include "serial.h" #include "serial_protocol.h" -#include "printf.h" #include "synchronization_util.h" static inline bool initiate_transaction(uint8_t transaction_id); diff --git a/platforms/chibios/drivers/serial_usart.c b/platforms/chibios/drivers/serial_usart.c index 6ebbf7c8ca1..767ef8726fc 100644 --- a/platforms/chibios/drivers/serial_usart.c +++ b/platforms/chibios/drivers/serial_usart.c @@ -5,6 +5,7 @@ #include "serial_usart.h" #include "serial_protocol.h" #include "synchronization_util.h" +#include "chibios_config.h" #if defined(SERIAL_USART_CONFIG) static QMKSerialConfig serial_config = SERIAL_USART_CONFIG; diff --git a/platforms/chibios/drivers/serial_usart.h b/platforms/chibios/drivers/serial_usart.h index fa062cd736b..dec8a292e98 100644 --- a/platforms/chibios/drivers/serial_usart.h +++ b/platforms/chibios/drivers/serial_usart.h @@ -3,7 +3,6 @@ #pragma once -#include "quantum.h" #include "serial.h" #include diff --git a/platforms/chibios/drivers/uart.c b/platforms/chibios/drivers/uart.c index 34f77232b6c..39a59dd4450 100644 --- a/platforms/chibios/drivers/uart.c +++ b/platforms/chibios/drivers/uart.c @@ -16,8 +16,6 @@ #include "uart.h" -#include "quantum.h" - #if defined(MCU_KINETIS) static SerialConfig serialConfig = {SERIAL_DEFAULT_BITRATE}; #elif defined(WB32F3G71xx) || defined(WB32FQ95xx) diff --git a/platforms/chibios/drivers/uart.h b/platforms/chibios/drivers/uart.h index e9e3b0855b3..d1917bfc800 100644 --- a/platforms/chibios/drivers/uart.h +++ b/platforms/chibios/drivers/uart.h @@ -17,6 +17,7 @@ #pragma once #include +#include #include diff --git a/platforms/chibios/drivers/usbpd_stm32g4.c b/platforms/chibios/drivers/usbpd_stm32g4.c index 0096f22f077..21b8f6db95a 100644 --- a/platforms/chibios/drivers/usbpd_stm32g4.c +++ b/platforms/chibios/drivers/usbpd_stm32g4.c @@ -22,8 +22,6 @@ // Initialises the USBPD subsystem __attribute__((weak)) void usbpd_init(void) { - // Disable dead-battery signals - PWR->CR3 |= PWR_CR3_UCPD_DBDIS; // Enable the clock for the UCPD1 peripheral RCC->APB1ENR2 |= RCC_APB1ENR2_UCPD1EN; @@ -46,6 +44,11 @@ __attribute__((weak)) void usbpd_init(void) { CR |= UCPD_CR_ANAMODE | UCPD_CR_CCENABLE_Msk; // Apply the changes UCPD1->CR = CR; + + // Disable dead-battery signals only after UCPD1 is configured to ensure + // that the transition does not go through any intermediate state without + // any pull-down resistance. + PWR->CR3 |= PWR_CR3_UCPD_DBDIS; } // Gets the current state of the USBPD allowance diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c index 937fa5de6f2..d775ec29d59 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c @@ -1,12 +1,10 @@ // Copyright 2022 Marek Kraus (@gamelaster) // SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - #include "hardware/pio.h" #include "hardware/clocks.h" #include "ps2.h" -#include "print.h" +#include "debug.h" #if !defined(MCU_RP) # error PIO Driver is only available for Raspberry Pi 2040 MCUs! diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c index dd4723a086d..3aa8e1165fa 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c @@ -1,11 +1,12 @@ // Copyright 2022 Stefan Kerkmann // SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" #include "serial_usart.h" #include "serial_protocol.h" #include "hardware/pio.h" #include "hardware/clocks.h" +#include "wait.h" +#include "debug.h" #if !defined(MCU_RP) # error PIO Driver is only available for Raspberry Pi 2040 MCUs! diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c index 99a6cfaba9c..8d59e13bb25 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c @@ -2,13 +2,19 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "ws2812.h" -#include "hardware/timer.h" -#include "hardware/clocks.h" + // Keep this exact include order otherwise we run into naming conflicts between // pico-sdk and rp2040.h which we don't control. -#include "quantum.h" +#include "hardware/timer.h" +#include "hardware/clocks.h" +#include #include "hardware/pio.h" +#include "gpio.h" +#include "debug.h" +#include "wait.h" +#include "util.h" + #if !defined(MCU_RP) # error PIO Driver is only available for Raspberry Pi 2040 MCUs! #endif diff --git a/platforms/chibios/drivers/ws2812_bitbang.c b/platforms/chibios/drivers/ws2812_bitbang.c index d05deb1a50e..c55e0f654c2 100644 --- a/platforms/chibios/drivers/ws2812_bitbang.c +++ b/platforms/chibios/drivers/ws2812_bitbang.c @@ -1,7 +1,7 @@ -#include "quantum.h" #include "ws2812.h" -#include -#include + +#include "gpio.h" +#include "chibios_config.h" /* Adapted from https://github.com/bigjosh/SimpleNeoPixelDemo/ */ diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index 04c8279a970..cfee547a822 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -1,6 +1,6 @@ #include "ws2812.h" -#include "quantum.h" -#include +#include "gpio.h" +#include "chibios_config.h" /* Adapted from https://github.com/joewa/WS2812-LED-Driver_ChibiOS/ */ diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index c28f5007f15..f188576e046 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -1,5 +1,7 @@ -#include "quantum.h" #include "ws2812.h" +#include "gpio.h" +#include "util.h" +#include "chibios_config.h" /* Adapted from https://github.com/gamazeps/ws2812b-chibios-SPIDMA/ */ diff --git a/platforms/chibios/mcu_selection.mk b/platforms/chibios/mcu_selection.mk index 56b81493de2..5122ed4634e 100644 --- a/platforms/chibios/mcu_selection.mk +++ b/platforms/chibios/mcu_selection.mk @@ -546,6 +546,9 @@ ifneq ($(findstring STM32G431, $(MCU)),) # Bootloader address for STM32 DFU STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000 + + # Default to transient driver as ChibiOS EFL is currently broken for single-bank G4xx devices + EEPROM_DRIVER ?= transient endif ifneq ($(findstring STM32G474, $(MCU)),) @@ -702,6 +705,45 @@ ifneq (,$(filter $(MCU),STM32L412 STM32L422)) STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000 endif +ifneq (,$(filter $(MCU),STM32H723 STM32H733)) + # Cortex version + MCU = cortex-m7 + + # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 + ARMV = 7 + + ## chip/board settings + # - the next two should match the directories in + # /os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES) + # OR + # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) + MCU_FAMILY = STM32 + MCU_SERIES = STM32H7xx + + # Linker script to use + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ + # or /ld/ + MCU_LDSCRIPT ?= STM32H723xG_ITCM64k + + # Startup code to use + # - it should exist in /os/common/startup/ARMCMx/compilers/GCC/mk/ + MCU_STARTUP ?= stm32h7xx + + # Board: it should exist either in /os/hal/boards/, + # /boards/, or drivers/boards/ + BOARD ?= GENERIC_STM32_H723XG + + PLATFORM_NAME ?= platform_type2 + + USE_FPU ?= yes + + # UF2 settings + UF2_FAMILY ?= STM32H7 + + # Bootloader address for STM32 DFU + STM32_BOOTLOADER_ADDRESS ?= 0x1FF09800 +endif + ifneq ($(findstring WB32F3G71, $(MCU)),) # Cortex version MCU = cortex-m3 diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index 6304b42d873..081b001e6da 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -432,6 +432,15 @@ else endif endif +# Extra config.h files for the platform +ifneq ("$(wildcard $(PLATFORM_COMMON_DIR)/vendors/$(MCU_FAMILY)/$(MCU_SERIES)/config.h)","") + CONFIG_H += $(PLATFORM_COMMON_DIR)/vendors/$(MCU_FAMILY)/$(MCU_SERIES)/config.h +endif +ifneq ("$(wildcard $(PLATFORM_COMMON_DIR)/vendors/$(MCU_FAMILY)/config.h)","") + CONFIG_H += $(PLATFORM_COMMON_DIR)/vendors/$(MCU_FAMILY)/config.h +endif +CONFIG_H += $(PLATFORM_COMMON_DIR)/config.h + # Assembler flags ASFLAGS += $(SHARED_ASFLAGS) $(TOOLCHAIN_ASFLAGS) diff --git a/platforms/chibios/sleep_led.c b/platforms/chibios/sleep_led.c index a777d60468b..a35514bf2e9 100644 --- a/platforms/chibios/sleep_led.c +++ b/platforms/chibios/sleep_led.c @@ -41,17 +41,20 @@ void sleep_led_timer_callback(void) { uint8_t duration : 2; uint8_t index : 6; } pwm; - } timer = {.row = 0}; + } timer = {.row = 0}; + static led_t led_state = {0}; timer.row++; // LED on if (timer.pwm.count == 0) { - led_set(1 << USB_LED_CAPS_LOCK); + led_state.caps_lock = true; + led_set(led_state.raw); } // LED off if (timer.pwm.count == breathing_table[timer.pwm.index]) { - led_set(0); + led_state.caps_lock = false; + led_set(led_state.raw); } } @@ -190,7 +193,7 @@ void sleep_led_toggle(void) { void sleep_led_init(void) {} void sleep_led_enable(void) { - led_set(1 << USB_LED_CAPS_LOCK); + led_set(2); // Caps Lock } void sleep_led_disable(void) { diff --git a/platforms/chibios/vendors/RP/pico_sdk_shims.c b/platforms/chibios/vendors/RP/pico_sdk_shims.c index 239155c0865..caab4005316 100644 --- a/platforms/chibios/vendors/RP/pico_sdk_shims.c +++ b/platforms/chibios/vendors/RP/pico_sdk_shims.c @@ -2,7 +2,8 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include -#include + +extern void chSysHalt(const char *reason) __attribute__((noreturn)); void panic(const char *fmt, ...) { chSysHalt(fmt); diff --git a/platforms/chibios/wait.c b/platforms/chibios/wait.c index 88cb5e6d549..7fe6d477b8c 100644 --- a/platforms/chibios/wait.c +++ b/platforms/chibios/wait.c @@ -21,7 +21,7 @@ #ifdef WAIT_US_TIMER void wait_us(uint16_t duration) { - static const GPTConfig gpt_cfg = {1000000, NULL, 0, 0}; /* 1MHz timer, no callback */ + static const GPTConfig gpt_cfg = {.frequency = 1000000}; /* 1MHz timer, no callback */ if (duration == 0) { duration = 1; diff --git a/platforms/common.mk b/platforms/common.mk index da0697e3b09..bbbe71ea126 100644 --- a/platforms/common.mk +++ b/platforms/common.mk @@ -1,6 +1,6 @@ PLATFORM_COMMON_DIR = $(PLATFORM_PATH)/$(PLATFORM_KEY) -TMK_COMMON_SRC += \ +SRC += \ $(PLATFORM_PATH)/suspend.c \ $(PLATFORM_PATH)/synchronization_util.c \ $(PLATFORM_PATH)/timer.c \ diff --git a/platforms/test/drivers/audio_pwm.h b/platforms/test/drivers/audio_pwm.h new file mode 100644 index 00000000000..9a3fa88cec3 --- /dev/null +++ b/platforms/test/drivers/audio_pwm.h @@ -0,0 +1,16 @@ +// Copyright 2023 Google LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#pragma once diff --git a/platforms/test/drivers/audio_pwm_hardware.c b/platforms/test/drivers/audio_pwm_hardware.c new file mode 100644 index 00000000000..336e4f58449 --- /dev/null +++ b/platforms/test/drivers/audio_pwm_hardware.c @@ -0,0 +1,20 @@ +// Copyright 2023 Google LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#include "audio.h" + +void audio_driver_initialize(void) {} +void audio_driver_start() {} +void audio_driver_stop() {} diff --git a/quantum/action.c b/quantum/action.c index 27d1994d54f..62016b9d037 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -525,6 +525,13 @@ void process_action(keyrecord_t *record, action_t action) { unregister_code(action.key.code); } else { ac_dprintf("MODS_TAP: No tap: add_mods\n"); +# if defined(RETRO_TAPPING) && defined(DUMMY_MOD_NEUTRALIZER_KEYCODE) + // Send a dummy keycode to neutralize flashing modifiers + // if the key was held and then released with no interruptions. + if (retro_tapping_counter == 2) { + neutralize_flashing_modifiers(get_mods()); + } +# endif unregister_mods(mods); } } @@ -879,7 +886,7 @@ __attribute__((weak)) void register_code(uint8_t 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; + if (host_keyboard_led_state().caps_lock) return; # endif add_key(KC_CAPS_LOCK); send_keyboard_report(); @@ -889,7 +896,7 @@ __attribute__((weak)) void register_code(uint8_t code) { } else if (KC_LOCKING_NUM_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE - if (host_keyboard_leds() & (1 << USB_LED_NUM_LOCK)) return; + if (host_keyboard_led_state().num_lock) return; # endif add_key(KC_NUM_LOCK); send_keyboard_report(); @@ -899,7 +906,7 @@ __attribute__((weak)) void register_code(uint8_t code) { } else if (KC_LOCKING_SCROLL_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE - if (host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK)) return; + if (host_keyboard_led_state().scroll_lock) return; # endif add_key(KC_SCROLL_LOCK); send_keyboard_report(); @@ -949,7 +956,7 @@ __attribute__((weak)) void unregister_code(uint8_t 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; + if (!host_keyboard_led_state().caps_lock) return; # endif add_key(KC_CAPS_LOCK); send_keyboard_report(); @@ -958,7 +965,7 @@ __attribute__((weak)) void unregister_code(uint8_t code) { } else if (KC_LOCKING_NUM_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE - if (!(host_keyboard_leds() & (1 << USB_LED_NUM_LOCK))) return; + if (!host_keyboard_led_state().num_lock) return; # endif add_key(KC_NUM_LOCK); send_keyboard_report(); @@ -967,7 +974,7 @@ __attribute__((weak)) void unregister_code(uint8_t code) { } else if (KC_LOCKING_SCROLL_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE - if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK))) return; + if (!host_keyboard_led_state().scroll_lock) return; # endif add_key(KC_SCROLL_LOCK); send_keyboard_report(); diff --git a/quantum/action_layer.h b/quantum/action_layer.h index ff783bb3e7f..a2410d49a5e 100644 --- a/quantum/action_layer.h +++ b/quantum/action_layer.h @@ -20,6 +20,7 @@ along with this program. If not, see . #include #include "keyboard.h" #include "action.h" +#include "bitwise.h" #ifdef DYNAMIC_KEYMAP_ENABLE # ifndef DYNAMIC_KEYMAP_LAYER_COUNT diff --git a/quantum/action_util.c b/quantum/action_util.c index 3c68e680bbe..2c3118340dc 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -475,3 +475,28 @@ __attribute__((weak)) void oneshot_layer_changed_kb(uint8_t layer) { uint8_t has_anymod(void) { return bitpop(real_mods); } + +#ifdef DUMMY_MOD_NEUTRALIZER_KEYCODE +/** \brief Send a dummy keycode in between the register and unregister event of a modifier key, to neutralize the "flashing modifiers" phenomenon. + * + * \param active_mods 8-bit packed bit-array describing the currently active modifiers (in the format GASCGASC). + * + * Certain QMK features like key overrides or retro tap must unregister a previously + * registered modifier before sending another keycode but this can trigger undesired + * keyboard shortcuts if the clean tap of a single modifier key is bound to an action + * on the host OS, as is for example the case for the left GUI key on Windows, which + * opens the Start Menu when tapped. + */ +void neutralize_flashing_modifiers(uint8_t active_mods) { + // In most scenarios, the flashing modifiers phenomenon is a problem + // only for a subset of modifier masks. + const static uint8_t mods_to_neutralize[] = MODS_TO_NEUTRALIZE; + const static uint8_t n_mods = ARRAY_SIZE(mods_to_neutralize); + for (uint8_t i = 0; i < n_mods; ++i) { + if (active_mods == mods_to_neutralize[i]) { + tap_code(DUMMY_MOD_NEUTRALIZER_KEYCODE); + break; + } + } +} +#endif diff --git a/quantum/action_util.h b/quantum/action_util.h index 02f6e9e6df2..831caf3c0a1 100644 --- a/quantum/action_util.h +++ b/quantum/action_util.h @@ -102,6 +102,19 @@ void use_oneshot_swaphands(void); void clear_oneshot_swaphands(void); #endif +#ifdef DUMMY_MOD_NEUTRALIZER_KEYCODE +// KC_A is used as the lowerbound instead of QK_BASIC because the range QK_BASIC...KC_A includes +// internal keycodes like KC_NO and KC_TRANSPARENT which are unsuitable for use with `tap_code(kc)`. +# if !(KC_A <= DUMMY_MOD_NEUTRALIZER_KEYCODE && DUMMY_MOD_NEUTRALIZER_KEYCODE <= QK_BASIC_MAX) +# error "DUMMY_MOD_NEUTRALIZER_KEYCODE must be a basic, unmodified, HID keycode!" +# endif +void neutralize_flashing_modifiers(uint8_t active_mods); +#endif +#ifndef MODS_TO_NEUTRALIZE +# define MODS_TO_NEUTRALIZE \ + { MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI) } +#endif + #ifdef __cplusplus } #endif diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 2570ad9cd1e..28c82675172 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -311,6 +311,10 @@ void audio_play_melody(float (*np)[][2], uint16_t n_count, bool n_repeat) { return; } + if (n_count == 0) { + return; + } + if (!audio_initialized) { audio_init(); } @@ -547,20 +551,42 @@ void audio_decrease_tempo(uint8_t tempo_change) { note_tempo -= tempo_change; } -// TODO in the int-math version are some bugs; songs sometimes abruptly end - maybe an issue with the timer/system-tick wrapping around? +/** + * Converts from units of 1/64ths of a beat to milliseconds. + * + * Round-off error is at most 1 millisecond. + * + * Conversion will never overflow for duration_bpm <= 699, provided that + * note_tempo is at least 10. This is quite a long duration, over ten beats. + * + * Beware that for duration_bpm > 699, the result may overflow uint16_t range + * when duration_bpm is large compared to note_tempo: + * + * duration_bpm * 60 * 1000 / (64 * note_tempo) > UINT16_MAX + * + * duration_bpm > (2 * 65535 / 1875) * note_tempo + * = 69.904 * note_tempo. + */ uint16_t audio_duration_to_ms(uint16_t duration_bpm) { -#if defined(__AVR__) - // doing int-math saves us some bytes in the overall firmware size, but the intermediate result is less accurate before being cast to/returned as uint - return ((uint32_t)duration_bpm * 60 * 1000) / (64 * note_tempo); - // NOTE: beware of uint16_t overflows when note_tempo is low and/or the duration is long -#else - return ((float)duration_bpm * 60) / (64 * note_tempo) * 1000; -#endif + return ((uint32_t)duration_bpm * 1875) / ((uint_fast16_t)note_tempo * 2); } + +/** + * Converts from units of milliseconds to 1/64ths of a beat. + * + * Round-off error is at most 1/64th of a beat. + * + * This conversion never overflows: since duration_ms <= UINT16_MAX = 65535 + * and note_tempo <= 255, the result is always in uint16_t range: + * + * duration_ms * 64 * note_tempo / 60 / 1000 + * <= 65535 * 2 * 255 / 1875 + * = 17825.52 + * <= UINT16_MAX. + */ uint16_t audio_ms_to_duration(uint16_t duration_ms) { -#if defined(__AVR__) - return ((uint32_t)duration_ms * 64 * note_tempo) / 60 / 1000; -#else - return ((float)duration_ms * 64 * note_tempo) / 60 / 1000; -#endif + return ((uint32_t)duration_ms * 2 * note_tempo) / 1875; } + +__attribute__((weak)) void audio_on_user(void) {} +__attribute__((weak)) void audio_off_user(void) {} diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index 75016a1100b..a4a908b43c5 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -21,12 +21,6 @@ #include "musical_notes.h" #include "song_list.h" #include "voices.h" -#include "quantum.h" -#include - -#if defined(__AVR__) -# include -#endif #if defined(AUDIO_DRIVER_PWM) # include "audio_pwm.h" @@ -280,3 +274,6 @@ bool audio_update_state(void); #define increase_tempo(t) audio_increase_tempo(t) #define decrease_tempo(t) audio_decrease_tempo(t) // vibrato functions are not used in any keyboards + +void audio_on_user(void); +void audio_off_user(void); diff --git a/quantum/audio/muse.c b/quantum/audio/muse.c index 01b95671fdc..4c23cd73484 100644 --- a/quantum/audio/muse.c +++ b/quantum/audio/muse.c @@ -1,5 +1,7 @@ #include "muse.h" +#include + enum { MUSE_OFF, MUSE_ON, MUSE_C_1_2, MUSE_C1, MUSE_C2, MUSE_C4, MUSE_C8, MUSE_C3, MUSE_C6, MUSE_B1, MUSE_B2, MUSE_B3, MUSE_B4, MUSE_B5, MUSE_B6, MUSE_B7, MUSE_B8, MUSE_B9, MUSE_B10, MUSE_B11, MUSE_B12, MUSE_B13, MUSE_B14, MUSE_B15, MUSE_B16, MUSE_B17, MUSE_B18, MUSE_B19, MUSE_B20, MUSE_B21, MUSE_B22, MUSE_B23, MUSE_B24, MUSE_B25, MUSE_B26, MUSE_B27, MUSE_B28, MUSE_B29, MUSE_B30, MUSE_B31 }; bool number_of_ones_to_bool[16] = {1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1}; diff --git a/quantum/audio/muse.h b/quantum/audio/muse.h index ad2f96e43af..7b289cac6c1 100644 --- a/quantum/audio/muse.h +++ b/quantum/audio/muse.h @@ -1,6 +1,5 @@ #pragma once -#include "quantum.h" -#include "process_audio.h" +#include uint8_t muse_clock_pulse(void); diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c index 01f257f4d4e..4f511c93bad 100644 --- a/quantum/audio/voices.c +++ b/quantum/audio/voices.c @@ -16,7 +16,9 @@ */ #include "voices.h" #include "audio.h" +#include "timer.h" #include +#include uint8_t note_timbre = TIMBRE_DEFAULT; bool glissando = false; diff --git a/quantum/backlight/backlight.c b/quantum/backlight/backlight.c index 52ec086bb09..9d9f944f5db 100644 --- a/quantum/backlight/backlight.c +++ b/quantum/backlight/backlight.c @@ -15,7 +15,6 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" #include "backlight.h" #include "eeprom.h" #include "eeconfig.h" diff --git a/quantum/backlight/backlight_avr.c b/quantum/backlight/backlight_avr.c deleted file mode 100644 index 474e0a86f5e..00000000000 --- a/quantum/backlight/backlight_avr.c +++ /dev/null @@ -1,473 +0,0 @@ -#include "quantum.h" -#include "backlight.h" -#include "backlight_driver_common.h" -#include "debug.h" - -// Maximum duty cycle limit -#ifndef BACKLIGHT_LIMIT_VAL -# define BACKLIGHT_LIMIT_VAL 255 -#endif - -// This logic is a bit complex, we support 3 setups: -// -// 1. Hardware PWM when backlight is wired to a PWM pin. -// Depending on this pin, we use a different output compare unit. -// 2. Software PWM with hardware timers, but the used timer -// depends on the Audio setup (Audio wins over Backlight). -// 3. Full software PWM, driven by the matrix scan, if both timers are used by Audio. - -#if (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) && (BACKLIGHT_PIN == B5 || BACKLIGHT_PIN == B6 || BACKLIGHT_PIN == B7) -# define HARDWARE_PWM -# define ICRx ICR1 -# define TCCRxA TCCR1A -# define TCCRxB TCCR1B -# define TIMERx_OVF_vect TIMER1_OVF_vect -# define TIMSKx TIMSK1 -# define TOIEx TOIE1 - -# if BACKLIGHT_PIN == B5 -# define COMxx0 COM1A0 -# define COMxx1 COM1A1 -# define OCRxx OCR1A -# elif BACKLIGHT_PIN == B6 -# define COMxx0 COM1B0 -# define COMxx1 COM1B1 -# define OCRxx OCR1B -# elif BACKLIGHT_PIN == B7 -# define COMxx0 COM1C0 -# define COMxx1 COM1C1 -# define OCRxx OCR1C -# endif -#elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) && (BACKLIGHT_PIN == C4 || BACKLIGHT_PIN == C5 || BACKLIGHT_PIN == C6) -# define HARDWARE_PWM -# define ICRx ICR3 -# define TCCRxA TCCR3A -# define TCCRxB TCCR3B -# define TIMERx_OVF_vect TIMER3_OVF_vect -# define TIMSKx TIMSK3 -# define TOIEx TOIE3 - -# if BACKLIGHT_PIN == C4 -# if (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) -# error This MCU has no C4 pin! -# else -# define COMxx0 COM3C0 -# define COMxx1 COM3C1 -# define OCRxx OCR3C -# endif -# elif BACKLIGHT_PIN == C5 -# if (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) -# error This MCU has no C5 pin! -# else -# define COMxx0 COM3B0 -# define COMxx1 COM3B1 -# define OCRxx OCR3B -# endif -# elif BACKLIGHT_PIN == C6 -# define COMxx0 COM3A0 -# define COMxx1 COM3A1 -# define OCRxx OCR3A -# endif -#elif (defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__)) && (BACKLIGHT_PIN == B7 || BACKLIGHT_PIN == C5 || BACKLIGHT_PIN == C6) -# define HARDWARE_PWM -# define ICRx ICR1 -# define TCCRxA TCCR1A -# define TCCRxB TCCR1B -# define TIMERx_OVF_vect TIMER1_OVF_vect -# define TIMSKx TIMSK1 -# define TOIEx TOIE1 - -# if BACKLIGHT_PIN == B7 -# define COMxx0 COM1C0 -# define COMxx1 COM1C1 -# define OCRxx OCR1C -# elif BACKLIGHT_PIN == C5 -# define COMxx0 COM1B0 -# define COMxx1 COM1B1 -# define OCRxx OCR1B -# elif BACKLIGHT_PIN == C6 -# define COMxx0 COM1A0 -# define COMxx1 COM1A1 -# define OCRxx OCR1A -# endif -#elif defined(__AVR_ATmega32A__) && (BACKLIGHT_PIN == D4 || BACKLIGHT_PIN == D5) -# define HARDWARE_PWM -# define ICRx ICR1 -# define TCCRxA TCCR1A -# define TCCRxB TCCR1B -# define TIMERx_OVF_vect TIMER1_OVF_vect -# define TIMSKx TIMSK -# define TOIEx TOIE1 - -# if BACKLIGHT_PIN == D4 -# define COMxx0 COM1B0 -# define COMxx1 COM1B1 -# define OCRxx OCR1B -# elif BACKLIGHT_PIN == D5 -# define COMxx0 COM1A0 -# define COMxx1 COM1A1 -# define OCRxx OCR1A -# endif -#elif (defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)) && (BACKLIGHT_PIN == B1 || BACKLIGHT_PIN == B2) -# define HARDWARE_PWM -# define ICRx ICR1 -# define TCCRxA TCCR1A -# define TCCRxB TCCR1B -# define TIMERx_OVF_vect TIMER1_OVF_vect -# define TIMSKx TIMSK1 -# define TOIEx TOIE1 - -# if BACKLIGHT_PIN == B1 -# define COMxx0 COM1A0 -# define COMxx1 COM1A1 -# define OCRxx OCR1A -# elif BACKLIGHT_PIN == B2 -# define COMxx0 COM1B0 -# define COMxx1 COM1B1 -# define OCRxx OCR1B -# endif -#elif (AUDIO_PIN != B5) && (AUDIO_PIN != B6) && (AUDIO_PIN != B7) && (AUDIO_PIN_ALT != B5) && (AUDIO_PIN_ALT != B6) && (AUDIO_PIN_ALT != B7) -// Timer 1 is not in use by Audio feature, Backlight can use it -# pragma message "Using hardware timer 1 with software PWM" -# define HARDWARE_PWM -# define BACKLIGHT_PWM_TIMER -# define ICRx ICR1 -# define TCCRxA TCCR1A -# define TCCRxB TCCR1B -# define TIMERx_COMPA_vect TIMER1_COMPA_vect -# define TIMERx_OVF_vect TIMER1_OVF_vect -# if defined(__AVR_ATmega32A__) // This MCU has only one TIMSK register -# define TIMSKx TIMSK -# else -# define TIMSKx TIMSK1 -# endif -# define TOIEx TOIE1 - -# define OCIExA OCIE1A -# define OCRxx OCR1A -#elif (AUDIO_PIN != C4) && (AUDIO_PIN != C5) && (AUDIO_PIN != C6) -# pragma message "Using hardware timer 3 with software PWM" -// Timer 3 is not in use by Audio feature, Backlight can use it -# define HARDWARE_PWM -# define BACKLIGHT_PWM_TIMER -# define ICRx ICR1 -# define TCCRxA TCCR3A -# define TCCRxB TCCR3B -# define TIMERx_COMPA_vect TIMER3_COMPA_vect -# define TIMERx_OVF_vect TIMER3_OVF_vect -# define TIMSKx TIMSK3 -# define TOIEx TOIE3 - -# define OCIExA OCIE3A -# define OCRxx OCR3A -#elif defined(BACKLIGHT_CUSTOM_DRIVER) -error("Please set 'BACKLIGHT_DRIVER = custom' within rules.mk") -#else -error("Please set 'BACKLIGHT_DRIVER = software' within rules.mk") -#endif - -#ifndef BACKLIGHT_PWM_TIMER // pwm through software - -static inline void enable_pwm(void) { -# if BACKLIGHT_ON_STATE == 1 - TCCRxA |= _BV(COMxx1); -# else - TCCRxA |= _BV(COMxx1) | _BV(COMxx0); -# endif -} - -static inline void disable_pwm(void) { -# if BACKLIGHT_ON_STATE == 1 - TCCRxA &= ~(_BV(COMxx1)); -# else - TCCRxA &= ~(_BV(COMxx1) | _BV(COMxx0)); -# endif -} - -#endif - -#ifdef BACKLIGHT_PWM_TIMER - -// The idea of software PWM assisted by hardware timers is the following -// we use the hardware timer in fast PWM mode like for hardware PWM, but -// instead of letting the Output Match Comparator control the led pin -// (which is not possible since the backlight is not wired to PWM pins on the -// CPU), we do the LED on/off by oursleves. -// The timer is setup to count up to 0xFFFF, and we set the Output Compare -// register to the current 16bits backlight level (after CIE correction). -// This means the CPU will trigger a compare match interrupt when the counter -// reaches the backlight level, where we turn off the LEDs, -// but also an overflow interrupt when the counter rolls back to 0, -// in which we're going to turn on the LEDs. -// The LED will then be on for OCRxx/0xFFFF time, adjusted every 244Hz, -// or F_CPU/BACKLIGHT_CUSTOM_RESOLUTION if used. - -// Triggered when the counter reaches the OCRx value -ISR(TIMERx_COMPA_vect) { - backlight_pins_off(); -} - -// Triggered when the counter reaches the TOP value -// this one triggers at F_CPU/ICRx = 16MHz/65536 =~ 244 Hz -ISR(TIMERx_OVF_vect) { -# ifdef BACKLIGHT_BREATHING - if (is_breathing()) { - breathing_task(); - } -# endif - // for very small values of OCRxx (or backlight level) - // we can't guarantee this whole code won't execute - // at the same time as the compare match interrupt - // which means that we might turn on the leds while - // trying to turn them off, leading to flickering - // artifacts (especially while breathing, because breathing_task - // takes many computation cycles). - // so better not turn them on while the counter TOP is very low. - if (OCRxx > ICRx / 250 + 5) { - backlight_pins_on(); - } -} - -#endif - -#define TIMER_TOP 0xFFFFU - -// See http://jared.geek.nz/2013/feb/linear-led-pwm -static uint16_t cie_lightness(uint16_t v) { - if (v <= (uint32_t)ICRx / 12) // If the value is less than or equal to ~8% of max - { - return v / 9; // Same as dividing by 900% - } else { - // In the next two lines values are bit-shifted. This is to avoid loosing decimals in integer math. - uint32_t y = (((uint32_t)v + (uint32_t)ICRx / 6) << 5) / ((uint32_t)ICRx / 6 + ICRx); // If above 8%, add ~16% of max, and normalize with (max + ~16% max) - uint32_t out = (y * y * y * ICRx) >> 15; // Cube it and undo the bit-shifting. (which is now three times as much due to the cubing) - - if (out > ICRx) // Avoid overflows - { - out = ICRx; - } - return (uint16_t)out; - } -} - -// rescale the supplied backlight value to be in terms of the value limit // range for val is [0..ICRx]. PWM pin is high while the timer count is below val. -static uint32_t rescale_limit_val(uint32_t val) { - return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256; -} - -// range for val is [0..ICRx]. PWM pin is high while the timer count is below val. -static inline void set_pwm(uint16_t val) { - OCRxx = val; -} - -void backlight_set(uint8_t level) { - if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS; - - if (level == 0) { -#ifdef BACKLIGHT_PWM_TIMER - if (OCRxx) { - TIMSKx &= ~(_BV(OCIExA)); - TIMSKx &= ~(_BV(TOIEx)); - } -#else - // Turn off PWM control on backlight pin - disable_pwm(); -#endif - backlight_pins_off(); - } else { -#ifdef BACKLIGHT_PWM_TIMER - if (!OCRxx) { - TIMSKx |= _BV(OCIExA); - TIMSKx |= _BV(TOIEx); - } -#else - // Turn on PWM control of backlight pin - enable_pwm(); -#endif - } - // Set the brightness - set_pwm(cie_lightness(rescale_limit_val(ICRx * (uint32_t)level / BACKLIGHT_LEVELS))); -} - -void backlight_task(void) {} - -#ifdef BACKLIGHT_BREATHING - -# define BREATHING_NO_HALT 0 -# define BREATHING_HALT_OFF 1 -# define BREATHING_HALT_ON 2 -# define BREATHING_STEPS 128 - -static uint8_t breathing_halt = BREATHING_NO_HALT; -static uint16_t breathing_counter = 0; - -static uint8_t breath_scale_counter = 1; -/* Run the breathing loop at ~120Hz*/ -const uint8_t breathing_ISR_frequency = 120; -static uint16_t breathing_freq_scale_factor = 2; - -# ifdef BACKLIGHT_PWM_TIMER -static bool breathing = false; - -bool is_breathing(void) { - return breathing; -} - -# define breathing_interrupt_enable() \ - do { \ - breathing = true; \ - } while (0) -# define breathing_interrupt_disable() \ - do { \ - breathing = false; \ - } while (0) -# else - -bool is_breathing(void) { - return !!(TIMSKx & _BV(TOIEx)); -} - -# define breathing_interrupt_enable() \ - do { \ - TIMSKx |= _BV(TOIEx); \ - } while (0) -# define breathing_interrupt_disable() \ - do { \ - TIMSKx &= ~_BV(TOIEx); \ - } while (0) -# endif - -# define breathing_min() \ - do { \ - breathing_counter = 0; \ - } while (0) -# define breathing_max() \ - do { \ - breathing_counter = get_breathing_period() * breathing_ISR_frequency / 2; \ - } while (0) - -void breathing_enable(void) { - breathing_counter = 0; - breathing_halt = BREATHING_NO_HALT; - breathing_interrupt_enable(); -} - -void breathing_pulse(void) { - if (get_backlight_level() == 0) - breathing_min(); - else - breathing_max(); - breathing_halt = BREATHING_HALT_ON; - breathing_interrupt_enable(); -} - -void breathing_disable(void) { - breathing_interrupt_disable(); - // Restore backlight level - backlight_set(get_backlight_level()); -} - -void breathing_self_disable(void) { - if (get_backlight_level() == 0) - breathing_halt = BREATHING_HALT_OFF; - else - breathing_halt = BREATHING_HALT_ON; -} - -/* To generate breathing curve in python: - * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] - */ -static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {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}; - -// Use this before the cie_lightness function. -static inline uint16_t scale_backlight(uint16_t v) { - return v / BACKLIGHT_LEVELS * get_backlight_level(); -} - -# ifdef BACKLIGHT_PWM_TIMER -void breathing_task(void) -# else -/* Assuming a 16MHz CPU clock and a timer that resets at 64k (ICR1), the following interrupt handler will run - * about 244 times per second. - * - * The following ISR runs at F_CPU/ISRx. With a 16MHz clock and default pwm resolution, that means 244Hz - */ -ISR(TIMERx_OVF_vect) -# endif -{ - - // Only run this ISR at ~120 Hz - if (breath_scale_counter++ == breathing_freq_scale_factor) { - breath_scale_counter = 1; - } else { - return; - } - uint16_t interval = (uint16_t)get_breathing_period() * breathing_ISR_frequency / BREATHING_STEPS; - // resetting after one period to prevent ugly reset at overflow. - breathing_counter = (breathing_counter + 1) % (get_breathing_period() * breathing_ISR_frequency); - uint8_t index = breathing_counter / interval; - // limit index to max step value - if (index >= BREATHING_STEPS) { - index = BREATHING_STEPS - 1; - } - - if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) || ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1))) { - breathing_interrupt_disable(); - } - - // Set PWM to a brightnessvalue scaled to the configured resolution - set_pwm(cie_lightness(rescale_limit_val(scale_backlight((uint32_t)pgm_read_byte(&breathing_table[index]) * ICRx / 255)))); -} - -#endif // BACKLIGHT_BREATHING - -void backlight_init_ports(void) { - // Setup backlight pin as output and output to on state. - backlight_pins_init(); - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - -#ifdef BACKLIGHT_PWM_TIMER - // TimerX setup, Fast PWM mode count to TOP set in ICRx - TCCRxA = _BV(WGM11); // = 0b00000010; - // clock select clk/1 - TCCRxB = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; -#else // hardware PWM - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - /* - 14.8.3: - "In fast PWM mode, the compare units allow generation of PWM waveforms on the OCnx pins. Setting the COMnx1:0 bits to two will produce a non-inverted PWM [..]." - "In fast PWM mode the counter is incremented until the counter value matches either one of the fixed values 0x00FF, 0x01FF, or 0x03FF (WGMn3:0 = 5, 6, or 7), the value in ICRn (WGMn3:0 = 14), or the value in OCRnA (WGMn3:0 = 15)." - */ - TCCRxA = _BV(COMxx1) | _BV(WGM11); // = 0b00001010; - TCCRxB = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; -#endif - -#ifdef BACKLIGHT_CUSTOM_RESOLUTION -# if (BACKLIGHT_CUSTOM_RESOLUTION > 0xFFFF || BACKLIGHT_CUSTOM_RESOLUTION < 1) -# error "This out of range of the timer capabilities" -# elif (BACKLIGHT_CUSTOM_RESOLUTION < 0xFF) -# warning "Resolution lower than 0xFF isn't recommended" -# endif -# ifdef BACKLIGHT_BREATHING - breathing_freq_scale_factor = F_CPU / BACKLIGHT_CUSTOM_RESOLUTION / 120; -# endif - ICRx = BACKLIGHT_CUSTOM_RESOLUTION; -#else - ICRx = TIMER_TOP; -#endif - - backlight_init(); -#ifdef BACKLIGHT_BREATHING - if (is_backlight_breathing()) { - breathing_enable(); - } -#endif -} diff --git a/quantum/backlight/backlight_chibios.c b/quantum/backlight/backlight_chibios.c deleted file mode 100644 index 30e95bd5c80..00000000000 --- a/quantum/backlight/backlight_chibios.c +++ /dev/null @@ -1,173 +0,0 @@ -#include "quantum.h" -#include "backlight.h" -#include -#include "debug.h" - -// Maximum duty cycle limit -#ifndef BACKLIGHT_LIMIT_VAL -# define BACKLIGHT_LIMIT_VAL 255 -#endif - -#ifndef BACKLIGHT_PAL_MODE -# if defined(USE_GPIOV1) -# define BACKLIGHT_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -// GPIOV2 && GPIOV3 -# define BACKLIGHT_PAL_MODE 5 -# endif -#endif - -// GENERIC -#ifndef BACKLIGHT_PWM_DRIVER -# define BACKLIGHT_PWM_DRIVER PWMD4 -#endif -#ifndef BACKLIGHT_PWM_CHANNEL -# define BACKLIGHT_PWM_CHANNEL 3 -#endif - -// Support for pins which are on TIM1_CH1N - requires STM32_PWM_USE_ADVANCED -#ifdef BACKLIGHT_PWM_COMPLEMENTARY_OUTPUT -# if BACKLIGHT_ON_STATE == 1 -# define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_LOW; -# else -# define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_HIGH; -# endif -#else -# if BACKLIGHT_ON_STATE == 1 -# define PWM_OUTPUT_MODE PWM_OUTPUT_ACTIVE_HIGH; -# else -# define PWM_OUTPUT_MODE PWM_OUTPUT_ACTIVE_LOW; -# endif -#endif - -#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) { - if (v <= 5243) // if below 8% of max - return v / 9; // same as dividing by 900% - else { - uint32_t y = (((uint32_t)v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare - // 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 - return 0xFFFFU; - } else { - return (uint16_t)y; - } - } -} - -static uint32_t rescale_limit_val(uint32_t val) { - // rescale the supplied backlight value to be in terms of the value limit - return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256; -} - -void backlight_init_ports(void) { -#ifdef USE_GPIOV1 - palSetPadMode(PAL_PORT(BACKLIGHT_PIN), PAL_PAD(BACKLIGHT_PIN), BACKLIGHT_PAL_MODE); -#else - palSetPadMode(PAL_PORT(BACKLIGHT_PIN), PAL_PAD(BACKLIGHT_PIN), PAL_MODE_ALTERNATE(BACKLIGHT_PAL_MODE)); -#endif - - pwmCFG.channels[BACKLIGHT_PWM_CHANNEL - 1].mode = PWM_OUTPUT_MODE; - pwmStart(&BACKLIGHT_PWM_DRIVER, &pwmCFG); - - backlight_set(get_backlight_level()); - -#ifdef BACKLIGHT_BREATHING - chVTObjectInit(&breathing_vt); - if (is_backlight_breathing()) { - breathing_enable(); - } -#endif -} - -void backlight_set(uint8_t level) { - if (level > BACKLIGHT_LEVELS) { - level = BACKLIGHT_LEVELS; - } - - if (level == 0) { - // Turn backlight off - pwmDisableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1); - } else { - // Turn backlight on - uint32_t duty = (uint32_t)(cie_lightness(rescale_limit_val(0xFFFF * (uint32_t)level / BACKLIGHT_LEVELS))); - pwmEnableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty)); - } -} - -void backlight_task(void) {} - -#ifdef BACKLIGHT_BREATHING - -# define BREATHING_STEPS 128 - -/* To generate breathing curve in python: - * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] - */ -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}; - -static void breathing_callback(virtual_timer_t *vtp, void *p); - -bool is_breathing(void) { - return chVTIsArmed(&breathing_vt); -} - -void breathing_enable(void) { - /* Update frequency is 256Hz -> 3906us intervals */ - chVTSetContinuous(&breathing_vt, TIME_US2I(3906), breathing_callback, NULL); -} - -void breathing_disable(void) { - chVTReset(&breathing_vt); - - // Restore backlight level - backlight_set(get_backlight_level()); -} - -// Use this before the cie_lightness function. -static inline uint16_t scale_backlight(uint16_t v) { - return v / BACKLIGHT_LEVELS * get_backlight_level(); -} - -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; - - // resetting after one period to prevent ugly reset at overflow. - static uint16_t breathing_counter = 0; - breathing_counter = (breathing_counter + 1) % (breathing_period * 256); - uint8_t index = breathing_counter / interval % BREATHING_STEPS; - uint32_t duty = cie_lightness(rescale_limit_val(scale_backlight(breathing_table[index] * 256))); - - chSysLockFromISR(); - pwmEnableChannelI(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty)); - chSysUnlockFromISR(); -} - -// TODO: integrate generic pulse solution -void breathing_pulse(void) { - backlight_set(is_backlight_enabled() ? 0 : BACKLIGHT_LEVELS); - wait_ms(10); - backlight_set(is_backlight_enabled() ? get_backlight_level() : 0); -} - -#endif diff --git a/quantum/backlight/backlight_driver_common.c b/quantum/backlight/backlight_driver_common.c index 1eb8969084e..8c3fe461d7c 100644 --- a/quantum/backlight/backlight_driver_common.c +++ b/quantum/backlight/backlight_driver_common.c @@ -1,6 +1,7 @@ -#include "quantum.h" #include "backlight.h" #include "backlight_driver_common.h" +#include "gpio.h" +#include "util.h" #if !defined(BACKLIGHT_PIN) && !defined(BACKLIGHT_PINS) # error "Backlight pin/pins not defined. Please configure." diff --git a/quantum/backlight/backlight_timer.c b/quantum/backlight/backlight_timer.c deleted file mode 100644 index 82fb6a6a83e..00000000000 --- a/quantum/backlight/backlight_timer.c +++ /dev/null @@ -1,179 +0,0 @@ -#include "quantum.h" -#include "backlight.h" -#include "backlight_driver_common.h" -#include "debug.h" - -#ifndef BACKLIGHT_GPT_DRIVER -# define BACKLIGHT_GPT_DRIVER GPTD15 -#endif - -// Platform specific implementations -static void backlight_timer_configure(bool enable); -static void backlight_timer_set_duty(uint16_t duty); -static uint16_t backlight_timer_get_duty(void); - -// See http://jared.geek.nz/2013/feb/linear-led-pwm -static uint16_t cie_lightness(uint16_t v) { - if (v <= 5243) // if below 8% of max - return v / 9; // same as dividing by 900% - else { - uint32_t y = (((uint32_t)v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare - // 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 - return 0xFFFFU; - else - return (uint16_t)y; - } -} - -void backlight_init_ports(void) { - backlight_pins_init(); - - backlight_set(get_backlight_level()); - -#ifdef BACKLIGHT_BREATHING - if (is_backlight_breathing()) { - breathing_enable(); - } -#endif -} - -void backlight_set(uint8_t level) { - if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS; - - backlight_pins_off(); - - backlight_timer_set_duty(cie_lightness(0xFFFFU / BACKLIGHT_LEVELS * level)); - backlight_timer_configure(level != 0); -} - -static void backlight_timer_top(void) { -#ifdef BACKLIGHT_BREATHING - if (is_breathing()) { - breathing_task(); - } -#endif - - if (backlight_timer_get_duty() > 256) { - backlight_pins_on(); - } -} - -static void backlight_timer_cmp(void) { - backlight_pins_off(); -} - -void backlight_task(void) {} - -#ifdef BACKLIGHT_BREATHING -# define BREATHING_STEPS 128 - -static bool breathing = false; -static uint16_t breathing_counter = 0; - -/* To generate breathing curve in python: - * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] - */ -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}; - -// Use this before the cie_lightness function. -static inline uint16_t scale_backlight(uint16_t v) { - return v / BACKLIGHT_LEVELS * get_backlight_level(); -} - -void breathing_task(void) { - uint8_t breathing_period = get_breathing_period(); - uint16_t interval = (uint16_t)breathing_period * 256 / BREATHING_STEPS; - // resetting after one period to prevent ugly reset at overflow. - breathing_counter = (breathing_counter + 1) % (breathing_period * 256); - uint8_t index = breathing_counter / interval % BREATHING_STEPS; - - // printf("index:%u\n", index); - - backlight_timer_set_duty(cie_lightness(scale_backlight((uint16_t)breathing_table[index] * 256))); -} - -bool is_breathing(void) { - return breathing; -} - -void breathing_enable(void) { - breathing_counter = 0; - breathing = true; -} -void breathing_disable(void) { - breathing = false; -} - -void breathing_pulse(void) { - backlight_set(is_backlight_enabled() ? 0 : BACKLIGHT_LEVELS); - wait_ms(10); - backlight_set(is_backlight_enabled() ? get_backlight_level() : 0); -} -#endif - -#ifdef PROTOCOL_CHIBIOS -// On Platforms where timers fire every tick and have no capture/top events -// - fake event in the normal timer callback -uint16_t s_duty = 0; - -static void timerCallback(void) { - /* Software PWM - * timer:1111 1111 1111 1111 - * \______/| \_______/____ count(0-255) - * \ \______________ unused(1) - * \__________________ index of step table(0-127) - */ - - // this works for cca 65536 irqs/sec - static union { - uint16_t raw; - struct { - uint16_t count : 8; - uint8_t dummy : 1; - uint8_t index : 7; - } pwm; - } timer = {.raw = 0}; - - timer.raw++; - - if (timer.pwm.count == 0) { - // LED on - backlight_timer_top(); - } else if (timer.pwm.count == (s_duty / 256)) { - // LED off - backlight_timer_cmp(); - } -} - -static void backlight_timer_set_duty(uint16_t duty) { - s_duty = duty; -} -static uint16_t backlight_timer_get_duty(void) { - return s_duty; -} - -// ChibiOS - Map GPT timer onto Software PWM -static void gptTimerCallback(GPTDriver *gptp) { - (void)gptp; - timerCallback(); -} - -static void backlight_timer_configure(bool enable) { - static const GPTConfig gptcfg = {1000000, gptTimerCallback, 0, 0}; - - static bool s_init = false; - if (!s_init) { - gptStart(&BACKLIGHT_GPT_DRIVER, &gptcfg); - s_init = true; - } - - if (enable) { - gptStartContinuous(&BACKLIGHT_GPT_DRIVER, gptcfg.frequency / 0xFFFF); - } else { - gptStopTimer(&BACKLIGHT_GPT_DRIVER); - } -} -#endif diff --git a/quantum/bootmagic/bootmagic_lite.c b/quantum/bootmagic/bootmagic_lite.c index f63c71fc6b1..efce6bfd121 100644 --- a/quantum/bootmagic/bootmagic_lite.c +++ b/quantum/bootmagic/bootmagic_lite.c @@ -13,7 +13,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "quantum.h" +#include "bootmagic.h" +#include "matrix.h" +#include "keyboard.h" +#include "wait.h" +#include "eeconfig.h" +#include "bootloader.h" /** \brief Reset eeprom * diff --git a/quantum/debounce.h b/quantum/debounce.h index a8629654c20..cea1f2b5260 100644 --- a/quantum/debounce.h +++ b/quantum/debounce.h @@ -1,5 +1,9 @@ #pragma once +#include +#include +#include "matrix.h" + /** * @brief Debounce raw matrix events according to the choosen debounce algorithm. * diff --git a/quantum/debounce/asym_eager_defer_pk.c b/quantum/debounce/asym_eager_defer_pk.c index 4745c6f4654..954d43536c0 100644 --- a/quantum/debounce/asym_eager_defer_pk.c +++ b/quantum/debounce/asym_eager_defer_pk.c @@ -22,9 +22,8 @@ Basic symmetric per-key algorithm. Uses an 8-bit counter per key. When no state changes have occured for DEBOUNCE milliseconds, we push the state. */ -#include "matrix.h" +#include "debounce.h" #include "timer.h" -#include "quantum.h" #include #ifdef PROTOCOL_CHIBIOS @@ -144,6 +143,8 @@ static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { debounce_counter_t *debounce_pointer = debounce_counters; + matrix_need_update = false; + for (uint8_t row = 0; row < num_rows; row++) { matrix_row_t delta = raw[row] ^ cooked[row]; for (uint8_t col = 0; col < MATRIX_COLS; col++) { diff --git a/quantum/debounce/none.c b/quantum/debounce/none.c index 4cff5e05e26..1b8b1dc13a3 100644 --- a/quantum/debounce/none.c +++ b/quantum/debounce/none.c @@ -14,9 +14,7 @@ * along with this program. If not, see . */ -#include "matrix.h" -#include "quantum.h" -#include +#include "debounce.h" #include void debounce_init(uint8_t num_rows) {} diff --git a/quantum/debounce/sym_defer_g.c b/quantum/debounce/sym_defer_g.c index d04310a7615..25e18890aff 100644 --- a/quantum/debounce/sym_defer_g.c +++ b/quantum/debounce/sym_defer_g.c @@ -17,9 +17,8 @@ along with this program. If not, see . Basic global debounce algorithm. Used in 99% of keyboards at time of implementation When no state changes have occured for DEBOUNCE milliseconds, we push the state. */ -#include "matrix.h" +#include "debounce.h" #include "timer.h" -#include "quantum.h" #include #ifndef DEBOUNCE # define DEBOUNCE 5 diff --git a/quantum/debounce/sym_defer_pk.c b/quantum/debounce/sym_defer_pk.c index 7b59b5e1007..156535a3733 100644 --- a/quantum/debounce/sym_defer_pk.c +++ b/quantum/debounce/sym_defer_pk.c @@ -19,9 +19,8 @@ Basic symmetric per-key algorithm. Uses an 8-bit counter per key. When no state changes have occured for DEBOUNCE milliseconds, we push the state. */ -#include "matrix.h" +#include "debounce.h" #include "timer.h" -#include "quantum.h" #include #ifdef PROTOCOL_CHIBIOS diff --git a/quantum/debounce/sym_defer_pr.c b/quantum/debounce/sym_defer_pr.c index 452c4599d0a..d6222af5b29 100644 --- a/quantum/debounce/sym_defer_pr.c +++ b/quantum/debounce/sym_defer_pr.c @@ -17,9 +17,8 @@ Symmetric per-row debounce algorithm. Changes only apply when DEBOUNCE milliseconds have elapsed since the last change. */ -#include "matrix.h" +#include "debounce.h" #include "timer.h" -#include "quantum.h" #include #ifndef DEBOUNCE diff --git a/quantum/debounce/sym_eager_pk.c b/quantum/debounce/sym_eager_pk.c index f736d1645cd..b359e79287e 100644 --- a/quantum/debounce/sym_eager_pk.c +++ b/quantum/debounce/sym_eager_pk.c @@ -19,9 +19,8 @@ After pressing a key, it immediately changes state, and sets a counter. No further inputs are accepted until DEBOUNCE milliseconds have occurred. */ -#include "matrix.h" +#include "debounce.h" #include "timer.h" -#include "quantum.h" #include #ifdef PROTOCOL_CHIBIOS @@ -125,6 +124,7 @@ static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) { // upload from raw_matrix to final matrix; static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { + matrix_need_update = false; debounce_counter_t *debounce_pointer = debounce_counters; for (uint8_t row = 0; row < num_rows; row++) { matrix_row_t delta = raw[row] ^ cooked[row]; diff --git a/quantum/debounce/sym_eager_pr.c b/quantum/debounce/sym_eager_pr.c index aad5ca351b8..ccc5d20fa2c 100644 --- a/quantum/debounce/sym_eager_pr.c +++ b/quantum/debounce/sym_eager_pr.c @@ -19,9 +19,8 @@ After pressing a key, it immediately changes state, and sets a counter. No further inputs are accepted until DEBOUNCE milliseconds have occurred. */ -#include "matrix.h" +#include "debounce.h" #include "timer.h" -#include "quantum.h" #include #ifdef PROTOCOL_CHIBIOS @@ -119,6 +118,7 @@ static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) { // upload from raw_matrix to final matrix; static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { + matrix_need_update = false; debounce_counter_t *debounce_pointer = debounce_counters; for (uint8_t row = 0; row < num_rows; row++) { matrix_row_t existing_row = cooked[row]; diff --git a/quantum/debounce/tests/debounce_test_common.cpp b/quantum/debounce/tests/debounce_test_common.cpp index bd98e329554..b11378b286a 100644 --- a/quantum/debounce/tests/debounce_test_common.cpp +++ b/quantum/debounce/tests/debounce_test_common.cpp @@ -23,9 +23,8 @@ #include extern "C" { -#include "quantum.h" -#include "timer.h" #include "debounce.h" +#include "timer.h" void set_time(uint32_t t); void advance_time(uint32_t ms); diff --git a/quantum/debounce/tests/debounce_test_common.h b/quantum/debounce/tests/debounce_test_common.h index b7becb37826..7319abfbf3f 100644 --- a/quantum/debounce/tests/debounce_test_common.h +++ b/quantum/debounce/tests/debounce_test_common.h @@ -21,7 +21,7 @@ #include extern "C" { -#include "quantum.h" +#include "matrix.h" #include "timer.h" } diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 1c465367e6f..3fd939be7c1 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -14,18 +14,22 @@ * along with this program. If not, see . */ -#include "keymap_introspection.h" // to get keymaps[][][] -#include "eeprom.h" -#include "progmem.h" // to read default from flash -#include "quantum.h" // for send_string() #include "dynamic_keymap.h" -#include "via.h" // for default VIA_EEPROM_ADDR_END +#include "keymap_introspection.h" +#include "action.h" +#include "eeprom.h" +#include "progmem.h" +#include "send_string.h" +#include "keycodes.h" +#include "action_tapping.h" +#include "wait.h" #include #ifdef VIA_ENABLE -# include "via.h" // for VIA_EEPROM_CONFIG_END +# include "via.h" # define DYNAMIC_KEYMAP_EEPROM_START (VIA_EEPROM_CONFIG_END) #else +# include "eeconfig.h" # define DYNAMIC_KEYMAP_EEPROM_START (EECONFIG_SIZE) #endif @@ -272,22 +276,13 @@ void dynamic_keymap_reset(void) { for (int layer = 0; layer < DYNAMIC_KEYMAP_LAYER_COUNT; layer++) { 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, keycode_at_keymap_location_raw(layer, row, column)); - } else { - dynamic_keymap_set_keycode(layer, row, column, KC_TRANSPARENT); - } + dynamic_keymap_set_keycode(layer, row, column, keycode_at_keymap_location_raw(layer, row, column)); } } #ifdef ENCODER_MAP_ENABLE for (int encoder = 0; encoder < NUM_ENCODERS; encoder++) { - if (layer < encodermap_layer_count()) { - 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); - } + 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)); } #endif // ENCODER_MAP_ENABLE } diff --git a/quantum/encoder.c b/quantum/encoder.c index 1046fe6cc3d..7ab194ed529 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -16,6 +16,11 @@ */ #include "encoder.h" +#include "keyboard.h" +#include "action.h" +#include "keycodes.h" +#include "wait.h" + #ifdef SPLIT_KEYBOARD # include "split_util.h" #endif diff --git a/quantum/encoder.h b/quantum/encoder.h index 7644853b30a..1cbac98cb57 100644 --- a/quantum/encoder.h +++ b/quantum/encoder.h @@ -17,7 +17,9 @@ #pragma once -#include "quantum.h" +#include +#include +#include "gpio.h" #include "util.h" void encoder_init(void); diff --git a/quantum/encoder/tests/encoder_tests_split_role.cpp b/quantum/encoder/tests/encoder_tests_split_role.cpp index 02264067f4c..0ab7bfc2a78 100644 --- a/quantum/encoder/tests/encoder_tests_split_role.cpp +++ b/quantum/encoder/tests/encoder_tests_split_role.cpp @@ -22,6 +22,7 @@ extern "C" { #include "encoder.h" +#include "keyboard.h" #include "encoder/tests/mock_split.h" } diff --git a/quantum/haptic.c b/quantum/haptic.c index c151547fcaf..5a700dca388 100644 --- a/quantum/haptic.c +++ b/quantum/haptic.c @@ -14,17 +14,20 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include "haptic.h" #include "eeconfig.h" #include "debug.h" #include "usb_device_state.h" #include "gpio.h" -#ifdef DRV2605L -# include "DRV2605L.h" + +#ifdef HAPTIC_DRV2605L +# include "drv2605l.h" #endif -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID # include "solenoid.h" #endif + #if defined(SPLIT_KEYBOARD) && defined(SPLIT_HAPTIC_ENABLE) extern uint8_t split_haptic_play; #endif @@ -59,11 +62,11 @@ void haptic_init(void) { eeconfig_init(); } haptic_config.raw = eeconfig_read_haptic(); -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID solenoid_set_dwell(haptic_config.dwell); #endif if ((haptic_config.raw == 0) -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID || (haptic_config.dwell == 0) #endif ) { @@ -77,12 +80,12 @@ void haptic_init(void) { // This is to execute any side effects of the configuration. set_haptic_config_enable(haptic_config.enable); } -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID solenoid_setup(); dprintf("Solenoid driver initialized\n"); #endif -#ifdef DRV2605L - DRV_init(); +#ifdef HAPTIC_DRV2605L + drv2605l_init(); dprintf("DRV2605 driver initialized\n"); #endif eeconfig_debug_haptic(); @@ -95,7 +98,7 @@ void haptic_init(void) { } void haptic_task(void) { -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID solenoid_check(); #endif } @@ -108,13 +111,13 @@ void eeconfig_debug_haptic(void) { void haptic_enable(void) { set_haptic_config_enable(true); - xprintf("haptic_config.enable = %u\n", haptic_config.enable); + dprintf("haptic_config.enable = %u\n", haptic_config.enable); eeconfig_update_haptic(haptic_config.raw); } void haptic_disable(void) { set_haptic_config_enable(false); - xprintf("haptic_config.enable = %u\n", haptic_config.enable); + dprintf("haptic_config.enable = %u\n", haptic_config.enable); eeconfig_update_haptic(haptic_config.raw); } @@ -130,7 +133,7 @@ void haptic_toggle(void) { void haptic_feedback_toggle(void) { haptic_config.feedback++; if (haptic_config.feedback >= HAPTIC_FEEDBACK_MAX) haptic_config.feedback = KEY_PRESS; - xprintf("haptic_config.feedback = %u\n", !haptic_config.feedback); + dprintf("haptic_config.feedback = %u\n", !haptic_config.feedback); eeconfig_update_haptic(haptic_config.raw); } @@ -142,8 +145,8 @@ void haptic_buzz_toggle(void) { void haptic_mode_increase(void) { uint8_t mode = haptic_config.mode + 1; -#ifdef DRV2605L - if (haptic_config.mode >= drv_effect_max) { +#ifdef HAPTIC_DRV2605L + if (haptic_config.mode >= DRV2605L_EFFECT_COUNT) { mode = 1; } #endif @@ -152,16 +155,16 @@ void haptic_mode_increase(void) { void haptic_mode_decrease(void) { uint8_t mode = haptic_config.mode - 1; -#ifdef DRV2605L +#ifdef HAPTIC_DRV2605L if (haptic_config.mode < 1) { - mode = (drv_effect_max - 1); + mode = (DRV2605L_EFFECT_COUNT - 1); } #endif haptic_set_mode(mode); } void haptic_dwell_increase(void) { -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID int16_t next_dwell = ((int16_t)haptic_config.dwell) + SOLENOID_DWELL_STEP_SIZE; if (haptic_config.dwell >= SOLENOID_MAX_DWELL) { // if it's already at max, we wrap back to min @@ -178,7 +181,7 @@ void haptic_dwell_increase(void) { } void haptic_dwell_decrease(void) { -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID int16_t next_dwell = ((int16_t)haptic_config.dwell) - SOLENOID_DWELL_STEP_SIZE; if (haptic_config.dwell <= SOLENOID_MIN_DWELL) { // if it's already at min, we wrap to max @@ -196,13 +199,13 @@ void haptic_dwell_decrease(void) { void haptic_reset(void) { set_haptic_config_enable(true); - uint8_t feedback = HAPTIC_FEEDBACK_DEFAULT; + uint8_t feedback = HAPTIC_DEFAULT_FEEDBACK; haptic_config.feedback = feedback; -#ifdef DRV2605L - uint8_t mode = HAPTIC_MODE_DEFAULT; +#ifdef HAPTIC_DRV2605L + uint8_t mode = HAPTIC_DEFAULT_MODE; haptic_config.mode = mode; #endif -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID uint8_t dwell = SOLENOID_DEFAULT_DWELL; haptic_config.dwell = dwell; haptic_config.buzz = SOLENOID_DEFAULT_BUZZ; @@ -213,41 +216,41 @@ void haptic_reset(void) { haptic_config.buzz = 0; #endif eeconfig_update_haptic(haptic_config.raw); - xprintf("haptic_config.feedback = %u\n", haptic_config.feedback); - xprintf("haptic_config.mode = %u\n", haptic_config.mode); + dprintf("haptic_config.feedback = %u\n", haptic_config.feedback); + dprintf("haptic_config.mode = %u\n", haptic_config.mode); } void haptic_set_feedback(uint8_t feedback) { haptic_config.feedback = feedback; eeconfig_update_haptic(haptic_config.raw); - xprintf("haptic_config.feedback = %u\n", haptic_config.feedback); + dprintf("haptic_config.feedback = %u\n", haptic_config.feedback); } void haptic_set_mode(uint8_t mode) { haptic_config.mode = mode; eeconfig_update_haptic(haptic_config.raw); - xprintf("haptic_config.mode = %u\n", haptic_config.mode); + dprintf("haptic_config.mode = %u\n", haptic_config.mode); } void haptic_set_amplitude(uint8_t amp) { haptic_config.amplitude = amp; eeconfig_update_haptic(haptic_config.raw); - xprintf("haptic_config.amplitude = %u\n", haptic_config.amplitude); -#ifdef DRV2605L - DRV_amplitude(amp); + dprintf("haptic_config.amplitude = %u\n", haptic_config.amplitude); +#ifdef HAPTIC_DRV2605L + drv2605l_amplitude(amp); #endif } void haptic_set_buzz(uint8_t buzz) { haptic_config.buzz = buzz; eeconfig_update_haptic(haptic_config.raw); - xprintf("haptic_config.buzz = %u\n", haptic_config.buzz); + dprintf("haptic_config.buzz = %u\n", haptic_config.buzz); } void haptic_set_dwell(uint8_t dwell) { haptic_config.dwell = dwell; eeconfig_update_haptic(haptic_config.raw); - xprintf("haptic_config.dwell = %u\n", haptic_config.dwell); + dprintf("haptic_config.dwell = %u\n", haptic_config.dwell); } uint8_t haptic_get_enable(void) { @@ -277,19 +280,19 @@ uint8_t haptic_get_dwell(void) { void haptic_enable_continuous(void) { haptic_config.cont = 1; - xprintf("haptic_config.cont = %u\n", haptic_config.cont); + dprintf("haptic_config.cont = %u\n", haptic_config.cont); eeconfig_update_haptic(haptic_config.raw); -#ifdef DRV2605L - DRV_rtp_init(); +#ifdef HAPTIC_DRV2605L + drv2605l_rtp_init(); #endif } void haptic_disable_continuous(void) { haptic_config.cont = 0; - xprintf("haptic_config.cont = %u\n", haptic_config.cont); + dprintf("haptic_config.cont = %u\n", haptic_config.cont); eeconfig_update_haptic(haptic_config.raw); -#ifdef DRV2605L - DRV_write(DRV_MODE, 0x00); +#ifdef HAPTIC_DRV2605L + drv2605l_write(DRV2605L_REG_MODE, 0x00); #endif } @@ -318,15 +321,15 @@ void haptic_cont_decrease(void) { } void haptic_play(void) { -#ifdef DRV2605L +#ifdef HAPTIC_DRV2605L uint8_t play_eff = 0; play_eff = haptic_config.mode; - DRV_pulse(play_eff); + drv2605l_pulse(play_eff); # if defined(SPLIT_KEYBOARD) && defined(SPLIT_HAPTIC_ENABLE) split_haptic_play = haptic_config.mode; # endif #endif -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID solenoid_fire_handler(); # if defined(SPLIT_KEYBOARD) && defined(SPLIT_HAPTIC_ENABLE) split_haptic_play = 1; @@ -335,7 +338,7 @@ void haptic_play(void) { } void haptic_shutdown(void) { -#ifdef SOLENOID_ENABLE +#ifdef HAPTIC_SOLENOID solenoid_shutdown(); #endif } diff --git a/quantum/haptic.h b/quantum/haptic.h index 71d95cc61b3..5bd1a71916d 100644 --- a/quantum/haptic.h +++ b/quantum/haptic.h @@ -16,14 +16,15 @@ */ #pragma once + #include #include -#ifndef HAPTIC_FEEDBACK_DEFAULT -# define HAPTIC_FEEDBACK_DEFAULT 0 +#ifndef HAPTIC_DEFAULT_FEEDBACK +# define HAPTIC_DEFAULT_FEEDBACK 0 #endif -#ifndef HAPTIC_MODE_DEFAULT -# define HAPTIC_MODE_DEFAULT DRV_MODE_DEFAULT +#ifndef HAPTIC_DEFAULT_MODE +# define HAPTIC_DEFAULT_MODE DRV2605L_DEFAULT_MODE #endif /* EEPROM config settings */ diff --git a/quantum/keyboard.c b/quantum/keyboard.c index f82266eb1c5..71eb6b8380b 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -16,8 +16,8 @@ along with this program. If not, see . */ #include -#include "quantum.h" #include "keyboard.h" +#include "keycode_config.h" #include "matrix.h" #include "keymap_introspection.h" #include "magic.h" @@ -33,6 +33,12 @@ along with this program. If not, see . #include "sendchar.h" #include "eeconfig.h" #include "action_layer.h" +#ifdef AUDIO_ENABLE +# include "audio.h" +#endif +#if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) +# include "process_music.h" +#endif #ifdef BACKLIGHT_ENABLE # include "backlight.h" #endif @@ -54,9 +60,27 @@ along with this program. If not, see . #ifdef ENCODER_ENABLE # include "encoder.h" #endif +#ifdef HAPTIC_ENABLE +# include "haptic.h" +#endif +#ifdef AUTO_SHIFT_ENABLE +# include "process_auto_shift.h" +#endif +#ifdef COMBO_ENABLE +# include "process_combo.h" +#endif +#ifdef TAP_DANCE_ENABLE +# include "process_tap_dance.h" +#endif #ifdef STENO_ENABLE # include "process_steno.h" #endif +#ifdef KEY_OVERRIDE_ENABLE +# include "process_key_override.h" +#endif +#ifdef SECURE_ENABLE +# include "secure.h" +#endif #ifdef POINTING_DEVICE_ENABLE # include "pointing_device.h" #endif @@ -64,7 +88,7 @@ along with this program. If not, see . # include "process_midi.h" #endif #ifdef JOYSTICK_ENABLE -# include "process_joystick.h" +# include "joystick.h" #endif #ifdef HD44780_ENABLE # include "hd44780.h" @@ -114,6 +138,12 @@ along with this program. If not, see . #ifdef LEADER_ENABLE # include "leader.h" #endif +#ifdef UNICODE_COMMON_ENABLE +# include "unicode.h" +#endif +#ifdef WPM_ENABLE +# include "wpm.h" +#endif static uint32_t last_input_modification_time = 0; uint32_t last_input_activity_time(void) { diff --git a/quantum/keyboard.h b/quantum/keyboard.h index bf1890d10ba..5ea57815a71 100644 --- a/quantum/keyboard.h +++ b/quantum/keyboard.h @@ -20,6 +20,8 @@ along with this program. If not, see . #include #include +#include "timer.h" + #ifdef __cplusplus extern "C" { #endif diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c index 9dd7097c861..864488a65c9 100644 --- a/quantum/keycode_config.c +++ b/quantum/keycode_config.c @@ -122,40 +122,36 @@ __attribute__((weak)) uint16_t keycode_config(uint16_t keycode) { */ __attribute__((weak)) uint8_t mod_config(uint8_t mod) { + /** + * Note: This function is for the 5-bit packed mods, NOT the full 8-bit mods. + * More info about the mods can be seen in modifiers.h. + */ if (keymap_config.swap_lalt_lgui) { - if ((mod & MOD_RGUI) == MOD_LGUI) { - mod &= ~MOD_LGUI; - mod |= MOD_LALT; - } else if ((mod & MOD_RALT) == MOD_LALT) { - mod &= ~MOD_LALT; - mod |= MOD_LGUI; + /** If both modifiers pressed or neither pressed, do nothing + * Otherwise swap the values + * Note: The left mods are ANDed with the right-hand values to check + * if they were pressed with the right hand bit set + */ + if (((mod & MOD_RALT) == MOD_LALT) ^ ((mod & MOD_RGUI) == MOD_LGUI)) { + mod ^= (MOD_LALT | MOD_LGUI); } } if (keymap_config.swap_ralt_rgui) { - if ((mod & MOD_RGUI) == MOD_RGUI) { - mod &= ~MOD_RGUI; - mod |= MOD_RALT; - } else if ((mod & MOD_RALT) == MOD_RALT) { - mod &= ~MOD_RALT; - mod |= MOD_RGUI; + if (((mod & MOD_RALT) == MOD_RALT) ^ ((mod & MOD_RGUI) == MOD_RGUI)) { + /* lefthand values to preserve the right hand bit */ + mod ^= (MOD_LALT | MOD_LGUI); } } if (keymap_config.swap_lctl_lgui) { - if ((mod & MOD_RGUI) == MOD_LGUI) { - mod &= ~MOD_LGUI; - mod |= MOD_LCTL; - } else if ((mod & MOD_RCTL) == MOD_LCTL) { - mod &= ~MOD_LCTL; - mod |= MOD_LGUI; + /* left mods ANDed with right-hand values to check for right hand bit */ + if (((mod & MOD_RCTL) == MOD_LCTL) ^ ((mod & MOD_RGUI) == MOD_LGUI)) { + mod ^= (MOD_LCTL | MOD_LGUI); } } if (keymap_config.swap_rctl_rgui) { - if ((mod & MOD_RGUI) == MOD_RGUI) { - mod &= ~MOD_RGUI; - mod |= MOD_RCTL; - } else if ((mod & MOD_RCTL) == MOD_RCTL) { - mod &= ~MOD_RCTL; - mod |= MOD_RGUI; + if (((mod & MOD_RCTL) == MOD_RCTL) ^ ((mod & MOD_RGUI) == MOD_RGUI)) { + /* lefthand values to preserve the right hand bit */ + mod ^= (MOD_LCTL | MOD_LGUI); } } if (keymap_config.no_gui) { diff --git a/quantum/keymap.h b/quantum/keymap.h deleted file mode 100644 index a067e1aa368..00000000000 --- a/quantum/keymap.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2012-2016 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 . -*/ - -#pragma once - -#pragma message("'keymap.h' should no longer be included!") diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 804807f28ec..07f7cc75a1c 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -22,7 +22,12 @@ along with this program. If not, see . #include "action_layer.h" #include "action.h" #include "debug.h" -#include "quantum.h" +#include "keycode_config.h" +#include "quantum_keycodes.h" + +#ifdef ENCODER_MAP_ENABLE +# include "encoder.h" +#endif #ifdef BACKLIGHT_ENABLE # include "backlight.h" @@ -32,6 +37,10 @@ along with this program. If not, see . # include "process_midi.h" #endif +#ifdef VIAL_ENABLE +# include "vial.h" +#endif + extern keymap_config_t keymap_config; #include @@ -187,8 +196,6 @@ action_t action_for_keycode(uint16_t keycode) { return action; } -extern uint16_t g_vial_magic_keycode_override; - // translates key to keycode __attribute__((weak)) uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) { #ifdef VIAL_ENABLE diff --git a/quantum/keymap_extras/keymap_swiss_de.h b/quantum/keymap_extras/keymap_swiss_de.h index 69bba7293e6..c22191dd4e7 100644 --- a/quantum/keymap_extras/keymap_swiss_de.h +++ b/quantum/keymap_extras/keymap_swiss_de.h @@ -27,6 +27,8 @@ #include "keycodes.h" // clang-format off +#undef CH_H + // Aliases #define CH_SECT KC_GRV // § #define CH_1 KC_1 // 1 diff --git a/quantum/keymap_extras/keymap_swiss_fr.h b/quantum/keymap_extras/keymap_swiss_fr.h index 1e2f833db16..e0e8e52c9ce 100644 --- a/quantum/keymap_extras/keymap_swiss_fr.h +++ b/quantum/keymap_extras/keymap_swiss_fr.h @@ -27,6 +27,8 @@ #include "keycodes.h" // clang-format off +#undef CH_H + // Aliases #define CH_SECT KC_GRV // § #define CH_1 KC_1 // 1 diff --git a/quantum/keymap_extras/sendstring_belgian.h b/quantum/keymap_extras/sendstring_belgian.h index 34ca9514c81..f33d6272e82 100644 --- a/quantum/keymap_extras/sendstring_belgian.h +++ b/quantum/keymap_extras/sendstring_belgian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_belgian.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_bepo.h b/quantum/keymap_extras/sendstring_bepo.h index 0f0d5a2111e..1d24728ab66 100644 --- a/quantum/keymap_extras/sendstring_bepo.h +++ b/quantum/keymap_extras/sendstring_bepo.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_bepo.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_brazilian_abnt2.h b/quantum/keymap_extras/sendstring_brazilian_abnt2.h index b52ce4958ab..ca908353ab4 100644 --- a/quantum/keymap_extras/sendstring_brazilian_abnt2.h +++ b/quantum/keymap_extras/sendstring_brazilian_abnt2.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_brazilian_abnt2.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_canadian_multilingual.h b/quantum/keymap_extras/sendstring_canadian_multilingual.h index 92b588c82e4..63bca96de9e 100644 --- a/quantum/keymap_extras/sendstring_canadian_multilingual.h +++ b/quantum/keymap_extras/sendstring_canadian_multilingual.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_canadian_multilingual.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_colemak.h b/quantum/keymap_extras/sendstring_colemak.h index 3aef96b24af..1514620cb66 100644 --- a/quantum/keymap_extras/sendstring_colemak.h +++ b/quantum/keymap_extras/sendstring_colemak.h @@ -18,6 +18,7 @@ #pragma once +#include "send_string.h" #include "keymap_colemak.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_croatian.h b/quantum/keymap_extras/sendstring_croatian.h index bf51c81a884..e43b54713d4 100644 --- a/quantum/keymap_extras/sendstring_croatian.h +++ b/quantum/keymap_extras/sendstring_croatian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_croatian.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_czech.h b/quantum/keymap_extras/sendstring_czech.h index 54c33174186..083a723403b 100644 --- a/quantum/keymap_extras/sendstring_czech.h +++ b/quantum/keymap_extras/sendstring_czech.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_czech.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_danish.h b/quantum/keymap_extras/sendstring_danish.h index 6923063ce2c..573e4afae22 100644 --- a/quantum/keymap_extras/sendstring_danish.h +++ b/quantum/keymap_extras/sendstring_danish.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_danish.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_dvorak.h b/quantum/keymap_extras/sendstring_dvorak.h index 25e1d31423a..d31a33ba518 100644 --- a/quantum/keymap_extras/sendstring_dvorak.h +++ b/quantum/keymap_extras/sendstring_dvorak.h @@ -18,6 +18,7 @@ #pragma once +#include "send_string.h" #include "keymap_dvorak.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_dvorak_fr.h b/quantum/keymap_extras/sendstring_dvorak_fr.h index 2f4f2817949..f1c3fa04ccc 100644 --- a/quantum/keymap_extras/sendstring_dvorak_fr.h +++ b/quantum/keymap_extras/sendstring_dvorak_fr.h @@ -18,6 +18,7 @@ #pragma once +#include "send_string.h" #include "keymap_dvorak_fr.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_dvorak_programmer.h b/quantum/keymap_extras/sendstring_dvorak_programmer.h index f19bb6f4b21..372ee5726b3 100644 --- a/quantum/keymap_extras/sendstring_dvorak_programmer.h +++ b/quantum/keymap_extras/sendstring_dvorak_programmer.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_dvorak_programmer.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_estonian.h b/quantum/keymap_extras/sendstring_estonian.h index 9ea2ab3f8ff..903ec3cab37 100644 --- a/quantum/keymap_extras/sendstring_estonian.h +++ b/quantum/keymap_extras/sendstring_estonian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_estonian.h" -#include "quantum" // clang-format off diff --git a/quantum/keymap_extras/sendstring_finnish.h b/quantum/keymap_extras/sendstring_finnish.h index 197836ba83d..f797f34e0ad 100644 --- a/quantum/keymap_extras/sendstring_finnish.h +++ b/quantum/keymap_extras/sendstring_finnish.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_finnish.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_french.h b/quantum/keymap_extras/sendstring_french.h index a37a5d314bd..0e585ec0937 100644 --- a/quantum/keymap_extras/sendstring_french.h +++ b/quantum/keymap_extras/sendstring_french.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_french.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_french_afnor.h b/quantum/keymap_extras/sendstring_french_afnor.h index 1408634a266..55b90b32046 100644 --- a/quantum/keymap_extras/sendstring_french_afnor.h +++ b/quantum/keymap_extras/sendstring_french_afnor.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_french_afnor.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_french_mac_iso.h b/quantum/keymap_extras/sendstring_french_mac_iso.h index 1033c3991fe..9a170078986 100644 --- a/quantum/keymap_extras/sendstring_french_mac_iso.h +++ b/quantum/keymap_extras/sendstring_french_mac_iso.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_french_mac_iso.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_german.h b/quantum/keymap_extras/sendstring_german.h index 69c7dd996ed..79357d71e49 100644 --- a/quantum/keymap_extras/sendstring_german.h +++ b/quantum/keymap_extras/sendstring_german.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_german.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_german_mac_iso.h b/quantum/keymap_extras/sendstring_german_mac_iso.h index 8345dbaaa14..711ba7d05bf 100644 --- a/quantum/keymap_extras/sendstring_german_mac_iso.h +++ b/quantum/keymap_extras/sendstring_german_mac_iso.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_german_mac_iso.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_hungarian.h b/quantum/keymap_extras/sendstring_hungarian.h index 9169ba25575..d96a8fcd049 100644 --- a/quantum/keymap_extras/sendstring_hungarian.h +++ b/quantum/keymap_extras/sendstring_hungarian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_hungarian.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_icelandic.h b/quantum/keymap_extras/sendstring_icelandic.h index b25a4e76e7a..8515c6cccf5 100644 --- a/quantum/keymap_extras/sendstring_icelandic.h +++ b/quantum/keymap_extras/sendstring_icelandic.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_icelandic.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_italian.h b/quantum/keymap_extras/sendstring_italian.h index dad4902d34d..322da2ac1b8 100644 --- a/quantum/keymap_extras/sendstring_italian.h +++ b/quantum/keymap_extras/sendstring_italian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_italian.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_italian_mac_ansi.h b/quantum/keymap_extras/sendstring_italian_mac_ansi.h index 97b5164e23b..2961316de69 100644 --- a/quantum/keymap_extras/sendstring_italian_mac_ansi.h +++ b/quantum/keymap_extras/sendstring_italian_mac_ansi.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_italian_mac_ansi.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_italian_mac_iso.h b/quantum/keymap_extras/sendstring_italian_mac_iso.h index d82e8bbddf1..25eb2549bda 100644 --- a/quantum/keymap_extras/sendstring_italian_mac_iso.h +++ b/quantum/keymap_extras/sendstring_italian_mac_iso.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_italian_mac_iso.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_japanese.h b/quantum/keymap_extras/sendstring_japanese.h index 13628d70238..043446acbf6 100644 --- a/quantum/keymap_extras/sendstring_japanese.h +++ b/quantum/keymap_extras/sendstring_japanese.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_japanese.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_latvian.h b/quantum/keymap_extras/sendstring_latvian.h index bd73a01e484..9323c603cc2 100644 --- a/quantum/keymap_extras/sendstring_latvian.h +++ b/quantum/keymap_extras/sendstring_latvian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_latvian.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_lithuanian_azerty.h b/quantum/keymap_extras/sendstring_lithuanian_azerty.h index a886411143e..92d25700229 100644 --- a/quantum/keymap_extras/sendstring_lithuanian_azerty.h +++ b/quantum/keymap_extras/sendstring_lithuanian_azerty.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_lithuanian_azerty.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_lithuanian_qwerty.h b/quantum/keymap_extras/sendstring_lithuanian_qwerty.h index 69cb94de713..676930e9d3c 100644 --- a/quantum/keymap_extras/sendstring_lithuanian_qwerty.h +++ b/quantum/keymap_extras/sendstring_lithuanian_qwerty.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_lithuanian_qwerty.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_norman.h b/quantum/keymap_extras/sendstring_norman.h index 21dbbdd7054..b9b175c8220 100644 --- a/quantum/keymap_extras/sendstring_norman.h +++ b/quantum/keymap_extras/sendstring_norman.h @@ -18,6 +18,7 @@ #pragma once +#include "send_string.h" #include "keymap_norman.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_norwegian.h b/quantum/keymap_extras/sendstring_norwegian.h index 28813da51f4..ce362b76db1 100644 --- a/quantum/keymap_extras/sendstring_norwegian.h +++ b/quantum/keymap_extras/sendstring_norwegian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_norwegian.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_portuguese.h b/quantum/keymap_extras/sendstring_portuguese.h index 37db5f97aab..951da2397ce 100644 --- a/quantum/keymap_extras/sendstring_portuguese.h +++ b/quantum/keymap_extras/sendstring_portuguese.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_portuguese.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_portuguese_mac_iso.h b/quantum/keymap_extras/sendstring_portuguese_mac_iso.h index 5d43c66279b..cda5541a50f 100644 --- a/quantum/keymap_extras/sendstring_portuguese_mac_iso.h +++ b/quantum/keymap_extras/sendstring_portuguese_mac_iso.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_portuguese_mac_iso.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_romanian.h b/quantum/keymap_extras/sendstring_romanian.h index 9b5bee4a13e..16d91371023 100644 --- a/quantum/keymap_extras/sendstring_romanian.h +++ b/quantum/keymap_extras/sendstring_romanian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_romanian.h" -#include "quantum" // clang-format off diff --git a/quantum/keymap_extras/sendstring_serbian_latin.h b/quantum/keymap_extras/sendstring_serbian_latin.h index 7e19a62595c..5e3df75a951 100644 --- a/quantum/keymap_extras/sendstring_serbian_latin.h +++ b/quantum/keymap_extras/sendstring_serbian_latin.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_serbian_latin.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_slovak.h b/quantum/keymap_extras/sendstring_slovak.h index c94cca1379f..a908773969b 100644 --- a/quantum/keymap_extras/sendstring_slovak.h +++ b/quantum/keymap_extras/sendstring_slovak.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_slovak.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_slovenian.h b/quantum/keymap_extras/sendstring_slovenian.h index 117af7e76d6..1b863aa6e9f 100644 --- a/quantum/keymap_extras/sendstring_slovenian.h +++ b/quantum/keymap_extras/sendstring_slovenian.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_slovenian.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_spanish.h b/quantum/keymap_extras/sendstring_spanish.h index 680e99ef4ef..374ceaddfe0 100644 --- a/quantum/keymap_extras/sendstring_spanish.h +++ b/quantum/keymap_extras/sendstring_spanish.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_spanish.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_spanish_dvorak.h b/quantum/keymap_extras/sendstring_spanish_dvorak.h index ccf94582473..279b6f736ab 100644 --- a/quantum/keymap_extras/sendstring_spanish_dvorak.h +++ b/quantum/keymap_extras/sendstring_spanish_dvorak.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_spanish_dvorak.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_swedish.h b/quantum/keymap_extras/sendstring_swedish.h index d4513429927..6dd81ac95d6 100644 --- a/quantum/keymap_extras/sendstring_swedish.h +++ b/quantum/keymap_extras/sendstring_swedish.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_swedish.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_swiss_de.h b/quantum/keymap_extras/sendstring_swiss_de.h index f6aa19210c6..b352ab0b379 100644 --- a/quantum/keymap_extras/sendstring_swiss_de.h +++ b/quantum/keymap_extras/sendstring_swiss_de.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_swiss_de.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_swiss_fr.h b/quantum/keymap_extras/sendstring_swiss_fr.h index 7d04cc539a9..1559b5efa43 100644 --- a/quantum/keymap_extras/sendstring_swiss_fr.h +++ b/quantum/keymap_extras/sendstring_swiss_fr.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_swiss_fr.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_turkish_f.h b/quantum/keymap_extras/sendstring_turkish_f.h index cabd5c5dc5c..6d3e70bf81a 100644 --- a/quantum/keymap_extras/sendstring_turkish_f.h +++ b/quantum/keymap_extras/sendstring_turkish_f.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_turkish_f.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_turkish_q.h b/quantum/keymap_extras/sendstring_turkish_q.h index 986f0223333..077612737cd 100644 --- a/quantum/keymap_extras/sendstring_turkish_q.h +++ b/quantum/keymap_extras/sendstring_turkish_q.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_turkish_q.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_uk.h b/quantum/keymap_extras/sendstring_uk.h index bbd30769b00..2a79507f20c 100644 --- a/quantum/keymap_extras/sendstring_uk.h +++ b/quantum/keymap_extras/sendstring_uk.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_uk.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_us_international.h b/quantum/keymap_extras/sendstring_us_international.h index d1694ff0f0f..9b13a2fcf7d 100644 --- a/quantum/keymap_extras/sendstring_us_international.h +++ b/quantum/keymap_extras/sendstring_us_international.h @@ -18,8 +18,8 @@ #pragma once +#include "send_string.h" #include "keymap_us_international.h" -#include "quantum.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_workman.h b/quantum/keymap_extras/sendstring_workman.h index 04f8e3908a4..d22104fc5a1 100644 --- a/quantum/keymap_extras/sendstring_workman.h +++ b/quantum/keymap_extras/sendstring_workman.h @@ -18,6 +18,7 @@ #pragma once +#include "send_string.h" #include "keymap_workman.h" // clang-format off diff --git a/quantum/keymap_extras/sendstring_workman_zxcvm.h b/quantum/keymap_extras/sendstring_workman_zxcvm.h index e7605d7cce1..791268fdebd 100644 --- a/quantum/keymap_extras/sendstring_workman_zxcvm.h +++ b/quantum/keymap_extras/sendstring_workman_zxcvm.h @@ -18,6 +18,7 @@ #pragma once +#include "send_string.h" #include "keymap_workman_zxcvm.h" // clang-format off diff --git a/quantum/led.c b/quantum/led.c index 42144566fdd..8d86374a6f2 100644 --- a/quantum/led.c +++ b/quantum/led.c @@ -153,14 +153,14 @@ __attribute__((weak)) void led_set(uint8_t usb_led) { /** \brief Trigger behaviour on transition to suspend */ void led_suspend(void) { - uint8_t leds_off = 0; + led_t leds_off = {0}; #ifdef BACKLIGHT_CAPS_LOCK if (is_backlight_enabled()) { // Don't try to turn off Caps Lock indicator as it is backlight and backlight is already off - leds_off |= (1 << USB_LED_CAPS_LOCK); + leds_off.caps_lock = true; } #endif - led_set(leds_off); + led_set(leds_off.raw); } /** \brief Trigger behaviour on transition from suspend diff --git a/quantum/led.h b/quantum/led.h index b9ad7ed9ae7..b9fad670aeb 100644 --- a/quantum/led.h +++ b/quantum/led.h @@ -22,13 +22,6 @@ along with this program. If not, see . /* FIXME: Add doxygen comments here. */ -/* keyboard LEDs */ -#define USB_LED_NUM_LOCK 0 -#define USB_LED_CAPS_LOCK 1 -#define USB_LED_SCROLL_LOCK 2 -#define USB_LED_COMPOSE 3 -#define USB_LED_KANA 4 - #ifdef __cplusplus extern "C" { #endif diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 828d61641a1..1676a60aa35 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -20,8 +20,13 @@ #include "led_matrix.h" #include "progmem.h" #include "eeprom.h" +#include "eeconfig.h" +#include "keyboard.h" +#include "sync_timer.h" +#include "debug.h" #include #include +#include #include "led_tables.h" #include @@ -366,7 +371,10 @@ void led_matrix_task(void) { case RENDERING: led_task_render(effect); if (effect) { - led_matrix_indicators(); + // Only run the basic indicators in the last render iteration (default there are 5 iterations) + if (led_effect_params.iter == LED_MATRIX_LED_PROCESS_MAX_ITERATIONS) { + led_matrix_indicators(); + } led_matrix_indicators_advanced(&led_effect_params); } break; diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index c7d360f366d..c2533ca49cb 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -23,7 +23,7 @@ #include #include #include "led_matrix_types.h" -#include "quantum.h" +#include "keyboard.h" #ifdef IS31FL3731 # include "is31fl3731-simple.h" @@ -42,8 +42,9 @@ #endif #ifndef LED_MATRIX_LED_PROCESS_LIMIT -# define LED_MATRIX_LED_PROCESS_LIMIT (LED_MATRIX_LED_COUNT + 4) / 5 +# define LED_MATRIX_LED_PROCESS_LIMIT ((LED_MATRIX_LED_COUNT + 4) / 5) #endif +#define LED_MATRIX_LED_PROCESS_MAX_ITERATIONS ((LED_MATRIX_LED_COUNT + LED_MATRIX_LED_PROCESS_LIMIT - 1) / LED_MATRIX_LED_PROCESS_LIMIT) #if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT # if defined(LED_MATRIX_SPLIT) diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 2c09ba82b1f..13c8935d112 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -32,13 +32,13 @@ static void init(void) { i2c_init(); # if defined(IS31FL3731) - IS31FL3731_init(LED_DRIVER_ADDR_1); + is31fl3731_init(LED_DRIVER_ADDR_1); # if defined(LED_DRIVER_ADDR_2) - IS31FL3731_init(LED_DRIVER_ADDR_2); + is31fl3731_init(LED_DRIVER_ADDR_2); # if defined(LED_DRIVER_ADDR_3) - IS31FL3731_init(LED_DRIVER_ADDR_3); + is31fl3731_init(LED_DRIVER_ADDR_3); # if defined(LED_DRIVER_ADDR_4) - IS31FL3731_init(LED_DRIVER_ADDR_4); + is31fl3731_init(LED_DRIVER_ADDR_4); # endif # endif # endif @@ -47,22 +47,22 @@ static void init(void) { # if !defined(LED_DRIVER_SYNC_1) # define LED_DRIVER_SYNC_1 0 # endif - IS31FL3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1); + is31fl3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1); # if defined(LED_DRIVER_ADDR_2) # if !defined(LED_DRIVER_SYNC_2) # define LED_DRIVER_SYNC_2 0 # endif - IS31FL3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2); + is31fl3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2); # if defined(LED_DRIVER_ADDR_3) # if !defined(LED_DRIVER_SYNC_3) # define LED_DRIVER_SYNC_3 0 # endif - IS31FL3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3); + is31fl3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3); # if defined(LED_DRIVER_ADDR_4) # if !defined(LED_DRIVER_SYNC_4) # define LED_DRIVER_SYNC_4 0 # endif - IS31FL3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4); + is31fl3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4); # endif # endif # endif @@ -84,13 +84,13 @@ static void init(void) { writePinHigh(LED_DRIVER_SHUTDOWN_PIN); # endif - CKLED2001_init(DRIVER_ADDR_1); + ckled2001_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - CKLED2001_init(DRIVER_ADDR_2); + ckled2001_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - CKLED2001_init(DRIVER_ADDR_3); + ckled2001_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - CKLED2001_init(DRIVER_ADDR_4); + ckled2001_init(DRIVER_ADDR_4); # endif # endif # endif @@ -98,37 +98,37 @@ static void init(void) { for (int index = 0; index < LED_MATRIX_LED_COUNT; index++) { # if defined(IS31FL3731) - IS31FL3731_set_led_control_register(index, true); + is31fl3731_set_led_control_register(index, true); # elif defined(IS31FL3733) - IS31FL3733_set_led_control_register(index, true); + is31fl3733_set_led_control_register(index, true); # elif defined(IS31FLCOMMON) IS31FL_simple_set_scaling_buffer(index, true); # elif defined(CKLED2001) - CKLED2001_set_led_control_register(index, true); + ckled2001_set_led_control_register(index, true); # endif } // This actually updates the LED drivers # if defined(IS31FL3731) - IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) - IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); # if defined(LED_DRIVER_ADDR_3) - IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2); + is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2); # if defined(LED_DRIVER_ADDR_4) - IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3); + is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3); # endif # endif # endif # elif defined(IS31FL3733) - IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) - IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1); + is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1); # if defined(LED_DRIVER_ADDR_3) - IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2); + is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2); # if defined(LED_DRIVER_ADDR_4) - IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3); + is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3); # endif # endif # endif @@ -148,13 +148,13 @@ static void init(void) { # endif # endif # elif defined(CKLED2001) - CKLED2001_update_led_control_registers(DRIVER_ADDR_1, 0); + ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - CKLED2001_update_led_control_registers(DRIVER_ADDR_2, 1); + ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - CKLED2001_update_led_control_registers(DRIVER_ADDR_3, 2); + ckled2001_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - CKLED2001_update_led_control_registers(DRIVER_ADDR_4, 3); + ckled2001_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -163,13 +163,13 @@ static void init(void) { # if defined(IS31FL3731) static void flush(void) { - IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) - IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); # if defined(LED_DRIVER_ADDR_3) - IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); + is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); # if defined(LED_DRIVER_ADDR_4) - IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); + is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); # endif # endif # endif @@ -178,19 +178,19 @@ static void flush(void) { const led_matrix_driver_t led_matrix_driver = { .init = init, .flush = flush, - .set_value = IS31FL3731_set_value, - .set_value_all = IS31FL3731_set_value_all, + .set_value = is31fl3731_set_value, + .set_value_all = is31fl3731_set_value_all, }; # elif defined(IS31FL3733) static void flush(void) { - IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) - IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); + is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); # if defined(LED_DRIVER_ADDR_3) - IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); + is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); # if defined(LED_DRIVER_ADDR_4) - IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); + is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); # endif # endif # endif @@ -199,8 +199,8 @@ static void flush(void) { const led_matrix_driver_t led_matrix_driver = { .init = init, .flush = flush, - .set_value = IS31FL3733_set_value, - .set_value_all = IS31FL3733_set_value_all, + .set_value = is31fl3733_set_value, + .set_value_all = is31fl3733_set_value_all, }; # elif defined(IS31FLCOMMON) @@ -225,13 +225,13 @@ const led_matrix_driver_t led_matrix_driver = { }; # elif defined(CKLED2001) static void flush(void) { - CKLED2001_update_pwm_buffers(DRIVER_ADDR_1, 0); + ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - CKLED2001_update_pwm_buffers(DRIVER_ADDR_2, 1); + ckled2001_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - CKLED2001_update_pwm_buffers(DRIVER_ADDR_3, 2); + ckled2001_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - CKLED2001_update_pwm_buffers(DRIVER_ADDR_4, 3); + ckled2001_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -240,8 +240,8 @@ static void flush(void) { const led_matrix_driver_t led_matrix_driver = { .init = init, .flush = flush, - .set_value = CKLED2001_set_value, - .set_value_all = CKLED2001_set_value_all, + .set_value = ckled2001_set_value, + .set_value_all = ckled2001_set_value_all, }; # endif #endif diff --git a/quantum/led_matrix/post_config.h b/quantum/led_matrix/post_config.h new file mode 100644 index 00000000000..b6770b9ee1c --- /dev/null +++ b/quantum/led_matrix/post_config.h @@ -0,0 +1,19 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// clang-format off + +// reactive +#if defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE) || \ + defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE) || \ + defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE) || \ + defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS) || \ + defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS) || \ + defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS) || \ + defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS) || \ + defined(ENABLE_LED_MATRIX_SOLID_SPLASH) || \ + defined(ENABLE_LED_MATRIX_SOLID_MULTISPLASH) +# define LED_MATRIX_KEYPRESSES +#endif diff --git a/quantum/matrix.c b/quantum/matrix.c index 97d41caedde..f087a215d46 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -20,7 +20,8 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "debounce.h" -#include "quantum.h" +#include "atomic_util.h" + #ifdef SPLIT_KEYBOARD # include "split_common/split_util.h" # include "split_common/transactions.h" diff --git a/quantum/matrix_common.c b/quantum/matrix_common.c index 3173351888d..d02c527caa8 100644 --- a/quantum/matrix_common.c +++ b/quantum/matrix_common.c @@ -1,9 +1,9 @@ -#include "quantum.h" #include "matrix.h" #include "debounce.h" #include "wait.h" #include "print.h" #include "debug.h" + #ifdef SPLIT_KEYBOARD # include "split_common/split_util.h" # include "split_common/transactions.h" diff --git a/quantum/midi/qmk_midi.c b/quantum/midi/qmk_midi.c index f6a5d922812..6b8831fb589 100644 --- a/quantum/midi/qmk_midi.c +++ b/quantum/midi/qmk_midi.c @@ -5,6 +5,11 @@ #include "usb_descriptor.h" #include "process_midi.h" +#ifdef AUDIO_ENABLE +# include "audio.h" +# include +#endif + /******************************************************************************* * MIDI ******************************************************************************/ @@ -103,10 +108,10 @@ static void fallthrough_callback(MidiDevice* device, uint16_t cnt, uint8_t byte0 if (cnt == 3) { switch (byte0 & 0xF0) { case MIDI_NOTEON: - play_note(((double)261.6) * pow(2.0, -4.0) * pow(2.0, (byte1 & 0x7F) / 12.0), (byte2 & 0x7F) / 8); + play_note(440.0f * powf(2.0f, ((byte1 & 0x7F) - 57) / 12.0f), (byte2 & 0x7F) / 8); break; case MIDI_NOTEOFF: - stop_note(((double)261.6) * pow(2.0, -4.0) * pow(2.0, (byte1 & 0x7F) / 12.0)); + stop_note(440.0f * powf(2.0f, ((byte1 & 0x7F) - 57) / 12.0f)); break; } } diff --git a/quantum/mousekey.c b/quantum/mousekey.c index 735a6e45ba8..85de2b95255 100644 --- a/quantum/mousekey.c +++ b/quantum/mousekey.c @@ -26,11 +26,16 @@ #include "qmk_settings.h" static inline int8_t times_inv_sqrt2(int8_t x) { - // 181/256 is pretty close to 1/sqrt(2) - // 0.70703125 0.707106781 - // 1 too small for x=99 and x=198 - // This ends up being a mult and discard lower 8 bits - return (x * 181) >> 8; + // 181/256 (0.70703125) is used as an approximation for 1/sqrt(2) + // because it is close to the exact value which is 0.707106781 + const int16_t n = x * 181; + const uint16_t d = 256; + + // To ensure that the integer result is rounded accurately after + // division, check the sign of the numerator: + // If negative, subtract half of the denominator before dividing + // Otherwise, add half of the denominator before dividing + return n < 0 ? (n - d / 2) / d : (n + d / 2) / d; } static report_mouse_t mouse_report = {0}; @@ -75,7 +80,7 @@ uint8_t mk_time_to_max = MOUSEKEY_TIME_TO_MAX; uint8_t mk_wheel_delay = MOUSEKEY_WHEEL_DELAY / 10; /* milliseconds between repeated motion events (0-255) */ # ifdef MK_KINETIC_SPEED -float mk_wheel_interval = 1000.0f / MOUSEKEY_WHEEL_INITIAL_MOVEMENTS; +uint16_t mk_wheel_interval = 1000U / MOUSEKEY_WHEEL_INITIAL_MOVEMENTS; # else uint8_t mk_wheel_interval = MOUSEKEY_WHEEL_INTERVAL; # endif @@ -176,7 +181,7 @@ static uint8_t wheel_unit(void) { /* * Kinetic movement acceleration algorithm * - * current speed = I + A * T/50 + A * 0.5 * T^2 | maximum B + * current speed = I + A * T/50 + A * (T/50)^2 * 1/2 | maximum B * * T: time since the mouse movement started * E: mouse events per second (set through MOUSEKEY_INTERVAL, UHK sends 250, the @@ -191,39 +196,48 @@ const uint16_t mk_decelerated_speed = MOUSEKEY_DECELERATED_SPEED; const uint16_t mk_initial_speed = MOUSEKEY_INITIAL_SPEED; static uint8_t move_unit(void) { - float speed = mk_initial_speed; + uint16_t speed = mk_initial_speed; - if (mousekey_accel & ((1 << 0) | (1 << 2))) { - speed = mousekey_accel & (1 << 2) ? mk_accelerated_speed : mk_decelerated_speed; + if (mousekey_accel & (1 << 0)) { + speed = mk_decelerated_speed; + } else if (mousekey_accel & (1 << 2)) { + speed = mk_accelerated_speed; } else if (mousekey_repeat && mouse_timer) { - const float time_elapsed = timer_elapsed(mouse_timer) / 50; - speed = mk_initial_speed + MOUSEKEY_MOVE_DELTA * time_elapsed + MOUSEKEY_MOVE_DELTA * 0.5 * time_elapsed * time_elapsed; - - speed = speed > mk_base_speed ? mk_base_speed : speed; + const uint16_t time_elapsed = timer_elapsed(mouse_timer) / 50; + speed = mk_initial_speed + MOUSEKEY_MOVE_DELTA * time_elapsed + (MOUSEKEY_MOVE_DELTA * time_elapsed * time_elapsed) / 2; + if (speed > mk_base_speed) { + speed = mk_base_speed; + } } - /* convert speed to USB mouse speed 1 to 127 */ - speed = (uint8_t)(speed / (1000.0f / mk_interval)); - speed = speed < 1 ? 1 : speed; + speed = (uint8_t)(speed / (1000U / mk_interval)); - return speed > MOUSEKEY_MOVE_MAX ? MOUSEKEY_MOVE_MAX : speed; + if (speed > MOUSEKEY_MOVE_MAX) { + speed = MOUSEKEY_MOVE_MAX; + } else if (speed < 1) { + speed = 1; + } + return speed; } static uint8_t wheel_unit(void) { - float speed = MOUSEKEY_WHEEL_INITIAL_MOVEMENTS; + uint16_t speed = MOUSEKEY_WHEEL_INITIAL_MOVEMENTS; - if (mousekey_accel & ((1 << 0) | (1 << 2))) { - speed = mousekey_accel & (1 << 2) ? MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS : MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS; + if (mousekey_accel & (1 << 0)) { + speed = MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS; + } else if (mousekey_accel & (1 << 2)) { + speed = MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS; } else if (mousekey_wheel_repeat && mouse_timer) { if (mk_wheel_interval != MOUSEKEY_WHEEL_BASE_MOVEMENTS) { - const float time_elapsed = timer_elapsed(mouse_timer) / 50; - speed = MOUSEKEY_WHEEL_INITIAL_MOVEMENTS + 1 * time_elapsed + 1 * 0.5 * time_elapsed * time_elapsed; + const uint16_t time_elapsed = timer_elapsed(mouse_timer) / 50; + speed = MOUSEKEY_WHEEL_INITIAL_MOVEMENTS + 1 * time_elapsed + (1 * time_elapsed * time_elapsed) / 2; + } + if (speed > MOUSEKEY_WHEEL_BASE_MOVEMENTS) { + speed = MOUSEKEY_WHEEL_BASE_MOVEMENTS; } - speed = speed > MOUSEKEY_WHEEL_BASE_MOVEMENTS ? MOUSEKEY_WHEEL_BASE_MOVEMENTS : speed; } - mk_wheel_interval = 1000.0f / speed; - - return (uint8_t)speed > MOUSEKEY_WHEEL_INITIAL_MOVEMENTS ? 2 : 1; + mk_wheel_interval = 1000U / speed; + return 1; } # endif /* #ifndef MK_KINETIC_SPEED */ diff --git a/quantum/mousekey.h b/quantum/mousekey.h index 6b41dd56bee..814d348e31e 100644 --- a/quantum/mousekey.h +++ b/quantum/mousekey.h @@ -44,9 +44,6 @@ along with this program. If not, see . # define MOUSEKEY_MOVE_DELTA 8 # endif # endif -# ifndef MOUSEKEY_WHEEL_DELTA -# define MOUSEKEY_WHEEL_DELTA 1 -# endif # ifndef MOUSEKEY_DELAY # if defined(MK_KINETIC_SPEED) # define MOUSEKEY_DELAY 5 @@ -85,6 +82,9 @@ along with this program. If not, see . # ifndef MOUSEKEY_WHEEL_INTERVAL # define MOUSEKEY_WHEEL_INTERVAL 80 # endif +# ifndef MOUSEKEY_WHEEL_DELTA +# define MOUSEKEY_WHEEL_DELTA 1 +# endif # ifndef MOUSEKEY_WHEEL_MAX_SPEED # define MOUSEKEY_WHEEL_MAX_SPEED 8 # endif diff --git a/quantum/painter/lvgl/qp_lvgl.c b/quantum/painter/lvgl/qp_lvgl.c index 660ffb61008..280aeaf91f5 100644 --- a/quantum/painter/lvgl/qp_lvgl.c +++ b/quantum/painter/lvgl/qp_lvgl.c @@ -61,7 +61,7 @@ bool qp_lvgl_attach(painter_device_t device) { qp_lvgl_detach(); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_lvgl_attach: fail (validation_ok == false)\n"); qp_lvgl_detach(); return false; @@ -112,9 +112,6 @@ bool qp_lvgl_attach(painter_device_t device) { uint16_t panel_width, panel_height, offset_x, offset_y; qp_get_geometry(selected_display, &panel_width, &panel_height, NULL, &offset_x, &offset_y); - panel_width -= offset_x; - panel_height -= offset_y; - // Setting up display driver static lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/ lv_disp_drv_init(&disp_drv); /*Basic initialization*/ diff --git a/quantum/painter/qp.c b/quantum/painter/qp.c index aea9381b602..f27bb7892ad 100644 --- a/quantum/painter/qp.c +++ b/quantum/painter/qp.c @@ -30,6 +30,11 @@ bool qp_init(painter_device_t device, painter_rotation_t rotation) { qp_dprintf("qp_init: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; + if (!driver) { + qp_dprintf("qp_init: fail (pointer to NULL)\n"); + return false; + } + driver->validate_ok = false; if (!validate_driver_integrity(driver)) { qp_dprintf("Failed to validate driver integrity in qp_init\n"); @@ -65,7 +70,7 @@ bool qp_init(painter_device_t device, painter_rotation_t rotation) { bool qp_power(painter_device_t device, bool power_on) { qp_dprintf("qp_power: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_power: fail (validation_ok == false)\n"); return false; } @@ -87,7 +92,7 @@ bool qp_power(painter_device_t device, bool power_on) { bool qp_clear(painter_device_t device) { qp_dprintf("qp_clear: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_clear: fail (validation_ok == false)\n"); return false; } @@ -109,7 +114,7 @@ bool qp_clear(painter_device_t device) { bool qp_flush(painter_device_t device) { qp_dprintf("qp_flush: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_flush: fail (validation_ok == false)\n"); return false; } @@ -129,9 +134,14 @@ bool qp_flush(painter_device_t device) { // Quantum Painter External API: qp_get_geometry void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, painter_rotation_t *rotation, uint16_t *offset_x, uint16_t *offset_y) { - qp_dprintf("qp_geometry: entry\n"); + qp_dprintf("qp_get_geometry: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; + if (!driver) { + qp_dprintf("qp_get_geometry: fail (pointer to NULL)\n"); + return; + } + switch (driver->rotation) { default: case QP_ROTATION_0: @@ -166,7 +176,7 @@ void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, *offset_y = driver->offset_y; } - qp_dprintf("qp_geometry: ok\n"); + qp_dprintf("qp_get_geometry: ok\n"); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -176,6 +186,11 @@ void qp_set_viewport_offsets(painter_device_t device, uint16_t offset_x, uint16_ qp_dprintf("qp_set_viewport_offsets: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; + if (!driver) { + qp_dprintf("qp_set_viewport_offsets: fail (pointer to NULL)\n"); + return; + } + driver->offset_x = offset_x; driver->offset_y = offset_y; @@ -188,7 +203,7 @@ void qp_set_viewport_offsets(painter_device_t device, uint16_t offset_x, uint16_ bool qp_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { qp_dprintf("qp_viewport: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_viewport: fail (validation_ok == false)\n"); return false; } @@ -211,7 +226,7 @@ bool qp_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t bool qp_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { qp_dprintf("qp_pixdata: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_pixdata: fail (validation_ok == false)\n"); return false; } diff --git a/quantum/painter/qp_comms.c b/quantum/painter/qp_comms.c index bcc6de8f2ec..63667783e10 100644 --- a/quantum/painter/qp_comms.c +++ b/quantum/painter/qp_comms.c @@ -8,7 +8,7 @@ bool qp_comms_init(painter_device_t device) { painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_comms_init: fail (validation_ok == false)\n"); return false; } @@ -18,7 +18,7 @@ bool qp_comms_init(painter_device_t device) { bool qp_comms_start(painter_device_t device) { painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_comms_start: fail (validation_ok == false)\n"); return false; } @@ -28,7 +28,7 @@ bool qp_comms_start(painter_device_t device) { void qp_comms_stop(painter_device_t device) { painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_comms_stop: fail (validation_ok == false)\n"); return; } @@ -38,7 +38,7 @@ void qp_comms_stop(painter_device_t device) { uint32_t qp_comms_send(painter_device_t device, const void *data, uint32_t byte_count) { painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_comms_send: fail (validation_ok == false)\n"); return false; } diff --git a/quantum/painter/qp_draw_circle.c b/quantum/painter/qp_draw_circle.c index 25517d91c59..7f5a7ddfcd7 100644 --- a/quantum/painter/qp_draw_circle.c +++ b/quantum/painter/qp_draw_circle.c @@ -128,7 +128,7 @@ static bool qp_circle_helper_impl(painter_device_t device, uint16_t centerx, uin bool qp_circle(painter_device_t device, uint16_t x, uint16_t y, uint16_t radius, uint8_t hue, uint8_t sat, uint8_t val, bool filled) { qp_dprintf("qp_circle: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_circle: fail (validation_ok == false)\n"); return false; } diff --git a/quantum/painter/qp_draw_core.c b/quantum/painter/qp_draw_core.c index 3988aaedf8e..aa5fa4aa761 100644 --- a/quantum/painter/qp_draw_core.c +++ b/quantum/painter/qp_draw_core.c @@ -145,7 +145,7 @@ bool qp_internal_load_qgf_palette(qp_stream_t *stream, uint8_t bpp) { bool qp_setpixel(painter_device_t device, uint16_t x, uint16_t y, uint8_t hue, uint8_t sat, uint8_t val) { painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_setpixel: fail (validation_ok == false)\n"); return false; } @@ -175,7 +175,7 @@ bool qp_line(painter_device_t device, uint16_t x0, uint16_t y0, uint16_t x1, uin qp_dprintf("qp_line(%d, %d, %d, %d): entry\n", (int)x0, (int)y0, (int)x1, (int)y1); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_line: fail (validation_ok == false)\n"); return false; } @@ -253,7 +253,7 @@ bool qp_internal_fillrect_helper_impl(painter_device_t device, uint16_t left, ui bool qp_rect(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, uint8_t hue, uint8_t sat, uint8_t val, bool filled) { qp_dprintf("qp_rect(%d, %d, %d, %d): entry\n", (int)left, (int)top, (int)right, (int)bottom); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_rect: fail (validation_ok == false)\n"); return false; } diff --git a/quantum/painter/qp_draw_ellipse.c b/quantum/painter/qp_draw_ellipse.c index 5c7abd7a7da..e912a3e91fe 100644 --- a/quantum/painter/qp_draw_ellipse.c +++ b/quantum/painter/qp_draw_ellipse.c @@ -62,7 +62,7 @@ static bool qp_ellipse_helper_impl(painter_device_t device, uint16_t centerx, ui bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex, uint16_t sizey, uint8_t hue, uint8_t sat, uint8_t val, bool filled) { qp_dprintf("qp_ellipse: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_ellipse: fail (validation_ok == false)\n"); return false; } diff --git a/quantum/painter/qp_draw_image.c b/quantum/painter/qp_draw_image.c index 9f86b29f8b0..fb17a05a1b6 100644 --- a/quantum/painter/qp_draw_image.c +++ b/quantum/painter/qp_draw_image.c @@ -90,7 +90,7 @@ painter_image_handle_t qp_load_image_mem(const void *buffer) { bool qp_close_image(painter_image_handle_t image) { qgf_image_handle_t *qgf_image = (qgf_image_handle_t *)image; - if (!qgf_image->validate_ok) { + if (!qgf_image || !qgf_image->validate_ok) { qp_dprintf("qp_close_image: fail (invalid image)\n"); return false; } @@ -210,13 +210,13 @@ static bool qp_drawimage_prepare_frame_for_stream_read(painter_device_t device, static bool qp_drawimage_recolor_impl(painter_device_t device, uint16_t x, uint16_t y, painter_image_handle_t image, int frame_number, qgf_frame_info_t *frame_info, qp_pixel_t fg_hsv888, qp_pixel_t bg_hsv888) { qp_dprintf("qp_drawimage_recolor: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_drawimage_recolor: fail (validation_ok == false)\n"); return false; } qgf_image_handle_t *qgf_image = (qgf_image_handle_t *)image; - if (!qgf_image->validate_ok) { + if (!qgf_image || !qgf_image->validate_ok) { qp_dprintf("qp_drawimage_recolor: fail (invalid image)\n"); return false; } diff --git a/quantum/painter/qp_draw_text.c b/quantum/painter/qp_draw_text.c index a70caac6f4b..ff6fc01d11e 100644 --- a/quantum/painter/qp_draw_text.c +++ b/quantum/painter/qp_draw_text.c @@ -136,7 +136,7 @@ painter_font_handle_t qp_load_font_mem(const void *buffer) { bool qp_close_font(painter_font_handle_t font) { qff_font_handle_t *qff_font = (qff_font_handle_t *)font; - if (!qff_font->validate_ok) { + if (!qff_font || !qff_font->validate_ok) { qp_dprintf("qp_close_font: fail (invalid font)\n"); return false; } @@ -380,7 +380,7 @@ static inline bool qp_font_code_point_handler_drawglyph(qff_font_handle_t *qff_f int16_t qp_textwidth(painter_font_handle_t font, const char *str) { qff_font_handle_t *qff_font = (qff_font_handle_t *)font; - if (!qff_font->validate_ok) { + if (!qff_font || !qff_font->validate_ok) { qp_dprintf("qp_textwidth: fail (invalid font)\n"); return false; } @@ -406,13 +406,13 @@ int16_t qp_drawtext(painter_device_t device, uint16_t x, uint16_t y, painter_fon int16_t qp_drawtext_recolor(painter_device_t device, uint16_t x, uint16_t y, painter_font_handle_t font, const char *str, uint8_t hue_fg, uint8_t sat_fg, uint8_t val_fg, uint8_t hue_bg, uint8_t sat_bg, uint8_t val_bg) { qp_dprintf("qp_drawtext_recolor: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver->validate_ok) { + if (!driver || !driver->validate_ok) { qp_dprintf("qp_drawtext_recolor: fail (validation_ok == false)\n"); return 0; } qff_font_handle_t *qff_font = (qff_font_handle_t *)font; - if (!qff_font->validate_ok) { + if (!qff_font || !qff_font->validate_ok) { qp_dprintf("qp_drawtext_recolor: fail (invalid font)\n"); return false; } diff --git a/quantum/pointing_device/pointing_device_auto_mouse.c b/quantum/pointing_device/pointing_device_auto_mouse.c index b008d18db54..fc3106e37e9 100644 --- a/quantum/pointing_device/pointing_device_auto_mouse.c +++ b/quantum/pointing_device/pointing_device_auto_mouse.c @@ -18,6 +18,9 @@ #ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE # include "pointing_device_auto_mouse.h" +# include "debug.h" +# include "action_util.h" +# include "quantum_keycodes.h" /* local data structure for tracking auto mouse */ static auto_mouse_context_t auto_mouse_context = { diff --git a/quantum/pointing_device/pointing_device_auto_mouse.h b/quantum/pointing_device/pointing_device_auto_mouse.h index 7db63bc6b8a..1343855e001 100644 --- a/quantum/pointing_device/pointing_device_auto_mouse.h +++ b/quantum/pointing_device/pointing_device_auto_mouse.h @@ -16,11 +16,14 @@ #pragma once -#include - -#include "quantum.h" +#include +#include #include "pointing_device.h" -#include "print.h" +#include "keycodes.h" +#include "action.h" +#include "report.h" +#include "action_layer.h" +#include "action_tapping.h" /* check settings and set defaults */ #ifndef POINTING_DEVICE_AUTO_MOUSE_ENABLE diff --git a/quantum/process_keycode/process_audio.c b/quantum/process_keycode/process_audio.c index c189dd02b71..a8464e1b830 100644 --- a/quantum/process_keycode/process_audio.c +++ b/quantum/process_keycode/process_audio.c @@ -1,5 +1,6 @@ #include "audio.h" #include "process_audio.h" +#include #ifndef VOICE_CHANGE_SONG # define VOICE_CHANGE_SONG SONG(VOICE_CHANGE_SOUND) @@ -12,7 +13,7 @@ float voice_change_song[][2] = VOICE_CHANGE_SONG; float compute_freq_for_midi_note(uint8_t note) { // https://en.wikipedia.org/wiki/MIDI_tuning_standard - return pow(2.0, (note - 69) / 12.0) * PITCH_STANDARD_A; + return powf(2.0f, (note - 69) / 12.0f) * PITCH_STANDARD_A; } bool process_audio(uint16_t keycode, keyrecord_t *record) { @@ -61,6 +62,3 @@ void process_audio_noteoff(uint8_t note) { void process_audio_all_notes_off(void) { stop_all_notes(); } - -__attribute__((weak)) void audio_on_user(void) {} -__attribute__((weak)) void audio_off_user(void) {} diff --git a/quantum/process_keycode/process_audio.h b/quantum/process_keycode/process_audio.h index 42cfab4af27..69e201e447f 100644 --- a/quantum/process_keycode/process_audio.h +++ b/quantum/process_keycode/process_audio.h @@ -1,11 +1,12 @@ #pragma once +#include +#include +#include "action.h" + float compute_freq_for_midi_note(uint8_t note); bool process_audio(uint16_t keycode, keyrecord_t *record); void process_audio_noteon(uint8_t note); void process_audio_noteoff(uint8_t note); void process_audio_all_notes_off(void); - -void audio_on_user(void); -void audio_off_user(void); diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c index b88c9f3237d..80784594f44 100644 --- a/quantum/process_keycode/process_auto_shift.c +++ b/quantum/process_keycode/process_auto_shift.c @@ -14,28 +14,29 @@ * along with this program. If not, see . */ -#ifdef AUTO_SHIFT_ENABLE - -# include -# include "process_auto_shift.h" -# include "qmk_settings.h" - -# ifndef AUTO_SHIFT_DISABLED_AT_STARTUP -# define AUTO_SHIFT_STARTUP_STATE true /* enabled */ -# else -# define AUTO_SHIFT_STARTUP_STATE false /* disabled */ -# endif +#include "process_auto_shift.h" +#include "quantum.h" +#include "action_util.h" +#include "timer.h" +#include "keycodes.h" +#include "qmk_settings.h" + +#ifndef AUTO_SHIFT_DISABLED_AT_STARTUP +# define AUTO_SHIFT_STARTUP_STATE true /* enabled */ +#else +# define AUTO_SHIFT_STARTUP_STATE false /* disabled */ +#endif // Stores the last Auto Shift key's up or down time, for evaluation or keyrepeat. static uint16_t autoshift_time = 0; -# if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) +#if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) // Stores the last key's up or down time, to replace autoshift_time so that Tap Hold times are accurate. static uint16_t retroshift_time = 0; // Stores a possibly Retro Shift key's up or down time, as retroshift_time needs // to be set before the Retro Shift key is evaluated if it is interrupted by an // Auto Shifted key. static uint16_t last_retroshift_time; -# endif +#endif static uint16_t autoshift_timeout = AUTO_SHIFT_TIMEOUT; static uint16_t autoshift_lastkey = KC_NO; static keyrecord_t autoshift_lastrecord; @@ -69,15 +70,23 @@ __attribute__((weak)) bool get_custom_auto_shifted_key(uint16_t keycode, keyreco /** \brief Called on physical press, returns whether is Auto Shift key */ __attribute__((weak)) bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { switch (keycode) { -# ifndef NO_AUTO_SHIFT_ALPHA +#ifndef NO_AUTO_SHIFT_ALPHA case AUTO_SHIFT_ALPHA: -# endif -# ifndef NO_AUTO_SHIFT_NUMERIC +#endif +#ifndef NO_AUTO_SHIFT_NUMERIC case AUTO_SHIFT_NUMERIC: +#endif +#ifndef NO_AUTO_SHIFT_SPECIAL +# ifndef NO_AUTO_SHIFT_TAB + case KC_TAB: # endif -# ifndef NO_AUTO_SHIFT_SPECIAL - case AUTO_SHIFT_SPECIAL: +# ifndef NO_AUTO_SHIFT_SYMBOLS + case AUTO_SHIFT_SYMBOLS: # endif +#endif +#ifdef AUTO_SHIFT_ENTER + case KC_ENT: +#endif return true; } return get_custom_auto_shifted_key(keycode, record); @@ -123,9 +132,9 @@ bool get_autoshift_shift_state(uint16_t keycode) { /** \brief Restores the shift key if it was cancelled by Auto Shift */ static void autoshift_flush_shift(void) { autoshift_flags.holding_shift = false; -# ifdef CAPS_WORD_ENABLE +#ifdef CAPS_WORD_ENABLE if (!is_caps_word_on()) -# endif // CAPS_WORD_ENABLE +#endif // CAPS_WORD_ENABLE { del_weak_mods(MOD_BIT(KC_LSFT)); } @@ -147,9 +156,9 @@ static void autoshift_flush_shift(void) { static bool autoshift_press(uint16_t keycode, uint16_t now, keyrecord_t *record) { // clang-format off if ((get_mods() -# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) +#if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) | get_oneshot_mods() -# endif +#endif ) & (~MOD_BIT(KC_LSFT)) ) { // clang-format on @@ -161,10 +170,10 @@ if (!QS_auto_shift_modifiers) { // true upon release. set_autoshift_shift_state(keycode, false); autoshift_press_user(keycode, false, record); -# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) +# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) set_oneshot_mods(get_oneshot_mods() & (~MOD_BIT(KC_LSFT))); clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); -# endif +# endif return false; } } @@ -174,19 +183,19 @@ if (!QS_auto_shift_modifiers) { autoshift_lastrecord.event.pressed = false; autoshift_lastrecord.event.time = 0; // clang-format off -# if defined(AUTO_SHIFT_REPEAT) || defined(AUTO_SHIFT_REPEAT_PER_KEY) +#if defined(AUTO_SHIFT_REPEAT) || defined(AUTO_SHIFT_REPEAT_PER_KEY) if (keycode == autoshift_lastkey && -# ifdef AUTO_SHIFT_REPEAT_PER_KEY +# ifdef AUTO_SHIFT_REPEAT_PER_KEY get_auto_shift_repeat(autoshift_lastkey, record) && -# endif -# if !defined(AUTO_SHIFT_NO_AUTO_REPEAT) || defined(AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY) +# endif +# if !defined(AUTO_SHIFT_NO_AUTO_REPEAT) || defined(AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY) ( !autoshift_flags.lastshifted -# ifdef AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY +# ifdef AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY || get_auto_shift_no_auto_repeat(autoshift_lastkey, record) -# endif - ) && # endif + ) && +# endif TIMER_DIFF_16(now, autoshift_time) < GET_TAPPING_TERM(autoshift_lastkey, record) ) { // clang-format on @@ -203,23 +212,23 @@ if (!QS_auto_shift_modifiers) { autoshift_press_user(autoshift_lastkey, autoshift_flags.lastshifted, record); return false; } -# endif +#endif // Use physical shift state of press event to be more like normal typing. -# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) +#if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) autoshift_flags.lastshifted = (get_mods() | get_oneshot_mods()) & MOD_BIT(KC_LSFT); set_oneshot_mods(get_oneshot_mods() & (~MOD_BIT(KC_LSFT))); -# else +#else autoshift_flags.lastshifted = get_mods() & MOD_BIT(KC_LSFT); -# endif +#endif // Record the keycode so we can simulate it later. autoshift_lastkey = keycode; autoshift_time = now; autoshift_flags.in_progress = true; -# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) +#if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); -# endif +#endif return false; } @@ -240,11 +249,11 @@ static void autoshift_end(uint16_t keycode, uint16_t now, bool matrix_trigger, k autoshift_flags.lastshifted = autoshift_flags.lastshifted || TIMER_DIFF_16(now, autoshift_time) >= -# ifdef AUTO_SHIFT_TIMEOUT_PER_KEY +#ifdef AUTO_SHIFT_TIMEOUT_PER_KEY get_autoshift_timeout(autoshift_lastkey, record) -# else +#else autoshift_timeout -# endif +#endif ; // clang-format on set_autoshift_shift_state(autoshift_lastkey, autoshift_flags.lastshifted); @@ -259,19 +268,19 @@ static void autoshift_end(uint16_t keycode, uint16_t now, bool matrix_trigger, k autoshift_press_user(autoshift_lastkey, autoshift_flags.lastshifted, record); // clang-format off -# if (defined(AUTO_SHIFT_REPEAT) || defined(AUTO_SHIFT_REPEAT_PER_KEY)) && (!defined(AUTO_SHIFT_NO_AUTO_REPEAT) || defined(AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY)) +#if (defined(AUTO_SHIFT_REPEAT) || defined(AUTO_SHIFT_REPEAT_PER_KEY)) && (!defined(AUTO_SHIFT_NO_AUTO_REPEAT) || defined(AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY)) if (matrix_trigger -# ifdef AUTO_SHIFT_REPEAT_PER_KEY +# ifdef AUTO_SHIFT_REPEAT_PER_KEY && get_auto_shift_repeat(autoshift_lastkey, record) -# endif -# ifdef AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY +# endif +# ifdef AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY && !get_auto_shift_no_auto_repeat(autoshift_lastkey, record) -# endif +# endif ) { // Prevents release. return; } -# endif +#endif // clang-format on qs_wait_ms(QS_tap_code_delay); @@ -303,11 +312,11 @@ void autoshift_matrix_scan(void) { if (autoshift_flags.in_progress) { const uint16_t now = timer_read(); if (TIMER_DIFF_16(now, autoshift_time) >= -# ifdef AUTO_SHIFT_TIMEOUT_PER_KEY +#ifdef AUTO_SHIFT_TIMEOUT_PER_KEY get_autoshift_timeout(autoshift_lastkey, &autoshift_lastrecord) -# else +#else autoshift_timeout -# endif +#endif ) { autoshift_end(autoshift_lastkey, now, true, &autoshift_lastrecord); } @@ -328,18 +337,18 @@ void autoshift_disable(void) { autoshift_flush_shift(); } -# ifndef AUTO_SHIFT_NO_SETUP +#ifndef AUTO_SHIFT_NO_SETUP void autoshift_timer_report(void) { -# ifdef SEND_STRING_ENABLE +# ifdef SEND_STRING_ENABLE 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 +} +#endif bool get_autoshift_state(void) { return autoshift_flags.enabled; @@ -362,11 +371,11 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { // https://github.com/qmk/qmk_firmware/pull/9826#issuecomment-733559550 // clang-format off const uint16_t now = -# if !defined(RETRO_SHIFT) || defined(NO_ACTION_TAPPING) +#if !defined(RETRO_SHIFT) || defined(NO_ACTION_TAPPING) timer_read() -# else +#else (record->event.pressed) ? retroshift_time : timer_read() -# endif +#endif ; // clang-format on @@ -387,7 +396,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { autoshift_disable(); break; -# ifndef AUTO_SHIFT_NO_SETUP +#ifndef AUTO_SHIFT_NO_SETUP case AS_UP: autoshift_timeout += 5; break; @@ -397,27 +406,27 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { case AS_RPT: autoshift_timer_report(); break; -# endif +#endif } // If Retro Shift is disabled, possible custom actions shouldn't happen. // clang-format off -# if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) -# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY +#if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) +# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY const bool is_hold_on_interrupt = get_hold_on_other_key_press(keycode, record); -# else +# else const bool is_hold_on_interrupt = false; -# endif -# endif +# endif +#endif if (IS_RETRO(keycode) -# if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) +#if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) // Not tapped or #defines mean that rolls should use hold action. && ( record->tap.count == 0 -# ifdef RETRO_TAPPING_PER_KEY +# ifdef RETRO_TAPPING_PER_KEY || !get_retro_tapping(keycode, record) -# endif - || (record->tap.interrupted && is_hold_on_interrupt)) # endif + || (record->tap.interrupted && is_hold_on_interrupt)) +#endif ) { // clang-format on autoshift_lastkey = KC_NO; @@ -433,21 +442,21 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { // tap.count gets set to 0 in process_action // clang-format off else if (IS_RETRO(keycode) -# if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) +#if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) && ( record->tap.count == 0 -# ifdef RETRO_TAPPING_PER_KEY +# ifdef RETRO_TAPPING_PER_KEY || !get_retro_tapping(keycode, record) -# endif - ) # endif + ) +#endif ) { // Fixes modifiers not being applied to rolls with AUTO_SHIFT_MODIFIERS set. -# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY +#ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY if (autoshift_flags.in_progress && get_hold_on_other_key_press(keycode, record)) { autoshift_end(KC_NO, now, false, &autoshift_lastrecord); } -# endif +#endif // clang-format on return true; } @@ -473,7 +482,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { return true; } -# if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) +#if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) // Called to record time before possible delays by action_tapping_process. void retroshift_poll_time(keyevent_t *event) { last_retroshift_time = retroshift_time; @@ -487,6 +496,4 @@ void retroshift_swap_times(void) { last_retroshift_time = temp; } } -# endif - #endif diff --git a/quantum/process_keycode/process_auto_shift.h b/quantum/process_keycode/process_auto_shift.h index 66a4b3138a3..885a47b5339 100644 --- a/quantum/process_keycode/process_auto_shift.h +++ b/quantum/process_keycode/process_auto_shift.h @@ -16,7 +16,11 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" +#include "keyboard.h" +#include "keycodes.h" #ifndef AUTO_SHIFT_TIMEOUT # define AUTO_SHIFT_TIMEOUT 175 @@ -28,10 +32,14 @@ // clang-format off #define AUTO_SHIFT_ALPHA KC_A ... KC_Z #define AUTO_SHIFT_NUMERIC KC_1 ... KC_0 +#define AUTO_SHIFT_SYMBOLS \ + KC_MINUS ... KC_SLASH: \ + case KC_NONUS_BACKSLASH + +// Kept to avoid breaking existing keymaps. #define AUTO_SHIFT_SPECIAL \ KC_TAB: \ - case KC_MINUS ... KC_SLASH: \ - case KC_NONUS_BACKSLASH + case AUTO_SHIFT_SYMBOLS // clang-format on bool process_auto_shift(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_autocorrect.c b/quantum/process_keycode/process_autocorrect.c index 13767882664..edc47718f32 100644 --- a/quantum/process_keycode/process_autocorrect.c +++ b/quantum/process_keycode/process_autocorrect.c @@ -1,11 +1,16 @@ // Copyright 2021 Google LLC // Copyright 2021 @filterpaper +// Copyright 2023 Pablo Martinez (@elpekenin) // SPDX-License-Identifier: Apache-2.0 // Original source: https://getreuer.info/posts/keyboards/autocorrection #include "process_autocorrect.h" #include +#include "keycodes.h" +#include "quantum_keycodes.h" #include "keycode_config.h" +#include "send_string.h" +#include "action_util.h" #if __has_include("autocorrect_data.h") # include "autocorrect_data.h" @@ -57,7 +62,7 @@ void autocorrect_toggle(void) { } /** - * @brief handler for determining if autocorrect should process keypress + * @brief handler for user to override whether autocorrect should process this keypress * * @param keycode Keycode registered by matrix press, per keymap * @param record keyrecord_t structure @@ -67,6 +72,23 @@ void autocorrect_toggle(void) { * @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) { + return process_autocorrect_default_handler(keycode, record, typo_buffer_size, mods); +} + +/** + * @brief fallback handler for determining if autocorrect should process this keypress + * can be used by user callback to get the basic keycode being "wrapped" + * + * NOTE: These values may have been edited by user callback before getting here + * + * @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. + */ +bool process_autocorrect_default_handler(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. @@ -157,10 +179,12 @@ __attribute__((weak)) bool process_autocorrect_user(uint16_t *keycode, keyrecord * * @param backspaces number of characters to remove * @param str pointer to PROGMEM string to replace mistyped seletion with + * @param typo the wrong string that triggered a correction + * @param correct what it would become after the changes * @return true apply correction * @return false user handled replacement */ -__attribute__((weak)) bool apply_autocorrect(uint8_t backspaces, const char *str) { +__attribute__((weak)) bool apply_autocorrect(uint8_t backspaces, const char *str, char *typo, char *correct) { return true; } @@ -284,11 +308,57 @@ bool process_autocorrect(uint16_t keycode, keyrecord_t *record) { 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))) { + const char * changes = (const char *)(autocorrect_data + state + 1); + + /* Gather info about the typo'd word + * + * Since buffer may contain several words, delimited by spaces, we + * iterate from the end to find the start and length of the typo + */ + char typo[AUTOCORRECT_MAX_LENGTH + 1] = {0}; // extra char for null terminator + + uint8_t typo_len = 0; + uint8_t typo_start = 0; + bool space_last = typo_buffer[typo_buffer_size - 1] == KC_SPC; + for (uint8_t i = typo_buffer_size; i > 0; --i) { + // stop counting after finding space (unless it is the last thing) + if (typo_buffer[i - 1] == KC_SPC && i != typo_buffer_size) { + typo_start = i; + break; + } + + ++typo_len; + } + + // when detecting 'typo:', reduce the length of the string by one + if (space_last) { + --typo_len; + } + + // convert buffer of keycodes into a string + for (uint8_t i = 0; i < typo_len; ++i) { + typo[i] = typo_buffer[typo_start + i] - KC_A + 'a'; + } + + /* Gather the corrected word + * + * A) Correction of 'typo:' -- Code takes into account + * an extra backspace to delete the space (which we dont copy) + * for this reason the offset is correct to "skip" the null terminator + * + * B) When correcting 'typo' -- Need extra offset for terminator + */ + char correct[AUTOCORRECT_MAX_LENGTH + 10] = {0}; // let's hope this is big enough + + uint8_t offset = space_last ? backspaces : backspaces + 1; + strcpy(correct, typo); + strcpy_P(correct + typo_len - offset, changes); + + if (apply_autocorrect(backspaces, changes, typo, correct)) { for (uint8_t i = 0; i < backspaces; ++i) { tap_code(KC_BSPC); } - send_string_P((char const *)(autocorrect_data + state + 1)); + send_string_P(changes); } if (keycode == KC_SPC) { diff --git a/quantum/process_keycode/process_autocorrect.h b/quantum/process_keycode/process_autocorrect.h index c7596107e50..ea77d6f56f8 100644 --- a/quantum/process_keycode/process_autocorrect.h +++ b/quantum/process_keycode/process_autocorrect.h @@ -1,15 +1,19 @@ // Copyright 2021 Google LLC // Copyright 2021 @filterpaper +// Copyright 2023 Pablo Martinez (@elpekenin) // SPDX-License-Identifier: Apache-2.0 // Original source: https://getreuer.info/posts/keyboards/autocorrection #pragma once -#include "quantum.h" +#include +#include +#include "action.h" bool process_autocorrect(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 process_autocorrect_default_handler(uint16_t *keycode, keyrecord_t *record, uint8_t *typo_buffer_size, uint8_t *mods); +bool apply_autocorrect(uint8_t backspaces, const char *str, char *typo, char *correct); bool autocorrect_is_enabled(void); void autocorrect_enable(void); diff --git a/quantum/process_keycode/process_backlight.h b/quantum/process_keycode/process_backlight.h index 7fe887ae675..e926833e79c 100644 --- a/quantum/process_keycode/process_backlight.h +++ b/quantum/process_keycode/process_backlight.h @@ -16,6 +16,8 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" bool process_backlight(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_caps_word.c b/quantum/process_keycode/process_caps_word.c index d4382680bf4..1088c8f76c1 100644 --- a/quantum/process_keycode/process_caps_word.c +++ b/quantum/process_keycode/process_caps_word.c @@ -13,6 +13,14 @@ // limitations under the License. #include "process_caps_word.h" +#include "process_auto_shift.h" +#include "caps_word.h" +#include "keycodes.h" +#include "quantum_keycodes.h" +#include "modifiers.h" +#include "timer.h" +#include "action_tapping.h" +#include "action_util.h" #ifdef CAPS_WORD_INVERT_ON_SHIFT static uint8_t held_mods = 0; diff --git a/quantum/process_keycode/process_caps_word.h b/quantum/process_keycode/process_caps_word.h index f215bbc3a3d..f5eb140d321 100644 --- a/quantum/process_keycode/process_caps_word.h +++ b/quantum/process_keycode/process_caps_word.h @@ -14,8 +14,9 @@ #pragma once -#include "quantum.h" -#include "caps_word.h" +#include +#include +#include "action.h" /** * @brief Process handler for Caps Word feature. diff --git a/quantum/process_keycode/process_clicky.c b/quantum/process_keycode/process_clicky.c index b662a3f2f4d..0ee58282e60 100644 --- a/quantum/process_keycode/process_clicky.c +++ b/quantum/process_keycode/process_clicky.c @@ -1,5 +1,7 @@ -#include "audio.h" #include "process_clicky.h" +#include "audio.h" +#include "eeconfig.h" +#include #ifdef AUDIO_CLICKY diff --git a/quantum/process_keycode/process_clicky.h b/quantum/process_keycode/process_clicky.h index 67b6463c5d4..dfdba141315 100644 --- a/quantum/process_keycode/process_clicky.h +++ b/quantum/process_keycode/process_clicky.h @@ -1,5 +1,9 @@ #pragma once +#include +#include +#include "action.h" + void clicky_play(void); bool process_clicky(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index 01fa3d692a8..d320778bb91 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -14,12 +14,23 @@ * along with this program. If not, see . */ -#include "keymap_common.h" -#include "print.h" #include "process_combo.h" +#include +#include "process_auto_shift.h" +#include "caps_word.h" +#include "timer.h" +#include "wait.h" +#include "keyboard.h" +#include "keymap_common.h" +#include "action_layer.h" #include "action_tapping.h" +#include "action_util.h" #include "action.h" +#ifdef VIAL_ENABLE +#include "vial.h" +#endif + #ifdef VIAL_COMBO_ENABLE #include "dynamic_keymap.h" /* dynamic combos are stored entirely in ram */ diff --git a/quantum/process_keycode/process_combo.h b/quantum/process_keycode/process_combo.h index bba5d5ee630..f1d534236e2 100644 --- a/quantum/process_keycode/process_combo.h +++ b/quantum/process_keycode/process_combo.h @@ -16,9 +16,11 @@ #pragma once -#include "progmem.h" -#include "quantum.h" #include +#include +#include "action.h" +#include "keycodes.h" +#include "quantum_keycodes.h" #ifdef EXTRA_SHORT_COMBOS # define MAX_COMBO_LENGTH 6 diff --git a/quantum/process_keycode/process_dynamic_macro.c b/quantum/process_keycode/process_dynamic_macro.c index bf6af566e2a..30a51503dbb 100644 --- a/quantum/process_keycode/process_dynamic_macro.c +++ b/quantum/process_keycode/process_dynamic_macro.c @@ -17,6 +17,15 @@ /* Author: Wojciech Siewierski < wojciech dot siewierski at onet dot pl > */ #include "process_dynamic_macro.h" +#include +#include "action_layer.h" +#include "keycodes.h" +#include "debug.h" +#include "wait.h" + +#ifdef BACKLIGHT_ENABLE +# include "backlight.h" +#endif // default feedback method void dynamic_macro_led_blink(void) { @@ -151,6 +160,67 @@ void dynamic_macro_record_end(keyrecord_t *macro_buffer, keyrecord_t *macro_poin *macro_end = macro_pointer; } +/* Both macros use the same buffer but read/write on different + * ends of it. + * + * Macro1 is written left-to-right starting from the beginning of + * the buffer. + * + * Macro2 is written right-to-left starting from the end of the + * buffer. + * + * ¯o_buffer macro_end + * v v + * +------------------------------------------------------------+ + * |>>>>>> MACRO1 >>>>>> <<<<<<<<<<<<< MACRO2 <<<<<<<<<<<<<| + * +------------------------------------------------------------+ + * ^ ^ + * r_macro_end r_macro_buffer + * + * During the recording when one macro encounters the end of the + * other macro, the recording is stopped. Apart from this, there + * are no arbitrary limits for the macros' length in relation to + * each other: for example one can either have two medium sized + * macros or one long macro and one short macro. Or even one empty + * and one using the whole buffer. + */ +static keyrecord_t macro_buffer[DYNAMIC_MACRO_SIZE]; + +/* Pointer to the first buffer element after the first macro. + * Initially points to the very beginning of the buffer since the + * macro is empty. */ +static keyrecord_t *macro_end = macro_buffer; + +/* The other end of the macro buffer. Serves as the beginning of + * the second macro. */ +static keyrecord_t *const r_macro_buffer = macro_buffer + DYNAMIC_MACRO_SIZE - 1; + +/* Like macro_end but for the second macro. */ +static keyrecord_t *r_macro_end = macro_buffer + DYNAMIC_MACRO_SIZE - 1; + +/* A persistent pointer to the current macro position (iterator) + * used during the recording. */ +static keyrecord_t *macro_pointer = NULL; + +/* 0 - no macro is being recorded right now + * 1,2 - either macro 1 or 2 is being recorded */ +static uint8_t macro_id = 0; + +/** + * If a dynamic macro is currently being recorded, stop recording. + */ +void dynamic_macro_stop_recording(void) { + switch (macro_id) { + case 1: + dynamic_macro_record_end(macro_buffer, macro_pointer, +1, ¯o_end); + break; + case 2: + dynamic_macro_record_end(r_macro_buffer, macro_pointer, -1, &r_macro_end); + break; + } + macro_id = 0; +} + /* Handle the key events related to the dynamic macros. Should be * called from process_record_user() like this: * @@ -162,52 +232,6 @@ void dynamic_macro_record_end(keyrecord_t *macro_buffer, keyrecord_t *macro_poin * } */ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) { - /* Both macros use the same buffer but read/write on different - * ends of it. - * - * Macro1 is written left-to-right starting from the beginning of - * the buffer. - * - * Macro2 is written right-to-left starting from the end of the - * buffer. - * - * ¯o_buffer macro_end - * v v - * +------------------------------------------------------------+ - * |>>>>>> MACRO1 >>>>>> <<<<<<<<<<<<< MACRO2 <<<<<<<<<<<<<| - * +------------------------------------------------------------+ - * ^ ^ - * r_macro_end r_macro_buffer - * - * During the recording when one macro encounters the end of the - * other macro, the recording is stopped. Apart from this, there - * are no arbitrary limits for the macros' length in relation to - * each other: for example one can either have two medium sized - * macros or one long macro and one short macro. Or even one empty - * and one using the whole buffer. - */ - static keyrecord_t macro_buffer[DYNAMIC_MACRO_SIZE]; - - /* Pointer to the first buffer element after the first macro. - * Initially points to the very beginning of the buffer since the - * macro is empty. */ - static keyrecord_t *macro_end = macro_buffer; - - /* The other end of the macro buffer. Serves as the beginning of - * the second macro. */ - static keyrecord_t *const r_macro_buffer = macro_buffer + DYNAMIC_MACRO_SIZE - 1; - - /* Like macro_end but for the second macro. */ - static keyrecord_t *r_macro_end = r_macro_buffer; - - /* A persistent pointer to the current macro position (iterator) - * used during the recording. */ - static keyrecord_t *macro_pointer = NULL; - - /* 0 - no macro is being recorded right now - * 1,2 - either macro 1 or 2 is being recorded */ - static uint8_t macro_id = 0; - if (macro_id == 0) { /* No macro recording in progress. */ if (!record->event.pressed) { @@ -238,15 +262,7 @@ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed ^ (keycode != QK_DYNAMIC_MACRO_RECORD_STOP)) { /* Ignore the initial release * just after the recording * starts for DM_RSTP. */ - switch (macro_id) { - case 1: - dynamic_macro_record_end(macro_buffer, macro_pointer, +1, ¯o_end); - break; - case 2: - dynamic_macro_record_end(r_macro_buffer, macro_pointer, -1, &r_macro_end); - break; - } - macro_id = 0; + dynamic_macro_stop_recording(); } return false; #ifdef DYNAMIC_MACRO_NO_NESTING diff --git a/quantum/process_keycode/process_dynamic_macro.h b/quantum/process_keycode/process_dynamic_macro.h index ab70726897c..2f10733cae3 100644 --- a/quantum/process_keycode/process_dynamic_macro.h +++ b/quantum/process_keycode/process_dynamic_macro.h @@ -18,7 +18,9 @@ /* Author: Wojciech Siewierski < wojciech dot siewierski at onet dot pl > */ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" /* May be overridden with a custom value. Be aware that the effective * macro length is half of this value: each keypress is recorded twice @@ -39,3 +41,4 @@ void dynamic_macro_record_start_user(int8_t direction); void dynamic_macro_play_user(int8_t direction); void dynamic_macro_record_key_user(int8_t direction, keyrecord_t *record); void dynamic_macro_record_end_user(int8_t direction); +void dynamic_macro_stop_recording(void); diff --git a/quantum/process_keycode/process_dynamic_tapping_term.c b/quantum/process_keycode/process_dynamic_tapping_term.c index 146b9fccd72..cf52626e428 100644 --- a/quantum/process_keycode/process_dynamic_tapping_term.c +++ b/quantum/process_keycode/process_dynamic_tapping_term.c @@ -14,8 +14,10 @@ * along with this program. If not, see . */ -#include "quantum.h" #include "process_dynamic_tapping_term.h" +#include "quantum.h" +#include "keycodes.h" +#include "send_string.h" #ifndef DYNAMIC_TAPPING_TERM_INCREMENT # define DYNAMIC_TAPPING_TERM_INCREMENT 5 diff --git a/quantum/process_keycode/process_dynamic_tapping_term.h b/quantum/process_keycode/process_dynamic_tapping_term.h index 85e83ee73b0..fee29e18dfd 100644 --- a/quantum/process_keycode/process_dynamic_tapping_term.h +++ b/quantum/process_keycode/process_dynamic_tapping_term.h @@ -16,6 +16,7 @@ #pragma once +#include #include #include "action.h" diff --git a/quantum/process_keycode/process_grave_esc.c b/quantum/process_keycode/process_grave_esc.c index 1eade3de6cc..70ea6a2fbe1 100644 --- a/quantum/process_keycode/process_grave_esc.c +++ b/quantum/process_keycode/process_grave_esc.c @@ -15,6 +15,9 @@ */ #include "process_grave_esc.h" #include "qmk_settings.h" +#include "keycodes.h" +#include "modifiers.h" +#include "action_util.h" /* true if the last press of QK_GRAVE_ESCAPE was shifted (i.e. GUI or SHIFT were pressed), false otherwise. * Used to ensure that the correct keycode is released if the key is released. diff --git a/quantum/process_keycode/process_grave_esc.h b/quantum/process_keycode/process_grave_esc.h index bbf44837631..358ff3c4e78 100644 --- a/quantum/process_keycode/process_grave_esc.h +++ b/quantum/process_keycode/process_grave_esc.h @@ -15,6 +15,8 @@ */ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" bool process_grave_esc(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_haptic.h b/quantum/process_keycode/process_haptic.h index 6dbb0f014d0..7e61f6c0d6a 100644 --- a/quantum/process_keycode/process_haptic.h +++ b/quantum/process_keycode/process_haptic.h @@ -15,6 +15,7 @@ */ #pragma once +#include #include #include "action.h" diff --git a/quantum/process_keycode/process_joystick.h b/quantum/process_keycode/process_joystick.h index 1fb8757708d..aa1a4432716 100644 --- a/quantum/process_keycode/process_joystick.h +++ b/quantum/process_keycode/process_joystick.h @@ -17,6 +17,7 @@ #pragma once #include -#include "quantum.h" +#include +#include "action.h" bool process_joystick(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_key_lock.h b/quantum/process_keycode/process_key_lock.h index 5159b0ba023..858945a8e44 100644 --- a/quantum/process_keycode/process_key_lock.h +++ b/quantum/process_keycode/process_key_lock.h @@ -16,7 +16,9 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" void cancel_key_lock(void); bool process_key_lock(uint16_t *keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_key_override.c b/quantum/process_keycode/process_key_override.c index 17e490e67ae..264e2562b8c 100644 --- a/quantum/process_keycode/process_key_override.c +++ b/quantum/process_keycode/process_key_override.c @@ -15,12 +15,14 @@ * along with this program. If not, see . */ -#include "quantum.h" +#include "process_key_override.h" #include "report.h" #include "timer.h" -#include "process_key_override.h" - -#include +#include "debug.h" +#include "wait.h" +#include "action_util.h" +#include "quantum.h" +#include "quantum_keycodes.h" #ifndef KEY_OVERRIDE_REPEAT_DELAY # define KEY_OVERRIDE_REPEAT_DELAY 500 @@ -322,6 +324,15 @@ static bool try_activating_override(const uint16_t keycode, const uint8_t layer, clear_active_override(false); +#ifdef DUMMY_MOD_NEUTRALIZER_KEYCODE + // Send a dummy keycode before unregistering the modifier(s) + // so that suppressing the modifier(s) doesn't falsely get interpreted + // by the host OS as a tap of a modifier key. + // For example, unintended activations of the start menu on Windows when + // using a GUI+ key override with suppressed mods. + neutralize_flashing_modifiers(active_mods); +#endif + active_override = override; active_override_trigger_is_down = true; diff --git a/quantum/process_keycode/process_key_override.h b/quantum/process_keycode/process_key_override.h index fd76f297a80..3e37c7e63a6 100644 --- a/quantum/process_keycode/process_key_override.h +++ b/quantum/process_keycode/process_key_override.h @@ -18,9 +18,8 @@ #pragma once #include -#include #include - +#include "action.h" #include "action_layer.h" /** diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c index a9823b62850..ca017a577de 100644 --- a/quantum/process_keycode/process_leader.c +++ b/quantum/process_keycode/process_leader.c @@ -16,6 +16,7 @@ #include "process_leader.h" #include "leader.h" +#include "quantum_keycodes.h" bool process_leader(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { diff --git a/quantum/process_keycode/process_leader.h b/quantum/process_keycode/process_leader.h index eb0f721f600..b78fbb94dff 100644 --- a/quantum/process_keycode/process_leader.h +++ b/quantum/process_keycode/process_leader.h @@ -16,6 +16,8 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" bool process_leader(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_magic.c b/quantum/process_keycode/process_magic.c index 5fafe8550fc..3b35884d68a 100644 --- a/quantum/process_keycode/process_magic.c +++ b/quantum/process_keycode/process_magic.c @@ -14,8 +14,13 @@ * along with this program. If not, see . */ #include "process_magic.h" +#include "keycode_config.h" +#include "keycodes.h" +#include "eeconfig.h" #ifdef AUDIO_ENABLE +# include "audio.h" + # ifndef AG_NORM_SONG # define AG_NORM_SONG SONG(AG_NORM_SOUND) # endif diff --git a/quantum/process_keycode/process_magic.h b/quantum/process_keycode/process_magic.h index 1eb39f14557..aa65a43baed 100644 --- a/quantum/process_keycode/process_magic.h +++ b/quantum/process_keycode/process_magic.h @@ -15,6 +15,8 @@ */ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" bool process_magic(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_midi.c b/quantum/process_keycode/process_midi.c index ce62559849a..377fcb69e25 100644 --- a/quantum/process_keycode/process_midi.c +++ b/quantum/process_keycode/process_midi.c @@ -15,12 +15,13 @@ */ #include "process_midi.h" -#ifdef MIDI_ENABLE -# include -# include "midi.h" -# include "qmk_midi.h" +#include +#include "midi.h" +#include "qmk_midi.h" +#include "timer.h" +#include "debug.h" -# ifdef MIDI_BASIC +#ifdef MIDI_BASIC void process_midi_basic_noteon(uint8_t note) { midi_send_noteon(&midi_device, 0, note, 127); @@ -34,12 +35,9 @@ void process_midi_all_notes_off(void) { midi_send_cc(&midi_device, 0, 0x7B, 0); } -# endif // MIDI_BASIC - -# ifdef MIDI_ADVANCED - -# include "timer.h" +#endif // MIDI_BASIC +#ifdef MIDI_ADVANCED static uint8_t tone_status[2][MIDI_TONE_COUNT]; static uint8_t midi_modulation; @@ -248,11 +246,11 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) { return true; } -# endif // MIDI_ADVANCED +#endif // MIDI_ADVANCED void midi_task(void) { midi_device_process(&midi_device); -# ifdef MIDI_ADVANCED +#ifdef MIDI_ADVANCED if (timer_elapsed(midi_modulation_timer) < midi_config.modulation_interval) return; midi_modulation_timer = timer_read(); @@ -270,7 +268,5 @@ void midi_task(void) { if (midi_modulation > 127) midi_modulation = 127; } -# endif +#endif } - -#endif // MIDI_ENABLE diff --git a/quantum/process_keycode/process_midi.h b/quantum/process_keycode/process_midi.h index e528c6ec0ca..64ccc610f90 100644 --- a/quantum/process_keycode/process_midi.h +++ b/quantum/process_keycode/process_midi.h @@ -16,7 +16,10 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" +#include "quantum_keycodes.h" #ifdef MIDI_ENABLE diff --git a/quantum/process_keycode/process_music.c b/quantum/process_keycode/process_music.c index 7c572079a71..f047668504c 100644 --- a/quantum/process_keycode/process_music.c +++ b/quantum/process_keycode/process_music.c @@ -14,8 +14,10 @@ * along with this program. If not, see . */ #include "process_music.h" +#include "timer.h" #ifdef AUDIO_ENABLE +# include "audio.h" # include "process_audio.h" #endif #if defined(MIDI_ENABLE) && defined(MIDI_BASIC) diff --git a/quantum/process_keycode/process_music.h b/quantum/process_keycode/process_music.h index 83726a05ba9..ed39d3cda52 100644 --- a/quantum/process_keycode/process_music.h +++ b/quantum/process_keycode/process_music.h @@ -16,7 +16,9 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" #if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) diff --git a/quantum/process_keycode/process_programmable_button.h b/quantum/process_keycode/process_programmable_button.h index 47c6ce56144..ef818af4ca6 100644 --- a/quantum/process_keycode/process_programmable_button.h +++ b/quantum/process_keycode/process_programmable_button.h @@ -18,6 +18,7 @@ along with this program. If not, see . #pragma once #include -#include "quantum.h" +#include +#include "action.h" bool process_programmable_button(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_repeat_key.c b/quantum/process_keycode/process_repeat_key.c index f819aa226e9..73f4ddedcf1 100644 --- a/quantum/process_keycode/process_repeat_key.c +++ b/quantum/process_keycode/process_repeat_key.c @@ -13,6 +13,10 @@ // limitations under the License. #include "process_repeat_key.h" +#include "repeat_key.h" +#include "keycodes.h" +#include "quantum_keycodes.h" +#include "action_util.h" // Default implementation of remember_last_key_user(). __attribute__((weak)) bool remember_last_key_user(uint16_t keycode, keyrecord_t* record, uint8_t* remembered_mods) { diff --git a/quantum/process_keycode/process_repeat_key.h b/quantum/process_keycode/process_repeat_key.h index eddc50f254c..c3b200c6322 100644 --- a/quantum/process_keycode/process_repeat_key.h +++ b/quantum/process_keycode/process_repeat_key.h @@ -14,7 +14,9 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" /** * @brief Process handler for remembering the last key. diff --git a/quantum/process_keycode/process_rgb.c b/quantum/process_keycode/process_rgb.c index dae129786e2..4e63bf3ca84 100644 --- a/quantum/process_keycode/process_rgb.c +++ b/quantum/process_keycode/process_rgb.c @@ -14,6 +14,14 @@ * along with this program. If not, see . */ #include "process_rgb.h" +#include "action_util.h" + +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix.h" +#endif +#ifdef RGBLIGHT_ENABLE +# include "rgblight.h" +#endif typedef void (*rgb_func_pointer)(void); diff --git a/quantum/process_keycode/process_rgb.h b/quantum/process_keycode/process_rgb.h index 26aca46896b..b1069d4bb6f 100644 --- a/quantum/process_keycode/process_rgb.h +++ b/quantum/process_keycode/process_rgb.h @@ -15,6 +15,8 @@ */ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" bool process_rgb(const uint16_t keycode, const keyrecord_t *record); diff --git a/quantum/process_keycode/process_secure.h b/quantum/process_keycode/process_secure.h index 2814264b92f..78d793f0f66 100644 --- a/quantum/process_keycode/process_secure.h +++ b/quantum/process_keycode/process_secure.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include "action.h" diff --git a/quantum/process_keycode/process_sequencer.h b/quantum/process_keycode/process_sequencer.h index 2b85f24299e..3a9bdc2b240 100644 --- a/quantum/process_keycode/process_sequencer.h +++ b/quantum/process_keycode/process_sequencer.h @@ -16,6 +16,8 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" bool process_sequencer(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_space_cadet.c b/quantum/process_keycode/process_space_cadet.c index 3109ea17114..f948ad6238b 100644 --- a/quantum/process_keycode/process_space_cadet.c +++ b/quantum/process_keycode/process_space_cadet.c @@ -13,8 +13,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include "process_space_cadet.h" +#include "keycodes.h" +#include "timer.h" +#include "action.h" #include "action_tapping.h" +#include "action_util.h" // ********** OBSOLETE DEFINES, STOP USING! (pls?) ********** // Shift / paren setup diff --git a/quantum/process_keycode/process_space_cadet.h b/quantum/process_keycode/process_space_cadet.h index fcb70f3b436..6d10051532c 100644 --- a/quantum/process_keycode/process_space_cadet.h +++ b/quantum/process_keycode/process_space_cadet.h @@ -15,7 +15,9 @@ */ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" void perform_space_cadet(keyrecord_t *record, uint16_t sc_keycode, uint8_t holdMod, uint8_t tapMod, uint8_t keycode); bool process_space_cadet(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_steno.c b/quantum/process_keycode/process_steno.c index d5ad61ba858..af26d4ca86c 100644 --- a/quantum/process_keycode/process_steno.c +++ b/quantum/process_keycode/process_steno.c @@ -15,6 +15,7 @@ */ #include "process_steno.h" #include "quantum_keycodes.h" +#include "eeconfig.h" #include "keymap_steno.h" #include #ifdef VIRTSER_ENABLE diff --git a/quantum/process_keycode/process_steno.h b/quantum/process_keycode/process_steno.h index 68d6097b9b7..0dd2103218e 100644 --- a/quantum/process_keycode/process_steno.h +++ b/quantum/process_keycode/process_steno.h @@ -16,7 +16,9 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" #define BOLT_STROKE_SIZE 4 #define GEMINI_STROKE_SIZE 6 diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index f419ed37ecd..237fa71cd33 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -13,7 +13,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + +#include "process_tap_dance.h" #include "quantum.h" +#include "action_layer.h" +#include "action_tapping.h" +#include "action_util.h" +#include "timer.h" +#include "wait.h" static uint16_t active_td; static uint16_t last_tap_time; @@ -88,6 +95,10 @@ static inline void process_tap_dance_action_on_each_tap(tap_dance_action_t *acti _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_tap); } +static inline void process_tap_dance_action_on_each_release(tap_dance_action_t *action) { + _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_release); +} + static inline void process_tap_dance_action_on_reset(tap_dance_action_t *action) { _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_reset); del_weak_mods(action->state.weak_mods); @@ -151,8 +162,12 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { process_tap_dance_action_on_each_tap(action); active_td = action->state.finished ? 0 : keycode; } else { + process_tap_dance_action_on_each_release(action); if (action->state.finished) { process_tap_dance_action_on_reset(action); + if (active_td == keycode) { + active_td = 0; + } } } diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index 5cb6d9202c6..2b114dabd36 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -16,18 +16,17 @@ #pragma once -#ifdef TAP_DANCE_ENABLE - -# include -# include +#include +#include +#include "action.h" typedef struct { uint16_t interrupting_keycode; uint8_t count; uint8_t weak_mods; -# ifndef NO_ACTION_ONESHOT +#ifndef NO_ACTION_ONESHOT uint8_t oneshot_mods; -# endif +#endif bool pressed : 1; bool finished : 1; bool interrupted : 1; @@ -41,6 +40,7 @@ typedef struct { tap_dance_user_fn_t on_each_tap; tap_dance_user_fn_t on_dance_finished; tap_dance_user_fn_t on_reset; + tap_dance_user_fn_t on_each_release; } fn; void *user_data; } tap_dance_action_t; @@ -56,24 +56,27 @@ typedef struct { void (*layer_function)(uint8_t); } tap_dance_dual_role_t; -# define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ - { .fn = {tap_dance_pair_on_each_tap, tap_dance_pair_finished, tap_dance_pair_reset}, .user_data = (void *)&((tap_dance_pair_t){kc1, kc2}), } +#define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ + { .fn = {tap_dance_pair_on_each_tap, tap_dance_pair_finished, tap_dance_pair_reset, NULL}, .user_data = (void *)&((tap_dance_pair_t){kc1, kc2}), } -# define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) \ - { .fn = {tap_dance_dual_role_on_each_tap, tap_dance_dual_role_finished, tap_dance_dual_role_reset}, .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_move}), } +#define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) \ + { .fn = {tap_dance_dual_role_on_each_tap, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_move}), } -# define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ - { .fn = {NULL, tap_dance_dual_role_finished, tap_dance_dual_role_reset}, .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_invert}), } +#define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ + { .fn = {NULL, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_invert}), } -# define ACTION_TAP_DANCE_FN(user_fn) \ - { .fn = {NULL, user_fn, NULL}, .user_data = NULL, } +#define ACTION_TAP_DANCE_FN(user_fn) \ + { .fn = {NULL, user_fn, NULL, NULL}, .user_data = NULL, } -# define ACTION_TAP_DANCE_FN_ADVANCED(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset) \ - { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset}, .user_data = NULL, } +#define ACTION_TAP_DANCE_FN_ADVANCED(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset) \ + { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, NULL}, .user_data = NULL, } -# define TD(n) (QK_TAP_DANCE | TD_INDEX(n)) -# define TD_INDEX(code) ((code)&0xFF) -# define TAP_DANCE_KEYCODE(state) TD(((tap_dance_action_t *)state) - tap_dance_actions) +#define ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(user_fn_on_each_tap, user_fn_on_each_release, user_fn_on_dance_finished, user_fn_on_dance_reset) \ + { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, user_fn_on_each_release}, .user_data = NULL, } + +#define TD(n) (QK_TAP_DANCE | TD_INDEX(n)) +#define TD_INDEX(code) ((code)&0xFF) +#define TAP_DANCE_KEYCODE(state) TD(((tap_dance_action_t *)state) - tap_dance_actions) extern tap_dance_action_t tap_dance_actions[]; @@ -92,9 +95,3 @@ void tap_dance_pair_reset(tap_dance_state_t *state, void *user_data); void tap_dance_dual_role_on_each_tap(tap_dance_state_t *state, void *user_data); void tap_dance_dual_role_finished(tap_dance_state_t *state, void *user_data); void tap_dance_dual_role_reset(tap_dance_state_t *state, void *user_data); - -#else - -# define TD(n) KC_NO - -#endif diff --git a/quantum/process_keycode/process_tri_layer.h b/quantum/process_keycode/process_tri_layer.h index 9c4e3df1c2f..5e6e4ff94db 100644 --- a/quantum/process_keycode/process_tri_layer.h +++ b/quantum/process_keycode/process_tri_layer.h @@ -3,6 +3,8 @@ #pragma once +#include +#include #include "action.h" /** diff --git a/quantum/process_keycode/process_ucis.c b/quantum/process_keycode/process_ucis.c index 3aa09d5948f..91a038bab1c 100644 --- a/quantum/process_keycode/process_ucis.c +++ b/quantum/process_keycode/process_ucis.c @@ -15,110 +15,30 @@ */ #include "process_ucis.h" -#include "unicode.h" -#include "keycode.h" -#include "wait.h" +#include "ucis.h" +#include "keycodes.h" -ucis_state_t ucis_state; - -void ucis_start(void) { - ucis_state.count = 0; - ucis_state.in_progress = true; - - ucis_start_user(); -} - -__attribute__((weak)) void ucis_start_user(void) { - register_unicode(0x2328); // ⌨ -} - -__attribute__((weak)) void ucis_success(uint8_t symbol_index) {} - -static bool is_uni_seq(char *seq) { - uint8_t i; - for (i = 0; seq[i]; i++) { - uint16_t keycode; - if ('1' <= seq[i] && seq[i] <= '0') { - keycode = seq[i] - '1' + KC_1; - } else { - keycode = seq[i] - 'a' + KC_A; - } - if (i > ucis_state.count || ucis_state.codes[i] != keycode) { +bool process_ucis(uint16_t keycode, keyrecord_t *record) { + if (ucis_active() && record->event.pressed) { + bool special = keycode == KC_SPACE || keycode == KC_ENTER || keycode == KC_ESCAPE || keycode == KC_BACKSPACE; + if (ucis_count() >= UCIS_MAX_INPUT_LENGTH && !special) { return false; } - } - return ucis_state.codes[i] == KC_ENTER || ucis_state.codes[i] == KC_SPACE; -} - -__attribute__((weak)) void ucis_symbol_fallback(void) { - for (uint8_t i = 0; i < ucis_state.count - 1; i++) { - tap_code(ucis_state.codes[i]); - } -} - -__attribute__((weak)) void ucis_cancel(void) {} - -void register_ucis(const uint32_t *code_points) { - for (int i = 0; i < UCIS_MAX_CODE_POINTS && code_points[i]; i++) { - register_unicode(code_points[i]); - } -} -bool process_ucis(uint16_t keycode, keyrecord_t *record) { - if (!ucis_state.in_progress || !record->event.pressed) { - return true; - } - - bool special = keycode == KC_SPACE || keycode == KC_ENTER || keycode == KC_ESCAPE || keycode == KC_BACKSPACE; - if (ucis_state.count >= UCIS_MAX_SYMBOL_LENGTH && !special) { - return false; - } - - ucis_state.codes[ucis_state.count] = keycode; - ucis_state.count++; - - switch (keycode) { - case KC_BACKSPACE: - if (ucis_state.count >= 2) { - ucis_state.count -= 2; - return true; - } else { - ucis_state.count--; - return false; - } - - case KC_SPACE: - case KC_ENTER: - case KC_ESCAPE: - for (uint8_t i = 0; i < ucis_state.count; i++) { - tap_code(KC_BACKSPACE); - } - - if (keycode == KC_ESCAPE) { - ucis_state.in_progress = false; - ucis_cancel(); - return false; - } - - uint8_t i; - bool symbol_found = false; - for (i = 0; ucis_symbol_table[i].symbol; i++) { - if (is_uni_seq(ucis_symbol_table[i].symbol)) { - symbol_found = true; - register_ucis(ucis_symbol_table[i].code_points); - break; - } + if (!ucis_add(keycode)) { + switch (keycode) { + case KC_BACKSPACE: + return ucis_remove_last(); + case KC_ESCAPE: + ucis_cancel(); + return false; + case KC_SPACE: + case KC_ENTER: + ucis_finish(); + return false; } - if (symbol_found) { - ucis_success(i); - } else { - ucis_symbol_fallback(); - } - - ucis_state.in_progress = false; - return false; - - default: - return true; + } } + + return true; } diff --git a/quantum/process_keycode/process_ucis.h b/quantum/process_keycode/process_ucis.h index 54eb9413d41..6282df78932 100644 --- a/quantum/process_keycode/process_ucis.h +++ b/quantum/process_keycode/process_ucis.h @@ -18,48 +18,6 @@ #include #include - #include "action.h" -#ifndef UCIS_MAX_SYMBOL_LENGTH -# define UCIS_MAX_SYMBOL_LENGTH 32 -#endif -#ifndef UCIS_MAX_CODE_POINTS -# define UCIS_MAX_CODE_POINTS 3 -#endif - -typedef struct { - char * symbol; - uint32_t code_points[UCIS_MAX_CODE_POINTS]; -} ucis_symbol_t; - -typedef struct { - uint8_t count; - uint16_t codes[UCIS_MAX_SYMBOL_LENGTH]; - bool in_progress : 1; -} ucis_state_t; - -extern ucis_state_t ucis_state; - -// clang-format off - -#define UCIS_TABLE(...) \ - { \ - __VA_ARGS__, \ - { NULL, {} } \ - } -#define UCIS_SYM(name, ...) \ - { name, {__VA_ARGS__} } - -// clang-format on - -extern const ucis_symbol_t ucis_symbol_table[]; - -void ucis_start(void); -void ucis_start_user(void); -void ucis_symbol_fallback(void); -void ucis_success(uint8_t symbol_index); - -void register_ucis(const uint32_t *code_points); - bool process_ucis(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c index 1ec76245a34..8ee6fcd7fca 100644 --- a/quantum/process_keycode/process_unicode.c +++ b/quantum/process_keycode/process_unicode.c @@ -16,6 +16,7 @@ #include "process_unicode.h" #include "unicode.h" +#include "keycodes.h" #include "quantum_keycodes.h" bool process_unicode(uint16_t keycode, keyrecord_t *record) { diff --git a/quantum/process_keycode/process_unicode.h b/quantum/process_keycode/process_unicode.h index 341bc8d861d..9a51ffaf7c9 100644 --- a/quantum/process_keycode/process_unicode.h +++ b/quantum/process_keycode/process_unicode.h @@ -18,7 +18,6 @@ #include #include - #include "action.h" bool process_unicode(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c index a0b90100276..f43770977aa 100644 --- a/quantum/process_keycode/process_unicode_common.c +++ b/quantum/process_keycode/process_unicode_common.c @@ -17,7 +17,8 @@ #include "process_unicode_common.h" #include "unicode.h" #include "action_util.h" -#include "keycode.h" +#include "keycodes.h" +#include "modifiers.h" #if defined(UNICODE_ENABLE) # include "process_unicode.h" @@ -32,10 +33,18 @@ bool process_unicode_common(uint16_t keycode, keyrecord_t *record) { bool shifted = get_mods() & MOD_MASK_SHIFT; switch (keycode) { case QK_UNICODE_MODE_NEXT: - cycle_unicode_input_mode(shifted ? -1 : +1); + if (shifted) { + unicode_input_mode_step_reverse(); + } else { + unicode_input_mode_step(); + } break; case QK_UNICODE_MODE_PREVIOUS: - cycle_unicode_input_mode(shifted ? +1 : -1); + if (shifted) { + unicode_input_mode_step(); + } else { + unicode_input_mode_step_reverse(); + } break; case QK_UNICODE_MODE_MACOS: set_unicode_input_mode(UNICODE_MODE_MACOS); diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h index fd09a41818f..04658300793 100644 --- a/quantum/process_keycode/process_unicode_common.h +++ b/quantum/process_keycode/process_unicode_common.h @@ -18,7 +18,6 @@ #include #include - #include "action.h" bool process_unicode_common(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_unicodemap.c b/quantum/process_keycode/process_unicodemap.c index 195c093e6e5..a85568521c5 100644 --- a/quantum/process_keycode/process_unicodemap.c +++ b/quantum/process_keycode/process_unicodemap.c @@ -15,41 +15,12 @@ */ #include "process_unicodemap.h" -#include "unicode.h" -#include "quantum_keycodes.h" -#include "keycode.h" -#include "action_util.h" -#include "host.h" - -__attribute__((weak)) uint16_t unicodemap_index(uint16_t keycode) { - if (keycode >= QK_UNICODEMAP_PAIR) { - // Keycode is a pair: extract index based on Shift / Caps Lock state - uint16_t index; - - uint8_t mods = get_mods() | get_weak_mods(); -#ifndef NO_ACTION_ONESHOT - mods |= get_oneshot_mods(); -#endif - - bool shift = mods & MOD_MASK_SHIFT; - bool caps = host_keyboard_led_state().caps_lock; - if (shift ^ caps) { - index = QK_UNICODEMAP_PAIR_GET_SHIFTED_INDEX(keycode); - } else { - index = QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(keycode); - } - - return index; - } else { - // Keycode is a regular index - return QK_UNICODEMAP_GET_INDEX(keycode); - } -} +#include "unicodemap.h" +#include "keycodes.h" bool process_unicodemap(uint16_t keycode, keyrecord_t *record) { if (keycode >= QK_UNICODEMAP && keycode <= QK_UNICODEMAP_PAIR_MAX && record->event.pressed) { - uint32_t code_point = pgm_read_dword(unicode_map + unicodemap_index(keycode)); - register_unicode(code_point); + register_unicodemap(unicodemap_index(keycode)); } return true; } diff --git a/quantum/process_keycode/process_unicodemap.h b/quantum/process_keycode/process_unicodemap.h index 5a3aeb00006..f07082e9efa 100644 --- a/quantum/process_keycode/process_unicodemap.h +++ b/quantum/process_keycode/process_unicodemap.h @@ -18,11 +18,6 @@ #include #include - #include "action.h" -#include "progmem.h" - -extern const uint32_t unicode_map[] PROGMEM; -uint16_t unicodemap_index(uint16_t keycode); -bool process_unicodemap(uint16_t keycode, keyrecord_t *record); +bool process_unicodemap(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/qmk_settings.c b/quantum/qmk_settings.c index 1549d7b5fc6..96449220e2d 100644 --- a/quantum/qmk_settings.c +++ b/quantum/qmk_settings.c @@ -9,6 +9,7 @@ #include "mousekey.h" #include "process_combo.h" #include "action_tapping.h" +#include "keycode_config.h" static int eeprom_settings_get(const qmk_settings_proto_t *proto, void *setting, size_t maxsz); static int eeprom_settings_set(const qmk_settings_proto_t *proto, const void *setting, size_t maxsz); diff --git a/quantum/quantum.c b/quantum/quantum.c index cd80e8db8e0..f07c9154b18 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -18,24 +18,60 @@ #include "magic.h" #include "qmk_settings.h" +#if defined(BACKLIGHT_ENABLE) || defined(LED_MATRIX_ENABLE) +# include "process_backlight.h" +#endif + #ifdef BLUETOOTH_ENABLE # include "outputselect.h" #endif -#ifdef BACKLIGHT_ENABLE -# include "backlight.h" +#ifdef GRAVE_ESC_ENABLE +# include "process_grave_esc.h" +#endif + +#ifdef HAPTIC_ENABLE +# include "process_haptic.h" +#endif + +#ifdef JOYSTICK_ENABLE +# include "process_joystick.h" +#endif + +#ifdef LEADER_ENABLE +# include "process_leader.h" +#endif + +#ifdef MAGIC_KEYCODE_ENABLE +# include "process_magic.h" #endif #ifdef MIDI_ENABLE # include "process_midi.h" #endif -#ifdef VELOCIKEY_ENABLE -# include "velocikey.h" +#ifdef PROGRAMMABLE_BUTTON_ENABLE +# include "process_programmable_button.h" #endif -#ifdef HAPTIC_ENABLE -# include "haptic.h" +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) +# include "process_rgb.h" +#endif + +#ifdef SECURE_ENABLE +# include "process_secure.h" +#endif + +#ifdef TRI_LAYER_ENABLE +# include "process_tri_layer.h" +#endif + +#ifdef UNICODE_COMMON_ENABLE +# include "process_unicode_common.h" +#endif + +#ifdef VELOCIKEY_ENABLE +# include "velocikey.h" #endif #ifdef VIAL_ENABLE @@ -321,15 +357,15 @@ bool process_record_quantum_helper(uint16_t keycode, keyrecord_t *record) { #if (defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))) && !defined(NO_MUSIC_MODE) process_music(keycode, record) && #endif +#ifdef CAPS_WORD_ENABLE + process_caps_word(keycode, record) && +#endif #ifdef KEY_OVERRIDE_ENABLE process_key_override(keycode, record) && #endif #ifdef TAP_DANCE_ENABLE process_tap_dance(keycode, record) && #endif -#ifdef CAPS_WORD_ENABLE - process_caps_word(keycode, record) && -#endif #if defined(UNICODE_COMMON_ENABLE) process_unicode_common(keycode, record) && #endif @@ -479,7 +515,7 @@ void suspend_power_down_quantum(void) { #ifndef NO_SUSPEND_POWER_DOWN // Turn off backlight # ifdef BACKLIGHT_ENABLE - backlight_set(0); + backlight_level_noeeprom(0); # endif # ifdef LED_MATRIX_ENABLE diff --git a/quantum/quantum.h b/quantum/quantum.h index 7e7e4ab09aa..7f4a3b61ed7 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -93,30 +93,20 @@ extern layer_state_t layer_state; # include "process_music.h" #endif -#if defined(BACKLIGHT_ENABLE) || defined(LED_MATRIX_ENABLE) -# include "process_backlight.h" -#endif - #ifdef LEADER_ENABLE # include "leader.h" -# include "process_leader.h" #endif -#ifdef UNICODE_ENABLE -# include "process_unicode.h" +#ifdef UNICODE_COMMON_ENABLE +# include "unicode.h" #endif #ifdef UCIS_ENABLE -# include "process_ucis.h" +# include "ucis.h" #endif #ifdef UNICODEMAP_ENABLE -# include "process_unicodemap.h" -#endif - -#ifdef UNICODE_COMMON_ENABLE -# include "unicode.h" -# include "process_unicode_common.h" +# include "unicodemap.h" #endif #ifdef KEY_OVERRIDE_ENABLE @@ -147,24 +137,8 @@ extern layer_state_t layer_state; # include "process_space_cadet.h" #endif -#ifdef MAGIC_KEYCODE_ENABLE -# include "process_magic.h" -#endif - -#ifdef JOYSTICK_ENABLE -# include "process_joystick.h" -#endif - #ifdef PROGRAMMABLE_BUTTON_ENABLE -# include "process_programmable_button.h" -#endif - -#ifdef GRAVE_ESC_ENABLE -# include "process_grave_esc.h" -#endif - -#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) -# include "process_rgb.h" +# include "programmable_button.h" #endif #ifdef HD44780_ENABLE @@ -177,7 +151,6 @@ extern layer_state_t layer_state; #ifdef HAPTIC_ENABLE # include "haptic.h" -# include "process_haptic.h" #endif #ifdef OLED_ENABLE @@ -202,7 +175,6 @@ extern layer_state_t layer_state; #ifdef SECURE_ENABLE # include "secure.h" -# include "process_secure.h" #endif #ifdef DYNAMIC_KEYMAP_ENABLE @@ -248,7 +220,6 @@ extern layer_state_t layer_state; #ifdef TRI_LAYER_ENABLE # include "tri_layer.h" -# include "process_tri_layer.h" #endif #ifdef REPEAT_KEY_ENABLE diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index f931b7e4c70..d3249bd4555 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -179,10 +179,10 @@ #define QK_UNICODE_GET_CODE_POINT(kc) ((kc)&0x7FFF) // UNICODEMAP_ENABLE - Allows Unicode input up to 0x10FFFF, requires unicode_map -#define X(i) (QK_UNICODEMAP | ((i)&0x3FFF)) +#define UM(i) (QK_UNICODEMAP | ((i)&0x3FFF)) #define QK_UNICODEMAP_GET_INDEX(kc) ((kc)&0x3FFF) -#define XP(i, j) (QK_UNICODEMAP_PAIR | ((i)&0x7F) | (((j)&0x7F) << 7)) // 127 max i and j +#define UP(i, j) (QK_UNICODEMAP_PAIR | ((i)&0x7F) | (((j)&0x7F) << 7)) // 127 max i and j #define QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(kc) ((kc)&0x7F) #define QK_UNICODEMAP_PAIR_GET_SHIFTED_INDEX(kc) (((kc) >> 7) & 0x7F) diff --git a/quantum/quantum_keycodes_legacy.h b/quantum/quantum_keycodes_legacy.h index 120c98bc628..260ac1c8a44 100644 --- a/quantum/quantum_keycodes_legacy.h +++ b/quantum/quantum_keycodes_legacy.h @@ -53,3 +53,6 @@ #define GUI_ON QK_MAGIC_GUI_ON #define GUI_OFF QK_MAGIC_GUI_OFF #define GUI_TOG QK_MAGIC_TOGGLE_GUI + +#define X(i) UM(i) +#define XP(i, j) UP(i, j) diff --git a/quantum/raw_hid.h b/quantum/raw_hid.h index 6d60ab2bffc..16830833ccf 100644 --- a/quantum/raw_hid.h +++ b/quantum/raw_hid.h @@ -1,5 +1,31 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #pragma once +#include + +/** + * \file + * + * \defgroup raw_hid Raw HID API + * \{ + */ + +/** + * \brief Callback, invoked when a raw HID report has been received from the host. + * + * \param data A pointer to the received data. Always 32 bytes in length. + * \param length The length of the buffer. Always 32. + */ void raw_hid_receive(uint8_t *data, uint8_t length); +/** + * \brief Send an HID report. + * + * \param data A pointer to the data to send. Must always be 32 bytes in length. + * \param length The length of the buffer. Must always be 32. + */ void raw_hid_send(uint8_t *data, uint8_t length); + +/** \} */ diff --git a/quantum/repeat_key.c b/quantum/repeat_key.c index 0689c6d4547..4567428723a 100644 --- a/quantum/repeat_key.c +++ b/quantum/repeat_key.c @@ -13,6 +13,7 @@ // limitations under the License. #include "repeat_key.h" +#include "quantum_keycodes.h" // Variables saving the state of the last key press. static keyrecord_t last_record = {0}; diff --git a/quantum/repeat_key.h b/quantum/repeat_key.h index 06e83645295..8084be24ad4 100644 --- a/quantum/repeat_key.h +++ b/quantum/repeat_key.h @@ -14,7 +14,10 @@ #pragma once -#include "quantum.h" +#include +#include +#include "action.h" +#include "keyboard.h" uint16_t get_last_keycode(void); /**< Keycode of the last key. */ uint8_t get_last_mods(void); /**< Mods active with the last key. */ diff --git a/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h b/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h index 33a3c67759a..4d1a82de8a1 100644 --- a/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h +++ b/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h @@ -11,17 +11,16 @@ static void jellybean_raindrops_set_color(int i, effect_params_t* params) { } bool JELLYBEAN_RAINDROPS(effect_params_t* params) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 5 == 0) { jellybean_raindrops_set_color(random8_max(RGB_MATRIX_LED_COUNT), params); } - return false; - } - - RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (int i = led_min; i < led_max; i++) { - jellybean_raindrops_set_color(i, params); + } else { + for (int i = led_min; i < led_max; i++) { + jellybean_raindrops_set_color(i, params); + } } return rgb_matrix_check_finished_leds(led_max); } diff --git a/quantum/rgb_matrix/animations/pixel_fractal_anim.h b/quantum/rgb_matrix/animations/pixel_fractal_anim.h index 9d92d585eec..fb7afea6e18 100644 --- a/quantum/rgb_matrix/animations/pixel_fractal_anim.h +++ b/quantum/rgb_matrix/animations/pixel_fractal_anim.h @@ -8,7 +8,11 @@ RGB_MATRIX_EFFECT(PIXEL_FRACTAL) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS static bool PIXEL_FRACTAL(effect_params_t* params) { -# define MID_COL MATRIX_COLS / 2 +# if MATRIX_COLS < 2 +# define MID_COL 1 +# else +# define MID_COL MATRIX_COLS / 2 +# endif static bool led[MATRIX_ROWS][MID_COL]; static uint32_t wait_timer = 0; diff --git a/quantum/rgb_matrix/animations/pixel_rain_anim.h b/quantum/rgb_matrix/animations/pixel_rain_anim.h index 388da8c139c..6637d9e2d1b 100644 --- a/quantum/rgb_matrix/animations/pixel_rain_anim.h +++ b/quantum/rgb_matrix/animations/pixel_rain_anim.h @@ -17,13 +17,9 @@ static bool PIXEL_RAIN(effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[led_index], params->flags)) { return; } - if (random8() & 2) { - rgb_matrix_set_color(led_index, 0, 0, 0); - } else { - HSV hsv = {random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; - RGB rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(led_index, rgb.r, rgb.g, rgb.b); - } + HSV hsv = (random8() & 2) ? (HSV){0, 0, 0} : (HSV){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(led_index, rgb.r, rgb.g, rgb.b); wait_timer = g_rgb_timer + interval(); } diff --git a/quantum/rgb_matrix/post_config.h b/quantum/rgb_matrix/post_config.h new file mode 100644 index 00000000000..7162c8679ba --- /dev/null +++ b/quantum/rgb_matrix/post_config.h @@ -0,0 +1,29 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// clang-format off + +// framebuffer +#if defined(ENABLE_RGB_MATRIX_TYPING_HEATMAP) || \ + defined(ENABLE_RGB_MATRIX_DIGITAL_RAIN) +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#endif + +// reactive +#if defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE) || \ + defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE) || \ + defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE) || \ + defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE) || \ + defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || \ + defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS) || \ + defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS) || \ + defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS) || \ + defined(ENABLE_RGB_MATRIX_SPLASH) || \ + defined(ENABLE_RGB_MATRIX_MULTISPLASH) || \ + defined(ENABLE_RGB_MATRIX_SOLID_SPLASH) || \ + defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS) || \ + defined(ENABLE_RGB_MATRIX_SOLID_MULTISPLASH) +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index 1f3912cf7e0..96be6151628 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -19,8 +19,13 @@ #include "rgb_matrix.h" #include "progmem.h" #include "eeprom.h" +#include "eeconfig.h" +#include "keyboard.h" +#include "sync_timer.h" +#include "debug.h" #include #include +#include #include @@ -428,7 +433,10 @@ void rgb_matrix_task(void) { case RENDERING: rgb_task_render(effect); if (effect) { - rgb_matrix_indicators(); + // Only run the basic indicators in the last render iteration (default there are 5 iterations) + if (rgb_effect_params.iter == RGB_MATRIX_LED_PROCESS_MAX_ITERATIONS) { + rgb_matrix_indicators(); + } rgb_matrix_indicators_advanced(&rgb_effect_params); } break; diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 46c5335f058..74919a11854 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -22,7 +22,7 @@ #include #include "rgb_matrix_types.h" #include "color.h" -#include "quantum.h" +#include "keyboard.h" #ifdef IS31FL3731 # include "is31fl3731.h" @@ -49,8 +49,9 @@ #endif #ifndef RGB_MATRIX_LED_PROCESS_LIMIT -# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 +# define RGB_MATRIX_LED_PROCESS_LIMIT ((RGB_MATRIX_LED_COUNT + 4) / 5) #endif +#define RGB_MATRIX_LED_PROCESS_MAX_ITERATIONS ((RGB_MATRIX_LED_COUNT + RGB_MATRIX_LED_PROCESS_LIMIT - 1) / RGB_MATRIX_LED_PROCESS_LIMIT) #if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < RGB_MATRIX_LED_COUNT # if defined(RGB_MATRIX_SPLIT) diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index d66fc801dde..695ecc78a47 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -15,6 +15,7 @@ */ #include "rgb_matrix.h" +#include "util.h" /* Each driver needs to define the struct * const rgb_matrix_driver_t rgb_matrix_driver; @@ -37,13 +38,13 @@ static void init(void) { i2c_init(); # if defined(IS31FL3731) - IS31FL3731_init(DRIVER_ADDR_1); + is31fl3731_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - IS31FL3731_init(DRIVER_ADDR_2); + is31fl3731_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - IS31FL3731_init(DRIVER_ADDR_3); + is31fl3731_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - IS31FL3731_init(DRIVER_ADDR_4); + is31fl3731_init(DRIVER_ADDR_4); # endif # endif # endif @@ -52,58 +53,58 @@ static void init(void) { # if !defined(DRIVER_SYNC_1) # define DRIVER_SYNC_1 0 # endif - IS31FL3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1); + is31fl3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1); # if defined(DRIVER_ADDR_2) # if !defined(DRIVER_SYNC_2) # define DRIVER_SYNC_2 0 # endif - IS31FL3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2); + is31fl3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2); # if defined(DRIVER_ADDR_3) # if !defined(DRIVER_SYNC_3) # define DRIVER_SYNC_3 0 # endif - IS31FL3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3); + is31fl3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3); # if defined(DRIVER_ADDR_4) # if !defined(DRIVER_SYNC_4) # define DRIVER_SYNC_4 0 # endif - IS31FL3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4); + is31fl3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4); # endif # endif # endif # elif defined(IS31FL3736) - IS31FL3736_init(DRIVER_ADDR_1); + is31fl3736_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - IS31FL3736_init(DRIVER_ADDR_2); + is31fl3736_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - IS31FL3736_init(DRIVER_ADDR_3); + is31fl3736_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - IS31FL3736_init(DRIVER_ADDR_4); + is31fl3736_init(DRIVER_ADDR_4); # endif # endif # endif # elif defined(IS31FL3737) - IS31FL3737_init(DRIVER_ADDR_1); + is31fl3737_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - IS31FL3737_init(DRIVER_ADDR_2); + is31fl3737_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - IS31FL3737_init(DRIVER_ADDR_3); + is31fl3737_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - IS31FL3737_init(DRIVER_ADDR_4); + is31fl3737_init(DRIVER_ADDR_4); # endif # endif # endif # elif defined(IS31FL3741) - IS31FL3741_init(DRIVER_ADDR_1); + is31fl3741_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - IS31FL3741_init(DRIVER_ADDR_2); + is31fl3741_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - IS31FL3741_init(DRIVER_ADDR_3); + is31fl3741_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - IS31FL3741_init(DRIVER_ADDR_4); + is31fl3741_init(DRIVER_ADDR_4); # endif # endif # endif @@ -121,13 +122,13 @@ static void init(void) { # endif # elif defined(CKLED2001) - CKLED2001_init(DRIVER_ADDR_1); + ckled2001_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - CKLED2001_init(DRIVER_ADDR_2); + ckled2001_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - CKLED2001_init(DRIVER_ADDR_3); + ckled2001_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - CKLED2001_init(DRIVER_ADDR_4); + ckled2001_init(DRIVER_ADDR_4); # endif # endif # endif @@ -138,79 +139,79 @@ static void init(void) { // This only caches it for later # if defined(IS31FL3731) - IS31FL3731_set_led_control_register(index, enabled, enabled, enabled); + is31fl3731_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FL3733) - IS31FL3733_set_led_control_register(index, enabled, enabled, enabled); + is31fl3733_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FL3736) - IS31FL3736_set_led_control_register(index, enabled, enabled, enabled); + is31fl3736_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FL3737) - IS31FL3737_set_led_control_register(index, enabled, enabled, enabled); + is31fl3737_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FL3741) - IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); + is31fl3741_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FLCOMMON) IS31FL_RGB_set_scaling_buffer(index, enabled, enabled, enabled); # elif defined(CKLED2001) - CKLED2001_set_led_control_register(index, enabled, enabled, enabled); + ckled2001_set_led_control_register(index, enabled, enabled, enabled); # endif } // This actually updates the LED drivers # if defined(IS31FL3731) - IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3731_update_led_control_registers(DRIVER_ADDR_3, 2); + is31fl3731_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3731_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3731_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif # elif defined(IS31FL3733) - IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3733_update_led_control_registers(DRIVER_ADDR_3, 2); + is31fl3733_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3733_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3733_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif # elif defined(IS31FL3736) - IS31FL3736_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3736_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3736_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3736_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3736_update_led_control_registers(DRIVER_ADDR_3, 2); + is31fl3736_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3736_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3736_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif # elif defined(IS31FL3737) - IS31FL3737_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3737_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3737_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3737_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3737_update_led_control_registers(DRIVER_ADDR_3, 2); + is31fl3737_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3737_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3737_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif # elif defined(IS31FL3741) - IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3741_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3741_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3741_update_led_control_registers(DRIVER_ADDR_3, 2); + is31fl3741_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3741_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3741_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -231,13 +232,13 @@ static void init(void) { # endif # elif defined(CKLED2001) - CKLED2001_update_led_control_registers(DRIVER_ADDR_1, 0); + ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - CKLED2001_update_led_control_registers(DRIVER_ADDR_2, 1); + ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - CKLED2001_update_led_control_registers(DRIVER_ADDR_3, 2); + ckled2001_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - CKLED2001_update_led_control_registers(DRIVER_ADDR_4, 3); + ckled2001_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -246,13 +247,13 @@ static void init(void) { # if defined(IS31FL3731) static void flush(void) { - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_3, 2); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3731_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3731_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -261,19 +262,19 @@ static void flush(void) { const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = IS31FL3731_set_color, - .set_color_all = IS31FL3731_set_color_all, + .set_color = is31fl3731_set_color, + .set_color_all = is31fl3731_set_color_all, }; # elif defined(IS31FL3733) static void flush(void) { - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_3, 2); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3733_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3733_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -282,19 +283,19 @@ static void flush(void) { const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = IS31FL3733_set_color, - .set_color_all = IS31FL3733_set_color_all, + .set_color = is31fl3733_set_color, + .set_color_all = is31fl3733_set_color_all, }; # elif defined(IS31FL3736) static void flush(void) { - IS31FL3736_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3736_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3736_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3736_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3736_update_pwm_buffers(DRIVER_ADDR_3, 2); + is31fl3736_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3736_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3736_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -303,19 +304,19 @@ static void flush(void) { const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = IS31FL3736_set_color, - .set_color_all = IS31FL3736_set_color_all, + .set_color = is31fl3736_set_color, + .set_color_all = is31fl3736_set_color_all, }; # elif defined(IS31FL3737) static void flush(void) { - IS31FL3737_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3737_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3737_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3737_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3737_update_pwm_buffers(DRIVER_ADDR_3, 2); + is31fl3737_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3737_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3737_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -324,19 +325,19 @@ static void flush(void) { const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = IS31FL3737_set_color, - .set_color_all = IS31FL3737_set_color_all, + .set_color = is31fl3737_set_color, + .set_color_all = is31fl3737_set_color_all, }; # elif defined(IS31FL3741) static void flush(void) { - IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - IS31FL3741_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3741_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - IS31FL3741_update_pwm_buffers(DRIVER_ADDR_3, 2); + is31fl3741_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - IS31FL3741_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3741_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -345,8 +346,8 @@ static void flush(void) { const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = IS31FL3741_set_color, - .set_color_all = IS31FL3741_set_color_all, + .set_color = is31fl3741_set_color, + .set_color_all = is31fl3741_set_color_all, }; # elif defined(IS31FLCOMMON) @@ -372,13 +373,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # elif defined(CKLED2001) static void flush(void) { - CKLED2001_update_pwm_buffers(DRIVER_ADDR_1, 0); + ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - CKLED2001_update_pwm_buffers(DRIVER_ADDR_2, 1); + ckled2001_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - CKLED2001_update_pwm_buffers(DRIVER_ADDR_3, 2); + ckled2001_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - CKLED2001_update_pwm_buffers(DRIVER_ADDR_4, 3); + ckled2001_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -387,8 +388,8 @@ static void flush(void) { const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = CKLED2001_set_color, - .set_color_all = CKLED2001_set_color_all, + .set_color = ckled2001_set_color, + .set_color_all = ckled2001_set_color_all, }; # endif @@ -398,24 +399,24 @@ const rgb_matrix_driver_t rgb_matrix_driver = { static void init(void) { spi_init(); - AW20216_init(DRIVER_1_CS, DRIVER_1_EN); + aw20216_init(DRIVER_1_CS, DRIVER_1_EN); # if defined(DRIVER_2_CS) - AW20216_init(DRIVER_2_CS, DRIVER_2_EN); + aw20216_init(DRIVER_2_CS, DRIVER_2_EN); # endif } static void flush(void) { - AW20216_update_pwm_buffers(DRIVER_1_CS, 0); + aw20216_update_pwm_buffers(DRIVER_1_CS, 0); # if defined(DRIVER_2_CS) - AW20216_update_pwm_buffers(DRIVER_2_CS, 1); + aw20216_update_pwm_buffers(DRIVER_2_CS, 1); # endif } const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = AW20216_set_color, - .set_color_all = AW20216_set_color_all, + .set_color = aw20216_set_color, + .set_color_all = aw20216_set_color_all, }; #elif defined(WS2812) @@ -426,11 +427,17 @@ const rgb_matrix_driver_t rgb_matrix_driver = { // LED color buffer LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; +bool ws2812_dirty = false; -static void init(void) {} +static void init(void) { + ws2812_dirty = false; +} static void flush(void) { - ws2812_setleds(rgb_matrix_ws2812_array, RGB_MATRIX_LED_COUNT); + if (ws2812_dirty) { + ws2812_setleds(rgb_matrix_ws2812_array, RGB_MATRIX_LED_COUNT); + ws2812_dirty = false; + } } // Set an led in the buffer to a color @@ -448,6 +455,11 @@ static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { } # endif + if (rgb_matrix_ws2812_array[i].r == r && rgb_matrix_ws2812_array[i].g == g && rgb_matrix_ws2812_array[i].b == b) { + return; + } + + ws2812_dirty = true; rgb_matrix_ws2812_array[i].r = r; rgb_matrix_ws2812_array[i].g = g; rgb_matrix_ws2812_array[i].b = b; diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index ea28801a40a..158112f31da 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -1277,7 +1277,7 @@ void rgblight_effect_snake(animation_status_t *anim) { for (j = 0; j < RGBLIGHT_EFFECT_SNAKE_LENGTH; j++) { k = pos + j * increment; if (k > RGBLED_NUM) { - k = k % RGBLED_NUM; + k = k % (RGBLED_NUM); } if (k < 0) { k = k + rgblight_ranges.effect_num_leds; diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index a4313834540..5d044c4ea0b 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -18,9 +18,10 @@ #include "keyboard.h" #include "timer.h" #include "transport.h" -#include "quantum.h" #include "wait.h" +#include "debug.h" #include "usb_util.h" +#include "bootloader.h" #ifdef EE_HANDS # include "eeconfig.h" @@ -205,9 +206,6 @@ void split_pre_init(void) { #endif if (is_keyboard_master()) { -#if defined(USE_I2C) && defined(SSD1306OLED) - matrix_master_OLED_init(); -#endif transport_master_init(); } } diff --git a/quantum/split_common/split_util.h b/quantum/split_common/split_util.h index 5c9a260a14a..f83b05b6a63 100644 --- a/quantum/split_common/split_util.h +++ b/quantum/split_common/split_util.h @@ -2,13 +2,11 @@ #include #include -#include #include "matrix.h" extern volatile bool isLeftHand; -void matrix_master_OLED_init(void); void split_pre_init(void); void split_post_init(void); diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index b3c80f11945..2b9423cd636 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -20,13 +20,50 @@ #include "crc.h" #include "debug.h" #include "matrix.h" -#include "quantum.h" +#include "host.h" +#include "action_util.h" +#include "sync_timer.h" +#include "wait.h" #include "transactions.h" #include "transport.h" #include "transaction_id_define.h" #include "split_util.h" #include "synchronization_util.h" +#ifdef BACKLIGHT_ENABLE +# include "backlight.h" +#endif +#ifdef RGBLIGHT_ENABLE +# include "rgblight.h" +#endif +#ifdef LED_MATRIX_ENABLE +# include "led_matrix.h" +#endif +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix.h" +#endif +#ifdef OLED_ENABLE +# include "oled_driver.h" +#endif +#ifdef ST7565_ENABLE +# include "st7565.h" +#endif +#ifdef ENCODER_ENABLE +# include "encoder.h" +#endif +#ifdef HAPTIC_ENABLE +# include "haptic.h" +#endif +#ifdef POINTING_DEVICE_ENABLE +# include "pointing_device.h" +#endif +#ifdef OS_DETECTION_ENABLE +# include "os_detection.h" +#endif +#ifdef WPM_ENABLE +# include "wpm.h" +#endif + #define SYNC_TIMER_OFFSET 2 #ifndef FORCED_SYNC_THROTTLE_MS @@ -412,7 +449,7 @@ static void backlight_handlers_slave(matrix_row_t master_matrix[], matrix_row_t uint8_t backlight_level = split_shmem->backlight_level; split_shared_memory_unlock(); - backlight_set(backlight_level); + backlight_level_noeeprom(backlight_level); } # define TRANSACTIONS_BACKLIGHT_MASTER() TRANSACTION_HANDLER_MASTER(backlight) diff --git a/quantum/split_common/transactions.h b/quantum/split_common/transactions.h index e38ec79ce91..af3e68a15fb 100644 --- a/quantum/split_common/transactions.h +++ b/quantum/split_common/transactions.h @@ -16,8 +16,8 @@ #pragma once -#include "stdint.h" -#include "stdbool.h" +#include +#include #include "matrix.h" #include "transaction_id_define.h" diff --git a/quantum/split_common/transport.h b/quantum/split_common/transport.h index a3d6f1dfe95..2e2b918d451 100644 --- a/quantum/split_common/transport.h +++ b/quantum/split_common/transport.h @@ -16,8 +16,8 @@ #pragma once -#include "stdint.h" -#include "stdbool.h" +#include +#include #include "progmem.h" #include "action_layer.h" diff --git a/quantum/unicode/ucis.c b/quantum/unicode/ucis.c new file mode 100644 index 00000000000..32be7852065 --- /dev/null +++ b/quantum/unicode/ucis.c @@ -0,0 +1,96 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "ucis.h" +#include "unicode.h" +#include "action.h" + +uint8_t count = 0; +bool active = false; +char input[UCIS_MAX_INPUT_LENGTH] = {0}; + +void ucis_start(void) { + count = 0; + active = true; + + register_unicode(0x2328); // ⌨ +} + +bool ucis_active(void) { + return active; +} + +uint8_t ucis_count(void) { + return count; +} + +static char keycode_to_char(uint16_t keycode) { + if (keycode >= KC_A && keycode <= KC_Z) { + return 'a' + (keycode - KC_A); + } else if (keycode >= KC_1 && keycode <= KC_9) { + return '1' + (keycode - KC_1); + } else if (keycode == KC_0) { + return '0'; + } + return 0; +} + +bool ucis_add(uint16_t keycode) { + char c = keycode_to_char(keycode); + if (c) { + input[count++] = c; + return true; + } + return false; +} + +bool ucis_remove_last(void) { + if (count) { + count--; + return true; + } + + return false; +} + +static bool match_mnemonic(char *mnemonic) { + for (uint8_t i = 0; input[i]; i++) { + if (i > count || input[i] != mnemonic[i]) { + return false; + } + } + return true; +} + +void ucis_finish(void) { + uint8_t i = 0; + bool found = false; + for (; ucis_symbol_table[i].mnemonic; i++) { + if (match_mnemonic(ucis_symbol_table[i].mnemonic)) { + found = true; + break; + } + } + + if (found) { + for (uint8_t j = 0; j <= count; j++) { + tap_code(KC_BACKSPACE); + } + register_ucis(i); + } + + active = false; +} + +void ucis_cancel(void) { + count = 0; + active = false; +} + +void register_ucis(uint8_t index) { + const uint32_t *code_points = ucis_symbol_table[index].code_points; + + for (int i = 0; i < UCIS_MAX_CODE_POINTS && code_points[i]; i++) { + register_unicode(code_points[i]); + } +} diff --git a/quantum/unicode/ucis.h b/quantum/unicode/ucis.h new file mode 100644 index 00000000000..5a4fa267841 --- /dev/null +++ b/quantum/unicode/ucis.h @@ -0,0 +1,97 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +/** + * \file + * + * \defgroup ucis UCIS + * \{ + */ + +#ifndef UCIS_MAX_INPUT_LENGTH +# define UCIS_MAX_INPUT_LENGTH 32 +#endif + +#ifndef UCIS_MAX_CODE_POINTS +# define UCIS_MAX_CODE_POINTS 3 +#endif + +typedef struct { + char* mnemonic; + uint32_t code_points[UCIS_MAX_CODE_POINTS]; +} ucis_symbol_t; + +// clang-format off + +#define UCIS_TABLE(...) { \ + __VA_ARGS__, \ + { NULL, {} } \ +} + +#define UCIS_SYM(name, ...) { \ + .mnemonic = name, \ + .code_points = {__VA_ARGS__} \ +} + +// clang-format on + +extern const ucis_symbol_t ucis_symbol_table[]; + +/** + * \brief Begin the input sequence. + */ +void ucis_start(void); + +/** + * \brief Whether UCIS is currently active. + * + * \return `true` if UCIS is active. + */ +bool ucis_active(void); + +/** + * \brief Get the number of characters in the input sequence buffer. + * + * \return The current input sequence buffer length. + */ +uint8_t ucis_count(void); + +/** + * \brief Add the given keycode to the input sequence buffer. + * + * \param keycode The keycode to add. Must be between `KC_A` and `KC_Z`, or `KC_1` and `KC_0`. + * + * \return `true` if the keycode was added. + */ +bool ucis_add(uint16_t keycode); + +/** + * \brief Remove the last character from the input sequence. + * + * \return `true` if the sequence was not empty. + */ +bool ucis_remove_last(void); + +/** + * Mark the input sequence as complete, and attempt to match. + */ +void ucis_finish(void); + +/** + * \brief Cancel the input sequence. + */ +void ucis_cancel(void); + +/** + * Send the code point(s) for the given UCIS index. + * + * \param index The index into the UCIS symbol table. + */ +void register_ucis(uint8_t index); + +/** \} */ diff --git a/quantum/unicode/unicode.c b/quantum/unicode/unicode.c index 35cb62e7004..78a4cad5859 100644 --- a/quantum/unicode/unicode.c +++ b/quantum/unicode/unicode.c @@ -25,6 +25,8 @@ #include "wait.h" #include "send_string.h" #include "utf8.h" +#include "debug.h" +#include "quantum.h" #if defined(AUDIO_ENABLE) # include "audio.h" @@ -71,16 +73,8 @@ static int8_t selected_count = ARRAY_SIZE(selected); static int8_t selected_index; #endif -/** \brief unicode input mode set at user level - * - * Run user code on unicode input mode change - */ __attribute__((weak)) void unicode_input_mode_set_user(uint8_t input_mode) {} -/** \brief unicode input mode set at keyboard level - * - * Run keyboard code on unicode input mode change - */ __attribute__((weak)) void unicode_input_mode_set_kb(uint8_t input_mode) { unicode_input_mode_set_user(input_mode); } @@ -170,6 +164,10 @@ uint8_t get_unicode_input_mode(void) { return unicode_config.input_mode; } +static void persist_unicode_input_mode(void) { + eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config.input_mode); +} + void set_unicode_input_mode(uint8_t mode) { unicode_config.input_mode = mode; persist_unicode_input_mode(); @@ -180,26 +178,34 @@ void set_unicode_input_mode(uint8_t mode) { dprintf("Unicode input mode set to: %u\n", unicode_config.input_mode); } -void cycle_unicode_input_mode(int8_t offset) { +static void cycle_unicode_input_mode(int8_t offset) { #if UNICODE_SELECTED_MODES != -1 selected_index = (selected_index + offset) % selected_count; if (selected_index < 0) { selected_index += selected_count; } + unicode_config.input_mode = selected[selected_index]; + # if UNICODE_CYCLE_PERSIST persist_unicode_input_mode(); # endif + # ifdef AUDIO_ENABLE unicode_play_song(unicode_config.input_mode); # endif + unicode_input_mode_set_kb(unicode_config.input_mode); dprintf("Unicode input mode cycle to: %u\n", unicode_config.input_mode); #endif } -void persist_unicode_input_mode(void) { - eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config.input_mode); +void unicode_input_mode_step(void) { + cycle_unicode_input_mode(1); +} + +void unicode_input_mode_step_reverse(void) { + cycle_unicode_input_mode(-1); } __attribute__((weak)) void unicode_input_start(void) { diff --git a/quantum/unicode/unicode.h b/quantum/unicode/unicode.h index 06505d87c0c..90a54c8b18b 100644 --- a/quantum/unicode/unicode.h +++ b/quantum/unicode/unicode.h @@ -17,8 +17,14 @@ #pragma once #include +#include "unicode_keycodes.h" -#include "quantum.h" +/** + * \file + * + * \defgroup unicode Unicode + * \{ + */ typedef union { uint8_t raw; @@ -42,127 +48,87 @@ enum unicode_input_modes { UNICODE_MODE_COUNT // Number of available input modes (always leave at the end) }; -void unicode_input_mode_init(void); +void unicode_input_mode_init(void); + +/** + * \brief Get the current Unicode input mode. + * + * \return The currently active Unicode input mode. + */ uint8_t get_unicode_input_mode(void); -void set_unicode_input_mode(uint8_t mode); -void cycle_unicode_input_mode(int8_t offset); -void persist_unicode_input_mode(void); +/** + * \brief Set the Unicode input mode. + * + * \param mode The input mode to set. + */ +void set_unicode_input_mode(uint8_t mode); + +/** + * \brief Change to the next Unicode input mode. + */ +void unicode_input_mode_step(void); + +/** + * \brief Change to the previous Unicode input mode. + */ +void unicode_input_mode_step_reverse(void); + +/** + * \brief User-level callback, invoked when the input mode is changed. + * + * \param input_mode The new input mode. + */ void unicode_input_mode_set_user(uint8_t input_mode); + +/** + * \brief Keyboard-level callback, invoked when the input mode is changed. + * + * \param input_mode The new input mode. + */ void unicode_input_mode_set_kb(uint8_t input_mode); +/** + * \brief Begin the Unicode input sequence. The exact behavior depends on the currently selected input mode. + */ void unicode_input_start(void); + +/** + * \brief Complete the Unicode input sequence. The exact behavior depends on the currently selected input mode. + */ void unicode_input_finish(void); + +/** + * \brief Cancel the Unicode input sequence. The exact behavior depends on the currently selected input mode. + */ void unicode_input_cancel(void); +/** + * \brief Send a 16-bit hex number. + * + * \param hex The number to send. + */ void register_hex(uint16_t hex); + +/** + * \brief Send a 32-bit hex number. + * + * \param hex The number to send. + */ void register_hex32(uint32_t hex); + +/** + * \brief Input a single Unicode character. A surrogate pair will be sent if required by the input mode. + * + * \param code_point The code point of the character to send. + */ void register_unicode(uint32_t code_point); +/** + * \brief Send a string containing Unicode characters. + * + * \param str The string to send. + */ void send_unicode_string(const char *str); -// clang-format off - -#define UC_BSPC UC(0x0008) // (backspace) - -#define UC_SPC UC(0x0020) // (space) -#define UC_EXLM UC(0x0021) // ! -#define UC_DQUT UC(0x0022) // " -#define UC_HASH UC(0x0023) // # -#define UC_DLR UC(0x0024) // $ -#define UC_PERC UC(0x0025) // % -#define UC_AMPR UC(0x0026) // & -#define UC_QUOT UC(0x0027) // ' -#define UC_LPRN UC(0x0028) // ( -#define UC_RPRN UC(0x0029) // ) -#define UC_ASTR UC(0x002A) // * -#define UC_PLUS UC(0x002B) // + -#define UC_COMM UC(0x002C) // , -#define UC_DASH UC(0x002D) // - -#define UC_DOT UC(0x002E) // . -#define UC_SLSH UC(0x002F) // / - -#define UC_0 UC(0x0030) // 0 -#define UC_1 UC(0x0031) // 1 -#define UC_2 UC(0x0032) // 2 -#define UC_3 UC(0x0033) // 3 -#define UC_4 UC(0x0034) // 4 -#define UC_5 UC(0x0035) // 5 -#define UC_6 UC(0x0036) // 6 -#define UC_7 UC(0x0037) // 7 -#define UC_8 UC(0x0038) // 8 -#define UC_9 UC(0x0039) // 9 -#define UC_COLN UC(0x003A) // : -#define UC_SCLN UC(0x003B) // ; -#define UC_LT UC(0x003C) // < -#define UC_EQL UC(0x003D) // = -#define UC_GT UC(0x003E) // > -#define UC_QUES UC(0x003F) // ? - -#define UC_AT UC(0x0040) // @ -#define UC_A UC(0x0041) // A -#define UC_B UC(0x0042) // B -#define UC_C UC(0x0043) // C -#define UC_D UC(0x0044) // D -#define UC_E UC(0x0045) // E -#define UC_F UC(0x0046) // F -#define UC_G UC(0x0047) // G -#define UC_H UC(0x0048) // H -#define UC_I UC(0x0049) // I -#define UC_J UC(0x004A) // J -#define UC_K UC(0x004B) // K -#define UC_L UC(0x004C) // L -#define UC_M UC(0x004D) // M -#define UC_N UC(0x004E) // N -#define UC_O UC(0x004F) // O - -#define UC_P UC(0x0050) // P -#define UC_Q UC(0x0051) // Q -#define UC_R UC(0x0052) // R -#define UC_S UC(0x0053) // S -#define UC_T UC(0x0054) // T -#define UC_U UC(0x0055) // U -#define UC_V UC(0x0056) // V -#define UC_W UC(0x0057) // W -#define UC_X UC(0x0058) // X -#define UC_Y UC(0x0059) // Y -#define UC_Z UC(0x005A) // Z -#define UC_LBRC UC(0x005B) // [ -#define UC_BSLS UC(0x005C) // (backslash) -#define UC_RBRC UC(0x005D) // ] -#define UC_CIRM UC(0x005E) // ^ -#define UC_UNDR UC(0x005F) // _ - -#define UC_GRV UC(0x0060) // ` -#define UC_a UC(0x0061) // a -#define UC_b UC(0x0062) // b -#define UC_c UC(0x0063) // c -#define UC_d UC(0x0064) // d -#define UC_e UC(0x0065) // e -#define UC_f UC(0x0066) // f -#define UC_g UC(0x0067) // g -#define UC_h UC(0x0068) // h -#define UC_i UC(0x0069) // i -#define UC_j UC(0x006A) // j -#define UC_k UC(0x006B) // k -#define UC_l UC(0x006C) // l -#define UC_m UC(0x006D) // m -#define UC_n UC(0x006E) // n -#define UC_o UC(0x006F) // o - -#define UC_p UC(0x0070) // p -#define UC_q UC(0x0071) // q -#define UC_r UC(0x0072) // r -#define UC_s UC(0x0073) // s -#define UC_t UC(0x0074) // t -#define UC_u UC(0x0075) // u -#define UC_v UC(0x0076) // v -#define UC_w UC(0x0077) // w -#define UC_x UC(0x0078) // x -#define UC_y UC(0x0079) // y -#define UC_z UC(0x007A) // z -#define UC_LCBR UC(0x007B) // { -#define UC_PIPE UC(0x007C) // | -#define UC_RCBR UC(0x007D) // } -#define UC_TILD UC(0x007E) // ~ -#define UC_DEL UC(0x007F) // (delete) +/** \} */ diff --git a/quantum/unicode/unicode_keycodes.h b/quantum/unicode/unicode_keycodes.h new file mode 100644 index 00000000000..acc176cb6f2 --- /dev/null +++ b/quantum/unicode/unicode_keycodes.h @@ -0,0 +1,125 @@ +/* Copyright 2023 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum_keycodes.h" + +// clang-format off + +#define UC_BSPC UC(0x0008) // (backspace) + +#define UC_SPC UC(0x0020) // (space) +#define UC_EXLM UC(0x0021) // ! +#define UC_DQUT UC(0x0022) // " +#define UC_HASH UC(0x0023) // # +#define UC_DLR UC(0x0024) // $ +#define UC_PERC UC(0x0025) // % +#define UC_AMPR UC(0x0026) // & +#define UC_QUOT UC(0x0027) // ' +#define UC_LPRN UC(0x0028) // ( +#define UC_RPRN UC(0x0029) // ) +#define UC_ASTR UC(0x002A) // * +#define UC_PLUS UC(0x002B) // + +#define UC_COMM UC(0x002C) // , +#define UC_DASH UC(0x002D) // - +#define UC_DOT UC(0x002E) // . +#define UC_SLSH UC(0x002F) // / + +#define UC_0 UC(0x0030) // 0 +#define UC_1 UC(0x0031) // 1 +#define UC_2 UC(0x0032) // 2 +#define UC_3 UC(0x0033) // 3 +#define UC_4 UC(0x0034) // 4 +#define UC_5 UC(0x0035) // 5 +#define UC_6 UC(0x0036) // 6 +#define UC_7 UC(0x0037) // 7 +#define UC_8 UC(0x0038) // 8 +#define UC_9 UC(0x0039) // 9 +#define UC_COLN UC(0x003A) // : +#define UC_SCLN UC(0x003B) // ; +#define UC_LT UC(0x003C) // < +#define UC_EQL UC(0x003D) // = +#define UC_GT UC(0x003E) // > +#define UC_QUES UC(0x003F) // ? + +#define UC_AT UC(0x0040) // @ +#define UC_A UC(0x0041) // A +#define UC_B UC(0x0042) // B +#define UC_C UC(0x0043) // C +#define UC_D UC(0x0044) // D +#define UC_E UC(0x0045) // E +#define UC_F UC(0x0046) // F +#define UC_G UC(0x0047) // G +#define UC_H UC(0x0048) // H +#define UC_I UC(0x0049) // I +#define UC_J UC(0x004A) // J +#define UC_K UC(0x004B) // K +#define UC_L UC(0x004C) // L +#define UC_M UC(0x004D) // M +#define UC_N UC(0x004E) // N +#define UC_O UC(0x004F) // O + +#define UC_P UC(0x0050) // P +#define UC_Q UC(0x0051) // Q +#define UC_R UC(0x0052) // R +#define UC_S UC(0x0053) // S +#define UC_T UC(0x0054) // T +#define UC_U UC(0x0055) // U +#define UC_V UC(0x0056) // V +#define UC_W UC(0x0057) // W +#define UC_X UC(0x0058) // X +#define UC_Y UC(0x0059) // Y +#define UC_Z UC(0x005A) // Z +#define UC_LBRC UC(0x005B) // [ +#define UC_BSLS UC(0x005C) // (backslash) +#define UC_RBRC UC(0x005D) // ] +#define UC_CIRM UC(0x005E) // ^ +#define UC_UNDR UC(0x005F) // _ + +#define UC_GRV UC(0x0060) // ` +#define UC_a UC(0x0061) // a +#define UC_b UC(0x0062) // b +#define UC_c UC(0x0063) // c +#define UC_d UC(0x0064) // d +#define UC_e UC(0x0065) // e +#define UC_f UC(0x0066) // f +#define UC_g UC(0x0067) // g +#define UC_h UC(0x0068) // h +#define UC_i UC(0x0069) // i +#define UC_j UC(0x006A) // j +#define UC_k UC(0x006B) // k +#define UC_l UC(0x006C) // l +#define UC_m UC(0x006D) // m +#define UC_n UC(0x006E) // n +#define UC_o UC(0x006F) // o + +#define UC_p UC(0x0070) // p +#define UC_q UC(0x0071) // q +#define UC_r UC(0x0072) // r +#define UC_s UC(0x0073) // s +#define UC_t UC(0x0074) // t +#define UC_u UC(0x0075) // u +#define UC_v UC(0x0076) // v +#define UC_w UC(0x0077) // w +#define UC_x UC(0x0078) // x +#define UC_y UC(0x0079) // y +#define UC_z UC(0x007A) // z +#define UC_LCBR UC(0x007B) // { +#define UC_PIPE UC(0x007C) // | +#define UC_RCBR UC(0x007D) // } +#define UC_TILD UC(0x007E) // ~ +#define UC_DEL UC(0x007F) // (delete) diff --git a/quantum/unicode/unicodemap.c b/quantum/unicode/unicodemap.c new file mode 100644 index 00000000000..2f618056a2e --- /dev/null +++ b/quantum/unicode/unicodemap.c @@ -0,0 +1,43 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "unicodemap.h" +#include "unicode.h" +#include "keycodes.h" +#include "quantum_keycodes.h" +#include "modifiers.h" +#include "host.h" +#include "action_util.h" + +uint8_t unicodemap_index(uint16_t keycode) { + if (keycode >= QK_UNICODEMAP_PAIR) { + // Keycode is a pair: extract index based on Shift / Caps Lock state + uint16_t index; + + uint8_t mods = get_mods() | get_weak_mods(); +#ifndef NO_ACTION_ONESHOT + mods |= get_oneshot_mods(); +#endif + + bool shift = mods & MOD_MASK_SHIFT; + bool caps = host_keyboard_led_state().caps_lock; + if (shift ^ caps) { + index = QK_UNICODEMAP_PAIR_GET_SHIFTED_INDEX(keycode); + } else { + index = QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(keycode); + } + + return index; + } else { + // Keycode is a regular index + return QK_UNICODEMAP_GET_INDEX(keycode); + } +} + +uint32_t unicodemap_get_code_point(uint8_t index) { + return pgm_read_dword(unicode_map + index); +} + +void register_unicodemap(uint8_t index) { + register_unicode(unicodemap_get_code_point(index)); +} diff --git a/quantum/unicode/unicodemap.h b/quantum/unicode/unicodemap.h new file mode 100644 index 00000000000..00d2aec8fad --- /dev/null +++ b/quantum/unicode/unicodemap.h @@ -0,0 +1,43 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include "progmem.h" + +/** + * \file + * + * \defgroup unicodemap Unicode Map + * \{ + */ + +extern const uint32_t unicode_map[] PROGMEM; + +/** + * \brief Get the index into the `unicode_map` array for the given keycode, respecting shift state for pair keycodes. + * + * \param keycode The Unicode Map keycode to get the index of. + * + * \return An index into the `unicode_map` array. + */ +uint8_t unicodemap_index(uint16_t keycode); + +/** + * \brief Get the code point for the given index in the `unicode_map` array. + * + * \param index The index into the `unicode_map` array. + * + * \return A Unicode code point value. + */ +uint32_t unicodemap_get_code_point(uint8_t index); + +/** + * \brief Send the code point for the given index in the `unicode_map` array. + * + * \param index The index into the `unicode_map` array. + */ +void register_unicodemap(uint8_t index); + +/** \} */ diff --git a/quantum/via.h b/quantum/via.h index dc426ba44a2..d74f0be88d9 100644 --- a/quantum/via.h +++ b/quantum/via.h @@ -17,6 +17,7 @@ #pragma once #include "eeconfig.h" // for EECONFIG_SIZE +#include "action.h" // Keyboard level code can change where VIA stores the magic. // The magic is the build date YYMMDD encoded as BCD in 3 bytes, @@ -111,6 +112,7 @@ enum via_channel_id { id_qmk_rgblight_channel = 2, id_qmk_rgb_matrix_channel = 3, id_qmk_audio_channel = 4, + id_qmk_led_matrix_channel = 5, }; enum via_qmk_backlight_value { @@ -132,6 +134,12 @@ enum via_qmk_rgb_matrix_value { id_qmk_rgb_matrix_color = 4, }; +enum via_qmk_led_matrix_value { + id_qmk_led_matrix_brightness = 1, + id_qmk_led_matrix_effect = 2, + id_qmk_led_matrix_effect_speed = 3, +}; + enum via_qmk_audio_value { id_qmk_audio_enable = 1, id_qmk_audio_clicky_enable = 2, @@ -184,6 +192,13 @@ void via_qmk_rgb_matrix_get_value(uint8_t *data); void via_qmk_rgb_matrix_save(void); #endif +#if defined(LED_MATRIX_ENABLE) +void via_qmk_led_matrix_command(uint8_t *data, uint8_t length); +void via_qmk_led_matrix_set_value(uint8_t *data); +void via_qmk_led_matrix_get_value(uint8_t *data); +void via_qmk_led_matrix_save(void); +#endif + #if defined(AUDIO_ENABLE) void via_qmk_audio_command(uint8_t *data, uint8_t length); void via_qmk_audio_set_value(uint8_t *data); diff --git a/quantum/vial.h b/quantum/vial.h index 6fcc7775498..0b68732ee03 100644 --- a/quantum/vial.h +++ b/quantum/vial.h @@ -31,6 +31,7 @@ bool process_record_vial(uint16_t keycode, keyrecord_t *record); extern int vial_unlocked; extern int vial_unlock_in_progress; +extern uint16_t g_vial_magic_keycode_override; enum { vial_get_keyboard_id = 0x00, diff --git a/tests/audio/config.h b/tests/audio/config.h new file mode 100644 index 00000000000..d0c4ddadbd3 --- /dev/null +++ b/tests/audio/config.h @@ -0,0 +1,18 @@ +// Copyright 2023 Google LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#pragma once + +#include "test_common.h" diff --git a/tests/audio/test.mk b/tests/audio/test.mk new file mode 100644 index 00000000000..a2c71d95878 --- /dev/null +++ b/tests/audio/test.mk @@ -0,0 +1,16 @@ +# Copyright 2023 Google LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +AUDIO_ENABLE = yes diff --git a/tests/audio/test_audio.cpp b/tests/audio/test_audio.cpp new file mode 100644 index 00000000000..ef34748b060 --- /dev/null +++ b/tests/audio/test_audio.cpp @@ -0,0 +1,118 @@ +// Copyright 2023 Google LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#include +#include + +#include "gtest/gtest.h" +#include "keyboard_report_util.hpp" +#include "test_common.hpp" + +namespace { + +class AudioTest : public TestFixture { + public: + uint16_t infer_tempo() { + return audio_ms_to_duration(1875) / 2; + } +}; + +TEST_F(AudioTest, OnOffToggle) { + audio_on(); + EXPECT_TRUE(audio_is_on()); + + audio_off(); + EXPECT_FALSE(audio_is_on()); + + audio_toggle(); + EXPECT_TRUE(audio_is_on()); + + audio_toggle(); + EXPECT_FALSE(audio_is_on()); +} + +TEST_F(AudioTest, ChangeTempo) { + for (int tempo = 50; tempo <= 250; tempo += 50) { + audio_set_tempo(tempo); + EXPECT_EQ(infer_tempo(), tempo); + } + + audio_set_tempo(10); + audio_increase_tempo(25); + EXPECT_EQ(infer_tempo(), 35); + + audio_decrease_tempo(4); + EXPECT_EQ(infer_tempo(), 31); + + audio_increase_tempo(250); + EXPECT_EQ(infer_tempo(), 255); + + audio_set_tempo(9); + EXPECT_EQ(infer_tempo(), 10); + + audio_decrease_tempo(100); + EXPECT_EQ(infer_tempo(), 10); +} + +TEST_F(AudioTest, BpmConversion) { + const int tol = 1; + + audio_set_tempo(120); + // At 120 bpm, there are 2 beats per second, and a whole note is 500 ms. + EXPECT_NEAR(audio_duration_to_ms(64 /* whole note */), 500, tol); + EXPECT_NEAR(audio_ms_to_duration(500), 64, tol); + EXPECT_EQ(audio_duration_to_ms(0), 0); + EXPECT_EQ(audio_ms_to_duration(0), 0); + + audio_set_tempo(10); + // At 10 bpm, UINT16_MAX ms corresponds to 699/64 beats and is the longest + // duration that can be converted without overflow. + EXPECT_NEAR(audio_ms_to_duration(UINT16_MAX), 699, tol); + EXPECT_NEAR(audio_duration_to_ms(699), 65531, tol); + + audio_set_tempo(255); + // At 255 bpm, UINT16_MAX ms corresponds to 17825/64 beats and is the longest + // duration that can be converted without overflow. + EXPECT_NEAR(audio_ms_to_duration(UINT16_MAX), 17825, tol); + EXPECT_NEAR(audio_duration_to_ms(17825), 65533, tol); + + std::mt19937 rng(0 /*seed*/); + std::uniform_int_distribution dist_tempo(10, 255); + std::uniform_int_distribution dist_ms(0, UINT16_MAX); + + // Test bpm <-> ms conversions for random tempos and durations. + for (int trial = 0; trial < 50; ++trial) { + const int tempo = dist_tempo(rng); + const int duration_ms = dist_ms(rng); + SCOPED_TRACE("tempo " + testing::PrintToString(tempo) + ", duration " + testing::PrintToString(duration_ms) + " ms"); + + audio_set_tempo(tempo); + int duration_bpm = std::round((64.0f / (60.0f * 1000.0f)) * duration_ms * tempo); + ASSERT_NEAR(audio_ms_to_duration(duration_ms), duration_bpm, tol); + + int roundtrip_ms = std::round((60.0f * 1000.0f / 64.0f) * duration_bpm / tempo); + // Because of round-off error, duration_ms and roundtrip_ms may differ by + // about (60 * 1000 / 64) / tempo. + int roundtrip_tol = tol * (60.0f * 1000.0f / 64.0f) / tempo; + ASSERT_NEAR(roundtrip_ms, duration_ms, roundtrip_tol); + + // Only test converting back to ms if the result would be in uint16_t range. + if (roundtrip_ms <= UINT16_MAX) { + ASSERT_NEAR(audio_duration_to_ms(duration_bpm), roundtrip_ms, tol); + } + } +} + +} // namespace diff --git a/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp b/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp index 01cdfd6408d..21e5493526e 100644 --- a/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp +++ b/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp @@ -39,8 +39,8 @@ const uint32_t unicode_map[] PROGMEM = { [DELTA_UPPERCASE] = 0x0394, }; -#define U_DASH XP(ENDASH, EMDASH) -#define U_DELTA XP(DELTA_LOWERCASE, DELTA_UPPERCASE) +#define U_DASH UP(ENDASH, EMDASH) +#define U_DELTA UP(DELTA_LOWERCASE, DELTA_UPPERCASE) bool caps_word_press_user(uint16_t keycode) { switch (keycode) { diff --git a/tests/tap_dance/examples.c b/tests/tap_dance/examples.c index af743882095..13086bbb4bb 100644 --- a/tests/tap_dance/examples.c +++ b/tests/tap_dance/examples.c @@ -187,13 +187,35 @@ void x_reset(tap_dance_state_t *state, void *user_data) { xtap_state.state = TD_NONE; } +static void release_press(tap_dance_state_t *state, void *user_data) { + tap_code16(KC_P); +} + +static void release_unpress(tap_dance_state_t *state, void *user_data) { + tap_code16(KC_U); +} + +static void release_unpress_mark_finished(tap_dance_state_t *state, void *user_data) { + tap_code16(KC_U); + state->finished = true; +} + +static void release_finished(tap_dance_state_t *state, void *user_data) { + tap_code16(KC_F); +} + +static void release_reset(tap_dance_state_t *state, void *user_data) { + tap_code16(KC_R); +} tap_dance_action_t tap_dance_actions[] = { [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), [CT_EGG] = ACTION_TAP_DANCE_FN(dance_egg), [CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED(dance_flsh_each, dance_flsh_finished, dance_flsh_reset), [CT_CLN] = ACTION_TAP_DANCE_TAP_HOLD(KC_COLN, KC_SCLN), - [X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, x_finished, x_reset) + [X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, x_finished, x_reset), + [TD_RELEASE] = ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(release_press, release_unpress, release_finished, release_reset), + [TD_RELEASE_AND_FINISH] = ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(release_press, release_unpress_mark_finished, release_finished, release_reset), }; // clang-format on diff --git a/tests/tap_dance/examples.h b/tests/tap_dance/examples.h index 2622af6b2f4..6118188dd18 100644 --- a/tests/tap_dance/examples.h +++ b/tests/tap_dance/examples.h @@ -26,6 +26,8 @@ enum { CT_FLSH, CT_CLN, X_CTL, + TD_RELEASE, + TD_RELEASE_AND_FINISH, }; #ifdef __cplusplus diff --git a/tests/tap_dance/test_examples.cpp b/tests/tap_dance/test_examples.cpp index 6dabc45513a..7858dab92b9 100644 --- a/tests/tap_dance/test_examples.cpp +++ b/tests/tap_dance/test_examples.cpp @@ -316,3 +316,119 @@ TEST_F(TapDance, QuadFunction) { EXPECT_EMPTY_REPORT(driver); run_one_scan_loop(); } + +TEST_F(TapDance, DanceFnAdvancedWithRelease) { + TestDriver driver; + InSequence s; + auto key_rls = KeymapKey(0, 1, 0, TD(TD_RELEASE)); + + set_keymap({key_rls}); + + /* Single press and unpress */ + key_rls.press(); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + key_rls.release(); + EXPECT_REPORT(driver, (KC_U)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + EXPECT_REPORT(driver, (KC_F)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_R)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + + /* Double press and unpress */ + key_rls.press(); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + key_rls.release(); + EXPECT_REPORT(driver, (KC_U)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + key_rls.press(); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + key_rls.release(); + EXPECT_REPORT(driver, (KC_U)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + EXPECT_REPORT(driver, (KC_F)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_R)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + + /* Unpress after tapping term has elapsed (key is registered as held) */ + key_rls.press(); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + EXPECT_REPORT(driver, (KC_F)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + + key_rls.release(); + EXPECT_REPORT(driver, (KC_U)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_R)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); +} + +TEST_F(TapDance, DanceFnAdvancedWithReleaseAndFinish) { + TestDriver driver; + InSequence s; + auto key_rls = KeymapKey(0, 1, 0, TD(TD_RELEASE_AND_FINISH)); + + set_keymap({key_rls}); + + /* Single press and unpress */ + key_rls.press(); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + key_rls.release(); + EXPECT_REPORT(driver, (KC_U)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_R)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + // Verify the finished and/or reset functions aren't called + // after the tapping term elapses + idle_for(TAPPING_TERM); + run_one_scan_loop(); + + /* Unpress after tapping term has elapsed (key is registered as held) */ + key_rls.press(); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + EXPECT_REPORT(driver, (KC_F)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + + key_rls.release(); + EXPECT_REPORT(driver, (KC_U)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_R)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); +} diff --git a/tests/tap_hold_configurations/retro_tapping/config.h b/tests/tap_hold_configurations/retro_tapping/config.h index 4b38f2644b8..cc9f1624770 100644 --- a/tests/tap_hold_configurations/retro_tapping/config.h +++ b/tests/tap_hold_configurations/retro_tapping/config.h @@ -18,4 +18,7 @@ #include "test_common.h" -#define RETRO_TAPPING \ No newline at end of file +#define RETRO_TAPPING +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_RIGHT_CTRL +#define MODS_TO_NEUTRALIZE \ + { MOD_BIT(KC_LEFT_GUI) } diff --git a/tests/tap_hold_configurations/retro_tapping/test_neutralization.cpp b/tests/tap_hold_configurations/retro_tapping/test_neutralization.cpp new file mode 100644 index 00000000000..10d675a3b18 --- /dev/null +++ b/tests/tap_hold_configurations/retro_tapping/test_neutralization.cpp @@ -0,0 +1,201 @@ +/* Copyright 2023 Vladislav Kucheriavykh + * + * This 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 3 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 "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::InSequence; + +class RetroTapNeutralization : public TestFixture {}; + +TEST_F(RetroTapNeutralization, neutralize_retro_tapped_left_gui_mod_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 7, 0, LGUI_T(KC_P)); + + set_keymap({mod_tap_hold_key}); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (DUMMY_MOD_NEUTRALIZER_KEYCODE, KC_LGUI)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapNeutralization, do_not_neutralize_retro_tapped_left_shift_mod_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 7, 0, LSFT_T(KC_P)); + + set_keymap({mod_tap_hold_key}); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapNeutralization, do_not_neutralize_retro_tapped_right_gui_mod_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 7, 0, RGUI_T(KC_P)); + + set_keymap({mod_tap_hold_key}); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_RGUI)); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapNeutralization, do_not_neutralize_retro_tapped_left_gui_shift_mod_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 7, 0, MT(MOD_LGUI | MOD_LSFT, KC_P)); + + set_keymap({mod_tap_hold_key}); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapNeutralization, do_not_neutralize_roll_of_regular_and_mod_tap_keys) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Idle for tapping term of mod tap hold key. */ + idle_for(TAPPING_TERM - 3); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapNeutralization, do_not_neutralize_tap_regular_key_while_mod_tap_is_held) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press and hold mod-tap key. */ + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + mod_tap_hold_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + /* Press regular key. */ + EXPECT_REPORT(driver, (KC_A, KC_LEFT_GUI)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release regular key. */ + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Idle for tapping term of mod tap hold key. */ + idle_for(TAPPING_TERM - 3); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/test_common/test_driver.cpp b/tests/test_common/test_driver.cpp index f1c52cb7b62..0495da8205a 100644 --- a/tests/test_common/test_driver.cpp +++ b/tests/test_common/test_driver.cpp @@ -60,7 +60,10 @@ void TestDriver::send_extra(report_extra_t* report) { namespace internal { void expect_unicode_code_point(TestDriver& driver, uint32_t code_point) { testing::InSequence seq; - EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_U)); + EXPECT_REPORT(driver, (KC_LEFT_CTRL, KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_CTRL, KC_LEFT_SHIFT, KC_U)); + EXPECT_REPORT(driver, (KC_LEFT_CTRL, KC_LEFT_SHIFT)); + EXPECT_EMPTY_REPORT(driver); bool print_zero = false; for (int i = 7; i >= 0; --i) { @@ -71,10 +74,12 @@ void expect_unicode_code_point(TestDriver& driver, uint32_t code_point) { const uint8_t digit = (code_point >> (i * 4)) & 0xf; if (digit || print_zero) { EXPECT_REPORT(driver, (hex_digit_to_keycode(digit))); + EXPECT_EMPTY_REPORT(driver); print_zero = true; } } - EXPECT_REPORT(driver, (KC_SPC)); + EXPECT_REPORT(driver, (KC_SPACE)); + EXPECT_EMPTY_REPORT(driver); } } // namespace internal diff --git a/tests/unicode/config.h b/tests/unicode/config.h new file mode 100644 index 00000000000..16f95f7f8db --- /dev/null +++ b/tests/unicode/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS diff --git a/tests/unicode/test.mk b/tests/unicode/test.mk new file mode 100644 index 00000000000..1afc79be559 --- /dev/null +++ b/tests/unicode/test.mk @@ -0,0 +1,5 @@ +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +UNICODE_COMMON = yes diff --git a/tests/unicode/test_unicode.cpp b/tests/unicode/test_unicode.cpp new file mode 100644 index 00000000000..a8500e3ba1d --- /dev/null +++ b/tests/unicode/test_unicode.cpp @@ -0,0 +1,86 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "test_keymap_key.hpp" + +using testing::_; + +class Unicode : public TestFixture {}; + +TEST_F(Unicode, sends_bmp_unicode_sequence) { + TestDriver driver; + + set_unicode_input_mode(UNICODE_MODE_LINUX); + + EXPECT_UNICODE(driver, 0x03A8); // Ψ + register_unicode(0x03A8); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Unicode, sends_smp_unicode_sequence) { + TestDriver driver; + + set_unicode_input_mode(UNICODE_MODE_LINUX); + + EXPECT_UNICODE(driver, 0x1F9D9); // 🧙 + register_unicode(0x1F9D9); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Unicode, sends_surrogate_pair_for_macos) { + TestDriver driver; + + set_unicode_input_mode(UNICODE_MODE_MACOS); + + // EXPECT_UNICODE() assumes Linux input mode + { + testing::InSequence s; + + // Alt+D83EDDD9 🧙 + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_D, KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_8, KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_3, KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_E, KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_D, KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_D, KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_D, KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_9, KC_LEFT_ALT)); + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + EXPECT_EMPTY_REPORT(driver); + } + + register_unicode(0x1F9D9); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Unicode, sends_unicode_string) { + TestDriver driver; + + set_unicode_input_mode(UNICODE_MODE_LINUX); + + { + testing::InSequence s; + + EXPECT_UNICODE(driver, 0xFF31); + EXPECT_UNICODE(driver, 0xFF2D); + EXPECT_UNICODE(driver, 0xFF2B); + EXPECT_UNICODE(driver, 0xFF01); + } + send_unicode_string("QMK!"); + + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/unicode/unicode_basic/config.h b/tests/unicode/unicode_basic/config.h new file mode 100644 index 00000000000..16f95f7f8db --- /dev/null +++ b/tests/unicode/unicode_basic/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS diff --git a/tests/unicode/unicode_basic/test.mk b/tests/unicode/unicode_basic/test.mk new file mode 100644 index 00000000000..f53051dce67 --- /dev/null +++ b/tests/unicode/unicode_basic/test.mk @@ -0,0 +1,5 @@ +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +UNICODE_ENABLE = yes diff --git a/tests/unicode/unicode_basic/test_unicode_basic.cpp b/tests/unicode/unicode_basic/test_unicode_basic.cpp new file mode 100644 index 00000000000..598b57277f3 --- /dev/null +++ b/tests/unicode/unicode_basic/test_unicode_basic.cpp @@ -0,0 +1,26 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "test_keymap_key.hpp" + +using testing::_; + +class UnicodeBasic : public TestFixture {}; + +TEST_F(UnicodeBasic, sends_unicode_sequence) { + TestDriver driver; + + set_unicode_input_mode(UNICODE_MODE_LINUX); + + auto key_uc = KeymapKey(0, 0, 0, UC(0x03A8)); // Ψ + + set_keymap({key_uc}); + + EXPECT_UNICODE(driver, 0x03A8); + tap_key(key_uc); + + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/unicode/unicode_map/config.h b/tests/unicode/unicode_map/config.h new file mode 100644 index 00000000000..0d86922f0da --- /dev/null +++ b/tests/unicode/unicode_map/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX diff --git a/tests/unicode/unicode_map/test.mk b/tests/unicode/unicode_map/test.mk new file mode 100644 index 00000000000..e6d00347998 --- /dev/null +++ b/tests/unicode/unicode_map/test.mk @@ -0,0 +1,5 @@ +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +UNICODEMAP_ENABLE = yes diff --git a/tests/unicode/unicode_map/test_unicode_map.cpp b/tests/unicode/unicode_map/test_unicode_map.cpp new file mode 100644 index 00000000000..cacd8f3c757 --- /dev/null +++ b/tests/unicode/unicode_map/test_unicode_map.cpp @@ -0,0 +1,54 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "test_keymap_key.hpp" + +using testing::_; + +const uint32_t PROGMEM unicode_map[] = { + 0x03A8, // Ψ + 0x2318 // ⌘ +}; + +class UnicodeMap : public TestFixture {}; + +TEST_F(UnicodeMap, sends_unicodemap_code_point_from_keycode) { + TestDriver driver; + + auto key_um = KeymapKey(0, 0, 0, UM(0)); + + set_keymap({key_um}); + + EXPECT_UNICODE(driver, 0x03A8); + tap_key(key_um); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(UnicodeMap, sends_unicodemap_pair_from_keycode) { + TestDriver driver; + + auto key_shift = KeymapKey(0, 0, 0, KC_LEFT_SHIFT); + auto key_up = KeymapKey(0, 1, 0, UP(0, 1)); + + set_keymap({key_shift, key_up}); + + EXPECT_UNICODE(driver, 0x03A8); + tap_key(key_up); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + key_shift.press(); + run_one_scan_loop(); + + EXPECT_UNICODE(driver, 0x2318); + tap_key(key_up); + + EXPECT_NO_REPORT(driver); + key_shift.release(); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/unicode/unicode_ucis/config.h b/tests/unicode/unicode_ucis/config.h new file mode 100644 index 00000000000..0d86922f0da --- /dev/null +++ b/tests/unicode/unicode_ucis/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX diff --git a/tests/unicode/unicode_ucis/test.mk b/tests/unicode/unicode_ucis/test.mk new file mode 100644 index 00000000000..d7ac6517583 --- /dev/null +++ b/tests/unicode/unicode_ucis/test.mk @@ -0,0 +1,5 @@ +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +UCIS_ENABLE = yes diff --git a/tests/unicode/unicode_ucis/test_unicode_ucis.cpp b/tests/unicode/unicode_ucis/test_unicode_ucis.cpp new file mode 100644 index 00000000000..acc6329f857 --- /dev/null +++ b/tests/unicode/unicode_ucis/test_unicode_ucis.cpp @@ -0,0 +1,221 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "test_keymap_key.hpp" + +using testing::_; + +// clang-format off +const ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE( + UCIS_SYM("qmk", 0x03A8) // Ψ +); +// clang-format on + +class UnicodeUCIS : public TestFixture {}; + +TEST_F(UnicodeUCIS, matches_sequence) { + TestDriver driver; + + auto key_q = KeymapKey(0, 0, 0, KC_Q); + auto key_m = KeymapKey(0, 1, 0, KC_M); + auto key_k = KeymapKey(0, 2, 0, KC_K); + auto key_enter = KeymapKey(0, 3, 0, KC_ENTER); + + set_keymap({key_q, key_m, key_k, key_enter}); + + EXPECT_UNICODE(driver, 0x2328); // ⌨ + ucis_start(); + + EXPECT_EQ(ucis_active(), true); + EXPECT_EQ(ucis_count(), 0); + + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_q); + EXPECT_EQ(ucis_count(), 1); + + EXPECT_REPORT(driver, (KC_M)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_m); + EXPECT_EQ(ucis_count(), 2); + + EXPECT_REPORT(driver, (KC_K)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_k); + EXPECT_EQ(ucis_count(), 3); + + EXPECT_REPORT(driver, (KC_BACKSPACE)).Times(4); + EXPECT_EMPTY_REPORT(driver).Times(4); + EXPECT_UNICODE(driver, 0x03A8); + tap_key(key_enter); + + EXPECT_EQ(ucis_active(), false); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(UnicodeUCIS, cancels_sequence) { + TestDriver driver; + + auto key_q = KeymapKey(0, 0, 0, KC_Q); + auto key_m = KeymapKey(0, 1, 0, KC_M); + auto key_k = KeymapKey(0, 2, 0, KC_K); + auto key_escape = KeymapKey(0, 3, 0, KC_ESCAPE); + + set_keymap({key_q, key_m, key_k, key_escape}); + + EXPECT_UNICODE(driver, 0x2328); // ⌨ + ucis_start(); + + EXPECT_EQ(ucis_active(), true); + EXPECT_EQ(ucis_count(), 0); + + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_q); + EXPECT_EQ(ucis_count(), 1); + + EXPECT_REPORT(driver, (KC_M)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_m); + EXPECT_EQ(ucis_count(), 2); + + EXPECT_REPORT(driver, (KC_K)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_k); + EXPECT_EQ(ucis_count(), 3); + + EXPECT_NO_REPORT(driver); + tap_key(key_escape); + + EXPECT_EQ(ucis_active(), false); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(UnicodeUCIS, matches_sequence_with_corrected_typo) { + TestDriver driver; + + auto key_q = KeymapKey(0, 0, 0, KC_Q); + auto key_m = KeymapKey(0, 1, 0, KC_M); + auto key_j = KeymapKey(0, 2, 0, KC_J); + auto key_k = KeymapKey(0, 3, 0, KC_K); + auto key_backspace = KeymapKey(0, 4, 0, KC_BACKSPACE); + auto key_enter = KeymapKey(0, 5, 0, KC_ENTER); + + set_keymap({key_q, key_m, key_j, key_k, key_backspace, key_enter}); + + EXPECT_UNICODE(driver, 0x2328); // ⌨ + ucis_start(); + + EXPECT_EQ(ucis_active(), true); + EXPECT_EQ(ucis_count(), 0); + + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_q); + EXPECT_EQ(ucis_count(), 1); + + EXPECT_REPORT(driver, (KC_M)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_m); + EXPECT_EQ(ucis_count(), 2); + + EXPECT_REPORT(driver, (KC_J)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_j); + EXPECT_EQ(ucis_count(), 3); + + EXPECT_REPORT(driver, (KC_BACKSPACE)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_backspace); + EXPECT_EQ(ucis_count(), 2); + + EXPECT_REPORT(driver, (KC_K)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_k); + EXPECT_EQ(ucis_count(), 3); + + EXPECT_REPORT(driver, (KC_BACKSPACE)).Times(4); + EXPECT_EMPTY_REPORT(driver).Times(4); + EXPECT_UNICODE(driver, 0x03A8); + tap_key(key_enter); + + EXPECT_EQ(ucis_active(), false); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(UnicodeUCIS, does_not_match_longer_sequence) { + TestDriver driver; + + auto key_q = KeymapKey(0, 0, 0, KC_Q); + auto key_m = KeymapKey(0, 1, 0, KC_M); + auto key_k = KeymapKey(0, 2, 0, KC_K); + auto key_enter = KeymapKey(0, 3, 0, KC_ENTER); + + set_keymap({key_q, key_m, key_k, key_enter}); + + EXPECT_UNICODE(driver, 0x2328); // ⌨ + ucis_start(); + + EXPECT_EQ(ucis_active(), true); + EXPECT_EQ(ucis_count(), 0); + + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_q); + EXPECT_EQ(ucis_count(), 1); + + EXPECT_REPORT(driver, (KC_M)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_m); + EXPECT_EQ(ucis_count(), 2); + + EXPECT_REPORT(driver, (KC_K)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_k); + EXPECT_EQ(ucis_count(), 3); + + EXPECT_REPORT(driver, (KC_K)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_k); + EXPECT_EQ(ucis_count(), 4); + + EXPECT_NO_REPORT(driver); + tap_key(key_enter); + + EXPECT_EQ(ucis_active(), false); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(UnicodeUCIS, does_not_match_shorter_sequence) { + TestDriver driver; + + auto key_q = KeymapKey(0, 0, 0, KC_Q); + auto key_enter = KeymapKey(0, 1, 0, KC_ENTER); + + set_keymap({key_q, key_enter}); + + EXPECT_UNICODE(driver, 0x2328); // ⌨ + ucis_start(); + + EXPECT_EQ(ucis_active(), true); + EXPECT_EQ(ucis_count(), 0); + + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + tap_key(key_q); + EXPECT_EQ(ucis_count(), 1); + + EXPECT_NO_REPORT(driver); + tap_key(key_enter); + + EXPECT_EQ(ucis_active(), false); + + VERIFY_AND_CLEAR(driver); +} diff --git a/tmk_core/protocol.mk b/tmk_core/protocol.mk index d3f15c45887..d159dacc55b 100644 --- a/tmk_core/protocol.mk +++ b/tmk_core/protocol.mk @@ -1,4 +1,4 @@ -TMK_COMMON_SRC += \ +SRC += \ $(PROTOCOL_DIR)/host.c \ $(PROTOCOL_DIR)/report.c \ $(PROTOCOL_DIR)/usb_device_state.c \ @@ -7,7 +7,7 @@ TMK_COMMON_SRC += \ SHARED_EP_ENABLE = no MOUSE_SHARED_EP ?= yes ifeq ($(strip $(KEYBOARD_SHARED_EP)), yes) - TMK_COMMON_DEFS += -DKEYBOARD_SHARED_EP + OPT_DEFS += -DKEYBOARD_SHARED_EP SHARED_EP_ENABLE = yes # With the current usb_descriptor.c code, # you can't share kbd without sharing mouse; @@ -18,31 +18,31 @@ endif ifeq ($(strip $(MOUSE_ENABLE)), yes) OPT_DEFS += -DMOUSE_ENABLE ifeq ($(strip $(MOUSE_SHARED_EP)), yes) - TMK_COMMON_DEFS += -DMOUSE_SHARED_EP + OPT_DEFS += -DMOUSE_SHARED_EP SHARED_EP_ENABLE = yes endif endif ifeq ($(strip $(EXTRAKEY_ENABLE)), yes) - TMK_COMMON_DEFS += -DEXTRAKEY_ENABLE + OPT_DEFS += -DEXTRAKEY_ENABLE SHARED_EP_ENABLE = yes endif ifeq ($(strip $(PROGRAMMABLE_BUTTON_ENABLE)), yes) - TMK_COMMON_DEFS += -DPROGRAMMABLE_BUTTON_ENABLE + OPT_DEFS += -DPROGRAMMABLE_BUTTON_ENABLE SHARED_EP_ENABLE = yes endif ifeq ($(strip $(RAW_ENABLE)), yes) - TMK_COMMON_DEFS += -DRAW_ENABLE + OPT_DEFS += -DRAW_ENABLE endif ifeq ($(strip $(CONSOLE_ENABLE)), yes) - TMK_COMMON_DEFS += -DCONSOLE_ENABLE + OPT_DEFS += -DCONSOLE_ENABLE else # TODO: decouple this so other print backends can exist - TMK_COMMON_DEFS += -DNO_PRINT - TMK_COMMON_DEFS += -DNO_DEBUG + OPT_DEFS += -DNO_PRINT + OPT_DEFS += -DNO_DEBUG endif ifeq ($(strip $(NKRO_ENABLE)), yes) @@ -51,55 +51,55 @@ ifeq ($(strip $(NKRO_ENABLE)), yes) else ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) $(info NKRO is not currently supported with Bluetooth, and has been disabled.) else - TMK_COMMON_DEFS += -DNKRO_ENABLE + OPT_DEFS += -DNKRO_ENABLE SHARED_EP_ENABLE = yes endif endif ifeq ($(strip $(RING_BUFFERED_6KRO_REPORT_ENABLE)), yes) - TMK_COMMON_DEFS += -DRING_BUFFERED_6KRO_REPORT_ENABLE + OPT_DEFS += -DRING_BUFFERED_6KRO_REPORT_ENABLE endif ifeq ($(strip $(NO_SUSPEND_POWER_DOWN)), yes) - TMK_COMMON_DEFS += -DNO_SUSPEND_POWER_DOWN + OPT_DEFS += -DNO_SUSPEND_POWER_DOWN endif ifeq ($(strip $(NO_USB_STARTUP_CHECK)), yes) - TMK_COMMON_DEFS += -DNO_USB_STARTUP_CHECK + OPT_DEFS += -DNO_USB_STARTUP_CHECK endif ifeq ($(strip $(JOYSTICK_SHARED_EP)), yes) - TMK_COMMON_DEFS += -DJOYSTICK_SHARED_EP + OPT_DEFS += -DJOYSTICK_SHARED_EP SHARED_EP_ENABLE = yes endif ifeq ($(strip $(JOYSTICK_ENABLE)), yes) - TMK_COMMON_DEFS += -DJOYSTICK_ENABLE + OPT_DEFS += -DJOYSTICK_ENABLE ifeq ($(strip $(SHARED_EP_ENABLE)), yes) - TMK_COMMON_DEFS += -DJOYSTICK_SHARED_EP + OPT_DEFS += -DJOYSTICK_SHARED_EP SHARED_EP_ENABLE = yes endif endif ifeq ($(strip $(DIGITIZER_SHARED_EP)), yes) - TMK_COMMON_DEFS += -DDIGITIZER_SHARED_EP + OPT_DEFS += -DDIGITIZER_SHARED_EP SHARED_EP_ENABLE = yes endif ifeq ($(strip $(DIGITIZER_ENABLE)), yes) - TMK_COMMON_DEFS += -DDIGITIZER_ENABLE + OPT_DEFS += -DDIGITIZER_ENABLE ifeq ($(strip $(SHARED_EP_ENABLE)), yes) - TMK_COMMON_DEFS += -DDIGITIZER_SHARED_EP + OPT_DEFS += -DDIGITIZER_SHARED_EP SHARED_EP_ENABLE = yes endif endif ifeq ($(strip $(SHARED_EP_ENABLE)), yes) - TMK_COMMON_DEFS += -DSHARED_EP_ENABLE + OPT_DEFS += -DSHARED_EP_ENABLE endif ifeq ($(strip $(USB_HID_ENABLE)), yes) - include $(TMK_DIR)/protocol/usb_hid.mk + include $(TMK_DIR)/protocol/usb_hid/usb_hid.mk endif # Search Path diff --git a/tmk_core/protocol/arm_atsam.mk b/tmk_core/protocol/arm_atsam/arm_atsam.mk similarity index 100% rename from tmk_core/protocol/arm_atsam.mk rename to tmk_core/protocol/arm_atsam/arm_atsam.mk diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c index 1ccfbfb54a9..30817c17b64 100644 --- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c +++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c @@ -21,9 +21,9 @@ along with this program. If not, see . #include "report.h" #include "host.h" #include "host_driver.h" +#include "suspend.h" #include "keycode_config.h" #include -#include "quantum.h" // From protocol directory #include "arm_atsam_protocol.h" diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c index 52fe86d297b..0f316b256cf 100644 --- a/tmk_core/protocol/arm_atsam/md_rgb_matrix.c +++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c @@ -23,6 +23,8 @@ along with this program. If not, see . # include "arm_atsam_protocol.h" # include "led.h" # include "rgb_matrix.h" +# include "eeprom.h" +# include "host.h" # include # include @@ -347,24 +349,24 @@ static void flush(void) { } void md_rgb_matrix_indicators_advanced(uint8_t led_min, uint8_t led_max) { - uint8_t kbled = keyboard_leds(); - if (kbled && rgb_matrix_config.enable) { + led_t led_state = host_keyboard_led_state(); + if (led_state.raw && rgb_matrix_config.enable) { for (uint8_t i = led_min; i < led_max; i++) { if ( # if USB_LED_NUM_LOCK_SCANCODE != 255 - (led_map[i].scan == USB_LED_NUM_LOCK_SCANCODE && (kbled & (1 << USB_LED_NUM_LOCK))) || + (led_map[i].scan == USB_LED_NUM_LOCK_SCANCODE && led_state.num_lock) || # endif // NUM LOCK # if USB_LED_CAPS_LOCK_SCANCODE != 255 - (led_map[i].scan == USB_LED_CAPS_LOCK_SCANCODE && (kbled & (1 << USB_LED_CAPS_LOCK))) || + (led_map[i].scan == USB_LED_CAPS_LOCK_SCANCODE && led_state.caps_lock) || # endif // CAPS LOCK # if USB_LED_SCROLL_LOCK_SCANCODE != 255 - (led_map[i].scan == USB_LED_SCROLL_LOCK_SCANCODE && (kbled & (1 << USB_LED_SCROLL_LOCK))) || + (led_map[i].scan == USB_LED_SCROLL_LOCK_SCANCODE && led_state.scroll_lock) || # endif // SCROLL LOCK # if USB_LED_COMPOSE_SCANCODE != 255 - (led_map[i].scan == USB_LED_COMPOSE_SCANCODE && (kbled & (1 << USB_LED_COMPOSE))) || + (led_map[i].scan == USB_LED_COMPOSE_SCANCODE && led_state.compose) || # endif // COMPOSE # if USB_LED_KANA_SCANCODE != 255 - (led_map[i].scan == USB_LED_KANA_SCANCODE && (kbled & (1 << USB_LED_KANA))) || + (led_map[i].scan == USB_LED_KANA_SCANCODE && led_state.kana) || # endif // KANA (0)) { if (rgb_matrix_get_flags() & LED_FLAG_INDICATOR) { diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix.h b/tmk_core/protocol/arm_atsam/md_rgb_matrix.h index f27da028a0c..bb3312e8e74 100644 --- a/tmk_core/protocol/arm_atsam/md_rgb_matrix.h +++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix.h @@ -15,11 +15,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef _LED_MATRIX_H_ -#define _LED_MATRIX_H_ +#pragma once -#include "quantum.h" -#include "eeprom.h" +#include // From keyboard #include "config_led.h" @@ -200,5 +198,3 @@ void md_led_changed(void); #else extern uint8_t gcr_desired; #endif // USE_MASSDROP_CONFIGURATOR - -#endif //_LED_MATRIX_H_ diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c index 58fc4efd9c6..476b6052971 100644 --- a/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c +++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c @@ -19,6 +19,7 @@ along with this program. If not, see . # ifdef USE_MASSDROP_CONFIGURATOR # include "md_rgb_matrix.h" +# include "util.h" // Teal <-> Salmon led_setup_t leds_teal_salmon[] = { diff --git a/tmk_core/protocol/arm_atsam/spi_master.h b/tmk_core/protocol/arm_atsam/spi_master.h index 26c55128be1..80678a57077 100644 --- a/tmk_core/protocol/arm_atsam/spi_master.h +++ b/tmk_core/protocol/arm_atsam/spi_master.h @@ -16,7 +16,9 @@ #pragma once +#include #include +#include "gpio.h" typedef int16_t spi_status_t; diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index 10a976608ad..4d97f1cd82e 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -49,6 +49,8 @@ #include "suspend.h" #include "wait.h" +#define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED (2U) + /* ------------------------- * TMK host driver defs * ------------------------- @@ -182,12 +184,12 @@ void protocol_pre_task(void) { #if !defined(NO_USB_STARTUP_CHECK) if (USB_DRIVER.state == USB_SUSPENDED) { - print("[s]"); + dprintln("suspending keyboard"); while (USB_DRIVER.state == USB_SUSPENDED) { /* Do this in the suspended state */ suspend_power_down(); // on AVR this deep sleeps for 15ms /* Remote wakeup */ - if (suspend_wakeup_condition()) { + if ((USB_DRIVER.status & USB_GETSTATUS_REMOTE_WAKEUP_ENABLED) && suspend_wakeup_condition()) { usbWakeupHost(&USB_DRIVER); restart_usb_driver(&USB_DRIVER); } diff --git a/tmk_core/protocol/chibios.mk b/tmk_core/protocol/chibios/chibios.mk similarity index 100% rename from tmk_core/protocol/chibios.mk rename to tmk_core/protocol/chibios/chibios.mk diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 20bfc8fb3c7..f04ca79a0ca 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -48,10 +48,10 @@ # include "sleep_led.h" #endif #include "suspend.h" +#include "wait.h" #include "usb_descriptor.h" #include "lufa.h" -#include "quantum.h" #include "usb_device_state.h" #include @@ -858,7 +858,7 @@ void protocol_post_init(void) { void protocol_pre_task(void) { #if !defined(NO_USB_STARTUP_CHECK) if (USB_DeviceState == DEVICE_STATE_Suspended) { - print("[s]"); + dprintln("suspending keyboard"); while (USB_DeviceState == DEVICE_STATE_Suspended) { suspend_power_down(); if (USB_Device_RemoteWakeupEnabled && suspend_wakeup_condition()) { diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa/lufa.mk similarity index 100% rename from tmk_core/protocol/lufa.mk rename to tmk_core/protocol/lufa/lufa.mk diff --git a/tmk_core/protocol/report.c b/tmk_core/protocol/report.c index 5755098c60f..1ba3be4604e 100644 --- a/tmk_core/protocol/report.c +++ b/tmk_core/protocol/report.c @@ -281,13 +281,21 @@ void clear_keys_from_report(report_keyboard_t* keyboard_report) { #ifdef MOUSE_ENABLE /** - * @brief Compares 2 mouse reports for difference and returns result + * @brief Compares 2 mouse reports for difference and returns result. Empty + * reports always evaluate as unchanged. * * @param[in] new_report report_mouse_t * @param[in] old_report report_mouse_t * @return bool result */ __attribute__((weak)) bool has_mouse_report_changed(report_mouse_t* new_report, report_mouse_t* old_report) { - return memcmp(new_report, old_report, sizeof(report_mouse_t)); + // memcmp doesn't work here because of the `report_id` field when using + // shared mouse endpoint + bool changed = ((new_report->buttons != old_report->buttons) || +# ifdef MOUSE_EXTENDED_REPORT + (new_report->boot_x != 0 && new_report->boot_x != old_report->boot_x) || (new_report->boot_y != 0 && new_report->boot_y != old_report->boot_y) || +# endif + (new_report->x != 0 && new_report->x != old_report->x) || (new_report->y != 0 && new_report->y != old_report->y) || (new_report->h != 0 && new_report->h != old_report->h) || (new_report->v != 0 && new_report->v != old_report->v)); + return changed; } #endif diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index 5ab9e3ff4f5..e215c909004 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -93,6 +93,8 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { HID_RI_USAGE_PAGE(8, 0x08), // LED HID_RI_USAGE_MINIMUM(8, 0x01), // Num Lock HID_RI_USAGE_MAXIMUM(8, 0x05), // Kana + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), HID_RI_REPORT_COUNT(8, 0x05), HID_RI_REPORT_SIZE(8, 0x01), HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), diff --git a/tmk_core/protocol/usb_hid.mk b/tmk_core/protocol/usb_hid/usb_hid.mk similarity index 100% rename from tmk_core/protocol/usb_hid.mk rename to tmk_core/protocol/usb_hid/usb_hid.mk diff --git a/tmk_core/protocol/usb_util.c b/tmk_core/protocol/usb_util.c index 49aadedc2af..3b3be4a7675 100644 --- a/tmk_core/protocol/usb_util.c +++ b/tmk_core/protocol/usb_util.c @@ -13,13 +13,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "quantum.h" + #include "usb_util.h" +#include "gpio.h" +#include "wait.h" __attribute__((weak)) void usb_disconnect(void) {} + __attribute__((weak)) bool usb_connected_state(void) { return true; } + __attribute__((weak)) bool usb_vbus_state(void) { #ifdef USB_VBUS_PIN setPinInput(USB_VBUS_PIN); diff --git a/tmk_core/protocol/usb_util.h b/tmk_core/protocol/usb_util.h index 13db9fbfbdf..6f0e406378f 100644 --- a/tmk_core/protocol/usb_util.h +++ b/tmk_core/protocol/usb_util.h @@ -13,10 +13,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #pragma once #include void usb_disconnect(void); + bool usb_connected_state(void); + bool usb_vbus_state(void); diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index b3eeff9e016..d74f375f66a 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -435,6 +435,8 @@ const PROGMEM uchar keyboard_hid_report[] = { 0x05, 0x08, // Usage Page (LED) 0x19, 0x01, // Usage Minimum (Num Lock) 0x29, 0x05, // Usage Maximum (Kana) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) 0x95, 0x05, // Report Count (5) 0x75, 0x01, // Report Size (1) 0x91, 0x02, // Output (Data, Variable, Absolute) diff --git a/tmk_core/protocol/vusb.mk b/tmk_core/protocol/vusb/vusb.mk similarity index 100% rename from tmk_core/protocol/vusb.mk rename to tmk_core/protocol/vusb/vusb.mk diff --git a/users/bcat/bcat.h b/users/bcat/bcat.h index 6fc84937c44..fb500b3b3ba 100644 --- a/users/bcat/bcat.h +++ b/users/bcat/bcat.h @@ -18,7 +18,7 @@ #include -#include "keycodes.h" +#include "quantum_keycodes.h" /* Layer numbers shared across keymaps. */ enum user_layer { diff --git a/users/curry/oled.c b/users/curry/oled.c index 89112af121e..2defcbd80e2 100644 --- a/users/curry/oled.c +++ b/users/curry/oled.c @@ -86,12 +86,12 @@ void render_layer_state(void) { oled_write_P(PSTR(" Mods"), layer_state_is(_MODS)); } -void render_keylock_status(uint8_t led_usb_state) { +void render_keylock_status(led_t led_state) { oled_write_P(PSTR("Lock:"), false); oled_write_P(PSTR(" "), false); - oled_write_P(PSTR("N"), led_usb_state & (1 << USB_LED_NUM_LOCK)); - oled_write_P(PSTR("C"), led_usb_state & (1 << USB_LED_CAPS_LOCK)); - oled_write_ln_P(PSTR("S"), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); + oled_write_P(PSTR("N"), led_state.num_lock); + oled_write_P(PSTR("C"), led_state.caps_lock); + oled_write_ln_P(PSTR("S"), led_state.scroll_lock); } void render_mod_status(uint8_t modifiers) { @@ -129,7 +129,7 @@ void render_user_status(void) { void render_status_main(void) { /* Show Keyboard Layout */ render_default_layer_state(); - render_keylock_status(host_keyboard_leds()); + render_keylock_status(host_keyboard_led_state()); render_bootmagic_status(); render_user_status(); diff --git a/users/curry/rgb_lighting_user.c b/users/curry/rgb_lighting_user.c index b8d519feca1..34156744fe8 100644 --- a/users/curry/rgb_lighting_user.c +++ b/users/curry/rgb_lighting_user.c @@ -11,9 +11,9 @@ void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight * This is especially useful for One Shot Mods, since it's not always obvious if they're still lit up. */ #if defined(INDICATOR_LIGHTS) -void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) { +void set_rgb_indicators(uint8_t this_mod, led_t this_led, uint8_t this_osm) { if (userspace_config.rgb_layer_change && get_highest_layer(layer_state) == 0) { - if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { + if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) { # ifdef SHFT_LED1 rgblight_sethsv_at(120, 255, 255, SHFT_LED1); # endif // SHFT_LED1 @@ -79,7 +79,7 @@ void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) { /* Function for the indicators */ void matrix_scan_indicator(void) { if (has_initialized) { - set_rgb_indicators(get_mods(), host_keyboard_leds(), get_oneshot_mods()); + set_rgb_indicators(get_mods(), host_keyboard_led_state(), get_oneshot_mods()); } } #endif // INDICATOR_LIGHTS diff --git a/users/doogle999/doogle999.c b/users/doogle999/doogle999.c index 5d71599687a..a5bd637ecea 100644 --- a/users/doogle999/doogle999.c +++ b/users/doogle999/doogle999.c @@ -389,7 +389,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) /* KC_KP_1, KC_KP_2, ..., KC_KP_0, KC_KP_DOT */ (keycode >= KC_KP_1 && keycode <= KC_KP_DOT); - if(numpadKeyPressed && !(host_keyboard_leds() & (1 << USB_LED_NUM_LOCK))) + if(numpadKeyPressed && !host_keyboard_led_state().num_lock) { add_key(KC_NUM_LOCK); send_keyboard_report(); diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index cad6db8f3d9..b8ccbb028cd 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -141,7 +141,7 @@ float autocorrect_song[][2] = SONG(PLOVER_GOODBYE_SOUND); # endif # endif -bool apply_autocorrect(uint8_t backspaces, const char *str) { +bool apply_autocorrect(uint8_t backspaces, const char* str, char *typo, char *correct) { if (layer_state_is(_GAMEPAD)) { return false; } diff --git a/users/ericgebhart/oled/oled_stuff.c b/users/ericgebhart/oled/oled_stuff.c index f2c4f0f394b..211fe4ab3ef 100755 --- a/users/ericgebhart/oled/oled_stuff.c +++ b/users/ericgebhart/oled/oled_stuff.c @@ -32,11 +32,11 @@ void oled_render_locale(void) { } } -void oled_render_keylock_status(uint8_t led_usb_state) { +void oled_render_keylock_status(led_t led_state) { oled_write_P(PSTR(" Lock:"), false); - oled_write_P(PSTR("N"), led_usb_state & (1 << USB_LED_NUM_LOCK)); - oled_write_P(PSTR("C"), led_usb_state & (1 << USB_LED_CAPS_LOCK)); - oled_write_P(PSTR("S"), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); + oled_write_P(PSTR("N"), led_state.num_lock); + oled_write_P(PSTR("C"), led_state.caps_lock); + oled_write_P(PSTR("S"), led_state.scroll_lock); } void oled_render_mod_status(uint8_t modifiers) { @@ -49,7 +49,7 @@ void oled_render_mod_status(uint8_t modifiers) { void oled_render_mod_lock_status(void){ oled_render_mod_status(get_mods() | get_oneshot_mods()); - oled_render_keylock_status(host_keyboard_leds()); + oled_render_keylock_status(host_keyboard_led_state()); } @@ -187,6 +187,3 @@ bool oled_task_user(void) { } #endif - -/* oled_render_keylock_status(host_keyboard_leds()); */ -/* oled_render_mod_status(get_mods() | get_oneshot_mods()); */ diff --git a/users/ishtob/ishtob.h b/users/ishtob/ishtob.h index fd9e19c8093..fcc2e2b8475 100644 --- a/users/ishtob/ishtob.h +++ b/users/ishtob/ishtob.h @@ -36,7 +36,7 @@ enum userspace_keycodes { #define _FNLAYER 6 #define _NUMLAY 7 #define _MOUSECURSOR 8 -#define _ADJUST 16 +#define _ADJUST 9 diff --git a/users/konstantin/unicode.h b/users/konstantin/unicode.h index 82caea7c9ac..472f48a9428 100644 --- a/users/konstantin/unicode.h +++ b/users/konstantin/unicode.h @@ -31,7 +31,7 @@ #define UCM_NAME(name, code) UCM_ ## name, #define UCM_ENTRY(name, code) [UCM_ ## name] = code, -#define UCM_KEYCODE(name, code) name = X(UCM_ ## name), +#define UCM_KEYCODE(name, code) name = UM(UCM_ ## name), #if defined(UNICODE_ENABLE) enum unicode_keycodes { diff --git a/users/kuchosauronad0/unicode.h b/users/kuchosauronad0/unicode.h index 9ff523baadf..340b4cf94bc 100644 --- a/users/kuchosauronad0/unicode.h +++ b/users/kuchosauronad0/unicode.h @@ -2,7 +2,6 @@ #include "quantum.h" -/* use X(n) to call the */ #ifdef UNICODEMAP_ENABLE enum unicode_name { OKOK, // diff --git a/users/kuchosauronad0/wrappers.h b/users/kuchosauronad0/wrappers.h index 543586e0090..a17e4178ffe 100644 --- a/users/kuchosauronad0/wrappers.h +++ b/users/kuchosauronad0/wrappers.h @@ -152,13 +152,13 @@ NOTE: These are all the same length. If you do a search/replace #endif #ifdef UNICODEMAP_ENABLE -# define _______________UNICODE_L1__________________ X(SMRK), X(THINK), X(CLOWN), X(HUNDR), X(BANG) -# define _______________UNICODE_L2__________________ X(GRIN), X(MONKEY), X(OKOK), X(EGGPL), X(LIT) -# define _______________UNICODE_L3__________________ X(WEARY), X(UNAMU), X(EFFU), X(MONOCL), X(IRONY) +# define _______________UNICODE_L1__________________ UM(SMRK), UM(THINK), UM(CLOWN), UM(HUNDR), UM(BANG) +# define _______________UNICODE_L2__________________ UM(GRIN), UM(MONKEY), UM(OKOK), UM(EGGPL), UM(LIT) +# define _______________UNICODE_L3__________________ UM(WEARY), UM(UNAMU), UM(EFFU), UM(MONOCL), UM(IRONY) -# define _______________UNICODE_R1__________________ X(DRUG0), X(THUP), X(INUP), X(DIZZY), X(COOL) -# define _______________UNICODE_R2__________________ X(FIST0), X(FIST2), X(FIST3), X(FIST1), X(OKOK) -# define _______________UNICODE_R3__________________ X(MNDBLWN), X(THDN), X(SPOCK), X(HOLE), X(DASH) +# define _______________UNICODE_R1__________________ UM(DRUG0), UM(THUP), UM(INUP), UM(DIZZY), UM(COOL) +# define _______________UNICODE_R2__________________ UM(FIST0), UM(FIST2), UM(FIST3), UM(FIST1), UM(OKOK) +# define _______________UNICODE_R3__________________ UM(MNDBLWN), UM(THDN), UM(SPOCK), UM(HOLE), UM(DASH) #endif #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 diff --git a/users/mattly/mattly.c b/users/mattly/mattly.c index afb1c75df14..9e8e7cfc976 100644 --- a/users/mattly/mattly.c +++ b/users/mattly/mattly.c @@ -31,6 +31,9 @@ void layer_state_set_rgb(layer_state_t state) { case _NAVNUM_WIN: rgblight_sethsv_noeeprom(HSV_NAVNUM); break; + case _GAME: + rgblight_sethsv_noeeprom(HSV_GAME); + break; case _FUNCT: case _FUNCT_WIN: rgblight_sethsv_noeeprom(HSV_FUNCT); diff --git a/users/mattly/mattly.h b/users/mattly/mattly.h index 5f6b7c5f092..2a151939b87 100644 --- a/users/mattly/mattly.h +++ b/users/mattly/mattly.h @@ -25,12 +25,14 @@ enum { _NAVNUM, _NAVNUM_WIN, _SYMBOL, + _GAME, _FUNCT, _FUNCT_WIN, }; // == System #define TOG_WIN TG(_OVER_WIN) +#define TOG_GAM TG(_GAME) // == Thumbs // left hand @@ -47,68 +49,73 @@ enum { #define NAVLOCK TG(_NAVNUM) #define SYMLOCK TG(_SYMBOL) - // == QWERTY // left hand home row -#define A_CTL MT(MOD_LCTL, KC_A) -#define A_GUI MT(MOD_LGUI, KC_A) -#define S_ALT MT(MOD_LALT, KC_S) -#define D_GUI MT(MOD_LGUI, KC_D) -#define D_CTL MT(MOD_LCTL, KC_D) -#define F_SFT MT(MOD_LSFT, KC_F) +#define A_CTL MT(MOD_LCTL, KC_A) +#define A_GUI MT(MOD_LGUI, KC_A) +#define S_ALT MT(MOD_LALT, KC_S) +#define D_GUI MT(MOD_LGUI, KC_D) +#define D_CTL MT(MOD_LCTL, KC_D) +#define F_SFT MT(MOD_LSFT, KC_F) // left hand aux -#define W_CTL MT(MOD_LCTL, KC_W) -#define W_GUI MT(MOD_LGUI, KC_W) -#define E_ALT MT(MOD_LALT, KC_E) -#define R_GUI MT(MOD_LGUI, KC_R) -#define R_CTL MT(MOD_LCTL, KC_R) +#define W_CTL MT(MOD_LCTL, KC_W) +#define W_GUI MT(MOD_LGUI, KC_W) +#define E_ALT MT(MOD_LALT, KC_E) +#define R_GUI MT(MOD_LGUI, KC_R) +#define R_CTL MT(MOD_LCTL, KC_R) // right hand home row -#define J_SFT MT(MOD_RSFT, KC_J) -#define K_GUI MT(MOD_RGUI, KC_K) -#define K_CTL MT(MOD_RCTL, KC_K) -#define L_ALT MT(MOD_RALT, KC_L) +#define J_SFT MT(MOD_RSFT, KC_J) +#define K_GUI MT(MOD_RGUI, KC_K) +#define K_CTL MT(MOD_RCTL, KC_K) +#define L_ALT MT(MOD_RALT, KC_L) #define MINSCTL MT(MOD_RCTL, KC_MINS) #define MINSGUI MT(MOD_RGUI, KC_MINS) // right hand aux -#define U_GUI MT(MOD_RGUI, KC_U) -#define U_CTL MT(MOD_RCTL, KC_U) -#define I_ALT MT(MOD_RALT, KC_I) -#define O_CTL MT(MOD_RCTL, KC_O) -#define O_GUI MT(MOD_RGUI, KC_O) +#define U_GUI MT(MOD_RGUI, KC_U) +#define U_CTL MT(MOD_RCTL, KC_U) +#define I_ALT MT(MOD_RALT, KC_I) +#define O_CTL MT(MOD_RCTL, KC_O) +#define O_GUI MT(MOD_RGUI, KC_O) // == OS X default keys -// movement by word +// movement by text #define M_BWORD LALT(KC_LEFT) #define W_BWORD LCTL(KC_LEFT) #define M_FWORD LALT(KC_RIGHT) #define W_FWORD LCTL(KC_RIGHT) +#define M_BLINE LGUI(KC_LEFT) +#define M_ELINE LGUI(KC_RIGHT) + +#define M_BPARA LOPT(KC_UP) +#define M_NPARA LOPT(KC_DOWN) + // gui navigation -#define M_NXWIN LGUI(KC_GRV) // Next Window +#define M_NXWIN LGUI(KC_GRV) // Next Window #define W_NXWIN LALT(KC_TAB) -#define M_PVWIN LGUI(LSFT(KC_GRV)) // Prev Window +#define M_PVWIN LGUI(LSFT(KC_GRV)) // Prev Window #define W_PVWIN LALT(LSFT(KC_TAB)) -#define M_NXTAB LGUI(LSFT(KC_RBRC)) // Next Tab +#define M_NXTAB LGUI(LSFT(KC_RBRC)) // Next Tab #define W_NXTAB LCTL(KC_PGDN) -#define M_PVTAB LGUI(LSFT(KC_LBRC)) // Prev Tab +#define M_PVTAB LGUI(LSFT(KC_LBRC)) // Prev Tab #define W_PVTAB LCTL(KC_PGUP) -#define M_NAVBK LGUI(KC_LBRC) // Navigate Forward +#define M_NAVBK LGUI(KC_LBRC) // Navigate Forward #define W_NAVBK LALT(KC_LEFT) -#define M_NAVFW LGUI(KC_RBRC) // Navigate Back +#define M_NAVFW LGUI(KC_RBRC) // Navigate Back #define W_NAVFW LALT(KC_RIGHT) // == UNDERGLOW #ifdef RGBLIGHT_ENABLE -#define HSV_CAPS 55, 255, 255 -#define HSV_ERR 30, 196, 196 -#define HSV_MAC 20, 255, 128 -#define HSV_WIN 10, 255, 128 -#define HSV_SYMBOL 235, 255, 255 -#define HSV_NAVNUM 250, 255, 255 -#define HSV_FUNCT 210, 255, 255 -#define HSV_RESET 180, 255, 255 +#define HSV_CAPS 55, 255, 255 +#define HSV_ERR 0, 255, 96 +#define HSV_MAC 250, 255, 192 +#define HSV_WIN 250, 192, 128 +#define HSV_SYMBOL 235, 255, 255 +#define HSV_NAVNUM 20, 255, 255 +#define HSV_GAME 40, 255, 255 +#define HSV_FUNCT 200, 255, 255 +#define HSV_RESET 180, 255, 255 #endif #endif - diff --git a/users/mattly/rules.mk b/users/mattly/rules.mk index 85cdcc91f00..96f07658253 100644 --- a/users/mattly/rules.mk +++ b/users/mattly/rules.mk @@ -1,3 +1,4 @@ SRC += mattly.c LTO_ENABLE = yes CONSOLE_ENABLE = yes +RGB_MATRIX_ENABLE = no diff --git a/users/miketronic/config.h b/users/miketronic/config.h new file mode 100644 index 00000000000..4123caa5bc6 --- /dev/null +++ b/users/miketronic/config.h @@ -0,0 +1,12 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once + +#define DEBOUNCE 10 +#if defined(TAP_DANCE_ENABLE) +# define TAP_CODE_DELAY 5 +# define TAP_HOLD_CAPS_DELAY 25 +#endif +#define MACRO_TIMER 5 +#define ENABLE_COMPILE_KEYCODE \ No newline at end of file diff --git a/users/miketronic/miketronic.c b/users/miketronic/miketronic.c new file mode 100644 index 00000000000..3c47a72462f --- /dev/null +++ b/users/miketronic/miketronic.c @@ -0,0 +1,17 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#include "miketronic.h" + + +__attribute__ ((weak)) void keyboard_post_init_keymap(void) { } + +// Init effect for RGB boards only +void keyboard_post_init_user(void) { +#ifdef RGB_MATRIX_ENABLE + rgblight_enable_noeeprom(); // enables Rgb, without saving settings + rgblight_sethsv_noeeprom(HSV_ORANGE); // sets the color without saving + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); +#endif + keyboard_post_init_keymap(); +} \ No newline at end of file diff --git a/users/miketronic/miketronic.h b/users/miketronic/miketronic.h new file mode 100644 index 00000000000..4032215a1d7 --- /dev/null +++ b/users/miketronic/miketronic.h @@ -0,0 +1,63 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once +#include QMK_KEYBOARD_H + +#include "quantum.h" +#include "wrappers.h" +#include "action.h" +#include "version.h" +#include "process_records.h" +#ifdef TAP_DANCE_ENABLE +# include "tapdances.h" +#endif + +enum layer_names { + _WM, + _QW, + _LOWER, + _RAISE, + _EX, + _FN, + _SYMB +}; + + +// Layer macros +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define FN MO(_FN) +#define EX MO(_EX) +#define TEX LT(_EX, KC_T) // Tap for "T", hold for Extras layer +#define BSYM LT(_SYMB, KC_B) // Tap for "B", hold for Symbols layer +#define JSYM LT(_SYMB, KC_J) // Tap for "J", hold for Symbols layer +#define FNZ LT(_FN, KC_Z) // Tap for "Z", hold for FN layer +#define VLOWER LT(_LOWER, KC_V) // Tap for "V", hold for Lower layer +#define KRAISE LT(_RAISE, KC_K) // Tap for "K", hold for Raise layer + +// Mod Tap +//#define ASFT MT(MOD_LSFT, KC_A) // Tap for "A", hold for Shift +#define ASFT SFT_T(KC_A) // Tap for "A", hold for Shift +#define GGUI MT(MOD_LGUI, KC_G) // Tap for "G", hold for OS Key +#define MGUI MT(MOD_LGUI, KC_M) // Tap for "M", hold for OS Key +#define CTRLX MT(MOD_LCTL, KC_X) // Tap for "X", hold for Ctrl +#define CALT MT(MOD_LALT, KC_C) // Tap for "C", hold for Alt +#define L_ALT MT(MOD_RALT, KC_L) // Tap for "L", hold for Alt +#define TBSHFT MT(MOD_LSFT, KC_TAB) // Tap for Tab, hold for Shift +#define SLSHFT MT(MOD_RSFT, KC_SLSH) // Tap for Slash, hold for Shift +#define SFT_ENT RSFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define OSSFT OSM(MOD_LSFT) // One shot left Shift + +// MISC +#define CALTDEL LCTL(LALT(KC_DEL)) // Ctrl Alt Del +#define TSKMGR LCTL(LSFT(KC_ESC)) // Task Manager +#define CLIP LCTL(LALT(KC_Q)) // Clipboard (Ditto) +#define SS LCTL(LALT(KC_G)) // Greenshot region +#define NUM LSFT(KC_3) +#define AT LSFT(KC_2) +#define COPY LCTL(KC_C) +#define PASTE LCTL(KC_V) +#define ____ KC_TRNS +#define XXXX KC_NO +#define XXXXXXX KC_NO diff --git a/users/miketronic/process_records.c b/users/miketronic/process_records.c new file mode 100644 index 00000000000..5c60ddf1003 --- /dev/null +++ b/users/miketronic/process_records.c @@ -0,0 +1,151 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#include "miketronic.h" +#include "process_records.h" + +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { + return true; +} + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + case VERSION: + if (!record->event.pressed) { + send_string_with_delay_P(PSTR(QMK_KEYBOARD ":" QMK_KEYMAP "\nVersion:" QMK_VERSION ", built: " QMK_BUILDDATE "\n"), MACRO_TIMER); + } + break; + + case M01: + if (record->event.pressed) { + SEND_STRING("//a11"); + } + break; + + case M02: + if (record->event.pressed) { + SEND_STRING("//a12"); + } + break; + + case M03: + if (record->event.pressed) { + SEND_STRING("//a08"); + } + break; + + case M04: + if (record->event.pressed) { + SEND_STRING("//a09"); + } + break; + + case M05: + if (record->event.pressed) { + SEND_STRING("//th"); + } + break; + + case M06: + if (record->event.pressed) { + SEND_STRING("//re"); + } + break; + + case M07: + if (record->event.pressed) { + SEND_STRING("//yw"); + } + break; + + case M08: + if (record->event.pressed) { + tap_random_base64(); + } + break; + + case CCCV: // One key copy/paste + if (record->event.pressed) { + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy + tap_code16(LCTL(KC_C)); + } else { // Tap, paste + tap_code16(LCTL(KC_V)); + } + } + break; + + case IENTER: // Tap for letter "i", slight hold for "enter" + if (record->event.pressed) { + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, enter + tap_code16(KC_ENT); + } else { // Tap, "i" + tap_code16(KC_I); + } + } + break; + + case PRN: + if (record->event.pressed) { + SEND_STRING("()"); + tap_code(KC_LEFT); + } + break; + + case BRACES: + if (record->event.pressed) { + uint8_t shifted = get_mods() & (MOD_MASK_SHIFT); + if (shifted) { + unregister_code(KC_LSFT); + unregister_code(KC_RSFT); + SEND_STRING("<>"SS_TAP(X_LEFT)); + } + else { + SEND_STRING("[]"SS_TAP(X_LEFT)); + } + } + break; + +#if defined(RGBLIGHT_ENABLE) + case RGB1: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_BLUE); + } + break; + + case RGB2: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_RED); + } + break; + + case RGB3: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_ORANGE); + } + break; + + case RGB4: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_WHITE); + } + break; + + case RGB5: + if (record->event.pressed) { + rgblight_sethsv_noeeprom(HSV_GREEN); + } + break; +#endif + } + return process_record_keymap(keycode, record) && process_record_secrets(keycode, record); +} diff --git a/users/miketronic/process_records.h b/users/miketronic/process_records.h new file mode 100644 index 00000000000..17737490a17 --- /dev/null +++ b/users/miketronic/process_records.h @@ -0,0 +1,38 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once +#include "miketronic.h" + + +bool process_record_secrets(uint16_t keycode, keyrecord_t *record); +bool process_record_keymap(uint16_t keycode, keyrecord_t *record); +uint16_t copy_paste_timer; + +enum custom_keycodes { + WM = QK_USER, + QW, + MAKE, + VERSION, + M01, + M02, + M03, + M04, + M05, + M06, + M07, + M08, + M09, + M10, + M11, + M12, + RGB1, + RGB2, + RGB3, + RGB4, + RGB5, + IENTER, + PRN, + BRACES, + CCCV +}; diff --git a/users/miketronic/readme.md b/users/miketronic/readme.md new file mode 100644 index 00000000000..619a84ec2e6 --- /dev/null +++ b/users/miketronic/readme.md @@ -0,0 +1,25 @@ +Copyright 2023 @miketronic -- Mike B +SPDX-License-Identifier: GPL-2.0+ + +# Layout for ortho 4x12 and 3x10 boards +# My current daily drivers: Planck, Pi40 and Satpad + +**Objective:** I tried to make layouts with core functions that are able to be present on the 3x10 boards and adapt those to the "middle 3x10" of the 4x12 boards to make going back and forth between the two board sizes easier. + + +##### My Main Layer - Workman + +| | | | | | | | | | | | | +| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:| +| Tab/Esc | Q/Esc | D | R | W | B/SYM | J/SYM | F | U | P | BSPC | BSPC | +| Tab/Shift | A | S | H | T/EX | G | Y | N | E | O | I/Enter | Enter| +| Shft | Z | X | M | C | V | K | L | Spc/, | Spc/. | / | Up/Right | +| FN | Ctrl | OS | Alt |Lower | Spc/Enter |Spc/Enter |Raise | SS| Clip | CopyPaste | Dn/Left | + +SYM - Symbols layer on hold +FN - Function layer on hold +EX - Extras layer on hold +Clip - Macro to my clipboard app (Ditto) +SS - Greenshot screenshot region + +##### Will add the other layers as I find time \ No newline at end of file diff --git a/users/miketronic/rules.mk b/users/miketronic/rules.mk new file mode 100644 index 00000000000..bbd3e4131e0 --- /dev/null +++ b/users/miketronic/rules.mk @@ -0,0 +1,4 @@ +SRC += miketronic.c process_records.c +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += $(USER_PATH)/tapdances.c +endif diff --git a/users/miketronic/tapdances.c b/users/miketronic/tapdances.c new file mode 100644 index 00000000000..5fcf66062b1 --- /dev/null +++ b/users/miketronic/tapdances.c @@ -0,0 +1,33 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#include "miketronic.h" +#include "tapdances.h" + + +tap_dance_action_t tap_dance_actions[] = { + + [T_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Tap once for Left Brace, twice for Right Brace + [T_MIN] = ACTION_TAP_DANCE_DOUBLE(KC_MINUS, KC_EQUAL), // Minus, Equals + [T_UMIN] = ACTION_TAP_DANCE_DOUBLE(KC_UNDS, KC_MINS), // Underscore, Minus + [T_GESC] = ACTION_TAP_DANCE_DOUBLE(KC_GRAVE, KC_ESCAPE), // Grave, Escape + [T_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT), // Space, Enter + [T_MULTDIV] = ACTION_TAP_DANCE_DOUBLE(KC_PAST, KC_PSLS), // Multiply, Divide + [T_UR] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_RGHT), // Up, Right + [T_DL] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_LEFT), // Down, Left + [T_CP] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), // Copy, Paste + [T_DENT] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_ENT), // Dot, Enter + [T_IENT] = ACTION_TAP_DANCE_DOUBLE(KC_I, KC_ENT), // "I", Enter + [T_CSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_COMM), // Space, Comma + [T_DSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_DOT), // Space, Dot + [T_QEXC] = ACTION_TAP_DANCE_DOUBLE(KC_QUES, KC_EXLM), // "?", "!" + [T_QESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), // "q", Escape + [T_TE] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, KC_ESC), // Tab, Escape + [T_20] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_0), // "2", "0" + [T_SL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), // Slash, Backslash + [T_XX] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), // Left Paren, Right Paren + [T_YY] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Left Bracket, Right Bracket + [T_ATH] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_HASH), // "@", "#" + [T_PRAM] = ACTION_TAP_DANCE_DOUBLE(KC_PERC, KC_AMPR) // "%", "&" +}; + diff --git a/users/miketronic/tapdances.h b/users/miketronic/tapdances.h new file mode 100644 index 00000000000..8135bac2695 --- /dev/null +++ b/users/miketronic/tapdances.h @@ -0,0 +1,57 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once +#include "quantum.h" + + +#define TD_BRC TD(T_BRC) +#define TD_ATH TD(T_ATH) +#define TD_CSPC TD(T_CSPC) +#define TD_DSPC TD(T_DSPC) +#define TD_CP TD(T_CP) +#define TD_DENT TD(T_DENT) +#define TD_IENT TD(T_IENT) +#define TD_MIN TD(T_MIN) +#define TD_UMIN TD(T_UMIN) +#define TD_GESC TD(T_GESC) +#define TD_QESC TD(T_QESC) +#define TD_QEXC TD(T_QEXC) +#define TD_PRAM TD(T_PRAM) +#define TD_SE TD(T_SE) +#define TD_MD TD(T_MULTDIV) +#define TD_UR TD(T_UR) +#define TD_DL TD(T_DL) +#define TD_TE TD(T_TE) +#define TD_20 TD(T_20) +#define TD_SL TD(T_SL) +#define TD_XX TD(T_XX) +#define TD_YY TD(T_YY) + + + +// Tap Dance +enum tapdance_id{ + T_BRC = 0, + T_ATH, + T_CSPC, + T_DSPC, + T_CP, + T_DENT, + T_IENT, + T_MIN, + T_UMIN, + T_GESC, + T_QESC, + T_QEXC, + T_SE, + T_MULTDIV, + T_UR, + T_DL, + T_TE, + T_20, + T_SL, + T_XX, + T_YY, + T_PRAM +}; \ No newline at end of file diff --git a/users/miketronic/wrappers.h b/users/miketronic/wrappers.h new file mode 100644 index 00000000000..7d955f4172a --- /dev/null +++ b/users/miketronic/wrappers.h @@ -0,0 +1,226 @@ +// Copyright 2023 @miketronic -- Mike B +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once +#include "miketronic.h" + +/* Pattern adapted from users/drashna/wrapper.h + Define per-layout keymap sections. Also requires a wrapper. + Example: + #define LAYOUT_:name_wrapper(...) LAYOUT_:name(__VA_ARGS__) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MODS] = LAYOUT_:name _wrapper( + _______, ___________________BLANK___________________, ... + ... + ), + } +*/ + + +// clang-format off +# define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) +# define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__) +#if (defined(KEYBOARD_hazel_satpad)) +# define LAYOUT_3x11_wrapper(...) LAYOUT(__VA_ARGS__) +#endif +#if (defined(KEYBOARD_mechwild_bde_rev2)) +# define LAYOUT_3x14_wrapper(...) LAYOUT(__VA_ARGS__) +#endif +#if (defined(KEYBOARD_hazel_bad_wings)) +# define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__) +#endif +#if (defined(KEYBOARD_idobao_id75_v1)) +# define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__) +#endif + + +#define _________NUMBER_01__________ KC_7, KC_8, KC_9 +#define _________NUMBER_02__________ KC_4, KC_5, KC_6 +#define _________NUMBER_03__________ KC_1, TD_20, KC_3 + + + +#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T +#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G +#define _________________QWERTY_L3_________________ FNZ, KC_X, KC_C, VLOWER, KC_B + +#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P +#define _________________QWERTY_R2_________________ KC_H, KC_J, KRAISE, KC_L, KC_SCLN +#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH + + + +#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 +#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0 +#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 +#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 + +#define ______________LONG_FUNC_LEFT_______________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6 +#define ______________LONG_FUNC_RIGHT______________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 + +#define _________________BLANK_5___________________ _______, _______, _______, _______, _______ +#define _________________BLANK_6___________________ _______, _______, _______, _______, _______, _______ + +#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC +#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________ +#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________ + +#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN +#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR +#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + +#define _______________LOWER_310_L1________________ PRN, BRACES, TD_SL, _______, _______ +#define _______________LOWER_310_L2________________ TD_ATH, TD_PRAM, _______, _______, _______ +#define _______________LOWER_310_L3________________ _______, _______, _______, _______, _______ + +#define _______________LOWER_310_R1________________ _______, KC_7, KC_8, KC_9, _______ +#define _______________LOWER_310_R2________________ TD_DENT, KC_4, KC_5, KC_6, TD_UR +#define _______________LOWER_310_R3________________ KC_0, KC_1, TD_20, KC_3, TD_DL + +#define _______________LOWER_412_L1________________ _______, PRN, BRACES, TD_SL, _______, _______ +#define _______________LOWER_412_L2________________ _______, TD_ATH, TD_PRAM, _______, _______, _______ +#define _______________LOWER_412_L3________________ _______, _______, _______, _______, _______, _______ +#define _______________LOWER_412_L4________________ _______, _______, _______, _______, _______, _______ + +#define _______________LOWER_412_R1________________ _______, KC_7, KC_8, KC_9, _______, _______ +#define _______________LOWER_412_R2________________ TD_DENT, KC_4, KC_5, KC_6, _______, _______ +#define _______________LOWER_412_R3________________ KC_0, KC_1, TD_20, KC_3, _______, TD_UR +#define _______________LOWER_412_R4________________ _______, _______, KC_BSPC, KC_SPC, TD_DENT, TD_DL + + + +#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________ +#define _________________RAISE_L2__________________ ___________________BLANK___________________ +#define _________________RAISE_L3__________________ ___________________BLANK___________________ + +#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________ +#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC +#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END + +#define _______________RAISE_310_L1________________ QK_BOOT, DB_TOGG, _______, _______, QK_MAKE +#define _______________RAISE_310_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD +#define _______________RAISE_310_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD + +#define _______________RAISE_310_R1________________ _______, KC_F7, KC_F8, KC_F9, KC_F10 +#define _______________RAISE_310_R2________________ TD_UMIN, KC_F4, KC_F5, KC_F6, KC_F11 +#define _______________RAISE_310_R3________________ _______, KC_F1, KC_F2, KC_F3, KC_F12 + +#define _______________RAISE_412_L1________________ QK_BOOT, DB_TOGG, _______, _______, _______, QK_MAKE +#define _______________RAISE_412_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, WM +#define _______________RAISE_412_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QW + +#define _______________RAISE_412_R1________________ _______, _______, KC_F7, KC_F8, KC_F9, KC_F10 +#define _______________RAISE_412_R2________________ _______, _______, KC_F4, KC_F5, KC_F6, KC_F11 +#define _______________RAISE_412_R3________________ _______, TD_UMIN, KC_F1, KC_F2, KC_F3, KC_F12 + + + +#define ______________EXTRAS_310_L1________________ KC_EXLM, _______, _______, _______, _______ +#define ______________EXTRAS_310_L2________________ KC_LSFT, _______, _______, _______, _______ +#define ______________EXTRAS_310_L3________________ _______, _______, _______, _______, _______ + +#define ______________EXTRAS_310_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN +#define ______________EXTRAS_310_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT +#define ______________EXTRAS_310_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES + +#define ______________EXTRAS_412_L1________________ _______, KC_EXLM, _______, _______, _______, _______ +#define ______________EXTRAS_412_L2________________ KC_LSFT, _______, _______, _______, _______, _______ +#define ______________EXTRAS_412_L3________________ _______, _______, _______, _______, _______, _______ +#define ______________EXTRAS_412_L4________________ _______, _______, _______, _______, _______, TD_SE + +#define ______________EXTRAS_412_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN, _______ +#define ______________EXTRAS_412_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT, _______ +#define ______________EXTRAS_412_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES, _______ +#define ______________EXTRAS_412_R4________________ TD_SE, _______, _______, _______, _______, _______ + + + +#define _____________FUNCTION_310_L1_______________ CCCV, CLIP, SS, _______, _______ +#define _____________FUNCTION_310_L2_______________ TBSHFT, M05, M06, M07, M08 +#define _____________FUNCTION_310_L3_______________ _______, M01, M02, M03, M04 + +#define _____________FUNCTION_310_R1_______________ _______, TD_SL, KC_UP, _______, KC_DEL +#define _____________FUNCTION_310_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, TD_UR +#define _____________FUNCTION_310_R3_______________ _______, _______, KC_COMM, KC_DOT, TD_DL + +#define _____________FUNCTION_412_L1_______________ CCCV, CLIP, SS, _______, _______, _______ +#define _____________FUNCTION_412_L2_______________ TBSHFT, M05, M06, M07, M08, _______ +#define _____________FUNCTION_412_L3_______________ _______, M01, M02, M03, M04, _______ +#define _____________FUNCTION_412_L4_______________ _______, RGB1, RGB2, RGB3, RGB4, _______ + +#define _____________FUNCTION_412_R1_______________ _______, T_SL, KC_UP, _______, _______, KC_DEL +#define _____________FUNCTION_412_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______ +#define _____________FUNCTION_412_R3_______________ _______, _______, KC_COMM, KC_DOT, KC_QUES, T_UR +#define _____________FUNCTION_412_R4_______________ _______, _______, _______, _______, _______, T_DL + +#define ____________FUNCTION_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_DEL + + + +#define _____________SYMBOLS_310_L1________________ KC_DLR, KC_CIRC, KC_LABK, KC_RABK, ____ +#define _____________SYMBOLS_310_L2________________ KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL +#define _____________SYMBOLS_310_L3________________ KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH + +#define _____________SYMBOLS_310_R1________________ ____, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS +#define _____________SYMBOLS_310_R2________________ XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS +#define _____________SYMBOLS_310_R3________________ KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT + + + +#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG +#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM +#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T + +#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5 +#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN +#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT + + +#define _________FOUR_001__________ KC_BSPC, M08, M08, KC_MUTE +#define _________FOUR_002__________ KC_ENT, M08, PRN, TD_UR +#define _________FOUR_003__________ KC_BSLS, TD_ATH, BRACES, TD_DL + +#define _________3KEY_LEFT___________ OSSFT, KC_SPC, LOWER +#define _________3KEY_RIGHT__________ RAISE, KC_ENT, CCCV + +#define ________3KEY_ID75_01_________ OSSFT, QK_LEAD, LOWER +#define ________3KEY_ID75_02_________ KC_7, KC_8, KC_9 +#define ________3KEY_ID75_03_________ KC_4, KC_5, KC_6 +#define ________3KEY_ID75_04_________ KC_1, TD_20, KC_3 +#define ________3KEY_ID75_05_________ KC_SPC, TD_DENT, KC_ENT + + +#define _____________WORKMAN_310_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM +#define _____________WORKMAN_310_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC +#define _____________WORKMAN_310_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G +#define _____________WORKMAN_310_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I +#define _____________WORKMAN_310_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER +#define _____________WORKMAN_310_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT +#define _____________WORKMAN_310_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER +#define _____________WORKMAN_310_004_R_____________ RAISE, SS, CLIP, CCCV, FN + +#define _____________WORKMAN_410_003_L_____________ FNZ, KC_X, KC_M, KC_C, KC_V +#define _____________WORKMAN_410_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT + +#define _____________WORKMAN_311_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM +#define _____________WORKMAN_311_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC +#define _____________WORKMAN_311_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G +#define _____________WORKMAN_311_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I +#define _____________WORKMAN_311_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER, KC_ENT +#define _____________WORKMAN_311_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT + +#define _____________WORKMAN_412_001_L_____________ TD_TE, TD_QESC, KC_D, KC_R, KC_W, BSYM +#define _____________WORKMAN_412_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC, KC_BSPC +#define _____________WORKMAN_412_002_L_____________ TBSHFT, KC_A, KC_S, KC_H, TEX, KC_G +#define _____________WORKMAN_412_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT +#define _____________WORKMAN_412_003_L_____________ KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V +#define _____________WORKMAN_412_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT, TD_UR +#define _____________WORKMAN_412_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, TD_SE +#define _____________WORKMAN_412_004_R_____________ TD_SE, RAISE, SS, CLIP, CCCV, TD_DL + +#define _____________WORKMAN_ID75_TOP_L____________ KC_ESC, M01, M02, M03, M04, M05 +#define _____________WORKMAN_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_BSPC +#define _____________WORKMAN_ID75_BOT_L____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC +#define _____________WORKMAN_ID75_BOT_R____________ KC_ENT, RAISE, SS, CLIP, CCCV, TD_DL + +// clang-format on \ No newline at end of file diff --git a/users/ridingqwerty/unicode.h b/users/ridingqwerty/unicode.h index de8d1593b4a..08b6f4fb8d5 100644 --- a/users/ridingqwerty/unicode.h +++ b/users/ridingqwerty/unicode.h @@ -216,7 +216,7 @@ #define UCM_NAME(name, code) UCM_ ## name, // UCM_LALP, #define UCM_ENTRY(name, code) [UCM_ ## name] = code, // [UCM_LALP] = 0x03B1, -#define UCM_KEYCODE(name, code) name = X(UCM_ ## name), // LALP = X(UCM_LALP) +#define UCM_KEYCODE(name, code) name = UM(UCM_ ## name), // LALP = UM(UCM_LALP) #if defined(UNICODE_ENABLE) enum unicode_keycodes { @@ -235,61 +235,61 @@ enum unicode_keycodes { #endif -#define ALPHA XP(LALP, UALP) -#define BETA XP(LBET, UBET) -#define GAMMA XP(LGAM, UGAM) -#define DELTA XP(LDEL, UDEL) -#define EPSLN XP(LEPS, UEPS) -#define ZETA XP(LZET, UZET) -#define ETA XP(LETA, UETA) -#define THETA XP(LTHE, UTHE) -#define IOTA XP(LIOT, UIOT) -#define KAPPA XP(LKAP, UKAP) -#define LAMBD XP(LLAM, ULAM) -#define GMU XP(LMU, UMU) -#define NU XP(LNU, UNU) -#define XI XP(LXI, UXI) -#define OMCRN XP(LOMI, UOMI) -#define PI XP(LPI, UPI) -#define RHO XP(LRHO, URHO) -#define SIGMA XP(LSIG, USIG) -#define TAU XP(LTAU, UTAU) -#define UPSLN XP(LUPS, UUPS) -#define PHI XP(LPHI, UPHI) -#define CHI XP(LCHI, UCHI) -#define PSI XP(LPSI, UPSI) -#define OMEGA XP(LOME, UOME) +#define ALPHA UP(LALP, UALP) +#define BETA UP(LBET, UBET) +#define GAMMA UP(LGAM, UGAM) +#define DELTA UP(LDEL, UDEL) +#define EPSLN UP(LEPS, UEPS) +#define ZETA UP(LZET, UZET) +#define ETA UP(LETA, UETA) +#define THETA UP(LTHE, UTHE) +#define IOTA UP(LIOT, UIOT) +#define KAPPA UP(LKAP, UKAP) +#define LAMBD UP(LLAM, ULAM) +#define GMU UP(LMU, UMU) +#define NU UP(LNU, UNU) +#define XI UP(LXI, UXI) +#define OMCRN UP(LOMI, UOMI) +#define PI UP(LPI, UPI) +#define RHO UP(LRHO, URHO) +#define SIGMA UP(LSIG, USIG) +#define TAU UP(LTAU, UTAU) +#define UPSLN UP(LUPS, UUPS) +#define PHI UP(LPHI, UPHI) +#define CHI UP(LCHI, UCHI) +#define PSI UP(LPSI, UPSI) +#define OMEGA UP(LOME, UOME) -#define AH XP(LAH, UAH) -#define BE XP(LBE, UBE) -#define VE XP(LVE, UVE) -#define GHE XP(LGHE, UGHE) -#define DE XP(LDE, UDE) -#define IE XP(LIE, UIE) -#define IO XP(LIO, UIO) -#define ZHE XP(LZHE, UZHE) -#define ZE XP(LZE, UZE) -#define IH XP(LIH, UIH) -#define SIH XP(LSIH, USIH) -#define KA XP(LKA, UKA) -#define EL XP(LEL, UEL) -#define EM XP(LEM, UEM) -#define EN XP(LEN, UEN) -#define OH XP(LOH, UOH) -#define PE XP(LPE, UPE) -#define ER XP(LER, UER) -#define ES XP(LES, UES) -#define TE XP(LTE, UTE) -#define UU XP(LUU, UUU) -#define EF XP(LEF, UEF) -#define HA XP(LHA, UHA) -#define TSE XP(LTSE, UTSE) -#define CHE XP(LCHE, UCHE) -#define SHA XP(LSHA, USHA) -#define SCHA XP(LSCHA, USCHA) -#define HARD XP(LHARD, UHARD) -#define YERU XP(LYERU, UYERU) -#define SOFT XP(LSOFT, USOFT) -#define EH XP(LEH, UEH) -#define YU XP(LYU, UYU) -#define YA XP(LYA, UYA) +#define AH UP(LAH, UAH) +#define BE UP(LBE, UBE) +#define VE UP(LVE, UVE) +#define GHE UP(LGHE, UGHE) +#define DE UP(LDE, UDE) +#define IE UP(LIE, UIE) +#define IO UP(LIO, UIO) +#define ZHE UP(LZHE, UZHE) +#define ZE UP(LZE, UZE) +#define IH UP(LIH, UIH) +#define SIH UP(LSIH, USIH) +#define KA UP(LKA, UKA) +#define EL UP(LEL, UEL) +#define EM UP(LEM, UEM) +#define EN UP(LEN, UEN) +#define OH UP(LOH, UOH) +#define PE UP(LPE, UPE) +#define ER UP(LER, UER) +#define ES UP(LES, UES) +#define TE UP(LTE, UTE) +#define UU UP(LUU, UUU) +#define EF UP(LEF, UEF) +#define HA UP(LHA, UHA) +#define TSE UP(LTSE, UTSE) +#define CHE UP(LCHE, UCHE) +#define SHA UP(LSHA, USHA) +#define SCHA UP(LSCHA, USCHA) +#define HARD UP(LHARD, UHARD) +#define YERU UP(LYERU, UYERU) +#define SOFT UP(LSOFT, USOFT) +#define EH UP(LEH, UEH) +#define YU UP(LYU, UYU) +#define YA UP(LYA, UYA) diff --git a/users/rmeli/keyrecords/unicode.h b/users/rmeli/keyrecords/unicode.h index c3ba96d5b65..63c355415e3 100644 --- a/users/rmeli/keyrecords/unicode.h +++ b/users/rmeli/keyrecords/unicode.h @@ -74,13 +74,13 @@ const uint32_t unicode_map[] PROGMEM = { }; // Accents -#define A_GRV XP(aGRV, AGRV) -#define A_UML XP(aUML, AUML) -#define E_GRV XP(eGRV, EGRV) -#define E_ACT XP(eACT, EACT) -#define I_GRV XP(iGRV, IGRV) -#define I_CIR XP(iCIR, ICIR) -#define O_GRV XP(oGRV, OGRV) -#define O_UML XP(oUML, OUML) -#define U_GRV XP(uGRV, UGRV) -#define U_UML XP(uUML, UUML) +#define A_GRV UP(aGRV, AGRV) +#define A_UML UP(aUML, AUML) +#define E_GRV UP(eGRV, EGRV) +#define E_ACT UP(eACT, EACT) +#define I_GRV UP(iGRV, IGRV) +#define I_CIR UP(iCIR, ICIR) +#define O_GRV UP(oGRV, OGRV) +#define O_UML UP(oUML, OUML) +#define U_GRV UP(uGRV, UGRV) +#define U_UML UP(uUML, UUML) diff --git a/users/romus/romus.c b/users/romus/romus.c index 7d59f28eec7..e16dd3b8a0e 100644 --- a/users/romus/romus.c +++ b/users/romus/romus.c @@ -291,13 +291,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case TUR_A: if (record->event.pressed) { if ( is_capital ) { - unicode_input_start(); - register_hex(0x00c2); - unicode_input_finish(); + register_unicode(0x00c2); } else { - unicode_input_start(); - register_hex(0x00e2); - unicode_input_finish(); + register_unicode(0x00e2); } } return false; @@ -305,13 +301,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case TUR_O: if (record->event.pressed) { if ( is_capital ) { - unicode_input_start(); - register_hex(0x00d6); - unicode_input_finish(); + register_unicode(0x00d6); } else { - unicode_input_start(); - register_hex(0x00f6); - unicode_input_finish(); + register_unicode(0x00f6); } } return false; @@ -319,13 +311,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case TUR_U: if (record->event.pressed) { if ( is_capital ) { - unicode_input_start(); - register_hex(0x00dc); - unicode_input_finish(); + register_unicode(0x00dc); } else { - unicode_input_start(); - register_hex(0x00fc); - unicode_input_finish(); + register_unicode(0x00fc); } } return false; @@ -333,13 +321,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case TUR_I: if (record->event.pressed) { if ( is_capital ) { - unicode_input_start(); - register_hex(0x0130); - unicode_input_finish(); + register_unicode(0x0130); } else { - unicode_input_start(); - register_hex(0x0131); - unicode_input_finish(); + register_unicode(0x0131); } } return false; @@ -347,13 +331,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case TUR_G: if (record->event.pressed) { if ( is_capital ) { - unicode_input_start(); - register_hex(0x011e); - unicode_input_finish(); + register_unicode(0x011e); } else { - unicode_input_start(); - register_hex(0x011f); - unicode_input_finish(); + register_unicode(0x011f); } } return false; @@ -361,13 +341,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case TUR_C: if (record->event.pressed) { if ( is_capital ) { - unicode_input_start(); - register_hex(0x00c7); - unicode_input_finish(); + register_unicode(0x00c7); } else { - unicode_input_start(); - register_hex(0x00e7); - unicode_input_finish(); + register_unicode(0x00e7); } } return false; @@ -375,13 +351,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case TUR_S: if (record->event.pressed) { if ( is_capital ) { - unicode_input_start(); - register_hex(0x015e); - unicode_input_finish(); + register_unicode(0x015e); } else { - unicode_input_start(); - register_hex(0x015f); - unicode_input_finish(); + register_unicode(0x015f); } } return false; diff --git a/users/rupa/unicode.c b/users/rupa/unicode.c index f99e6d08325..56b4509813e 100644 --- a/users/rupa/unicode.c +++ b/users/rupa/unicode.c @@ -125,12 +125,14 @@ bool u_xp(bool is_shifted, const char *shifted, const char *plain) { }; void zalgo(void) { + unicode_input_start(); int number = (rand() % (8 + 1 - 2)) + 2; unsigned int index; for (index=0; index. #define G_LWR LT(_LOWER, KC_G) #if defined(UNICODEMAP_ENABLE) -# define CSHAPES XP(CCIR,CKEY) -# define CUIDADO XP(CUI,HAS) -# define NOPENAH XP(NOPE,STOP) -# define MUSIC_A XP(M4,M8) -# define MUSIC_B XP(M8B,M16) -# define SMILE XP(SMB,SMW) -# define STARS XP(STB,STW) -# define YEPYEP XP(CHEK,HUN) +# define CSHAPES UP(CCIR,CKEY) +# define CUIDADO UP(CUI,HAS) +# define NOPENAH UP(NOPE,STOP) +# define MUSIC_A UP(M4,M8) +# define MUSIC_B UP(M8B,M16) +# define SMILE UP(SMB,SMW) +# define STARS UP(STB,STW) +# define YEPYEP UP(CHEK,HUN) #endif /* _QWERTY @@ -70,10 +70,10 @@ along with this program. If not, see . * │RCtl│RAlt│RGui│ FLIP │ │ │ │M← │M↓ │M→ │ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ -#define ____65_RAISE_______________ROW1 KC_GRV, X(IBNG), X(IRNY), _______, X(CENT), _______, _______, _______, STARS, _______, SMILE, X(NEG), CSHAPES, KC_DEL, KC_HOME -#define ____65_RAISE_______________ROW2 _______, _______, WAT, X(LEXI), RUPA, TADA, YUNO, _______, X(LELM), X(OM), _______, MUSIC_A, MUSIC_B, _______, KC_INS -#define ____65_RAISE_______________ROW3 _______, X(LALL), X(EFF), DICE, FART, _______, HUGS, JOY, KISS, LOD, _______, NOPENAH, YEPYEP, KC_END -#define ____65_RAISE_______________ROW4 OS_RSFT, CUIDADO, X(ECKS), CATS, DOMO, BUGS, X(NUM), MUSIC, DANCE, X(LPRO), SHRUG, KC_BTN1, KC_MS_U, KC_BTN2 +#define ____65_RAISE_______________ROW1 KC_GRV, UM(IBNG), UM(IRNY), _______, UM(CENT), _______, _______, _______, STARS, _______, SMILE, UM(NEG), CSHAPES, KC_DEL, KC_HOME +#define ____65_RAISE_______________ROW2 _______, _______, WAT, UM(LEXI), RUPA, TADA, YUNO, _______, UM(LELM), UM(OM), _______, MUSIC_A, MUSIC_B, _______, KC_INS +#define ____65_RAISE_______________ROW3 _______, UM(LALL), UM(EFF), DICE, FART, _______, HUGS, JOY, KISS, LOD, _______, NOPENAH, YEPYEP, KC_END +#define ____65_RAISE_______________ROW4 OS_RSFT, CUIDADO, UM(ECKS), CATS, DOMO, BUGS, UM(NUM), MUSIC, DANCE, UM(LPRO), SHRUG, KC_BTN1, KC_MS_U, KC_BTN2 #define ____65_RAISE_______________ROW5 OS_RCTL, OS_RALT, OS_RGUI, FLIP, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R /* _LOWER diff --git a/users/scotto/config.h b/users/scotto/config.h new file mode 100644 index 00000000000..34fe069d6e5 --- /dev/null +++ b/users/scotto/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2023 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 + +// config added when Tap Dance is enabled +#ifdef TAP_DANCE_ENABLE +# ifdef TAPPING_TERM +# undef TAPPING_TERM +# define TAPPING_TERM 135 +# endif +# define TAPPING_TERM_PER_KEY +# define PERMISSIVE_HOLD +#endif diff --git a/users/scotto/readme.md b/users/scotto/readme.md new file mode 100644 index 00000000000..f7fdeb24c42 --- /dev/null +++ b/users/scotto/readme.md @@ -0,0 +1,17 @@ +# Scotto + +Applies to layouts: +- LAYOUT_ortho_4x10 +- LAYOUT_split_3x5_2 +- LAYOUT_split_3x5_3 + +### QWERTY + +Scotto's default functional layout is Colemak. To compile this layout in QWERTY (US English), append compile command with `KEYMAP=QWERTY` environment variable. +``` +qmk compile -kb -km scotto -e KEYMAP=QWERTY +``` +Example for [Scotto34](/keyboards/scottokeebs/scotto34): +``` +qmk compile -kb scottokeebs/scotto34 -km scotto -e KEYMAP=QWERTY +``` diff --git a/users/scotto/rules.mk b/users/scotto/rules.mk new file mode 100644 index 00000000000..50a01966754 --- /dev/null +++ b/users/scotto/rules.mk @@ -0,0 +1,11 @@ +SRC += scotto.c + +TAP_DANCE_ENABLE = yes + +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += tap_dance.c +endif + +ifneq ($(strip $(KEYMAP)),) + OPT_DEFS += -DKEYMAP_$(KEYMAP) +endif diff --git a/users/scotto/scotto.c b/users/scotto/scotto.c new file mode 100644 index 00000000000..41520973c6f --- /dev/null +++ b/users/scotto/scotto.c @@ -0,0 +1,15 @@ +/* +Copyright 2023 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 "scotto.h" diff --git a/users/scotto/scotto.h b/users/scotto/scotto.h new file mode 100644 index 00000000000..023906852e5 --- /dev/null +++ b/users/scotto/scotto.h @@ -0,0 +1,69 @@ +/* +Copyright 2023 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 + +#include QMK_KEYBOARD_H + +#ifdef TAP_DANCE_ENABLE + #include "tap_dance.h" +#endif + +// Assign rows of keycodes to a single def each +#define __QWERTY1__ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P +#define __QWERTY2__ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC +#define __QWERTY3a_ LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH) +#define __QWERTY3b_ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH + +#define __COLEMAK1__ KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC +#define __COLEMAK2__ KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O +#define __COLEMAK3a_ LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH) +#define __COLEMAK3b_ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH + +#define ______________SYM_MEDIA_NAV1______________ KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL +#define ______________SYM_MEDIA_NAV2______________ KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT +#define ______________SYM_MEDIA_NAV3______________ LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILD, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS) + +#define _________________NUM_SYM1_________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC +#define _________________NUM_SYM2_________________ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 +#define _________________NUM_SYM3a________________ KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH) +#define _________________NUM_SYM3b________________ KC_LSFT, KC_NO, KC_NO, KC_NO, MO(8), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH) + +#define ________________FUNC_SYS1a________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(5), TO(4) +#define ________________FUNC_SYS1b________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), TO(5), TO(0) +#define ________________FUNC_SYS2_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 +#define ________________FUNC_SYS3_________________ KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12 + +#define _______THUMB6_1_______ TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) +#define _______THUMB6_4_______ TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LALT, LCTL_T(KC_SPC), LT(6, KC_TAB), LT(7, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI) +#define _______THUMB6_5_______ TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI) +#define _____THUMB6_TRNS______ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + +#define _______THUMB4_1_______ TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI), LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) +#define _______THUMB4_4_______ TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI), LCTL_T(KC_SPC), LT(6, KC_TAB), LT(7, KC_ENT) +#define _______THUMB4_5_______ KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT) +#define _____THUMB4_TRNS______ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + +// set functional layout +#if defined (KEYMAP_QWERTY) + #define _________________KEYMAP1__________________ __QWERTY1__ + #define _________________KEYMAP2__________________ __QWERTY2__ + #define _________________KEYMAP3a_________________ __QWERTY3a_ + #define _________________KEYMAP3b_________________ __QWERTY3b_ +#else + #define _________________KEYMAP1__________________ __COLEMAK1__ + #define _________________KEYMAP2__________________ __COLEMAK2__ + #define _________________KEYMAP3a_________________ __COLEMAK3a_ + #define _________________KEYMAP3b_________________ __COLEMAK3b_ +#endif diff --git a/users/scotto/tap_dance.c b/users/scotto/tap_dance.c new file mode 100644 index 00000000000..e6183843341 --- /dev/null +++ b/users/scotto/tap_dance.c @@ -0,0 +1,154 @@ +/* +Copyright 2023 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 "tap_dance.h" +#include "scotto.h" + +// Create an instance of 'td_tap_t' for the 'x' tap dance. +static td_tap_t xtap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t cur_dance(tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) { + return TD_SINGLE_TAP; + } else { + return TD_SINGLE_HOLD; + } + } else if (state->count == 2) { + if (state->interrupted || !state->pressed) { + return TD_DOUBLE_TAP; + } else { + return TD_DOUBLE_HOLD; + } + } else if (state->count == 3) { + if (state->interrupted || !state->pressed) { + return TD_TRIPLE_TAP; + } else { + return TD_TRIPLE_HOLD; + } + } + + return TD_UNKNOWN; +} + +void td_esc_lalt_lctl_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: tap_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; + case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; + default: break; + } +} + +void td_esc_lalt_lctl_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + case TD_DOUBLE_HOLD: unregister_code(KC_LCTL); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_esc_lctl_lalt_windows_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: tap_code16(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; + case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; + default: break; + } +} + +void td_esc_lctl_lalt_windows_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LALT); break; + case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; + case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; + default: break; + } +} + +void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; + default: break; + } + xtap_state.state = TD_NONE; +} + +void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { + xtap_state.state = cur_dance(state); + switch (xtap_state.state) { + case TD_SINGLE_TAP: register_code(KC_ESC); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; + case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; + case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; + default: break; + } +} + +void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { + switch (xtap_state.state) { + case TD_SINGLE_TAP: unregister_code(KC_ESC); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; + default: break; + } + xtap_state.state = TD_NONE; +} + + // Tap Dance definitions +tap_dance_action_t tap_dance_actions[] = { + [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), + [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), + [TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lalt_lctl_spotlight_emoji_finished, td_esc_lalt_lctl_spotlight_emoji_reset), + [TD_ESC_LCTL_LALT_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lctl_lalt_windows_emoji_finished, td_esc_lctl_lalt_windows_emoji_reset), +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_LALT_ESC_WINDOWS_EMOJI) : + case TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI) : + case TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; diff --git a/users/scotto/tap_dance.h b/users/scotto/tap_dance.h new file mode 100644 index 00000000000..4082d2b9fba --- /dev/null +++ b/users/scotto/tap_dance.h @@ -0,0 +1,39 @@ +/* +Copyright 2023 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 +#include "scotto.h" + +typedef enum { + TD_NONE = 0, + TD_UNKNOWN, + TD_SINGLE_HOLD, + TD_DOUBLE_HOLD, + TD_TRIPLE_HOLD, + TD_SINGLE_TAP, + TD_DOUBLE_TAP, + TD_TRIPLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +enum { + TD_LCTL_ESC_SPOTLIGHT_EMOJI = 0, + TD_LALT_ESC_WINDOWS_EMOJI, + TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI, + TD_ESC_LCTL_LALT_WINDOWS_EMOJI +}; diff --git a/users/snowe/readme_ocean_dream.md b/users/snowe/readme_ocean_dream.md index 688afc89982..fd6de1bca7d 100644 --- a/users/snowe/readme_ocean_dream.md +++ b/users/snowe/readme_ocean_dream.md @@ -60,7 +60,6 @@ endif You're done! Now you can enable **Ocean Dream** by simply turning on the OLED feature ```makefile OLED_ENABLE = yes -OLED_DRIVER = SSD1306 ``` And if you want to disable it without turning off the OLED Driver you can simply set diff --git a/users/spidey3/layer_rgb.c b/users/spidey3/layer_rgb.c index cff20898cd9..be76788d219 100644 --- a/users/spidey3/layer_rgb.c +++ b/users/spidey3/layer_rgb.c @@ -73,9 +73,9 @@ const rgblight_segment_t *const PROGMEM _rgb_layers[] = { [LAYER_OFFSET + _NUMPAD] = _layer1_layer, [LAYER_OFFSET + _FN] = _layer2_layer, - [LOCK_OFFSET + USB_LED_NUM_LOCK] = _numlock_layer, - [LOCK_OFFSET + USB_LED_CAPS_LOCK] = _capslock_layer, - [LOCK_OFFSET + USB_LED_SCROLL_LOCK] = _scrolllock_layer, + [LOCK_OFFSET + 0] = _numlock_layer, + [LOCK_OFFSET + 1] = _capslock_layer, + [LOCK_OFFSET + 2] = _scrolllock_layer, [MISC_OFFSET + 0] = _gflock_layer, [MISC_OFFSET + 1] = _glyphreplace_layer, @@ -374,9 +374,9 @@ layer_state_t layer_state_set_user_rgb(layer_state_t state) { } bool led_update_user_rgb(led_t led_state) { - rgblight_set_layer_state(LOCK_OFFSET + USB_LED_NUM_LOCK, led_state.num_lock); - rgblight_set_layer_state(LOCK_OFFSET + USB_LED_CAPS_LOCK, led_state.caps_lock); - rgblight_set_layer_state(LOCK_OFFSET + USB_LED_SCROLL_LOCK, led_state.scroll_lock); + rgblight_set_layer_state(LOCK_OFFSET + 0, led_state.num_lock); + rgblight_set_layer_state(LOCK_OFFSET + 1, led_state.caps_lock); + rgblight_set_layer_state(LOCK_OFFSET + 2, led_state.scroll_lock); return true; } diff --git a/users/spidey3/spidey3.c b/users/spidey3/spidey3.c index 0f3c08fca6a..b177f9f6526 100644 --- a/users/spidey3/spidey3.c +++ b/users/spidey3/spidey3.c @@ -73,19 +73,13 @@ static uint32_t math_glyph_exceptions(const uint16_t keycode, const bool shifted } bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uint32_t baseAlphaLower, uint32_t baseAlphaUpper, uint32_t zeroGlyph, uint32_t baseNumberOne, uint32_t spaceGlyph, uint32_t (*exceptions)(const uint16_t keycode, const bool shifted), uint8_t temp_mod, uint8_t temp_osm) { - void _register(uint32_t codepoint) { - unicode_input_start(); - register_hex32(codepoint); - unicode_input_finish(); - } - if ((((temp_mod | temp_osm) & (MOD_MASK_CTRL | MOD_MASK_ALT | MOD_MASK_GUI))) == 0) { bool shifted = ((temp_mod | temp_osm) & MOD_MASK_SHIFT); if (exceptions) { uint32_t res = exceptions(keycode, shifted); if (res) { if (record->event.pressed) { - _register(res); + register_unicode(res); } return false; } @@ -100,7 +94,7 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin bool caps = host_keyboard_led_state().caps_lock; uint32_t base = ((shifted == caps) ? baseAlphaLower : baseAlphaUpper); - _register(base + (keycode - KC_A)); + register_unicode(base + (keycode - KC_A)); set_mods(temp_mod); } return false; @@ -109,7 +103,7 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin return true; } if (record->event.pressed) { - _register(zeroGlyph); + register_unicode(zeroGlyph); } return false; case KC_1 ... KC_9: @@ -117,12 +111,12 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin return true; } if (record->event.pressed) { - _register(baseNumberOne + (keycode - KC_1)); + register_unicode(baseNumberOne + (keycode - KC_1)); } return false; case KC_SPACE: if (record->event.pressed) { - _register(spaceGlyph); // em space + register_unicode(spaceGlyph); // em space } return false; } diff --git a/users/spidey3/spidey3_unicode.h b/users/spidey3/spidey3_unicode.h index ee8e00056ce..4a3657fdfd8 100644 --- a/users/spidey3/spidey3_unicode.h +++ b/users/spidey3/spidey3_unicode.h @@ -25,7 +25,7 @@ enum unicode_names { SURPRISE, }; -# define X_BUL (XP(BUL1, BUL2)) -# define X_DASH (XP(EMDASH, ENDASH)) +# define X_BUL (UP(BUL1, BUL2)) +# define X_DASH (UP(EMDASH, ENDASH)) #endif diff --git a/users/tominabox1/rules.mk b/users/tominabox1/rules.mk index 1df56346404..f1ee5c04850 100644 --- a/users/tominabox1/rules.mk +++ b/users/tominabox1/rules.mk @@ -12,7 +12,6 @@ RGB_MATRIX_ENABLE = yes EXTRAFLAGS += -flto BOOTLOADER = qmk-dfu OLED_ENABLE = yes -OLED_DRIVER = SSD1306 endif ifeq ($(strip $(KEYBOARD)), lazydesigners/dimple) diff --git a/users/turbomech/backupturbomech.c b/users/turbomech/backupturbomech.c index 3671d27ab49..70d3d065c4f 100644 --- a/users/turbomech/backupturbomech.c +++ b/users/turbomech/backupturbomech.c @@ -135,14 +135,15 @@ void matrix_init_user(void) { } static bool is_capslocked = false; -void led_set_user(uint8_t usb_led) { - if (usb_led & (1<event.pressed) { register_code(KC_LPRN); unregister_code(KC_LPRN); - register_code(X(0x00B0)); - unregister_code(X(0x00B0)); + register_unicode(0x00B0); UC(0x256F); PROCESS_UNICODE(UC(0x00B0)); diff --git a/users/wanleg/rules.mk b/users/wanleg/rules.mk index de4decf78a3..cb447a17928 100644 --- a/users/wanleg/rules.mk +++ b/users/wanleg/rules.mk @@ -22,7 +22,7 @@ ifeq ($(strip $(BT)), yes) OPT_DEFS += -DBLUEFRUIT #Adafruit Bluefruit controller settings BLUETOOTH_ENABLE = yes - BLUETOOTH_DRIVER = BluefruitLE + BLUETOOTH_DRIVER = bluefruit_le F_CPU = 8000000 CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration diff --git a/users/xulkal/custom_oled.c b/users/xulkal/custom_oled.c index fd03033ad67..c6341fa3d7d 100644 --- a/users/xulkal/custom_oled.c +++ b/users/xulkal/custom_oled.c @@ -71,15 +71,15 @@ static void render_layer(void) static void render_keyboard_leds(void) { // Host Keyboard LED Status - uint8_t led_state = host_keyboard_leds(); + led_t led_state = host_keyboard_led_state(); #ifdef OLED_90ROTATION - oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false); + oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false); #else - oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUM ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false); - oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRL") : PSTR(" "), false); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRL") : PSTR(" "), false); #endif } diff --git a/users/yet-another-developer/unicode.h b/users/yet-another-developer/unicode.h index 9ff523baadf..340b4cf94bc 100644 --- a/users/yet-another-developer/unicode.h +++ b/users/yet-another-developer/unicode.h @@ -2,7 +2,6 @@ #include "quantum.h" -/* use X(n) to call the */ #ifdef UNICODEMAP_ENABLE enum unicode_name { OKOK, // diff --git a/users/yet-another-developer/wrappers.h b/users/yet-another-developer/wrappers.h index cd21032a4ec..776da0c77ef 100644 --- a/users/yet-another-developer/wrappers.h +++ b/users/yet-another-developer/wrappers.h @@ -118,13 +118,13 @@ NOTE: These are all the same length. If you do a search/replace #endif #ifdef UNICODEMAP_ENABLE -#define _______________UNICODE_L1__________________ X(SMRK), X(THINK), X(CLOWN), X(HUNDR), X(BANG) -#define _______________UNICODE_L2__________________ X(GRIN), X(MONKEY), X(OKOK), X(EGGPL), X(LIT) -#define _______________UNICODE_L3__________________ X(WEARY), X(UNAMU), X(EFFU), X(MONOCL), X(IRONY) +#define _______________UNICODE_L1__________________ UM(SMRK), UM(THINK), UM(CLOWN), UM(HUNDR), UM(BANG) +#define _______________UNICODE_L2__________________ UM(GRIN), UM(MONKEY), UM(OKOK), UM(EGGPL), UM(LIT) +#define _______________UNICODE_L3__________________ UM(WEARY), UM(UNAMU), UM(EFFU), UM(MONOCL), UM(IRONY) -#define _______________UNICODE_R1__________________ X(DRUG0), X(THUP), X(INUP), X(DIZZY), X(COOL) -#define _______________UNICODE_R2__________________ X(FIST0), X(FIST2),X(FIST3),X(FIST1), X(OKOK) -#define _______________UNICODE_R3__________________ X(MNDBLWN), X(THDN), X(SPOCK),X(HOLE), X(DASH) +#define _______________UNICODE_R1__________________ UM(DRUG0), UM(THUP), UM(INUP), UM(DIZZY), UM(COOL) +#define _______________UNICODE_R2__________________ UM(FIST0), UM(FIST2),UM(FIST3),UM(FIST1), UM(OKOK) +#define _______________UNICODE_R3__________________ UM(MNDBLWN), UM(THDN), UM(SPOCK),UM(HOLE), UM(DASH) #endif #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 diff --git a/users/zer09/zer09.c b/users/zer09/zer09.c index 78433b4c20d..5e192f037a2 100644 --- a/users/zer09/zer09.c +++ b/users/zer09/zer09.c @@ -69,8 +69,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return process_record_keymap(keycode, record); } -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { rbw_led_keys[RBW_LCAP].status = ENABLED; rbw_led_keys[RBW_RCAP].status = ENABLED; } else { @@ -78,11 +78,12 @@ void led_set_user(uint8_t usb_led) { rbw_led_keys[RBW_RCAP].status = DISABLED; } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + if (led_state.scroll_lock) { rbw_led_keys[RBW_SCRL].status = ENABLED; } else { rbw_led_keys[RBW_SCRL].status = DISABLED; } - led_set_keymap(usb_led); + led_set_keymap(led_state.raw); + return false; } diff --git a/users/zigotica/rows.h b/users/zigotica/rows.h index 18f08ccb0b7..575b32186e8 100644 --- a/users/zigotica/rows.h +++ b/users/zigotica/rows.h @@ -15,8 +15,10 @@ along with this program. If not, see . #include "zigotica.h" // clang-format off -#define _BLANK_ROW _______, _______, _______, _______, _______ #define _BLANK_THUMB _______, _______ +#define _BLANK_3 _______, _______, _______ +#define _BLANK_4 _______, _______, _______, _______ +#define _BLANK_ROW _______, _______, _______, _______, _______ /* * STENAI Layer @@ -60,12 +62,14 @@ along with this program. If not, see . #define _COLEMAK_R3 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH #define _QWERTY_L1 KC_Q, KC_W, KC_E, KC_R, KC_T -#define _QWERTY_L2 KC_A, KC_S, KC_D, KC_F, KC_G +#define _QWERTY_L2 LALT_T(KC_A), LCTL_T(KC_S), LSFT_T(KC_D), LGUI_T(KC_F), KC_G #define _QWERTY_L3 KC_Z, KC_X, KC_C, KC_V, KC_B +#define _QWERTY_LT LT(_NUM, KC_TAB), LT(_NAV, KC_SPC) #define _QWERTY_R1 KC_Y, KC_U, KC_I, KC_O, KC_P -#define _QWERTY_R2 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT +#define _QWERTY_R2 KC_H, RGUI_T(KC_J), RSFT_T(KC_K), RCTL_T(KC_L), RALT_T(KC_SCLN) #define _QWERTY_R3 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH +#define _QWERTY_RT LT(_SYM, KC_SPC), LT(_FN, KC_ENT) /* * NUM Layer @@ -191,4 +195,17 @@ along with this program. If not, see . #define ____FN_R2 _______, KC_F1, KC_F2, KC_F3, KC_F11 #define ____FN_R3 _______, KC_F4, KC_F5, KC_F6, KC_F12 #define ____FN_RT _BLANK_THUMB + + +// Ortho short rows +#define ____NUM15 KC_1, KC_2, KC_3, KC_4, KC_5 +#define ____NUM60 KC_6, KC_7, KC_8, KC_9, KC_0 +#define ____FN_15 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 +#define ____FN_60 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 +#define ____LMODS KC_LCTL, KC_LALT, KC_LGUI +#define ____TARRS _______, KC_UP, _______ +#define ____BARRS KC_LEFT, KC_DOWN, KC_RIGHT +#define ____LORTH ____LMODS, KC_MINS +#define ____RORTH KC_BSPC, KC_SCLN, KC_BSLS, KC_SLSH + // clang-format on diff --git a/users/zigotica/rules.mk b/users/zigotica/rules.mk index 019e6f6dda1..93b0b5704d1 100644 --- a/users/zigotica/rules.mk +++ b/users/zigotica/rules.mk @@ -5,7 +5,7 @@ ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) endif ifeq ($(strip $(COMBO_ENABLE)), yes) - SRC += combos.c + INTROSPECTION_KEYMAP_C = combos.c endif ifeq ($(strip $(OLED_ENABLE)), yes) diff --git a/users/zigotica/zigotica.h b/users/zigotica/zigotica.h index e85a04edbed..e7ac83e0dcb 100644 --- a/users/zigotica/zigotica.h +++ b/users/zigotica/zigotica.h @@ -16,7 +16,7 @@ along with this program. If not, see . #include "rows.h" -#ifdef SPLIT_KEYBOARD +#if defined(SPLIT_KEYBOARD) || defined(ORTHOLINEAR_KEYBOARD) enum userspace_layers { BASE = 0, _NUM, diff --git a/util/install/macos.sh b/util/install/macos.sh index 870b4bec945..8890c5a3f08 100755 --- a/util/install/macos.sh +++ b/util/install/macos.sh @@ -19,8 +19,13 @@ _qmk_install() { # https://github.com/qmk/homebrew-qmk brew install qmk/qmk/qmk + # Conflicts with new toolchain formulae + brew uninstall --ignore-dependencies arm-gcc-bin@8 >/dev/null 2>&1 + + # Keg-only, so need to be manually linked brew link --force avr-gcc@8 - brew link --force arm-gcc-bin@8 + brew link --force arm-none-eabi-binutils + brew link --force arm-none-eabi-gcc@8 python3 -m pip install -r $QMK_FIRMWARE_DIR/requirements.txt } diff --git a/util/uf2conv.py b/util/uf2conv.py index 578b2b49772..84271cee4f6 100755 --- a/util/uf2conv.py +++ b/util/uf2conv.py @@ -74,7 +74,7 @@ def convert_from_uf2(buf): assert False, "Non-word padding size at " + ptr while padding > 0: padding -= 4 - outp += b"\x00\x00\x00\x00" + outp.append(b"\x00\x00\x00\x00") if familyid == 0x0 or ((hd[2] & 0x2000) and familyid == hd[7]): outp.append(block[32 : 32 + datalen]) curraddr = newaddr + datalen @@ -218,18 +218,17 @@ def get_drives(): if len(words) >= 3 and words[1] == "2" and words[2] == "FAT": drives.append(words[0]) else: - rootpath = "/media" + searchpaths = ["/media"] if sys.platform == "darwin": - rootpath = "/Volumes" + searchpaths = ["/Volumes"] elif sys.platform == "linux": - tmp = rootpath + "/" + os.environ["USER"] - if os.path.isdir(tmp): - rootpath = tmp - tmp = "/run" + rootpath + "/" + os.environ["USER"] - if os.path.isdir(tmp): - rootpath = tmp - for d in os.listdir(rootpath): - drives.append(os.path.join(rootpath, d)) + searchpaths += ["/media/" + os.environ["USER"], '/run/media/' + os.environ["USER"]] + + for rootpath in searchpaths: + if os.path.isdir(rootpath): + for d in os.listdir(rootpath): + if os.path.isdir(rootpath): + drives.append(os.path.join(rootpath, d)) def has_info(d): diff --git a/util/uf2families.json b/util/uf2families.json index c2140fe351a..778af4421fc 100644 --- a/util/uf2families.json +++ b/util/uf2families.json @@ -203,5 +203,15 @@ "id": "0x11de784a", "short_name": "M0SENSE", "description": "M0SENSE BL702" + }, + { + "id": "0x4b684d71", + "short_name": "MaixPlay-U4", + "description": "Sipeed MaixPlay-U4(BL618)" + }, + { + "id": "0x9517422f", + "short_name": "RZA1LU", + "description": "Renesas RZ/A1LU (R7S7210xx)" } -] \ No newline at end of file +]