diff --git a/.github/workflows/ci_builds.yml b/.github/workflows/ci_builds.yml index b3bb83fa85..81151d6898 100644 --- a/.github/workflows/ci_builds.yml +++ b/.github/workflows/ci_builds.yml @@ -33,7 +33,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive ref: ${{ github.event.inputs.branch || github.ref }} diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml index a2b4ef2b93..a31526084f 100644 --- a/.github/workflows/regen.yml +++ b/.github/workflows/regen.yml @@ -19,7 +19,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run qmk generators run: | diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml index 7394925a0d..f1b7812937 100644 --- a/.github/workflows/regen_push.yml +++ b/.github/workflows/regen_push.yml @@ -19,7 +19,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run qmk generators run: | diff --git a/.gitignore b/.gitignore index 728b94eb2c..1af1f10746 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 c77eadf97d..9f2e4636a4 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 964ba773d4..85ee0898ec 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 f08288aca9..ecaac564f8 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/common_features.mk b/builddefs/common_features.mk index 4988637b10..85e309484e 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 @@ -637,13 +635,13 @@ ifeq ($(strip $(VIAL_ENABLE)), yes) COMBO_ENABLE ?= yes KEY_OVERRIDE_ENABLE ?= yes SRC += $(QUANTUM_DIR)/vial.c - EXTRAINCDIRS += $(KEYMAP_OUTPUT) + EXTRAINCDIRS += $(INTERMEDIATE_OUTPUT) OPT_DEFS += -DVIAL_ENABLE -DNO_DEBUG -DSERIAL_NUMBER=\"vial:f64c2b3c\" -$(QUANTUM_DIR)/vial.c: $(KEYMAP_OUTPUT)/vial_generated_keyboard_definition.h +$(QUANTUM_DIR)/vial.c: $(INTERMEDIATE_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 +$(INTERMEDIATE_OUTPUT)/vial_generated_keyboard_definition.h: $(KEYMAP_PATH)/vial.json + python3 util/vial_generate_definition.py $(KEYMAP_PATH)/vial.json $(INTERMEDIATE_OUTPUT)/vial_generated_keyboard_definition.h endif ifeq ($(strip $(VIAL_INSECURE)), yes) @@ -757,18 +755,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 +781,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 +820,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 +939,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 +949,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 +957,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 4d3af6737d..41651a2cbf 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 8bcc02083b..563d089880 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 e53d90da39..ab9a4a0e45 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 bf8ec05cb2..07191551da 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 a656288a8f..60c5deaad5 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 73309e582f..3765bf25ba 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 0000000000..12093d889f --- /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 8b7959c2b3..d7dbd38c98 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 e660182c32..fdf6ccef9c 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 79f2899d2c..deb3dfb990 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 3f44da713d..32f6de7ff7 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 cc9c0b7f92..197033f78b 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 4698260118..8119b9e356 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 bb46add789..e94a637609 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 ba287f5688..b288f9901a 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 1719807e26..6241cbaeb1 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 9f80c93f82..3a0a49095c 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 24057c608f..d032c33f18 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,124 +42,66 @@ 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`: -### AVR Driver :id=avr-driver - -The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be: - -```make -BACKLIGHT_DRIVER = pwm +```c +#define BACKLIGHT_ON_STATE 0 ``` -#### Caveats :id=avr-caveats - -On AVR boards, QMK automatically decides which driver to use according to the following table: - -|Backlight Pin|AT90USB64/128|AT90USB162|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P| -|-------------|-------------|----------|-------------|-------------|---------|-----------| -|`B1` | | | | | |Timer 1 | -|`B2` | | | | | |Timer 1 | -|`B5` |Timer 1 | |Timer 1 | | | | -|`B6` |Timer 1 | |Timer 1 | | | | -|`B7` |Timer 1 |Timer 1 |Timer 1 |Timer 1 | | | -|`C4` |Timer 3 | | | | | | -|`C5` |Timer 3 |Timer 1 | |Timer 1 | | | -|`C6` |Timer 3 |Timer 1 |Timer 3 |Timer 1 | | | -|`D4` | | | | |Timer 1 | | -|`D5` | | | | |Timer 1 | | - -All other pins will use timer-assisted software PWM: - -|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 | - -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. - -#### Hardware PWM Implementation :id=hardware-pwm-implementation - -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. - -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. - -#### Timer Assisted PWM Implementation :id=timer-assisted-implementation - -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. - -The breathing effect is the same as in the hardware PWM implementation. - -### ARM Driver :id=arm-configuration - -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: - -```make -BACKLIGHT_DRIVER = pwm -``` - -#### ChibiOS Configuration :id=arm-configuration - -The following `#define`s apply only to ARM-based keyboards: - -|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| - -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. - -#### Caveats :id=arm-caveats - -Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration. - -### Software PWM Driver :id=software-pwm-driver - -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`: - -```make -BACKLIGHT_DRIVER = software -``` - -#### Multiple Backlight Pins :id=multiple-backlight-pins +### 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. +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 activate multiple backlight pins, add something like this to your `config.h`, instead of `BACKLIGHT_PIN`: +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. + +### PWM Driver :id=pwm-driver + +This is the default backlight driver, which leverages the hardware PWM output capability of the microcontroller. + +```make +BACKLIGHT_DRIVER = pwm +``` + +### 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 this simple API provided by QMK. To enable, add this to your `rules.mk`: +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 ``` -Then implement any of these hooks: - ```c void backlight_init_ports(void) { // Optional - runs on startup @@ -211,10 +119,188 @@ void backlight_task(void) { } ``` +## AVR Configuration :id=avr-configuration + +### PWM Driver :id=avr-pwm-driver + +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| +|-------------|-------------|----------|-------------|-------------|---------|-----------| +|`B1` | | | | | |Timer 1 | +|`B2` | | | | | |Timer 1 | +|`B5` |Timer 1 | |Timer 1 | | | | +|`B6` |Timer 1 | |Timer 1 | | | | +|`B7` |Timer 1 |Timer 1 |Timer 1 |Timer 1 | | | +|`C4` |Timer 3 | | | | | | +|`C5` |Timer 3 |Timer 1 | |Timer 1 | | | +|`C6` |Timer 3 |Timer 1 |Timer 3 |Timer 1 | | | +|`D4` | | | | |Timer 1 | | +|`D5` | | | | |Timer 1 | | + +### Timer Driver :id=avr-timer-driver + +Any GPIO pin can be used with this driver. The following table describes the supported timers: + +|AT90USB64/128|AT90USB162|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P| +|-------------|----------|-------------|-------------|---------|-----------| +|Timers 1 & 3 |Timer 1 |Timers 1 & 3 |Timer 1 |Timer 1 |Timer 1 | + +The following `#define`s apply only to the `timer` driver: + +|Define |Default|Description | +|-----------------------|-------|----------------| +|`BACKLIGHT_PWM_TIMER` |`1` |The timer to use| + +Note that the choice of timer may conflict with the [Audio](feature_audio.md) feature. + +## ChibiOS/ARM Configuration :id=arm-configuration + +### PWM Driver :id=arm-pwm-driver + +Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like: + +`halconf.h`: +```c +#define HAL_USE_PWM TRUE +``` +`mcuconf.h`: +```c +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE +``` + +The following `#define`s apply only to the `pwm` driver: + +|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 +``` + +The following `#define`s apply only to the `timer` driver: + +|Define |Default |Description | +|----------------------|--------|----------------| +|`BACKLIGHT_GPT_DRIVER`|`GPTD15`|The timer to use| + ## Example Schematic +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. + 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) + +## API :id=api + +### `void backlight_toggle(void)` :id=api-backlight-toggle + +Toggle the backlight on or off. + +--- + +### `void backlight_enable(void)` :id=api-backlight-enable + +Turn the backlight on. + +--- + +### `void backlight_disable(void)` :id=api-backlight-disable + +Turn the backlight off. + +--- + +### `void backlight_step(void)` :id=api-backlight-step + +Cycle through backlight levels. + +--- + +### `void backlight_increase(void)` :id=api-backlight-increase + +Increase the backlight level. + +--- + +### `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 f7ded84d86..5fac06fba7 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 b456bad736..68145edd6c 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 4ade640baa..dcbd656bbe 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 608eb001e4..ec7efd4c01 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 8503603ffe..e57642071f 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 bc86099f1f..fd56a45725 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 08310555fb..c7d6c1a918 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 eed4f4f4aa..42448325c9 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 a62294b23a..f3769742f8 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 558a23a80f..094dd21c7e 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. -Make sure to flash raw enabled firmware before proceeding with working on the host side. +For demonstration purposes, the manufacturer and product strings of the device, along with the request and response, are also printed. -## Host (Windows/macOS/Linux) +```python +import sys +import hid -This is the more complicated part as it will require some digging. +vendor_id = 0x4335 +product_id = 0x0002 -To connect your host computer to your keyboard with raw HID you need four pieces of information about your keyboard: +usage_page = 0xFF60 +usage = 0x61 +report_length = 32 -1. Vendor ID -2. Product ID -3. Usage Page -4. Usage +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] -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`. + if len(raw_hid_interfaces) == 0: + return None -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`. + interface = hid.Device(path=raw_hid_interfaces[0]['path']) -By default, **Usage Page** is `0xFF60` and **Usage** is `0x61`. + print(f"Manufacturer: {interface.manufacturer}") + print(f"Product: {interface.product}") -### Building your host + return interface -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: +def send_raw_report(data): + interface = get_raw_hid_interface() -* 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/). + if interface is None: + print("No device found") + sys.exit(1) -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. + request_data = [0x00] * (report_length + 1) # First byte is Report ID + request_data[1:len(data) + 1] = data + request_report = bytes(request_data) -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. + print("Request:") + print(request_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. + try: + interface.write(request_report) -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. + response_report = interface.read(report_length, timeout=1000) + + print("Response:") + print(response_report) + finally: + interface.close() + +if __name__ == '__main__': + send_raw_report([ + 0x41 + ]) +``` + +## API :id=api + +### `void raw_hid_receive(uint8_t *data, uint8_t length)` :id=api-raw-hid-receive + +Callback, invoked when a raw HID report has been received from the host. + +#### Arguments :id=api-raw-hid-receive-arguments + + - `uint8_t *data` + A pointer to the received data. Always 32 bytes in length. + - `uint8_t length` + The length of the buffer. Always 32. + +--- + +### `void raw_hid_send(uint8_t *data, uint8_t length)` :id=api-raw-hid-send + +Send an HID report. + +#### Arguments :id=api-raw-hid-send-arguments + + - `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 75f07b5e64..44899d70d9 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 5131658ae1..39b7e6a6f1 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 67df0224e9..7d3f3ba32a 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 b7d8a5528f..42ea233962 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 455596dab5..341084f926 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 -### 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_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| -Add the following to your `rules.mk`: +### 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. + +Add the following to your `config.h`: + +|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| + +## 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). -
+### ** Unicode Map ** -### 1.2. Unicode Map :id=unicode-map +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. -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. - -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). - - -## 2. Input Modes :id=input-modes - -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. - -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). - - 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. - - !> Using the _Unicode Hex Input_ input source may disable some Option-based shortcuts, such as Option+Left and Option+Right. - -* **`UNICODE_MODE_LINUX`**: Linux built-in IBus Unicode input. Supports code points up to `0x10FFFF` (all possible code points). - - 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. - - 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)). - -* **`UNICODE_MODE_WINDOWS`**: _(not recommended)_ Windows built-in hex numpad Unicode input. Supports code points up to `0xFFFF`. - - 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. - -* **`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). - -* **`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). - - 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. - - -## 3. Setting the Input Mode :id=setting-the-input-mode - -To set your desired input mode, add the following define to your `config.h`: +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 ``` -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)). +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. -You can also select multiple input modes, which allows you to easily cycle through them using the `UC_NEXT`/`UC_PREV` keycodes. +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`. -```c -#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX, UNICODE_MODE_WINCOMPOSE + + +### ** macOS ** + +**Mode Name:** `UNICODE_MODE_MAC` + +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`. + +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. + +### ** Linux (IBus) ** + +**Mode Name:** `UNICODE_MODE_LINUX` + +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. + +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. + +### ** Windows (WinCompose) ** + +**Mode Name:** `UNICODE_MODE_WINCOMPOSE` + +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. + +### ** Windows (HexNumpad) ** + +**Mode Name:** `UNICODE_MODE_WINDOWS` + +!> 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 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. + +To enable, run the following as an administrator, then reboot: + +``` +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 -Save the file and run the command `setxkbmap us` to reload the layout. +This function is weakly defined, and can be overridden in user code. -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. +--- -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. +### `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 + +Send the code point(s) for the given UCIS index. + +#### Arguments :id=api-register-ucis-arguments + + - `uint8_t index` + The index into the UCIS symbol table. diff --git a/docs/flashing.md b/docs/flashing.md index 443fa3123e..113d90ca38 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 1a7e276098..3d98e4602b 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 f4e6c6619e..92b666b5e3 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 bc8f4d24a5..6296173b66 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 e5b6246af7..65762234a4 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 eae0cef2c2..20256e5f28 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 51ce304901..e0cfdc77df 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 549ffcb2be..c5ba897e17 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 b0d28d89d1..a16207f267 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 83ae6e6ed0..49d5035b08 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 65584a9538..c98504c8c0 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 35498fbd86..ffa5539922 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 bc68cbc922..a41681ac85 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 317a9d9f1a..5e399183f8 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 ace6b5f330..31855606be 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 b5c9b3be99..91581afc73 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. + * 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 -?> 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. +* `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. -## Layout Format +## Firmware Configuration :id=firmware-configuration -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`. +* `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` -* `layout` - * A list of Key Dictionaries describing the physical layout. See the next section for more details. +## APA102 :id=apa102 -### Key Dictionary Format +Configures the APA102 driver. -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. +* `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`. + +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. 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]` +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. -## 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"] +* `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" } -} -``` + ``` +* `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}` -### Direct Pins +## Leader Key :id=leader-key -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. +Configures the [Leader Key](feature_leader_key.md) feature. -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. +* `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) -Notice that when using direct pins, `diode_direction` is left undefined. +## LED Matrix :id=led-matrix -Example: +Configures the [LED Matrix](feature_led_matrix.md) feature. -```json -{ - "matrix_pins": { - "direct": [ - ["A10", "A9"], - ["A0", "B8"], - [null, "B11"], - ["B9", "A8"], - ["A7", "B1"], - [null, "B2"] - ] - } -} -``` - -### Additional Options - -* `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 - -Enable by setting - -```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" - } -} - -``` - -## 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 +* `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 } - } -} -``` + ``` + * `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` -### RGBLight Animations +## Matrix :id=matrix -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 - -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" } +* `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"] ] - } -} -``` + ``` + * `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"]` -```json -{ - "encoder": { - "rotary": [ - { "pin_a": "B5", "pin_b": "A2", "resolution": 4 } - { "pin_a": "B6", "pin_b": "A3", "resolution": 2 } - ] - } -} -``` +## Mouse Keys :id=mouse-keys -## Secure +Configures the [Mouse Keys](feature_mouse_keys.md) feature. -The following options can be configured: +* `mouse_key` + * `delay` + * `enabled` + * Enables the Mouse Keys feature. + * Default: `false` + * `interval` + * `max_speed` + * `time_to_max` + * `wheel_delay` -|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 | +## One Shot :id=one-shot -Example: +Configures [One Shot keys](one_shot_keys.md). -```json -{ - "secure": { - "unlock_sequence": [ [0,0], [0,1] ], - "unlock_timeout": 5000, - "idle_timeout": 60000 - } -} -``` +* `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. -## Bootmagic +## PS/2 :id=ps2 -This section configures [Bootmagic Lite](feature_bootmagic.md) support. +Configures the [PS/2](feature_ps2_mouse.md) feature. -The following options can be configured: +* `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` -|Key |Description | -|---------|-----------------------------------------------------------------------------| -|`matrix` | A two item list describing the row and column location for the trigger key. | +## QMK LUFA Bootloader :id=qmk-lufa-bootloader -Example: +* `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). -```json -{ - "bootmagic": { - "enabled": true, - "matrix": [0, 0] - }, -} -``` +## RGBLight :id=rgblight + +Configures the [RGB Lighting](feature_rgblight.md) feature. + +* `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. + +* `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 + +* `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 a27a3a13d0..c1c6831e73 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 ce9e43cdae..b437901bdb 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 c50acdb84d..094a10753a 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 340b648189..a44f2c28d9 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 27ccbd2c9f..f2af3e918e 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 5a1d2ca0af..0000000000 --- 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 8b8eae38b8..0000000000 --- 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 0000000000..1ad2ad385f --- /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 0000000000..a7cf856a86 --- /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 40fc68e4f1..766d8cd2eb 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 7895f1497b..479643add4 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 c6e71b4b4e..e342cb6bac 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 6c4ffd398e..c4d4c0a4cc 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 a56cad3461..c94df62dd2 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 a99b479d1c..6ababf55e9 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 aa70a0623f..32da137fb7 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 c2300ebe89..970e9a0be9 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 26bb01a014..2fe3768432 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 a62b21cc6b..f7f6980a3b 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 7834766b94..69fba14a0b 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 80344ca721..15a01b6d75 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 4c79cb8146..bdf03de1ee 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 21138c6e05..f9a0a271a8 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 1571fdd3d5..1458f7ac8d 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 379eaa0ae3..ca431838ef 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 29441846ac..f37a58de0f 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 d6b0881139..0de8b3bbae 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 332b2035f3..32bdef4a80 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 b6ed6b2629..947c0a1d1a 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 ca9a917ee2..e7fc97872c 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 2f43473fc1..70671c2a40 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 b0089ea5ba..4ae84dc3c6 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 106890a8bf..4b78947ada 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 18432ffc31..4b3add558b 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 47bb703648..f57e638e03 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 d6911d66f2..ae594c94bc 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 88523b8420..b30ee3d596 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 6efe6e18cd..0d5edf494e 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 2491491561..6227591f44 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 cf4ea821bf..9527d6abae 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 a0b04ba7df..30b806aedc 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 77dd67f53f..60cbfd4df6 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 5b7334ff9d..c218d1ff78 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 10b1f88216..179c84088b 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 7a678a0194..97f5e53cad 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 24ff2f2cfd..fe8dabeab7 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 f64205d126..6b9c1274a8 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 79fdf0af45..e4c7fce98a 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 9cc3b02a22..f06d31c5f1 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 ae376dfa53..e3b7211792 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 9b536e0677..17ebcaf458 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 e30794f68e..12bfe122d6 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 afdc6d4baa..0d0cd3712a 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 090e93b94b..34f33d5059 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 bc0d7f0c4b..d876570c80 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 475a935123..ffc2d4d765 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 aeda8afd33..eddf290b4c 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 712999df32..99275bf251 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 8bbb646e40..5f36081323 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 ee6914a4e5..0d288916cc 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 15b7c9faa7..5792f51ca8 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 fd6087a238..20783c22cb 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 d0c47c526d..453bf8c961 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 a45947de54..5cc9227885 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 0000000000..4431ef6bdb --- /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 0000000000..fccf9d8899 --- /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/woodkeys/meira/keymaps/takmiya/config.h b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c similarity index 58% rename from keyboards/woodkeys/meira/keymaps/takmiya/config.h rename to keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c index 97210115b9..86e3f440fe 100644 --- a/keyboards/woodkeys/meira/keymaps/takmiya/config.h +++ b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2017 Cole Markham, WoodKeys.click +/* 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 @@ -14,11 +14,21 @@ * along with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +#include QMK_KEYBOARD_H -#include "../../config.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 + ), -// place overrides here + [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 0000000000..ee32568148 --- /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 0000000000..86e3f440fe --- /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 0000000000..bf70b1f3e0 --- /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 0000000000..280c9f01d6 --- /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 0000000000..8e853e0af7 --- /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 0000000000..41e1679d48 --- /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 0000000000..b11654a942 --- /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 0000000000..e7be96bd81 --- /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 0000000000..ee32568148 --- /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 0000000000..e7be96bd81 --- /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 0000000000..bf70b1f3e0 --- /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 0000000000..5164590832 --- /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 695d5cb9b7..c7028f4a4e 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 ebd5d64931..6b89f2c2ab 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 0000000000..834b7ee0ab --- /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 0000000000..636aad675b --- /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 0000000000..b446776377 --- /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 3ee2e738f1..f19ef235d5 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 e858deae6a..3451f44976 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 1880c78d44..17345284ca 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 00d32ec973..1f8bdb4592 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 15b593362d..acf9ce1adb 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 f9187727eb..80f9d3a9f6 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 02100955e4..a47120f7d3 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 01b0236975..310ad3d94b 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 d78705352a..68634f4da1 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 8102cbda4c..7a5c6e0e83 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 923f536ac8..6d63921f1b 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 39a8eefcc4..c4bdc441ee 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 bed2edc0a6..c0ffe02137 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 cb82e7fcfb..bbecccae02 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 88687335de..37a85b4711 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 b8705866c8..f1ac861c8c 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 fa98b70fbc..a8696ab64c 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 2c3ca34c5e..0d7a5de560 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 f3741a80b1..675c741bf5 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 a97ab1ea49..0d7a5de560 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 5620203889..fd4b07fe3e 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 07d9ab9b67..915e161e8b 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 01701aedeb..38a73368f6 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 eaeebeff07..f8febbdec8 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 1efe467be9..2350242316 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 e4b0d02f75..27755e64c6 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 46692f6e4d..47fb1f2e98 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 15857d3b0b..3d51de9e4c 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 e4b0d02f75..27755e64c6 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 4db1d04910..1ab2fb7e38 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 15857d3b0b..3d51de9e4c 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 a4088e4925..5f36081323 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 1752531ba1..b8644a0712 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 f2d712072e..35cc3ee3c4 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 9709807612..31d4559883 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 ab2a1fa1c1..f4d3032857 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 40c11739fb..090fd1d296 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 e388bc9705..5f36081323 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 eb5c0e4a9d..a8c8c13b2a 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 c3e359e24e..f7899ad886 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 ea659979ea..3932a1ee9b 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 975c581883..dedd62afcb 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 8641d6a37f..0000000000 --- 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 21e5c2d1d2..4cfd3a9a29 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 57981dd27f..0fe9b9df21 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 b58ee84edc..214d1da2a0 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 3483c7d4df..cd4864fbd1 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 2199981c7c..b46d357dd0 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 c881f7c7d1..eabe354568 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 f5d8ffc12e..867a6e2e2a 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 4e218f9365..b5ad58bc11 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 041df45eca..e539634d58 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 6114950220..9bec945f24 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 02d4f38632..4be993daea 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 4e3e37ff3d..30a36865b9 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 7c8c8a8cf2..5d5eefda21 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 82d6349dc7..ad7513c13d 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 09e14f7540..428a48c464 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 e961253a23..527f3d5772 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 d89fef7194..6a7da3e998 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 68bddfc748..3787d8c241 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 68bddfc748..3787d8c241 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 2552b1e451..0000000000 --- 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 90fe5d02a2..7ba1964c7c 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 06e5db9090..0000000000 --- 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 c33d2b0616..f2461aeaa9 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 2ba774712a..036d08cc73 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 01aba22863..692f995605 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 041df45eca..e539634d58 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 5192065644..a64bf928eb 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 cab2fa1c07..fdcf9d0bde 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 563c3838d1..7536b7f3a1 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 18c2912269..b6945a706d 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 0000000000..781000ec41 --- /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 e8184d57ab..e11c916b4f 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 e42bb68b37..0000000000 --- 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 34ec33bbe2..8c3a84be1e 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 1bf561d74a..036d08cc73 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 61673e609d..47d3d5d662 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 041df45eca..e539634d58 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 9e42693cb6..c3b8e77d77 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/info.json b/keyboards/7c8/framework/info.json index 18c0289c9a..19325af9cb 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 5139d4cf69..5f36081323 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 45dec97b33..0145eef5e3 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/info.json b/keyboards/9key/info.json index 1dc9fad41a..d4061d8261 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 7dec77b01e..dcc41a36ee 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 b5109c291d..ca764a9eeb 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 c12d7cb235..2e14782997 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 0e6ab0d647..46e2219f0b 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 b42ece99a6..7fedf4dce1 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 d7e3718c0b..7a3b650ff1 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 0000000000..0ecd06b177 --- /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 0000000000..f6a3b55851 --- /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 0000000000..f1dae7232e --- /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 0000000000..4660fb7024 --- /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 0000000000..48fab8614b --- /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 0000000000..9187c76aad --- /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 0000000000..68269604cc --- /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 c2632e0417..81349657ef 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 9dfe255ba2..341b522926 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 2f3159192a..2bcc184a30 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 b384b7bcbf..8f11e1df07 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 c2a702781b..b5b935ab58 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 ce1d65be0f..723724b7aa 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 f10a6adb67..0a3b28e31f 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 25c83bb136..4af646ec02 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 5a140a7bdc..de0388176e 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 ce1d65be0f..723724b7aa 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 9fc9210c80..adb2372e60 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 ce1d65be0f..723724b7aa 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 0aeca0dd9f..7f4f202a1b 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 26c00e41aa..9e4f82f7ad 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 1f91766add..ba5c2dedf2 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 e72e8aece4..229fd7a8c8 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 3d622c2216..086e2474ba 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 0376a9ac2c..30c29fa686 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 b2ced072a8..0730833b9b 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 3d622c2216..086e2474ba 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 295d6960ee..a5089d51a5 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 81093a2838..62093e37b2 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 5f46a2a48c..2bbb214bd0 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 2113a65b3a..81342ef26d 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 e83516b566..e621b4495b 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 c753810954..19991ecb86 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 f84ab5d602..3d5cb57ad5 --- 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 f94f12cb84..5356b24d77 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 93f25a13d8..5b6b0c9299 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 91f51146f0..a34ea41cff 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 348b284a3f..d862fd016d 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 504e86f4b3..5ec2403638 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 fd436cc258..a398475a3e 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 92f08f354c..0000000000 --- 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 1768a7b55b..22cac5ade4 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 336bd351f1..86415b251a 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 f957a01094..f56b6f92d1 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 08db87fefe..818a8229f5 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 febf1e61f6..bac0061f3e 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 47e08a7ed7..aa7e5a6921 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 89de3d9a64..0b8941e776 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 af23da4c66..b5ba2eb94e 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 0ffebff135..b2bdbc4dad 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 fbf2e300ef..5553b18751 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 73e4d46c59..a2402f19a9 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 5756903c66..230453c3a0 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 fb70fb00a4..0484578571 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 d24a189b81..d313f3a4f9 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 088b40139b..0000000000 --- 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 3daf3326ac..42cc69ed7f 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 4704a3487d..864f929c81 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 0000000000..cc05ddf8f1 --- /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 0000000000..5010485602 --- /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 0000000000..3d6cf31bd8 --- /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 0000000000..4769500eb0 --- /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 0000000000..988330c979 --- /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 0000000000..4769500eb0 --- /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 0000000000..cd9e1768eb --- /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 0000000000..345c10cdd4 --- /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 0000000000..776ed893d5 --- /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 0000000000..05d34fb066 --- /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 0000000000..266fe1ddd5 --- /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 0000000000..93ae8d898f --- /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 862c0fe1ee..0000000000 --- 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 00a2572e7a..d11e00a50e 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 e13f2bd035..6bec144827 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 e9a8bec879..ab9d5c6ac2 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 0bc48fb562..78d20f300f 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 bfdcae090e..d9d0ee62ee 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 e9a8bec879..ab9d5c6ac2 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 d52eea26d1..b9637955ff 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 aafd0e0848..785fa8af9f 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/ash_xiix/ash_xiix.c b/keyboards/ah/haven65/haven65.c similarity index 73% rename from keyboards/ash_xiix/ash_xiix.c rename to keyboards/ah/haven65/haven65.c index 64be362f93..b4077b1a63 100644 --- a/keyboards/ash_xiix/ash_xiix.c +++ b/keyboards/ah/haven65/haven65.c @@ -1,4 +1,4 @@ -/* Copyright 2020 sh_xguitar +/* 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 @@ -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" 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); + 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 true; + } + return res; } diff --git a/keyboards/ah/haven65/info.json b/keyboards/ah/haven65/info.json new file mode 100644 index 0000000000..1cdc337836 --- /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 0000000000..e3c424072d --- /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 0000000000..e4de01e0e8 --- /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 0000000000..bf29ca0810 --- /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/ash1800/ash1800.c b/keyboards/ah/haven80/haven80.c similarity index 73% rename from keyboards/ash1800/ash1800.c rename to keyboards/ah/haven80/haven80.c index 520b1503ac..d02130cfe9 100644 --- a/keyboards/ash1800/ash1800.c +++ b/keyboards/ah/haven80/haven80.c @@ -1,4 +1,4 @@ -/* Copyright 2019 angelbirth +/* 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 @@ -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" 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); + 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 true; -} \ No newline at end of file + } + return res; +} diff --git a/keyboards/ah/haven80/hotswap/info.json b/keyboards/ah/haven80/hotswap/info.json new file mode 100644 index 0000000000..b73da1c5f4 --- /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 0000000000..a43054863c --- /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 0000000000..bd87815154 --- /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 0000000000..401787bcbc --- /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 0000000000..f4d1b6fe92 --- /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 0000000000..775908d24f --- /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 0000000000..670e760682 --- /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 0aeca0dd9f..7f4f202a1b 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 f5dd365564..396f50c376 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 1448dc35c3..7ad594e1f9 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 2542b9f62f..50001e978c 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 af67191ba1..dca6df3dba 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 4df12732bd..c564b8aa38 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 1d6f3dfa8c..792457cf10 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 0aeca0dd9f..7f4f202a1b 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 a358ce601e..0000000000 --- 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 00a2a9f4d8..440f061432 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/rules.mk b/keyboards/aidansmithdotdev/fine40/rules.mk index 2e3ef9fb84..e69de29bb2 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 6ac6abcf56..26de1138e5 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 0000000000..a14f02bc76 --- /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 0000000000..f56e825e05 --- /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 0000000000..7049b20a64 --- /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 0000000000..ef92432ff5 --- /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 0000000000..ef92432ff5 --- /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/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 0000000000..c7140deb5c --- /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 0000000000..24d5f6f52e --- /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 0000000000..e175e21368 --- /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 0000000000..221cad86ad --- /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 0000000000..2f64e65393 --- /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 0000000000..5ff1926d0c --- /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 0000000000..88bfbc8e1f --- /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 0000000000..88bfbc8e1f --- /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 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/akko/acr87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/doodboard/duckboard_r2/config.h b/keyboards/akko/acr87/mcuconf.h similarity index 79% rename from keyboards/doodboard/duckboard_r2/config.h rename to keyboards/akko/acr87/mcuconf.h index a73678faf2..0d16f4f04e 100644 --- a/keyboards/doodboard/duckboard_r2/config.h +++ b/keyboards/akko/acr87/mcuconf.h @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 doodboard +/* 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 @@ -13,12 +13,12 @@ * 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 +#include_next -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 8 // Number of LEDs -#endif +#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 0000000000..a4f400ce76 --- /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 0000000000..0dc7a33142 --- /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 0000000000..bd849292e6 --- /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 0000000000..2f64e65393 --- /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 0000000000..48252e6c77 --- /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 0000000000..fb9df16235 --- /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 0000000000..fb9df16235 --- /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 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/akko/top40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/doodboard/duckboard/config.h b/keyboards/akko/top40/mcuconf.h similarity index 79% rename from keyboards/doodboard/duckboard/config.h rename to keyboards/akko/top40/mcuconf.h index a73678faf2..0d16f4f04e 100644 --- a/keyboards/doodboard/duckboard/config.h +++ b/keyboards/akko/top40/mcuconf.h @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 doodboard +/* 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 @@ -13,12 +13,12 @@ * 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 +#include_next -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 8 // Number of LEDs -#endif +#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 0000000000..87a2287b93 --- /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 0000000000..b753f0682e --- /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 0000000000..7fe193447d --- /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 a442481560..6f81ce367b 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 b3db25d2d8..5c5e29f595 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 0000000000..87e5844f55 --- /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 4b25596ba2..916e1bf9bb --- 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 900836e4a8..d765afd355 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 0052d39844..c7c5b9a8a8 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 2e8732ecc7..135f55b919 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 3f1afb07c1..8fc2f2ff25 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 b94b584df0..d876570c80 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 9d304c8de9..906b78c10e 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 639c56298b..b5b661bef2 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 bca26ecb0a..1d1508fc11 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 c982289a0b..02460e0bed 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 ea54b093ce..a7e76061f6 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 793bb4dd1e..0000000000 --- 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 d60bd0c85d..5be2a3798c 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/info.json b/keyboards/alfredslab/swift65/solder/info.json index 129b0436d9..5259316d9d 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 d645ddf5f6..6cc2546794 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": [6, 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": [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": [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": [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": [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": [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": [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, 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": [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, 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": [8, 7], "x": 16.25, "y": 4.25}, + {"matrix": [9, 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": [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 8762ce72d0..a5e41c2e0f 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 c6db463789..a4d4a51274 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 9c9dc9ffbd..e0579044b9 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 0000000000..058f31322c --- /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 eea0bc06b5..7366e961c1 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 17aa2ae0e8..279b0f1170 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 ddbaa3a8ef..6bcfa56fca 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 b4ab41d42c..5f36081323 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 86e4dbefb3..61f7f9d437 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 ac74e24450..f608132b5a 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 e290606d8c..c0322f72b5 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 8e1200c9f5..747e719be4 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 34e622bfb3..cdad6969cb 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 9ee25d06d8..fd8aa85bbb 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 9ec9dcbbeb..b9449c4714 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 a3bbb13785..dca520375a 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 c94d803db5..b9449c4714 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 236db9bd08..7c626b5a5f 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 a28b91d7c6..07a170a3f6 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 98c4a7e447..18a7cdff49 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": [ - {"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, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"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": 3, "w": 1.25}, + {"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} + ] + }, + "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": [ + {"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, 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": 2, "w": 1.25, "h": 2}, + {"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} ] } } diff --git a/keyboards/amjkeyboard/amj84/keymaps/default/keymap.c b/keyboards/amjkeyboard/amj84/keymaps/default/keymap.c index bf5a8deb05..1bc603a791 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 0000000000..973679d6f5 --- /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 0000000000..d64dfffea0 --- /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 0000000000..c09506c3a5 --- /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 5060c17f3f..b16c84d50e 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 23bfedd721..973e6b3375 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 ecd9f99ed9..b9449c4714 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 d5e1b042f4..fbaa2499d6 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 6ff31fe1f4..8087c6489c 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 c3600290d9..0e5631b02b 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 c3600290d9..0e5631b02b 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 0000000000..02e7781e57 --- /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 0000000000..8a17a5c167 --- /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 0000000000..f0f6d6ca60 --- /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 0000000000..e74b20d9ba --- /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 0000000000..de371dd988 --- /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 0000000000..23519c8977 --- /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 0000000000..d926aa8eb0 --- /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 0000000000..6e7633bfe0 --- /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 cce2b5bc14..f7c7b4b44c 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 1fa276d94e..63f295069d 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 f5e38fc8cb..63d200481c 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 0000000000..cfc3eefa87 --- /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 0000000000..4d00610897 --- /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 0000000000..8e961e3cb0 --- /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 0000000000..6e7633bfe0 --- /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 296abfa02e..fff04f05b3 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 146e0cad7f..ce88965500 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 a30a446491..66790ac3d3 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 9b4f70a7ef..165344004b 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/info.json b/keyboards/aplyard/aplx6/rev2/info.json index 2dc54180eb..06e0296b68 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 90decf0341..bb653a97f2 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 d34d066ded..dd68e9d3b0 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/info.json b/keyboards/arabica37/rev1/info.json index a543a83fd9..14d0c01cb9 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 ddc21dae30..0000000000 --- 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 81646cb00c..dceb80da04 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_extra/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/rules.mk index 1af84436ed..76e55c05f4 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 c57b49a047..d70625c1d6 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 0000000000..215d44642a --- /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 4df22a4922..b18b3b28db 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 d980180a34..fc55fb1c85 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 84f5735d97..47e269c78a 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 0eff403837..287d141ccc 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 5158add71e..b531b22f80 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 0000000000..6fa5ad6cf8 --- /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/config.h b/keyboards/ash1800/config.h index 2f259d40f6..75e72d0e22 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 e028e09135..658e76962d 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/config.h b/keyboards/ash_xiix/config.h index 8f81c450eb..08dd2458c8 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 69155f55c1..d9f9964035 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 0495864be4..e984f8dc96 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 f300362917..28a4e88893 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 434e10c81f..1a2d1eebe1 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 48ffe1be63..08001a6f99 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), + [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_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), + [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_via( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), - [3] = LAYOUT_via( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) -}; \ 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(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 f74ca2c244..f1adcab005 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 126b665a8e..0000000000 --- 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 1a7fb72014..0000000000 --- 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 1b7ffa7785..5a85dec5b4 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 9755a4a3c2..22634018d2 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 1f70534b7f..b0d7d55443 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 5e7d24b055..c93cad9080 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 1eeb17fd17..9b0826402e 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 a4e12a71fb..8a38baabf8 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 fd40f9fcb8..6fcfd64d1f 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 2542b9f62f..50001e978c 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 1f101bd9de..aaa6d26643 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 fad29eeec2..ec0853212c 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 fd03acb5bd..9311e0f808 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 000ee78e21..cc9d7bb3f5 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 0000000000..9458843114 --- /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 0000000000..00bd681aab --- /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 0000000000..3ee2c863e9 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..8bfcae86f1 --- /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 0000000000..7ff128fa69 --- /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 5d7c1c2047..0000000000 --- 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 92f02721de..62c284a845 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 c6042255e3..0000000000 --- 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 ed507485f5..8cf8187df7 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 51b7cb7537..b88dc20535 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 235bb12220..7bb047466b 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 da4886f7d7..513c25d04d 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 7b3a528629..35ca2e0fc3 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 eaa74b4fbb..111fcab3bd 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 05d7e7fb16..95af0f8e73 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 38e619a0aa..44299f80c5 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 732e9075cd..9b782c88c9 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 8a1c538a71..9d121083bd 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 0000000000..a873433953 --- /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 0000000000..36b7ba9cbc --- /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 5d2ff62877..11c4a00e5a --- 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 614d7a7813..72d296bca4 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 a280cb9ed8..bf090bb7d6 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 9a93aea27f..13148ecb04 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 91a4eb0ae8..df0ebb0fdc 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 c4dfe46d74..aa5b2f9a2f 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 167c3b5c87..06c67798c0 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 0f759e5f4d..b4aef08b62 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 996e538ae3..8a0c1946c1 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 38a6e8398a..faec5a9953 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 e9d1e52c16..1e24ec177f 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 85ae15513e..341f6f03e0 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 3cc2c19f8b..338eb1ae90 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 36054e7bb6..ebf8596319 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 8f9be9b406..705ef675ba 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 3fc4587f36..89e181b8f9 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 c48862af2c..9cc216bb71 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 80a68aea5d..bbb0fd66ba 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 ee2692fa06..4b69b244fb 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 3feffac0ab..2c0faa9567 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 c80cd648c3..0a88daf352 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 7fd33fdc4d..c119df524c 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 f10636573e..4436426f30 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 a02c176d5e..5ac7a1cdca 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 c48862af2c..9cc216bb71 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 8fba6b33cd..69c8bd6fb4 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 7822fbc36d..67ada55640 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 f4b25121ef..9b44b3f336 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 8e9b413329..d1ac62e1ab 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 e67aa0d640..85b66277cf 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 f10636573e..4436426f30 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 c6bff84bf5..b9fb103496 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 8ac0939d01..1cfe4724b4 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 36f341e0e7..161d36f45d 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 3043400b7b..2ee88c4f9e 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 e6b47c984e..961a0b1420 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 7814c41976..28a1dee31f 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 723f8ae5b1..cfae56715f 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 f10636573e..4436426f30 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 c5fa0dc192..8604597ff8 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 57ea2c16df..4ab43d6a8e 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 8b65317104..24fb8bc701 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 88d65fbb90..8c0e9b5891 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 0ad3ecd17b..33c62549a1 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 682b2dc6db..24a0262bee 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 ffac558bbc..3984c69f2f 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 1a8643b27d..f9069afd91 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 8ba2d4d19a..0c7dc406b0 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 c0cd88672b..377fd4424a 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 2c66f25554..d463418cf1 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 c42b71866e..8dda103d07 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 2bec7f1981..1d25639281 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 88d65fbb90..8c0e9b5891 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 3e282f0f15..a7f9c94387 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 b325ca7196..b4bb9ea78e 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 f81bca976e..f3eb68587d 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 2c43204ace..5e5ccd2545 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 023c4d553e..e9c2b34592 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 56a00a3c3d..a47464720c 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 cc4bcf887f..b44d64a47a 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 c42b71866e..8dda103d07 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 40a9b2cbeb..8515cac5ef 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 7da2d56ad5..3afca1e792 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 30a1b0ac94..dcdce8f63b 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 88d65fbb90..8c0e9b5891 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 06c6e3ada4..ea18f4349e 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 94c357cd3b..ec0433d387 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 a5a90811ec..f246ce0e7c 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 28c30f9ab7..07bf99658b 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 1dc6607f3d..3bcae1df60 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 2c96b46c2a..e7f01c359d 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 ae8a3c4d88..a75db584e7 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 c42b71866e..8dda103d07 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 4cad8086cd..98088d31c4 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 c9f403a045..6d1ae830eb 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 0c3e614803..e0df316093 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 6c147e6368..4553454096 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 c50cae166e..70873aa527 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 1ac54f5c79..f1440afaf2 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 c951ca8e43..ac0faf8706 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 ddc21dae30..0000000000 --- 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 374e337792..3aae216047 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 8f990eb8ed..179b117243 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 96ecd7010e..67f27ad612 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 2c2aecbf82..756b82e330 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 2d5410de04..bcce7475c6 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 0000000000..1790cf9328 --- /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 a9a826d49f..77b90d035d --- 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 b06dcb251a..39b9e8b47a 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 5911813043..6223ba7b57 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 d1039d0896..976841be79 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 10a92de946..a96d1acce5 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 5f7af98daf..8ac1d9b0d3 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 a22a56ecec..2b955ce793 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 d58c58713c..0b4ce9a090 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 2b835f7c48..1699f7275e 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 0000000000..680c968795 --- /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 0000000000..c86c7b3340 --- /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 0000000000..b7cfaa7686 --- /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 e3420b4a28..31cc2c22b6 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 93ab008b66..2e78cc2a3e 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 c3fced4f78..6cf66b843a 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 a22a56ecec..2b955ce793 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 13f5533c9f..8134bd96cf 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 a3a783b61f..a2d63ae3f9 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 649bc63f23..bc70e3eb98 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 ec4300c811..5f36081323 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 bc9786c09a..ba93091bcc 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 57ba70ec11..b98cb7964f 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 c754176824..36d6fe5ba9 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 9b796dcece..a93b381c85 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 044d1e9e1a..2ed60f6e69 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 3a6d1fecd1..20ab8ed117 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 c34ab85ecf..48d6300325 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 e319754f78..52c859c154 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 6b5678dd27..fb46c2589d 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 a367b59dd3..1b4e5a6d87 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 8c6253965b..428ca3bac6 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 a1d1a3a544..1b4e5a6d87 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 8259afcdcc..4518961b4a 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 08fcffc024..b02c528867 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 d34d066ded..dd68e9d3b0 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 d34d066ded..dd68e9d3b0 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 8272c16300..f0eb661d7b 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 be6d565a32..8d011268c4 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 8d68b964c1..dccecb4980 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 1148c13ebc..4d7d053cfb 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 79ade753b1..91840eeb4f 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 fe6518356e..b01542d77b 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 7c6086db74..0c8b101b20 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 be130dc94d..c574f7ab66 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 0000000000..d0d466bb54 --- /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 0000000000..21ed454e50 --- /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 0000000000..aeeb348125 --- /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 0000000000..1980bc3c87 --- /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 0000000000..230fc6e362 --- /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 0000000000..60e7b5812f --- /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 0000000000..3f4472b882 --- /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 0000000000..d123b2a2fa --- /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 0000000000..0c443722e0 --- /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 0000000000..68bbeeb18a --- /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 a1d1a3a544..1b4e5a6d87 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 8a04fc121e..82b8fb23e4 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 ad199d6578..0000000000 --- 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 25ef2f617b..51e342b10b 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 395f25f859..9c75f75d52 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 1dcbcdb5b8..483c57940c 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 76d6cb41ab..39c5a7c160 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 176d6b7982..80d17a2dfd 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 d609409cb5..7d53f90b15 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 DRV2605L_ZC_DET_TIME 0 +#define DRV2605L_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 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 d50e92e17c..981d4de7c8 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 b2f1131ffd..f5ef6ba5a2 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 93f25a13d8..5b6b0c9299 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 2dae864ddb..5f36081323 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 ce9b4a7ec5..e267922ab8 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 f567c3e12a..2e41e1f700 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 c0439912ff..f0c75284f7 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 585d417688..abbeeb0f36 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 bed39668e8..a3b5f66784 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 0000000000..ee30687d4f --- /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 0000000000..3a8107ad67 --- /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 0000000000..3a8107ad67 --- /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 0000000000..1e5b99807c --- /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 0000000000..84306af968 --- /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 0000000000..6e7633bfe0 --- /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 687baec509..45693628a6 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 e4a2d5b1d6..adb45b95f3 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 bfd3bcd1b4..0f238804a1 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 df83257ebd..7ecadd0076 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 a12e4ca794..c9757847b0 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 17e3e9a481..5b25baa8c4 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 effaf6cbca..7fee44a1ce 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 d0bdbb2258..d60fc7af01 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 fa3b5d2bfe..2b6a22179e 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 3b512642a2..d60fc7af01 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 d4efe4aac6..fcd6cbf56f 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 db52582830..0b42d5fb17 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 181396ad26..446ae01d34 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 37fa2902c5..941d559f42 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 484e7d84a6..98a83af549 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 2a42e17d0c..0a2776afd1 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 e8124aebb9..46728f3803 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 c6cdc66187..03c3269a7e 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 13c63d5b17..2beb545ece 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 5a697f8805..791ecc2687 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 5974c492a1..9bc6e26814 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 7ce6edcba9..6dd24d8e06 --- 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 1d3b2d693b..7f19520ac3 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 c269ae5172..e8d0808384 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 4333289e82..9027c44df5 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 717bf3f3f8..798c599692 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 f56120695a..480e866179 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 aced1f333c..bea77ceac2 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 d3b73e3109..9de1ff5fff 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 b7ab91a339..8d3de1b8b2 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 1296ad8dcc..e8d571f7a9 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 6fc7724b2b..8173ec6a8f 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 7e6ce9cdb9..876e59daa0 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 ee584b24d2..7166206f05 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 2a5031cd32..6dd24d8e06 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 2a5031cd32..6dd24d8e06 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 f9c629dad8..0f2582901b 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 8be2cee0c5..9565795169 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 aa1b707d43..5afdd3772f 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 0000000000..206ca9cf56 --- /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 0000000000..8c1197b84c --- /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 0000000000..07443b50b7 --- /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 0000000000..9dbc210e19 --- /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 0000000000..9dbc210e19 --- /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 0000000000..1e5b99807c --- /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 0000000000..fe29d0eea9 --- /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 0000000000..49015d4dbf --- /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 0000000000..1fee68cdc8 --- /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 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/cannonkeys/bastion60/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/mechlovin/mechlovin9/rev1/config.h b/keyboards/cannonkeys/bastion65/config.h similarity index 71% rename from keyboards/mechlovin/mechlovin9/rev1/config.h rename to keyboards/cannonkeys/bastion65/config.h index 3686536dfb..0b93d1434b 100644 --- a/keyboards/mechlovin/mechlovin9/rev1/config.h +++ b/keyboards/cannonkeys/bastion65/config.h @@ -1,5 +1,5 @@ /* -Copyright 2021 Mechlovin' Studio +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 @@ -17,5 +17,12 @@ 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 3 +#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 0000000000..8c1197b84c --- /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 0000000000..dd7dd4516e --- /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 0000000000..111633864c --- /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 0000000000..66b6c1c1f7 --- /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 0000000000..1e5b99807c --- /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 0000000000..12d7734d5a --- /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 0000000000..49015d4dbf --- /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 0000000000..da2d79b3bc --- /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 0000000000..6e7633bfe0 --- /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 0000000000..0b93d1434b --- /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 0000000000..8c1197b84c --- /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 0000000000..276cc03c51 --- /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 0000000000..b0da09f0b8 --- /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 0000000000..493fea3c9a --- /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 0000000000..1e5b99807c --- /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 0000000000..756c26c3b3 --- /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 0000000000..49015d4dbf --- /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 0000000000..06674d847b --- /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 0000000000..6e7633bfe0 --- /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 0000000000..8b8e7f9aa5 --- /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 0000000000..72733b3d8f --- /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 0000000000..6daafc751f --- /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 0000000000..0d57c828c2 --- /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 0000000000..1e5b99807c --- /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 0000000000..6b3e3f60dd --- /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 0000000000..c28083f53e --- /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 0000000000..6e7633bfe0 --- /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 f56120695a..480e866179 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 09c801a849..9bdf6b8093 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 2a5031cd32..6dd24d8e06 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 a3fc30fc3d..cff0a03945 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 37fc5470f9..d1bbce929a 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 42e73a4650..86794ca0f7 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 e58c511435..a5906b6a90 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 20f73d95a2..bea77ceac2 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 99a4425752..112ebaddde 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 9a57c69c7e..023b329ad2 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 947648f59e..bea77ceac2 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 13a1a2ef48..a3b269f1cf 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 b7ab91a339..8d3de1b8b2 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 f56120695a..480e866179 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 5b983f1f26..4ee7a29916 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 043ee2908a..3b78decb27 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 0ad5b9fbf6..1c1fbf5964 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 aced1f333c..bea77ceac2 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 31aeca1e8d..355ae99f0c 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 b7ab91a339..8d3de1b8b2 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 65ffa50103..0adcfdfa92 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 23b667cf6c..3c447a4bd3 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 42e73a4650..86794ca0f7 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 09c801a849..9bdf6b8093 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 0000000000..7e8d6c6fdd --- /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 0000000000..317eeab093 --- /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 0000000000..a0cacca0f5 --- /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 0000000000..d280f72d1e --- /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 0000000000..b3b684cf19 --- /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 0000000000..1e5b99807c --- /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 0000000000..70b90e9551 --- /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 0000000000..6dd24d8e06 --- /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 2c1baa101d..70d39892fd 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 3b54ee75b6..d5941f5f96 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 42e73a4650..86794ca0f7 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 0000000000..e55d4361d8 --- /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 0000000000..790839f831 --- /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 0000000000..8039eb260e --- /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 0000000000..1e5b99807c --- /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 0000000000..73312c1b69 --- /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 0000000000..0ab54aaaf7 --- /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 65ffa50103..0adcfdfa92 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 678ca4457a..d831eb1aca 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 42e73a4650..86794ca0f7 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 e58c511435..a5906b6a90 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 eaf33bbfa0..703975ab86 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 dd4879b5be..c995210ba4 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 57a302eec3..7b6ddd5ad3 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 c8c8c93e51..703975ab86 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 3b672f4f6d..18fcbc828b 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 57a302eec3..7b6ddd5ad3 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 c8c8c93e51..703975ab86 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 dd2b78b998..1f9fa94086 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 2407875062..5a1f61bac0 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 c766c83f65..703975ab86 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 a1313242fa..ae57bfbf06 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 01c330aeb6..544fe68a88 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 0163604ead..703975ab86 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 28841b48a6..f86951bf5c 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 57a302eec3..7b6ddd5ad3 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 32e7be7370..01d0c0ade1 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 2a5031cd32..6dd24d8e06 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 2a5031cd32..6dd24d8e06 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 29c78c2398..b48d66fd78 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 0980cb4275..d9236b3905 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 42e73a4650..86794ca0f7 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 9f6480ee0e..8cee2da595 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 ce870c49af..29fb6e7619 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 6aac0aefb4..0adcfdfa92 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 540327c6b8..0c2409713b 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 b7ab91a339..8d3de1b8b2 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 d344ffaee6..bea77ceac2 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 4d5d564e66..ed834c73cd 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 b7ab91a339..8d3de1b8b2 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 6aac0aefb4..0adcfdfa92 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 e370e1acc0..3542bca1f6 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 42e73a4650..86794ca0f7 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 df23201719..9d14eaf9aa 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/capsunlocked/cu24/config.h b/keyboards/capsunlocked/cu24/config.h index 1d8a04fe70..8ec34286fc 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 c7d6660f13..f5d56e383e 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 8883514e5d..b7767c19ec 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 61182fcb53..06deeacd69 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 67f1f43c44..b8cd9eeebb 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 3ea17a46e1..24aed787ef 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 bbd4c8c9fd..483baa7993 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 be27fed69c..0058113605 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 0000000000..a5d9746664 --- /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 0000000000..9967388153 --- /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 0000000000..638c9a820f --- /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 similarity index 99% rename from keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c rename to keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c index ee81be6561..5e13e10d15 100644 --- a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c +++ b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c @@ -34,5 +34,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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 similarity index 58% rename from keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c rename to keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/keymap.c index 5ee09fadac..aeef5a1255 100644 --- a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c +++ b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/keymap.c @@ -33,23 +33,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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/keymaps/via/rules.mk b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /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 0000000000..6e7633bfe0 --- /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 0000000000..c21572be66 --- /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 0000000000..28086d6195 --- /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/base/info.json b/keyboards/capsunlocked/cu80/v2/iso/info.json similarity index 71% rename from keyboards/capsunlocked/cu80/v2_iso/base/info.json rename to keyboards/capsunlocked/cu80/v2/iso/info.json index 636e6e2276..33d49db64a 100644 --- a/keyboards/capsunlocked/cu80/v2_iso/base/info.json +++ b/keyboards/capsunlocked/cu80/v2/iso/info.json @@ -1,6 +1,6 @@ { "keyboard_name": "CU80 v2 ISO", "usb": { - "pid": "0x0080" + "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 0000000000..cdc588160e --- /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 similarity index 99% rename from keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c rename to keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c index d42f3533a4..cf5886f457 100644 --- a/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c +++ b/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c @@ -34,5 +34,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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 similarity index 58% rename from keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c rename to keyboards/capsunlocked/cu80/v2/iso/keymaps/via/keymap.c index a72f451b3f..947a0bd97a 100644 --- a/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c +++ b/keyboards/capsunlocked/cu80/v2/iso/keymaps/via/keymap.c @@ -33,23 +33,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD - ), - [2] = LAYOUT_tkl_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT_tkl_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + ) }; 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 0000000000..1e5b99807c --- /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 0000000000..6e7633bfe0 --- /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 0000000000..e450082ba2 --- /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 3199b57da4..0000000000 --- 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 c9d4b88926..0000000000 --- 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/readme.md b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/readme.md deleted file mode 100644 index 717c2c283a..0000000000 --- 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/readme.md b/keyboards/capsunlocked/cu80/v2_ansi/readme.md deleted file mode 100644 index 4768917fc8..0000000000 --- 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/info.json b/keyboards/capsunlocked/cu80/v2_ansi/rgb/info.json deleted file mode 100644 index 45b4b9c8cd..0000000000 --- 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 0919483592..0000000000 --- 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 9470477f49..0000000000 --- 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 e96dd72928..0000000000 --- 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 f014479ef8..0000000000 --- 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/config.h b/keyboards/capsunlocked/cu80/v2_iso/config.h deleted file mode 100644 index 167bf871f1..0000000000 --- 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 b7225214ba..0000000000 --- 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/readme.md b/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/readme.md deleted file mode 100644 index bf55002afe..0000000000 --- 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/readme.md b/keyboards/capsunlocked/cu80/v2_iso/readme.md deleted file mode 100644 index cf8c5fc6fa..0000000000 --- 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/info.json b/keyboards/capsunlocked/cu80/v2_iso/rgb/info.json deleted file mode 100644 index 4f08f6116a..0000000000 --- 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 c53bf74078..0000000000 --- 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 9470477f49..0000000000 --- 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 c0feb35307..0000000000 --- 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 acb1d835aa..0000000000 --- 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 d6ed15acc7..d3ca7b060e 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 98e0780698..fb1ac6044d 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 6ffd3117af..baaee6ca98 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 028e028159..6447189b93 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 6bbd5af9bf..f53b6e9099 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 6b447c1fe6..8e6a6f2ed6 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 0aeca0dd9f..7f4f202a1b 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 4ef27597b3..bb09fb145c 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 502609402f..9bbc6a7f94 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 530fa06413..21d76ea1ac 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 6b47a8f679..f909704280 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 0033db5d2b..e9b1b6d105 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 3369eee53d..c91f0d924d 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 3c52543d25..9b8adff3ec 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 9f44cfd41f..f59c70ac29 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 50aa698524..c71a85e7db 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 30d8df7edb..943262b885 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 bfa5878383..21d76ea1ac 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 fc1dfc9fd5..d9817cbbe1 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 6fe6785edb..4552a75092 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 0f4394b87f..f7a0be79e3 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 efa8f93d3e..876e59daa0 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 262cd6e60c..ca84460348 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 75345075e7..ca124775d7 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 264bddad12..9712b63a38 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 4136faaa7a..07fe2e4c7b 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 0d47ec2ec4..dc5bc478ca 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 514ce68f3f..21d76ea1ac 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 bd6233b208..a47253d5b4 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 d11757cc15..e335720fd1 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 94d40e6645..f88186fadd 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 788fbe39a9..21d76ea1ac 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 7d49bdb5b4..c47c2c4c6b 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 21aeb17d77..0000000000 --- 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 1b2fadd2a9..e6819d40ee 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 e463e1d6c7..0000000000 --- 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 37038b214f..841dae6103 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 ddb9102d36..0000000000 --- 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 ac32d5f8ea..228cc030bb 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 93eed31524..eefa7e73f0 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 4c66b113e7..0000000000 --- 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 8c35532c32..1023cac5d1 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 71b0146437..2687b628f5 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 fa8180e5af..678305ae32 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 62b31cf95b..763f2a4d5c 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 add2f077fe..89fdd4baa1 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 0000000000..ab8afd0c63 --- /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 0000000000..b1ea8bba20 --- /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 0000000000..2f64e65393 --- /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 0000000000..827347f41e --- /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 0000000000..030ef2e2c1 --- /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 0000000000..ee32568148 --- /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 0000000000..030ef2e2c1 --- /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 0000000000..f1adcab005 --- /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 0000000000..e2884f3828 --- /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 0000000000..06522836fd --- /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 0000000000..002458405e --- /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 0000000000..405bd8b5ff --- /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 0000000000..726f190aab --- /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 0000000000..7a20b6e215 --- /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 0000000000..dcd0c90314 --- /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 e6f4333133..3dd10d7381 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 0000000000..00fc2d1bad --- /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 0000000000..cc1bcea109 --- /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 0000000000..2a1b10d442 --- /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 0000000000..1e5b99807c --- /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 0000000000..fa1e2a420d --- /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 0000000000..c4e8d70c81 --- /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 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/churrosoft/deck8/noleds/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/config.h b/keyboards/churrosoft/deck8/rgb/config.h similarity index 66% rename from keyboards/capsunlocked/cu80/v2_iso/rgb/config.h rename to keyboards/churrosoft/deck8/rgb/config.h index db6ab832b4..2454c42fba 100644 --- a/keyboards/capsunlocked/cu80/v2_iso/rgb/config.h +++ b/keyboards/churrosoft/deck8/rgb/config.h @@ -1,31 +1,32 @@ -/* -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 . -*/ +/* 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 -/* enable RGB matrix */ -#define CU80_RGB +#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 -/* moved to RGB specific */ +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS #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_SOLID_COLOR #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT @@ -71,8 +72,3 @@ along with this program. If not, see . #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/churrosoft/deck8/rgb/info.json b/keyboards/churrosoft/deck8/rgb/info.json new file mode 100644 index 0000000000..546c17ca13 --- /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 0000000000..87fe400c24 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..2a92052d88 --- /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 0000000000..1947c30802 --- /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 0000000000..783c00457c --- /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 0000000000..9dcb216caa --- /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/littlealby/mute/config.h b/keyboards/cipulot/ec_alveus/1_0_0/halconf.h similarity index 89% rename from keyboards/littlealby/mute/config.h rename to keyboards/cipulot/ec_alveus/1_0_0/halconf.h index 3a5b0356a9..5b71acecbb 100644 --- a/keyboards/littlealby/mute/config.h +++ b/keyboards/cipulot/ec_alveus/1_0_0/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2019 albybarber +/* 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 @@ -13,8 +13,9 @@ * 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 +#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 0000000000..3e19546089 --- /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 0000000000..d111c6a685 --- /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/7c8/framework/config.h b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h similarity index 84% rename from keyboards/7c8/framework/config.h rename to keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h index f6b4b30cf5..ebf954d07a 100644 --- a/keyboards/7c8/framework/config.h +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Steven Nguyen +/* 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 @@ -16,7 +16,5 @@ #pragma once -#define TAP_CODE_DELAY 16 - -#define LEADER_TIMEOUT 250 -#define LEADER_PER_KEY_TIMING 150 +// 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 0000000000..5fc6c4d94e --- /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 0000000000..520b11f203 --- /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 0000000000..5ea77af44c --- /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 0000000000..1850acf264 --- /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 0000000000..d91f576bd4 --- /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 0000000000..01e82a8805 --- /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 0000000000..b8929fa590 --- /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 0000000000..1947c30802 --- /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 0000000000..783c00457c --- /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 0000000000..9dcb216caa --- /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 0000000000..5b71acecbb --- /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 0000000000..65af74e99b --- /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 0000000000..d111c6a685 --- /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 0000000000..4552cd6457 --- /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/gl516/n51gl/keymaps/salicylic/config.h b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h similarity index 84% rename from keyboards/gl516/n51gl/keymaps/salicylic/config.h rename to keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h index 0e221d844d..ebf954d07a 100644 --- a/keyboards/gl516/n51gl/keymaps/salicylic/config.h +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Salicylic_acid3 +/* 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 @@ -16,7 +16,5 @@ #pragma once -/* Select hand configuration */ - -#define QUICK_TAP_TERM 0 -#define TAPPING_TERM 180 +// 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 0000000000..54a8f3b4f0 --- /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 0000000000..520b11f203 --- /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 0000000000..5ea77af44c --- /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 0000000000..1850acf264 --- /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 0000000000..d91f576bd4 --- /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 0000000000..e4c3ef86c3 --- /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 0000000000..b8929fa590 --- /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 8404967909..6016004b1b 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 979319a622..2a64063a0b 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 cc9382531d..2a64063a0b 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 0000000000..481183b80c --- /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 0000000000..fdf4479423 --- /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 0000000000..9dcb216caa --- /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 0000000000..5b71acecbb --- /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 0000000000..a80a92a7f5 --- /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 0000000000..2ad75a0f3e --- /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 0000000000..a8f569b189 --- /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 0000000000..56548302dd --- /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 0000000000..ebf954d07a --- /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 0000000000..a8fc1b961a --- /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 0000000000..72e314e694 --- /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 0000000000..1850acf264 --- /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 0000000000..d91f576bd4 --- /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 0000000000..c25e498434 --- /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 0000000000..b8929fa590 --- /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 bb51142311..dfe6b13b06 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 f9fd74acfe..b2f265c13f 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 badf092c87..eb0220f677 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 80b5a0b8f5..e69de29bb2 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 07c7421d25..7506922b00 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 38ae378ef4..d35eac9920 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 e505cf44b4..3ec023e5e8 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 9ce0181fe4..8e1eb0e272 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 87154d95c9..c6c08dda59 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 78794cbddb..a2510f9f7f 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/clueboard/2x1800/2021/keymaps/default/keymap.json b/keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json index 1227020b29..10f557d729 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 360f2e0e04..e497594685 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 2460cac2cb..0000000000 --- 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 2225bedad3..860608042f 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 da0538c82e..ba93e7ae1e 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 6b37798c9d..88b3fa1f57 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 0000000000..b98ef38fa5 --- /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 ef26abfc02..4282937c7c 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 6e8451b10c..d6cd9d5f0d 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 ff4c3156fe..af1134ce29 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 a430ea36b7..3dd9898f1a 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 88f853eb44..cedbfeb321 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 9483086fb4..5299ccb4f1 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 3eadcb7f50..fc5c8ee71e 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 971253f396..4254bdc63c 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 8a81ae164d..b09556f3d6 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 3c7028a933..c5a887ce2c 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 3816ee629e..08f25119c2 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 8a56c60746..0802a211f0 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 tapping term */ -#define TAPPING_TERM 100 +#define WS2812_PIO_USE_PIO1 +#define RGB_MATRIX_LED_COUNT 42 -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define SPI_MISO_PIN GP16 +#define POINTING_DEVICE_CS_PIN GP17 -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT +#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 0000000000..914b716f11 --- /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 0000000000..7f46648a7e --- /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 0000000000..7f46648a7e --- /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 0000000000..036bd6d1c3 --- /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 0000000000..7dc382bffc --- /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 0000000000..2e0f2befbf --- /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 c9da0d411b..3a094c2fd1 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 dcab8a1b97..534dee94f1 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/rules.mk b/keyboards/controllerworks/mini36/rules.mk index ee37cd7f6f..161ec22b16 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 0a4d8c84b7..e7fc529592 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 4aa0b8eeaf..ae70408a9f 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/rules.mk b/keyboards/controllerworks/mini42/rules.mk index 71f52c4e4d..161ec22b16 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 21ba99e0b7..bc137dc185 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 c37bdadd61..28de092b3d 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 0e11fa6779..3645dd7da7 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 e0f31ee4e1..1bcde277a2 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 695d0729c1..3b63ece220 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 c97f9dbac4..0000000000 --- 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 d20de266e4..1cc4ff4e63 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 44f6aa3613..922dec71d1 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 96db04787e..dd0232bbcb 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 8a13e5e509..2643e4de4a 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 d368fd25fc..3a084b04ba 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 40d79db10c..4254bdc63c 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 b3f3fbbe57..51030e9e64 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 4378435471..cf006905ab 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 0d4d38d4ea..3eb3b32955 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 50fbb5dcb9..b5128c9365 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 5e7416545d..704bcb5897 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 0aeca0dd9f..7f4f202a1b 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 198ef51d5f..fa9abc574e 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 3e637d11da..bc45ff83ba 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 d34d066ded..dd68e9d3b0 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 c177a33cf5..462ceeb32b 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 e666f1f0cb..369b90ce38 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 f599849448..f0b00f3cf0 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 b52c669ea9..f23a3a4177 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 6497f1662b..0f75dabef6 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 fb951370f2..888499f5a2 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 404fa9e798..fd216bea36 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 6f9d31a755..70eb5c3318 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 a26c4eb8a3..9ff3128931 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 d3a964424f..d95e1136bb 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 5be6a0449b..b2209c7e6d 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 d3a964424f..d95e1136bb 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 4aaf22fd04..4d53cc7564 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 1291d50e92..c019c30756 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 48a2c1d72a..455cf708a6 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 7e1953e34d..fc57fc1bb0 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 c7ed029e3d..3091ed20af 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 f18100d7ff..efa378b099 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 b78c1d45f3..459cf9c691 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 e6ddd80076..1717383ec4 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 d2c2f649e0..c16efc66e3 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 89a2791bcd..ed64986331 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 24101724de..0a3d7a360c 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 922e246ba9..8b6f82d5df 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 84ae6248cb..dcb0007591 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 c40a827798..6dd34f26d7 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 1a48165e3f..84a4f9204f 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 d9db223cfa..676795847a 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 2dcd9007e5..f2bf2ce07b 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 d34d066ded..dd68e9d3b0 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 775268a1d4..2528fec9b0 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 c6c258e255..e7c9b4b953 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 58a00ed6ba..107c493978 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 d0cda95794..82064abb57 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 QMK_ESC_OUTPUT F4 // usually COL -#define QMK_ESC_INPUT D4 // usually ROW -#define QMK_LED B0 - #define NO_ACTION_ONESHOT +#define NO_USB_STARTUP_CHECK + +#define LAYER_STATE_8BIT // 8 layer limit + +#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 +// Undefine r2g effects +# undef ENABLE_RGB_MATRIX_ALPHAS_MODS +# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# undef ENABLE_RGB_MATRIX_BAND_SAT +# undef ENABLE_RGB_MATRIX_BAND_VAL +# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# undef ENABLE_RGB_MATRIX_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 SPLIT_TRANSACTION_IDS_USER USER_CONFIG_SYNC + +# 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 + +# 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_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_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 +# 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_FRAMEBUFFER_EFFECTS -// #undef ENABLE_RGB_MATRIX_TYPING_HEATMAP -# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -# 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 ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# undef ENABLE_RGB_MATRIX_SPLASH -# undef ENABLE_RGB_MATRIX_MULTISPLASH -# undef ENABLE_RGB_MATRIX_SOLID_SPLASH -# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +# 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 -# 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 +# 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 +#ifdef OLED_ENABLE +# define SPLIT_OLED_ENABLE +# define OLED_TIMEOUT 60000 * 10 +# define OLED_FONT_H "glcdfont_multi.c" #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 -#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_godspeed.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c deleted file mode 100644 index ac1f11dbbe..0000000000 --- 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 612b7123b0..0000000000 --- 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 0000000000..28d228190c --- /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 3699f4500b..0000000000 --- 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 aeeae2cbd8..fc05a55403 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; } -#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; -} -#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) { +#ifdef OLED_ENABLE oled_off(); +#endif +#ifdef RGB_MATRIX_ENABLE 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: + case WASD: 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: - 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 0000000000..549826fac6 --- /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 0000000000..d4a73992e0 --- /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 9525cf7cfe..2312ec8c49 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 0000000000..7f87d0a9ea --- /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 0000000000..91c25f5c28 --- /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 0000000000..630ab5df49 --- /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 2366f669a0..9620e41253 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 38a8cf1bdb..17406603fe 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 96ae4bbf95..10cf2fa97c 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 d3a964424f..d95e1136bb 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 24d83947a9..61b07ad0df 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 193aa14dac..d3bbc97a23 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 ad2bfcabc7..8251bc9b8f 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 cb10a3ac07..90b26b88a4 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 7bc23db8aa..69c5d25fd4 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 ba41cd9223..db47ea65ed 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 381cf281e5..46b9126677 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); + 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; - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - 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 6400309fe8..cb57f20aec 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 0000000000..d9b0003c88 --- /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 4da48db08e..0621b371e9 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 07c98a08f8..59b90c792c 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 ed4d34a70b..d2e0957c49 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 432e219476..b14970fbf3 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 d34d066ded..dd68e9d3b0 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 a0684e4a27..2593ac5f8b 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 e44626739d..4c2e374415 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 cfd29368e6..8cdf07854e 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 2378a8637f..60a49100e3 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 4f63c95170..48a27d11f3 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 b696e1de8b..9fe565335a 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 ecdef4acaa..4d9d9bf5c2 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 8dcd2e264e..1b340ff74f 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 000ee78e21..cc9d7bb3f5 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 0000000000..9622315def --- /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/owlab/voice65/soldered/soldered.h b/keyboards/custommk/ergostrafer/halconf.h similarity index 73% rename from keyboards/owlab/voice65/soldered/soldered.h rename to keyboards/custommk/ergostrafer/halconf.h index 2c10428cec..aed037ba2a 100644 --- a/keyboards/owlab/voice65/soldered/soldered.h +++ b/keyboards/custommk/ergostrafer/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2021 kb-elmo +/* 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 @@ -16,15 +16,15 @@ #pragma once -#include "quantum.h" +#define HAL_USE_PWM TRUE -typedef union { - uint32_t raw; - struct { - uint8_t encoder_mode_index :8; - }; -} keyboard_config_t; +#define HAL_USE_SPI TRUE -extern keyboard_config_t keyboard_config; +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#define VOLUME_ANIMATION_TIMER 580 +#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 0000000000..590925065e --- /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 0000000000..31ceb4f1e6 --- /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 0000000000..a40474b4d5 --- /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 0000000000..81f399d46b --- /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 0000000000..68f1df1c26 --- /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 0000000000..4253f570f0 --- /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 0000000000..160b94f786 --- /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 0000000000..dab089647f --- /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 0000000000..ee519ea8b5 --- /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 3010e4989d..00f78c6339 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 769e2e6118..95464e691a 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": [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, 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, 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": [5, 5], "x": 0, "y": 3.1}, - {"matrix": [2, 0], "x": 1, "y": 3.1}, + {"matrix": [5, 5], "x": 0, "y": 2}, + {"matrix": [2, 0], "x": 1, "y": 2}, - {"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, 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, 6], "x": 0, "y": 4.1}, - {"matrix": [4, 4], "x": 1, "y": 4.1}, + {"matrix": [4, 6], "x": 0, "y": 3}, + {"matrix": [4, 4], "x": 1, "y": 3}, - {"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": [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": [4, 1], "x": 0, "y": 5.1}, - {"matrix": [4, 3], "x": 1, "y": 5.1}, + {"matrix": [4, 1], "x": 0, "y": 4}, + {"matrix": [4, 3], "x": 1, "y": 4}, - {"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": [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": [5, 6], "x": 0.5, "y": 1.1}, + {"matrix": [5, 6], "x": 0.5, "y": 0}, - {"matrix": [4, 7], "x": 0, "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, 8], "x": 12.5, "y": 5.1, "w": 1.25}, - {"matrix": [4, 9], "x": 13.75, "y": 5.1, "w": 1.25}, - - {"matrix": [4, 10], "x": 1, "y": 0}, - - {"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 6f518dd964..b577b885b2 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 34de0889ee..bff3309e63 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 +#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(_______, _______) }, }; - -keyevent_t encoder_cw = { - .key = (keypos_t){.row = 4, .col = 10}, - .pressed = false, - .type = KEY_EVENT -}; - - -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 1e5b99807c..f1adcab005 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 0000000000..25ab789d75 --- /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 0000000000..5268fe5de6 --- /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 0000000000..18c618abc6 --- /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 0000000000..9faf2088dd --- /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 0000000000..52e3afa69f --- /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 0000000000..4c467c018e --- /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 0000000000..4253f570f0 --- /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 0000000000..99a23a4542 --- /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 0000000000..e4ac5ef20e --- /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 0000000000..afaa692ab8 --- /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 0000000000..ac2f638cb2 --- /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 0000000000..b79d08c6b7 --- /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 d894b55edf..95d3935904 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 4915497bb0..f859a6b9bf 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 126caeab6a..b6e7c0cdf7 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 0ee3d9a537..5760ba52cd 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 6739b8857d..e49f614cb7 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 +#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(_______, _______) } }; - -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 -}; - -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 43061db1dd..1189f4ad19 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/handwired/dactyl_manuform/6x6/promicro/config.h b/keyboards/cutie_club/fidelity/config.h similarity index 88% rename from keyboards/handwired/dactyl_manuform/6x6/promicro/config.h rename to keyboards/cutie_club/fidelity/config.h index 1da1cb9590..6615bd2ab7 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/promicro/config.h +++ b/keyboards/cutie_club/fidelity/config.h @@ -1,4 +1,4 @@ -/* Copyright 2019 +/* 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 @@ -16,5 +16,5 @@ #pragma once -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 +#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 0000000000..0b06e1e567 --- /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 0000000000..1f076a0e7d --- /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 0000000000..1f076a0e7d --- /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 0000000000..1e5b99807c --- /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 0000000000..9cec49d2cf --- /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 0000000000..79986c3ced --- /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 41d5b39c40..f3ea61ba5e 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 f14a164f57..0000000000 --- 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 89da7fa8b3..e03587e3e4 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 0367948430..6166ea2296 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 0000000000..1d58a60471 --- /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 0000000000..70cf4224c0 --- /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 d34d066ded..dd68e9d3b0 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 b1bcacb60b..9dc42c8fd7 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 e840263639..7ff5519e5a 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 1a3bb0f0ae..d010bbe10e 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 +#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 = 13}, - .pressed = false, - .type = KEY_EVENT -}; - -keyevent_t encoder2_ccw = { - .key = (keypos_t){.row = 0, .col = 14}, - .pressed = false, - .type = KEY_EVENT -}; - -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 1e5b99807c..f1adcab005 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 c8d5803718..156a6d63a1 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 70de5dca44..40cfc22a0f 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 30de32fa60..0e577fcf62 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 1e5b99807c..f1adcab005 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 09cf423e93..261157627a 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 501b5d2e12..d809d59f4c 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 7349bf2411..362164c5ec 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 +#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 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 -}; - -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 eea5e1e2a2..f1adcab005 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 9e42693cb6..c3b8e77d77 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 7a7d3584de..0000000000 --- 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 c8004a2bae..30a94c2b9c 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 692f679d24..cc4c962462 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 d03d284b95..7e486c4550 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 e5859b718a..9ca8e7bc93 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 3b74640fe6..482f816fb3 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 01baaeb593..c3bb88353f 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 5085d50a04..1e5b99807c 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 d9bd708a95..6e7633bfe0 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 545ce1fadb..93fec1ee2d 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 e43a3458ea..ac581c2d0e 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 b2c1315f3a..93fec1ee2d 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 b6ddb96725..45e17c432a 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 984a14d94f..f5d10c1915 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 4a7d4c7718..a4c101ec23 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 984a14d94f..f5d10c1915 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 e8ff47d855..252e111fb2 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 36ef7a27bf..6450b251b7 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 b251334154..1201411d46 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 4d2439ad3c..9b7700e013 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 857fa12e9a..d583f3bb65 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 2d3108fae3..0000000000 --- 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 88c9381319..8fc707be2c 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 c78e814505..c7fe59ff0a 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 d80983202f..20e6673dd2 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 0000000000..b107a87e75 --- /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 1d9b018e6b..8836273865 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 0000000000..8ff617051f --- /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 e8ce9e854b..d1753c1e6c 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 2e582d6833..7d49bc1b03 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 0000000000..839c84fb45 --- /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 0000000000..c785b42a7d --- /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 0000000000..9106258c02 --- /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 0000000000..43061db1dd --- /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 0000000000..3a90c9b0f3 --- /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 0000000000..7ff128fa69 --- /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 2f7ef9fbe8..a1e56ea486 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 7ca2b8cded..d1c1201a54 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 1813baa241..4f3b03b6f9 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 2a1bafaacf..cc43876148 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 52fc9f40ea..aeeb19299e 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 6af3117b94..cd11afc8d4 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/aplyard/aplx6/rev2/config.h b/keyboards/dnworks/frltkl/config.h similarity index 82% rename from keyboards/aplyard/aplx6/rev2/config.h rename to keyboards/dnworks/frltkl/config.h index 2724ccf117..77970ce4d3 100644 --- a/keyboards/aplyard/aplx6/rev2/config.h +++ b/keyboards/dnworks/frltkl/config.h @@ -1,11 +1,10 @@ /* -Copyright 2020 April Aplyard +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 @@ -17,6 +16,5 @@ along with this program. If not, see . #pragma once -#define TAPPING_TERM 200 - -#define TAP_CODE_DELAY 50 +#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 0000000000..dda394649b --- /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 0000000000..295066696d --- /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 0000000000..295066696d --- /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 0000000000..1e5b99807c --- /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 0000000000..cc9946284a --- /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 0000000000..7ff128fa69 --- /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 cf9f4a2dfd..81461ead4d 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], "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": [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], "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 91c381d832..f9b8bc13f4 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 91c381d832..f9b8bc13f4 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 0000000000..a3993e18d0 --- /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 21160e0a8d..5a870e5f7e 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 9267a98141..e3cab833a0 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/kb16/kb16.c b/keyboards/doio/kb16/kb16.c index 34b315a87b..05f5792ea7 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 4d2852fe05..bcf2c2eb0e 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 5c5ad3de8c..b234c1ca6a 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 1e83ca77cc..c3cf6b9a12 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 f931af11e4..88879a4ffa 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 3f3fa1c332..cd3c772994 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 fb06acfd80..2e385d24e3 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 2890fe604a..2e385d24e3 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/readme.md b/keyboards/doio/kb30/readme.md new file mode 100644 index 0000000000..9e66c8993f --- /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 b12899890e..1e48f891f2 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 3f97ac6842..95d3be13d3 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 2496fef083..96a548e512 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 fef8a33f8f..7456316f15 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/info.json b/keyboards/donutcables/budget96/info.json index 98c878d12f..42a817bfd6 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/info.json b/keyboards/doodboard/duckboard/info.json index 367a9b7d72..3d45770112 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 4ddaccda46..0551c8b370 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/info.json b/keyboards/doodboard/duckboard_r2/info.json index 00d0fc6452..4c47e9a70e 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/rules.mk b/keyboards/doodboard/duckboard_r2/rules.mk index 4ddaccda46..0551c8b370 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 bc64bd9001..a18b484746 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 83a3e68be7..ea53bfb915 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 db8da861c1..10cd3bb652 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 70997d3e1a..863d935b0a 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 cca3e4d26f..e18a231380 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 f4a7d40dce..ad7661830a 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/info.json b/keyboards/dotmod/dymium65/info.json index 5149dd897f..650260483c 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 0000000000..26e9f037f5 --- /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 0000000000..3d99670fe3 --- /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 0000000000..cdb9fe4547 --- /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 0000000000..6d3561edbc --- /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 0000000000..ee32568148 --- /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 0000000000..6d3561edbc --- /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 0000000000..f1adcab005 --- /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 0000000000..3844a66757 --- /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 0000000000..6e7633bfe0 --- /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 b1518cb5fb..fd83fe2d68 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 625ca2a238..10af7cb6ca 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 a9f78283d0..aabdb63b8d 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 57250d57ef..cd157a0ed5 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 66d3bf0e46..72ace5a3df 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 453d3b26b1..5f5fd002a1 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 7b12915393..96a4395584 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 ae0579b667..4597ca9d17 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 9d35099552..0df48812aa 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 81be5cffd7..80f4fa69e5 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 fdbdb23ce4..0df48812aa 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 faef95cbee..966ca3faa4 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 0000000000..93f7b2ec3b --- /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 0000000000..2f9cc945c9 --- /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 0000000000..2af6a064f2 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..be8f4c1784 --- /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 0000000000..7ff128fa69 --- /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 0000000000..28d7232bcf --- /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/thekey/v2/config.h b/keyboards/drop/alt/keymaps/via/config.h similarity index 69% rename from keyboards/drop/thekey/v2/config.h rename to keyboards/drop/alt/keymaps/via/config.h index ca6944c2c9..616f8e3291 100644 --- a/keyboards/drop/thekey/v2/config.h +++ b/keyboards/drop/alt/keymaps/via/config.h @@ -2,4 +2,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RGBLIGHT_LED_MAP {4, 0, 1, 2, 3} +#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 0000000000..28d7232bcf --- /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 0000000000..036bd6d1c3 --- /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 0000000000..ed3ea4b1f7 --- /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 0000000000..f3f432390e --- /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 0000000000..77495ecfa0 --- /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 0000000000..bfd7942fff --- /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 0000000000..dc3e45dac0 --- /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 0000000000..bf69d4b289 --- /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 0000000000..a504f81cb1 --- /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 0000000000..2e183fe4d8 --- /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 0000000000..82b1088921 --- /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 0000000000..616f8e3291 --- /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 0000000000..82b1088921 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..ed3ea4b1f7 --- /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 0000000000..539c505cb3 --- /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 0000000000..77495ecfa0 --- /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 0000000000..3d11359120 --- /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 0000000000..dc3e45dac0 --- /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 0000000000..8e5be108b6 --- /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 0000000000..13c11c1833 --- /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 0000000000..6f3091035b --- /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 0000000000..b393e7650b --- /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 0000000000..85a657544f --- /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 13b8257fbb..b8d47c311c 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 f5df3d6152..2df7b0ae5a 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 44d58b0521..36b17d967e 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 871cdb2b6d..fb81be2721 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 7304ec42d5..12328cc148 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 44adba039b..ed0ad9a493 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 cbc194ee8f..40577054cc 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 0000000000..371908bb48 --- /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 0000000000..616f8e3291 --- /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 0000000000..371908bb48 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..ed3ea4b1f7 --- /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 0000000000..6c651d1f83 --- /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 0000000000..77495ecfa0 --- /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 0000000000..44a3a5fc98 --- /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 0000000000..dc3e45dac0 --- /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 0000000000..c9ebc63468 --- /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 0000000000..aec83326d0 --- /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 0000000000..326c418279 --- /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/info.json b/keyboards/drop/thekey/v2/info.json index 7870599fe1..ced9901bea 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 35a7311112..e90d21725a 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 5cc9ef68e4..265652de50 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 68f7221d31..3d16da6d22 100644 --- a/keyboards/dtisaac/dtisaac01/info.json +++ b/keyboards/dtisaac/dtisaac01/info.json @@ -24,8 +24,15 @@ }, "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}, @@ -48,85 +55,394 @@ {"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": [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.5}, - {"matrix": [7, 5], "x": 16.25, "y": 1.5}, - {"matrix": [7, 6], "x": 17.25, "y": 1.5}, + {"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.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": [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.5}, - {"matrix": [8, 5], "x": 16.25, "y": 2.5}, - {"matrix": [8, 6], "x": 17.25, "y": 2.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.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": [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.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": [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.5}, + {"matrix": [10, 5], "x": 16.25, "y": 4.25}, - {"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": [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.5}, - {"matrix": [11, 5], "x": 16.25, "y": 5.5}, - {"matrix": [11, 6], "x": 17.25, "y": 5.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": { + "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}, + + {"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, 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 52cf6ef97c..3e87ebb2b3 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 b976dd03ad..e22205e0bd 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 0407ae2339..aa2ec3fa22 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 0000000000..e1034cb589 --- /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 e39099ef56..94b38574fa 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 4d6019ddba..c2acc3b0d9 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 95459e67b1..ec1826db33 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 287ab0ac4a..fbd5d8cb14 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 cb5a419f56..88a728942f 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 296820d7ca..06d0d59ed1 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 9b557edaba..bee7675b0c 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 8186ce878e..fbbae2723a 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 dc3b7fc728..35aea54456 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 f3bd30fbe5..c1512f806b 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 612df9aa3e..7a3ad76027 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 eff1e5f88c..97885c0910 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 13f2d76139..2f67da17bf 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 69f1033d22..cee675229d 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 ab89e180c0..87b22443e4 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/v1x_oled/rules.mk b/keyboards/dumbpad/v1x_oled/rules.mk index 073a351a03..53db407bc3 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 1944244c3b..7667bb39d0 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 5be344c17b..24c16ac0af 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/dgk6x/hades_ansi/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json index 6be7665280..e3b969149a 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 0cef377c84..7c25f6efb0 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 df4c004ab5..a52d0a9b8f 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 a0e83def36..97fc214c7b 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 7f49352de4..4092126d7f 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/dyz/dyz40/config.h b/keyboards/dyz/dyz40/config.h index 87e057133d..7e7ca8b694 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 bb54647fed..fdd14a7c42 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 87e057133d..7e7ca8b694 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 05e0a2dae7..28300d7914 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 4dd98dcbdf..7e7ca8b694 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 c23b0dca6a..598f236980 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 87e057133d..7e7ca8b694 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 c44e9b585c..298611a742 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 87e057133d..7e7ca8b694 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 8fe32e5071..95ac00a883 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 98673bdef0..bec7fcc3dc 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 4c5fb59d2e..a46b1564ec 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 36b843d459..1a71b9bb86 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 ba8626e95c..9ad357341e 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 525ec93947..1b284df4e3 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 4685510d8b..361706e576 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 3d806edf41..0277675018 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 8d58eed10e..e446178b62 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 4dca4d2396..52b7643850 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/v1/info.json b/keyboards/dztech/dz60rgb/v1/info.json index 56a70183f5..0033c3acc7 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 0b263d8099..4801792d98 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 796b1bc4a3..9028f69d4f 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 7f3b24de74..e5f5083ee5 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 0000000000..9edd2f178f --- /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 0000000000..1e5b99807c --- /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 0000000000..e4db0deb39 --- /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 0000000000..6e7633bfe0 --- /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 d8216891cd..2eac06f6fd 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 ef9bc6b903..1460350d73 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 f5d4e037d9..bce1fbc662 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 be9249cca4..75b36063a6 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 5ba690ee95..ff00df878f 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 c7383aa160..2ee29f792d 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,12 @@ "processor": "STM32F103", "bootloader": "stm32duino", "layouts": { - "LAYOUT": { + "LAYOUT_7u_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 +58,92 @@ {"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}, + {"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, 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}, diff --git a/keyboards/eason/aeroboard/keymaps/default/keymap.c b/keyboards/eason/aeroboard/keymaps/default/keymap.c index 61f2a90364..2e6d012fba 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 614c3daa02..0c410242ef 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 9f38d0d71b..f8a65f43e9 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 cfe3e84fda..0000000000 --- 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 6496a6be71..1ad66fdd65 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/info.json b/keyboards/eason/greatsword80/info.json index d198d65f2a..74c469f7ce 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 b0726f908a..baa7073176 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 c735adc927..dfb669e72e 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 63e79e2da9..98ca45243d 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 68f54a8014..0fc8019a1d 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 8151451a32..ad53a34525 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 2fd78a13f1..76b31f0a0a 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 6677c4587e..89b008296b 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 d7275dfa70..dc8bcd01c6 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 b9b6b86c98..73f4b2baae 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 63ca3aa15d..2be212702a 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 69c4b26a9e..b7b67ba5b2 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 e59dbc15e6..7caa265c1a 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 0c8bb289b0..69f94729fb 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 f37d43dd2f..1958d0a932 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 14e4950c4a..745710f92f 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 37beac094b..66b91b7c4e 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 dde20e49dc..edcf445c32 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 ea2a48be25..b7749ed341 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 0000000000..50d95fae1e --- /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 0000000000..6f3fa04a67 --- /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 0000000000..482a34c129 --- /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 0000000000..482a34c129 --- /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 0000000000..ca9fed0e6b --- /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 0000000000..fe9b1819ee --- /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 0000000000..6e7633bfe0 --- /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 e3df68481d..94592a01eb 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 9af00830e0..bc208afcec 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 648a0c38ff..541e00aa44 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 dc1f568fc4..b62d75af3c 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 8c44408055..742640619e 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 7000bb6571..7c0709f41e 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 bf53058d52..d5971524a6 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 6c8825c915..868a418403 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 41dbe2178a..bd42a703f8 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 5c545a6fa8..d5fd612767 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 3adcd0198b..de850a0548 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 0c23a12969..befc114617 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 5727d11184..1b2942cd42 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 45a101ec81..99d10e9a12 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 34284e146d..f8fce23ce5 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 d786799810..e92dd4dccc 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 326a8f8ffe..790a2696fb 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 01fd3265e9..77aecec0ed 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 01118712d2..3dae9f6603 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 ba31f9c260..2a473d0c11 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 01118712d2..3dae9f6603 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 e39d2b4c22..08a18b5f0a 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 6eaf9220c7..e2e4c258cc 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 f10b4ab8a4..d17b501909 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 ee7e079772..f962b74196 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 d4b5162126..dc00260cf3 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 e6378f4a59..87802fbd6f 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 352b89dad9..e14ecadbf0 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 b1642612ea..8c5720d0c4 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 5f37dc519b..0000000000 --- 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 dc9b13961f..fc4046d3fc 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 ae0151d512..f50975beb3 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 c442c74549..bb068b1536 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 abfa0fe63d..230ff5e311 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 a58c3a5233..7d0f3ab2e0 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 04247c7e73..230ff5e311 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 fc134b502f..bc9dcec128 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 e17b637a1e..28be4f1a5b 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 d1195a597b..38da22f406 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 1f7440aa20..0000000000 --- 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 621be94232..1609c96971 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 9d31e13dcb..b7e8690b3c 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 3fab8ca8ab..76f37e9883 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 c6acec2658..7f820b2cad 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 0381b209a8..3b833c3a97 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 8c0ffda30b..0000000000 --- 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 8fbbcbfea3..551efa299c 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 bb3f00287e..0000000000 --- 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 c0d2ffa868..123ab8f7bb 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 6e9255bebb..0000000000 --- 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 eef3f67847..90a9a8b40b 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 bb3f00287e..0000000000 --- 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 622d7db564..65be093b49 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 896eb97b25..5f36081323 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 42ec77a9fb..ed94f9805e 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 f4f04f2bbe..f6e1e895ab 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 3244831b4d..33e17f14b5 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 730536b513..0ccb642711 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 60dc68eaf7..779a717ec5 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 c0f9128b52..d34440389a 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/info.json b/keyboards/exent/info.json index 9f0f3e3945..54d54f0897 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 4bfabf0e8a..0000000000 --- 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 f2d0ea53e6..453cdf2c81 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/info.json b/keyboards/eyeohdesigns/theboulevard/info.json index a94968a989..afec9c4419 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 9803d8cc70..abd2f7fce9 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 9803d8cc70..abd2f7fce9 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 ddc21dae30..0000000000 --- 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 514c64f2c3..1f7844a8ef 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 4e5ad26583..21231c7c57 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 8686f292fc..b9a4a87056 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 e51283eb19..9489463a4c 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 b6fcea0c6b..9f56bd3a20 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 1be7f37639..21c89849fd 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 670b0f8e38..cd23bdb2b8 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 8250619bdc..e65ed35dae 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 d34d066ded..dd68e9d3b0 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 339a5cde50..0da1ff08ea 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 f59617ddce..53d8145b7a 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 fe4676b7f7..f6ca00552e 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 da87725d19..e9a221cb3f 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/ferris/0_2/bling/info.json b/keyboards/ferris/0_2/bling/info.json index 28ed4f90e3..1e9703f599 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 3706886a24..ba5e31e2cb 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 23a2f15d99..19b030cdc1 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 356c148d8e..dbfc2f4320 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 4aa0cd52ea..2b28e8a484 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 6e026ecc58..8244960e45 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 4204f1d129..d1875f650f 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 ba9239629c..96f969146f 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 3b205ce76f..990e5335c3 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 7b468da941..5e0d9d5fb9 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 3b205ce76f..990e5335c3 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 27c3ece3ba..dae926d08c 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 4131a88429..9f45958564 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 415405a9e8..cd2f6a7ac2 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 5fa5e84acd..9bee316792 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 058cb4ea23..9028c3dc8d 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 89e8c6c221..afdacdd080 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 7e99f1bd10..01a859e0ba 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 1292feb117..b352868d2d 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 689f396b3e..dd717bb68a 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 569d563e45..68becd0767 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 2f1bea8698..ecc495d59a 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 be5bee6e44..ea4c7011e1 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 98fb7f6f49..822d9662d4 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": [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, "w": 2}, + {"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} + ] + }, + "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": [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, 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} ] } } diff --git a/keyboards/fjlabs/swordfish/keymaps/default/keymap.c b/keyboards/fjlabs/swordfish/keymaps/default/keymap.c index ecce4f1a7b..2b2c8cf19f 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 50ade4767e..7428985841 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 89e8c6c221..afdacdd080 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 b07464ad36..b45f7258b6 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 89e8c6c221..afdacdd080 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 6e9a5bf821..7f6b3ce970 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 5932113c94..afdacdd080 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 098bad3fcf..2101e17f03 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 0000000000..8828834d74 --- /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 0000000000..da62deaf29 --- /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 0000000000..9127042f71 --- /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 0000000000..1ab95c54a5 --- /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 0000000000..1ab95c54a5 --- /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 0000000000..bfbf8681c9 --- /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 0000000000..0c4e8d5745 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/flehrad/bigswitch/config.h b/keyboards/flehrad/bigswitch/config.h index ddf4546bbb..4416393247 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 095f8284e4..cf981b0d90 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 34197c8578..60f42fbcda 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 c2ff091ace..70be63d3c2 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 e2bef353ef..90490bb02f 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 84306f36a0..0000000000 --- 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 f7ce772482..d1e40b9ece 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 55edfade82..6bde2711c2 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 a2c27492cf..6d2aadcb43 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 d13ea1c845..5dec5df1f1 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 175e621e23..0ae02161cd 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 8ee5b2a14a..43bd4ee571 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 619f59671d..20f5c06ecd 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 003eb0a72c..43bd4ee571 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 ef7c4386c8..e2e526303d 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 a7b28ae1db..d4515ef219 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 f8b3c35edd..f7f3d202ff 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 a7b28ae1db..d4515ef219 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 a277830d9d..f4b9c704f7 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 f68ee9bd55..0b0ee83971 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 f5b8a7eb0c..b19e3c3104 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 03e8b6b3d4..0000000000 --- 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 1253771b5c..d210a85437 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 03e8b6b3d4..0000000000 --- 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 8bb9a58ee2..a7c9bbc7e6 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 32d34ead42..d28c057500 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 d1a77d256d..6112c4832c 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 ee18003f57..fc8ca2130f 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 bfe825dcc9..0000000000 --- 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 2160ae9be6..4e3b3b8ee9 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 116c09d6ac..0000000000 --- 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 5801c63a23..82727ffd3e 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 187a7809bc..bebed352e2 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 2874f3d5e4..d153f9f834 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 731941b437..e8d7a7aed5 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 ba2a345045..0000000000 --- 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 b5b59df7aa..871d1f77fc 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 456eb3f9d9..0ab992eac3 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 1de1f3ab85..80558ad692 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 db2ff42a1e..f0785f24bc 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 0a654eaa4a..51737f75af 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 dbff6ccf6f..44cb5a4304 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 53711cb271..bc53f2db5f 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 7880416719..e1bd70f656 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 95e12cc36c..195915e431 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 061f8ff869..c5f6be4750 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 6887c869b9..adf5cfd2e7 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 344ccf3fff..47f9064e45 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 504238b21c..95b1ca94d7 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/rules.mk b/keyboards/geekboards/macropad_v2/rules.mk index b7807ae418..c49a369dd0 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 16f3496a13..363ab895a5 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 77a9a937e5..571740b716 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 88dea9b776..cebb8fb073 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 6401a0cbf8..6d96c572ba 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 f1cc032c97..658e4ec984 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 2814b8001a..068f500fb0 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 0000000000..9c0da5e183 --- /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 683a20e5c0..1f63f8feef 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 6576ee9efe..ddeaa2abff 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 d847becc1a..dfd36d0f82 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/gh60/satan/config.h b/keyboards/gh60/satan/config.h index 1fbb35b3a2..b9449c4714 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 6432d8eb45..53e2b04df6 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 b8c05a5984..fe07e497f9 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 c294394eca..0000000000 --- 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 191cca4f57..0597c2e7a0 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 f33767ca64..f99d522ead 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 28a34c4269..b3f2426e88 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 264f20fbca..b74127fc5e 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 137a6513b6..4c4b10f458 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 434abf68f5..9559bde119 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 f275a3e789..86054ba1fd 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/ghs/rar/config.h b/keyboards/ghs/rar/config.h index 9cd6e7be5a..13265701b0 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 9a684c2840..6bf890b3f8 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 a92b099328..8b13789179 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 aa0095aebd..e4946a3bb3 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 7c2fa72047..592d7a6966 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 8e95b89a91..338d5d8e0f 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 daa31ffa7b..fb68c02c70 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 6581733dd1..0000000000 --- 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 6581733dd1..0000000000 --- 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 ea3000c010..e4ff336930 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 6581733dd1..0000000000 --- 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 d738d31d3d..c958147971 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/gkeyboard/gkb_m16/config.h b/keyboards/gkeyboard/gkb_m16/config.h index 1f278e6e31..a8deb9de2a 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 ebf5ee8845..9d80eba885 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 81ac15251f..2111d58cc4 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 49205e59d1..16d7526f81 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 a34c1e6c4c..fa78788e66 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 294015d80b..d93c728213 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 cd919a72c4..a4114e1ca6 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 9da8930c60..c5abdd4542 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/keymap.c b/keyboards/gl516/n51gl/keymaps/salicylic/keymap.c deleted file mode 100644 index 81f7b8665f..0000000000 --- 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 cf1aa7d595..10980c6ad0 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 036bd6d1c3..f1adcab005 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 c22fe89f58..902d1b6b5d 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 471bc69b8e..42affd3de6 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 10653ae463..567ea686f8 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 64febeb948..3c6a2fd906 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 de078864ce..90609dc911 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 482e52f504..cb0ecf9445 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, 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}, - {"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": [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.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": [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, "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": [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.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": [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, "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": [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.5, "y": 3}, - {"matrix": [11, 7], "x": 16.5, "y": 3}, - {"matrix": [12, 7], "x": 17.5, "y": 3}, + {"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, "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": [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.25, "y": 4}, + {"matrix": [1, 7], "x": 14.125, "y": 4.25}, - {"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": [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, "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, 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.25, "y": 5}, - {"matrix": [2, 7], "x": 14.25, "y": 5}, - {"matrix": [3, 7], "x": 15.25, "y": 5}, + {"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.5, "y": 5}, - {"matrix": [5, 7], "x": 17.5, "y": 5} + {"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 16aae9b330..e3b5cdcfa1 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 de9eb07edc..6534d28027 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 4df94d45ee..604a49b503 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 8188418469..069823663e 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 7a1532424b..7e0adbdb05 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 5dda6f15bc..18271fb4d2 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 f803b44abb..3d2792b4a6 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 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 + +/* 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; + +/* 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); + +#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)) + +/* CMD+Q delay */ +#ifndef CMD_Q_DELAY +# define CMD_Q_DELAY 1000 +#endif +#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 + #ifdef RGB_MATRIX_ENABLE -/* Renaming those to make the purpose on this keymap clearer */ -#define LED_FLAG_CAPS LED_FLAG_NONE -#define LED_FLAG_EFFECTS LED_FLAG_INDICATOR +# 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 -static void set_rgb_caps_leds(void); +/* 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 uint16_t effect_started_time = 0; -static uint8_t r_effect = 0x0, g_effect = 0x0, b_effect = 0x0; -static void start_effects(void); +static void set_rgb_layer_winfn(void); +static void set_rgb_layer_macfn(void); -/* 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" -#endif -#if EFFECTS_INTERVAL <= 0 || EFFECTS_INTERVAL >= 32767 - #error "EFFECTS_INTERVAL must be a positive integer smaller than 32767" -#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 +/* 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); -static uint8_t previous_effect_layer = 255; +/* 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); -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; -} - -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. */ - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_disable(); - } - return true; -} +/* 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 +} + +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); + } +#endif + + // Read the user config from EEPROM + user_config.raw = eeconfig_read_user(); +} + +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); } - start_effects(); +#endif + user_config.cmd_q_delay_enabled = !user_config.cmd_q_delay_enabled; + eeconfig_update_user(user_config.raw); } - 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: - 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 - } - } - break; - 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; + 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; } } } break; - #endif // RGB_MATRIX_ENABLE +#ifdef RGB_MATRIX_ENABLE +# ifdef NKRO_ENABLE + case NK_TOGG: + if (record->event.pressed) { + 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) { + 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 } return true; } -#ifdef RGB_MATRIX_ENABLE -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; - 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(); - } - } - } - } - 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(); - } - return false; +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 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); +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) { + 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); + return false; + } else { + /* Effect duration is finished */ + stop_effects(); + } + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color_all(CAPS_LOCK_COLOR); + } else if (!user_config.rgb_enabled) { + rgb_matrix_set_color_all(RGB_OFF); + } + 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 b080f02c6b..2b21bd2821 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 d5942a2e90..14e4106321 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 7b78ca5716..52ea4538c8 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 ff693e3573..082b5f8656 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 972551ec41..a4aef24e65 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 d551f4cb50..065cf3eddc 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 dbdf673f3e..470709ca75 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 9eef6b6cc4..acdf49b47d 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 a55a587467..d00df8f11f 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 e8a08e79e4..476ee33d61 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 ecfd4b5b95..4a54444867 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 362574dea8..d8a6abbc38 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 1dfa43bfe1..bbaa577c92 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 7a2d573aaf..578f469599 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 fe6f1b1867..653885f963 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 41df8a357d..0000000000 --- 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 138b1bfe5c..c0bd4749c1 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 b1c76459fc..b5b661bef2 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 8bcd90705a..db7c2f3b68 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 88824052b2..27d4b4a6e5 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 7caa7cdd60..85e0978a59 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 703a4ac4e1..edf9d72c6e 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 7a2cc1f03c..0000000000 --- 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 1912e10989..382ef80517 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 7a2cc1f03c..0000000000 --- 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 7bc54a5bc5..e6c0b972b8 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 0000000000..0a0596e64c --- /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 0000000000..0fbab667d4 --- /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 0000000000..82ff711808 --- /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 0000000000..82ff711808 --- /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 0000000000..1e5b99807c --- /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 0000000000..dc09a00d1d --- /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 0000000000..7ff128fa69 --- /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 0000000000..04dd85406f --- /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 81bccd015b..a7f362f47b 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 6a5d86e0c7..e808036385 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 71c88a0db0..1ce128b596 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 ddcf0ebe4a..441e3b8c1a 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 96a23f7f61..e51aa7e7df 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 9891423e3f..4c8c95e41e 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 6e8e2e6144..939d1ec262 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 0000000000..0a77c9320c --- /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 0000000000..43489484ae --- /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 0000000000..f992e55b39 --- /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 0000000000..7114cc3295 --- /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 7b7acf32b6..ca2798c907 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 612d3af50a..fb1dc102b7 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 d07da3fca0..188b4696f1 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 02e4116bb6..c9fc1028f8 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 DRV2605L_ZC_DET_TIME 0 +#define DRV2605L_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 RGB_MATRIX_LED_COUNT 10 // #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/hadron/ver3/info.json b/keyboards/hadron/ver3/info.json index 753a9676ce..381a5dc550 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 6f70f09bee..0000000000 --- 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 e99ff55caf..a3b522fa04 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 01fe45bd05..fcae7f07c6 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 5739e57d19..edc5fa7d5b 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 6f5dd093d6..d3c5de4338 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 fb0666fbf4..0c9b4ddb0f 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 c23763ee9b..ea52da2928 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 5f8bdb38a6..1ee23d967b 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 266889cfe7..475da66262 --- 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 819f0f640f..5f36081323 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 1df0ccbdee..b33273e19d 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 f804456960..c2949ab3a7 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 c3bc103d77..6d380fc3c6 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 57a8664649..fa9a83d08e 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 dccafc6d86..e2cc8dbf71 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 15cf817e7e..0c5b506f63 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 55716a3b7a..248e43f88e 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 5bc9833fa5..63dc42e7db 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 6291115158..fa8d618c74 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 dfa762ce81..e71156e988 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 8d59a107f7..405436b6f5 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 395f25f859..9c75f75d52 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 3439d8c8c1..ee492503d1 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 6f44c0cbba..b20b3099e9 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 cecaefe80d..820851f803 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 cb1d6f6f0a..3df8e9f7bb 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 eb6e57abde..e5c9479453 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 c9d3996b93..0dafe2f289 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 75eb7537b2..65cc766945 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 555731bdd5..6730c14a36 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 61dddcd9c2..91253b1695 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 0454b36669..910a628ca6 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 677804cbe9..4d245e80e4 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 2cb9a7a4d9..0bbdefe921 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 9a1946bb60..91a488483f 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 8cafa3c6f3..7e50f570ed 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 1f1c2a2cf9..0fb11d0418 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 0cba448703..0f8383a2aa 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 b315e309ae..70aafa3bfd 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 1bca5a6fa4..2786c33451 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 bbc4eccf18..0000000000 --- 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 3a37174f36..a49ce18c4b 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 bbc4eccf18..0000000000 --- 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 1dc5a331e1..c076b50fa3 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 bbc4eccf18..0000000000 --- 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 86682eb0f4..6f9c3a7d2d 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 30d9a2f459..0000000000 --- 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 e2bac91ab1..d0b726a1ff 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 5703448756..0000000000 --- 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 399dae6c33..c788072d92 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 813b565036..4d9d9bf5c2 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 47eaab67a7..6b2db46b1f 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 000ee78e21..cc9d7bb3f5 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 64364451ff..9fc090c3ae 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 db3f2bbacc..295fead587 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 411362b652..7fa8dfdd34 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 f37a8f2722..94b407d735 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 8297e609a1..e95c380d9c 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 0000000000..e607bfad1a --- /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 0000000000..49d5477f0a --- /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 0000000000..6422699684 --- /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 0000000000..49d5477f0a --- /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 0000000000..aad8656a06 --- /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 0000000000..1e5b99807c --- /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 0000000000..580539639b --- /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 0000000000..e69de29bb2 diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json b/keyboards/handwired/dactyl_kinesis/info.json similarity index 90% rename from keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json rename to keyboards/handwired/dactyl_kinesis/info.json index 8f14c5049e..91cb98e040 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json +++ b/keyboards/handwired/dactyl_kinesis/info.json @@ -1,6 +1,6 @@ { - "keyboard_name": "Dactyl-Manuform (6x6+4)", - "manufacturer": "tshort", + "keyboard_name": "Dactyl Kinesis", + "manufacturer": "dmik", "url": "", "maintainer": "dmik", "usb": { @@ -8,6 +8,20 @@ "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" }, @@ -17,12 +31,12 @@ }, "diode_direction": "COL2ROW", "split": { + "enabled": true, "soft_serial_pin": "D0" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { - "LAYOUT_6x6_kinesis": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -104,22 +118,22 @@ {"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": [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 0000000000..05e138da72 --- /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 0000000000..69427406d1 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..4d581b974e --- /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/splittest/config.h b/keyboards/handwired/dactyl_lightcycle/keymaps/default/config.h similarity index 58% rename from keyboards/handwired/splittest/config.h rename to keyboards/handwired/dactyl_lightcycle/keymaps/default/config.h index 49bc3cbddb..49b067cc58 100644 --- a/keyboards/handwired/splittest/config.h +++ b/keyboards/handwired/dactyl_lightcycle/keymaps/default/config.h @@ -1,6 +1,5 @@ /* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert +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 @@ -20,33 +19,22 @@ along with this program. If not, see . /* 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 } +/* Enables This makes it easier for fast typists to use dual-function keys */ +#define PERMISSIVE_HOLD -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ +/* 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 -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT +/* layer config */ +#define TAPPING_TOGGLE 1 /* disable action features */ //#define NO_ACTION_LAYER 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 0000000000..a9cc3e2741 --- /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/mt/mt40/config.h b/keyboards/handwired/dactyl_lightcycle/keymaps/via/config.h similarity index 56% rename from keyboards/mt/mt40/config.h rename to keyboards/handwired/dactyl_lightcycle/keymaps/via/config.h index bb90137436..49b067cc58 100644 --- a/keyboards/mt/mt40/config.h +++ b/keyboards/handwired/dactyl_lightcycle/keymaps/via/config.h @@ -1,5 +1,5 @@ /* -Copyright 2017 REPLACE_WITH_YOUR_NAME +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 @@ -17,33 +17,24 @@ 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 */ +#define LOCKING_SUPPORT_ENABLE + /* Locking resynchronize hack */ -/* #define LOCKING_RESYNC_ENABLE */ +#define LOCKING_RESYNC_ENABLE -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ +/* Enables This makes it easier for fast typists to use dual-function keys */ +#define PERMISSIVE_HOLD -/* disable debug print */ -//#define NO_DEBUG +/* 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 -/* disable print */ -//#define NO_PRINT +/* layer config */ +#define TAPPING_TOGGLE 1 /* disable action features */ //#define NO_ACTION_LAYER 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 0000000000..c1089e7711 --- /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 0000000000..b351942f44 --- /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 0000000000..e69de29bb2 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 38ee6f4252..0000000000 --- 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/info.json b/keyboards/handwired/dactyl_manuform/4x5/info.json index 5fdab01ef4..141bb47717 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 7ad7118ee4..76f13971d4 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 cb78c9fb56..8d38152f96 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 - ), - /* 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_ESC, ____, ____, ____, ____, ____, + ____, ____, ____, ____ + ), + + [_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, + ____, ____, ____, ____, ____, ____, + ____, ____, ____, ____ ), - /* 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 0e96202315..5774ab7f3b 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 9a4e39dad2..0000000000 --- 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 7de3ef0b0d..5b415fbd2b 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 2e92d4b86b..24f6b35f57 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 9991dcad71..53ce5a3190 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 9a4e39dad2..0000000000 --- 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 b9ebd6d7df..f54f0d56d2 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/info.json b/keyboards/handwired/dactyl_manuform/5x6/info.json index 89c2c800c6..e6372961d8 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 53ca4b51d0..09e4c42d69 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 0000000000..337f332c5d --- /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 0000000000..1e5b99807c --- /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 6e58ff5d15..c83f96e102 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 f82f84da9c..78a602cb64 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}, - {"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": [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}, - {"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": [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}, - {"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": [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}, - {"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": [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}, - {"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": [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}, - {"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": [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}, + + {"matrix": [4, 4], "x": 4, "y": 5}, + {"matrix": [4, 5], "x": 5, "y": 5}, + + {"matrix": [10, 0], "x": 11, "y": 5}, + {"matrix": [10, 1], "x": 12, "y": 5}, + + {"matrix": [5, 4], "x": 6, "y": 6}, + {"matrix": [5, 5], "x": 7, "y": 6}, + + {"matrix": [11, 0], "x": 9, "y": 6}, + {"matrix": [11, 1], "x": 10, "y": 6}, + + {"matrix": [5, 2], "x": 6, "y": 7}, + {"matrix": [5, 3], "x": 7, "y": 7}, + + {"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 20699ed2e1..4e774ea716 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 69f68bbfb8..b21270e391 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 5ef0d2fdb9..6e7633bfe0 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 9a4e39dad2..0000000000 --- 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 b166df22a0..68270606cc 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/info.json b/keyboards/handwired/dactyl_manuform/6x6/promicro/info.json index 2b542a15da..245310fd3c 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 9a4e39dad2..0000000000 --- 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 567057cf08..955060de7a 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 9a4e39dad2..0000000000 --- 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/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/6x6_kinesis/keymaps/default/keymap.c deleted file mode 100644 index 2ef9794d6d..0000000000 --- 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 1e44cc9601..0000000000 --- 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 b893863bb5..0000000000 --- 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 9a4e39dad2..0000000000 --- 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 ea983da9c8..529d92bd3f 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 83fab9409d..5653786dcf 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 0e8436788e..dbbc54cdca 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 b893863bb5..e69de29bb2 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 41af664c25..e8bbf91d08 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 c2a818bde2..8e27a68f16 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 560562f544..dd28184400 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 -``` +*Dactyl ManuForm's* are built in variations that cater for different row and column counts, and thumb clusters. -example: +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 -``` -$ make handwired/dactyl_manuform/4x5:default -``` +Variants are denoted as `RowCount`*x*`ColumnCount`*(_`Alteration`)* -If everything worked correctly you will see a file: +### 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 | -``` -dactyl_manuform_YOUR_LAYOUT_YOUR_KEYMAP_NAME.hex -``` +### 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`) | -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. +### 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 | + +## Case Files Generator + +[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. + +## Compile + +Make example for this keyboard (after setting up your build environment) in the 5x6 variant: + + make handwired/dactyl_manuform/5x6:default + +Flashing example for this keyboard: + + make handwired/dactyl_manuform/5x6: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 -### [Keymaps 4x5](/keyboards/handwired/dactyl_manuform/4x5/keymaps/) +### Default -#### Default +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. -Simple QWERTY layout with 3 Layers. +### 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. -#### Dvorak +Variants with VIA support: +- 4x6 +- 5x6_5 +- 5x7 -### [Keymaps 5x6](/keyboards/handwired/dactyl_manuform/5x6/keymaps/) +### Miryoku -#### Default +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). -Just a copy of the Impstyle keymap. Feel free to adjust it. +Variants with *Miryoku* support: +- 4x5 +- 4x5_5 +- 4x6 +- 4x6_5 +- 5x6 -#### Impstyle +## Non-Pro Micro Controller Compilation -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. - -#### 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. - -### [Keymaps 5x7 aka almost Ergodox](/keyboards/handwired/dactyl_manuform/5x7/keymaps/) - -#### Default - -Keymap of Loligagger from geekhack. - -### [Keymaps 6x6](/keyboards/handwired/dactyl_manuform/6x6/keymaps/) - -#### Default - -Simple QWERTY layout with 3 Layers. - -### [Keymaps 6x7](/keyboards/handwired/dactyl_manuform/6x7/keymaps/) - -#### Default - -Simple QWERTY layout with 3 Layers. - -### [Keymaps 3x5_3](/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/) - -#### Dlford - -QWERTY/Colemak layout with per key RGB and other features - -## 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. - -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. +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) +To flash your board with generated firmware file, please see [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing) -## Choosing which board to plug the USB cable into (choosing Master) +## Handedness configurations -Because the two boards are identical, the firmware has logic to differentiate the left and right board. +See [Handedness](https://docs.qmk.fm/#/config_options?id=setting-handedness) documentation for more information on configuring handedness/master half. -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. - -### Setting the left hand as master - -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. - -### 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` +## 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. ``` - #define MASTER_RIGHT +qmk compile -kb handwired/dactyl_manuform/4x6 -km via ``` -### Setting EE_hands to use either hands as master +## Bootloader -If you define `EE_HANDS` in your `config.h`, you will need to set the -EEPROM for the left and right halves. +Enter the bootloader in 3 ways: -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: - -``` -make handwired/dactyl_promicro:default:dfu-split-left -make handwired/dactyl_promicro:default:dfu-split-right -``` - -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 - -Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects -the frequency on the 3.3V board. - -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 0000000000..081fab571a --- /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 0000000000..cfd95db563 --- /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 0000000000..cfd95db563 --- /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 0000000000..1e5b99807c --- /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 0000000000..d4c2d44def --- /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 0000000000..6e7633bfe0 --- /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_manuform/3x5_3/info.json b/keyboards/handwired/dactyl_minidox/info.json similarity index 91% rename from keyboards/handwired/dactyl_manuform/3x5_3/info.json rename to keyboards/handwired/dactyl_minidox/info.json index cfe109fb37..a0bb416ce4 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/info.json +++ b/keyboards/handwired/dactyl_minidox/info.json @@ -1,6 +1,6 @@ { - "keyboard_name": "Dactyl Minidox (3x5+3)", - "manufacturer": "DLFord", + "keyboard_name": "Dactyl Minidox", + "manufacturer": "dlford", "url": "https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/", "maintainer": "dlford", "usb": { @@ -12,7 +12,7 @@ "pin": "D3" }, "rgb_matrix": { - "driver": "WS2812" + "driver": "ws2812" }, "matrix_pins": { "cols": ["C6", "D7", "E6", "B4", "B5"], @@ -20,10 +20,13 @@ }, "diode_direction": "ROW2COL", "split": { + "enabled": true, "soft_serial_pin": "D0" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_3" + }, "community_layouts": ["split_3x5_3"], "layouts": { "LAYOUT_split_3x5_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_manuform/3x5_3/keymaps/dlford/rules.mk b/keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk similarity index 95% rename from keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk rename to keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk index f40ace9606..d24f7a0cbd 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk +++ b/keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk @@ -6,7 +6,6 @@ SRC += features/caps_word.c # # 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 diff --git a/keyboards/handwired/dactyl_manuform/5x6/config.h b/keyboards/handwired/dactyl_minidox/keymaps/via/config.h similarity index 85% rename from keyboards/handwired/dactyl_manuform/5x6/config.h rename to keyboards/handwired/dactyl_minidox/keymaps/via/config.h index 9a4e39dad2..bb5b0bf6af 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/config.h +++ b/keyboards/handwired/dactyl_minidox/keymaps/via/config.h @@ -1,22 +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 -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 +/* 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 0000000000..80b9b62b53 --- /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 0000000000..1e5b99807c --- /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 0000000000..5826403a80 --- /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/jels/jels60/rules.mk b/keyboards/handwired/dactyl_minidox/rules.mk similarity index 91% rename from keyboards/jels/jels60/rules.mk rename to keyboards/handwired/dactyl_minidox/rules.mk index 3b6a1809db..e22ac7f3ff 100644 --- a/keyboards/jels/jels60/rules.mk +++ b/keyboards/handwired/dactyl_minidox/rules.mk @@ -9,4 +9,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 = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output +# AUDIO_ENABLE = yes # Audio output diff --git a/keyboards/handwired/dactyl_promicro/config.h b/keyboards/handwired/dactyl_promicro/config.h index ab6beb807f..543ef8e6c5 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 5f0b4f85a2..2ae20d2f4a 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 ed2d1440c8..1dd2f47841 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 a426319b4e..63fd3a8df6 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 +## Bootloader -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. +Enter the bootloader in 2 ways: -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 ------------------------------ - -Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects -the frequency on the 3.3V board. - -Also, if the slave board is producing weird characters in certain columns, -update the following line in `matrix.c` to the following: - -``` -// _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 e40f6dfc69..107d8e1668 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 9234536a23..bfacb99a4b 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 a2a5455ab1..0000000000 --- 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 6744d4b701..5d40a240a9 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/info.json b/keyboards/handwired/daishi/info.json index 37d80633a7..6b6508eb83 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 0b2de61490..b1d8cc9c77 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 7ebcff366f..608c45dea3 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 12bff57b3e..17d7863237 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 2c8f1f42bf..10c9a692df 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 9cb309c78f..d758c60239 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 d5981aebd4..8d031b3c42 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 e5a5dcc6c1..60e355f290 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 5ddf21ee79..0be6c8cdb9 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 dab7f609a8..34b1edc820 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 61260f5e39..79e2ef4eff 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 86736773ec..899bd58bcb 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 50716e356f..362a7fadbe 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 00362c5375..7ad28a9c22 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 5b3e000fba..09e03bd063 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 4d7d3e0386..a399ffedf5 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 9f952d685a..fce74cefef 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 0000000000..ba9de4d774 --- /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 0000000000..ea111ba6fe --- /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 0000000000..ea111ba6fe --- /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 0000000000..036bd6d1c3 --- /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 0000000000..4cbc1050c0 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..233407b393 --- /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 0000000000..0272150df1 --- /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 0000000000..6e7633bfe0 --- /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 5d5233ca99..59717346c3 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 efebe52d0b..78fb52cb99 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 1dc0f3a59e..fc615b0109 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 edaabe78e6..69d1a56bb5 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/readme.md b/keyboards/handwired/jscotto/scotto36/readme.md deleted file mode 100644 index f38d0231c5..0000000000 --- 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/readme.md b/keyboards/handwired/jscotto/scotto40/readme.md deleted file mode 100644 index 867313ecfc..0000000000 --- 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/readme.md b/keyboards/handwired/jscotto/scotto9/readme.md deleted file mode 100644 index 2e5291cba7..0000000000 --- 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/readme.md b/keyboards/handwired/jscotto/scottocmd/readme.md deleted file mode 100644 index b08d02d678..0000000000 --- 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/scottostarter/readme.md b/keyboards/handwired/jscotto/scottostarter/readme.md deleted file mode 100644 index 5886bc9d3b..0000000000 --- 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 9bcc1ca12e..9f71a07f90 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 e0cd79a9c0..97d5f38774 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 f952881772..b9449c4714 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 6508b3d859..69005c6579 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 a946442dc0..5de39092bf 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 4000b543c3..835fa55bef 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 d20625da08..95e7d9d1aa 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 b82cee4fb5..5c27c96ae9 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 bdb092a3ae..9d56df98e1 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 a4bab13284..5c17825a63 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 9b5ee6b6fa..e39f8c6e9e 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 7d541270fb..26e6fc630c 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 83c78b1634..632465bba7 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 e8df528eff..5adb2505fb 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 2e2a2bbcbf..8c37524a0e 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 3f43590b8e..675b290630 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 -#define BACKLIGHT_PWM_DRIVER PWMD5 -#define BACKLIGHT_PWM_CHANNEL 1 +/* 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 0000000000..51871b42e3 --- /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/malevolti/lyra/rev1/config.h b/keyboards/handwired/nortontechpad/keymaps/default/keymap.c similarity index 65% rename from keyboards/malevolti/lyra/rev1/config.h rename to keyboards/handwired/nortontechpad/keymaps/default/keymap.c index 38a1a09cd3..dca76ce990 100644 --- a/keyboards/malevolti/lyra/rev1/config.h +++ b/keyboards/handwired/nortontechpad/keymaps/default/keymap.c @@ -1,4 +1,4 @@ - /* Copyright 2021 Domanic Calleja +/* 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 @@ -13,6 +13,15 @@ * 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 +#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/merge/uc1/config.h b/keyboards/handwired/nortontechpad/keymaps/via/keymap.c similarity index 56% rename from keyboards/merge/uc1/config.h rename to keyboards/handwired/nortontechpad/keymaps/via/keymap.c index 945f753599..dca76ce990 100644 --- a/keyboards/merge/uc1/config.h +++ b/keyboards/handwired/nortontechpad/keymaps/via/keymap.c @@ -1,4 +1,4 @@ - /* Copyright 2021 duoshock +/* 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 @@ -14,20 +14,14 @@ * along with this program. If not, see . */ -#pragma once +#include QMK_KEYBOARD_H -#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 +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 0000000000..1e5b99807c --- /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 0000000000..6aacc8d72a --- /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 0000000000..6e7633bfe0 --- /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 bf275d4f6f..9652815de2 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 6183ee9819..22143dfac5 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 6183ee9819..22143dfac5 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 6183ee9819..22143dfac5 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 6183ee9819..22143dfac5 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 a92b099328..8b13789179 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 8fd4321938..71bc488563 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 a92b099328..8b13789179 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 7ef807c5d1..09cf965941 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 4a65e9a72f..5f6f04f7b4 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 4a65e9a72f..5f6f04f7b4 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 339dfe5974..17bb84a82c 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 a5429ba993..0e5631b02b 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 70932cb751..5f15fa9e70 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 802f7e5dde..05201736e6 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 83757b1909..f39e8ce4bd 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 c6c04ed615..4401623e85 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 0000000000..4e5e3b1cba --- /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 0000000000..3b393e1276 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/handwired/onekey/nucleo_g474re/info.json b/keyboards/handwired/onekey/nucleo_g474re/info.json new file mode 100644 index 0000000000..02f59be74e --- /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 0000000000..f6115b10c7 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/handwired/onekey/nucleo_h723zg/info.json b/keyboards/handwired/onekey/nucleo_h723zg/info.json new file mode 100644 index 0000000000..7596d007b2 --- /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 0000000000..97a2da5115 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/handwired/onekey/nucleo_l432kc/config.h b/keyboards/handwired/onekey/nucleo_l432kc/config.h index d344a11094..03e017892c 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 49376e474e..07ce929221 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 5cbfb8dbff..0563ebfa5f 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 806eb69df4..b8880f6581 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 a92b099328..8b13789179 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 0000000000..a0e3c54ec1 --- /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 0000000000..e9d7ece8fc --- /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 0000000000..b541cd8ae4 --- /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 0000000000..9172860b0f --- /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 0000000000..ff5c061184 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/handwired/onekey/stm32f405_feather/rules.mk b/keyboards/handwired/onekey/stm32f405_feather/rules.mk index a92b099328..8b13789179 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 a92b099328..8b13789179 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 a92b099328..8b13789179 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 9803d8cc70..abd2f7fce9 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 9db6243a69..489a7e2888 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 c37ac42537..5f60fd44d7 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 d226b4dd71..2f613b5876 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 2bf3fe5811..9ccac102c7 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 ba5322f32f..f37ee57798 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 d036911755..f6bd2d2f23 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 f617fb5e68..f54ceb4491 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 ab89514fb1..563b86d26d 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 435bf3274e..f563693fac 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 ab89514fb1..563b86d26d 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 459ec86e2d..d423df1512 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 22f8b02704..f335353541 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 a92b099328..8b13789179 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/info.json b/keyboards/handwired/pill60/info.json index 6cc337f8ee..ac8c9013ba 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 f8bae6b6df..6bb5fa1581 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 a660e0ddfa..cb77f4eda2 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 cb4a939a02..c463d5baa7 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 bb71df9c64..0000000000 --- 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 08c6e107dd..a89fe9ec57 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 6b109855a5..aaab95b9e0 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 bb71df9c64..0000000000 --- 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 69c3ae8bfe..395cb9f276 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 6daf5dd0c6..c26325069b 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 100db97678..ff73e51d5e 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 213b7aa53b..ad83f34999 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 eb2487d410..9f0cabc750 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 23c371aa34..3bef21a0b2 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 b78ca3c807..7fba95f9d1 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 a64c4ebeec..0000000000 --- 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 09a304e1c7..3e384e5b5b 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 3c20471df1..b537d56c26 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 7b9b320b98..933973d5f3 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 0000000000..674f5e362f --- /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 425b35f266..c39cbc87f5 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 d13dfb2291..1c957e9940 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 0000000000..6fcce38d70 --- /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/kikoslab/ellora65/config.h b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/config.h similarity index 78% rename from keyboards/kikoslab/ellora65/config.h rename to keyboards/handwired/scottokeebs/scotto34/keymaps/default/config.h index c6fba5ebcf..572a1b24ea 100644 --- a/keyboards/kikoslab/ellora65/config.h +++ b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/config.h @@ -1,5 +1,5 @@ /* -Copyright 2021 Swiftrax +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 @@ -8,7 +8,7 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License @@ -17,5 +17,6 @@ along with this program. If not, see . #pragma once -/*RGB TINGS*/ -#define RGBLED_NUM 12 +// 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 0000000000..8231ad94fc --- /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 0000000000..f65f6aa17a --- /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 0000000000..88e9185ec2 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/handwired/jscotto/scotto36/info.json b/keyboards/handwired/scottokeebs/scotto36/info.json similarity index 91% rename from keyboards/handwired/jscotto/scotto36/info.json rename to keyboards/handwired/scottokeebs/scotto36/info.json index 3247b4019b..fe8ecb6629 100644 --- a/keyboards/handwired/jscotto/scotto36/info.json +++ b/keyboards/handwired/scottokeebs/scotto36/info.json @@ -1,9 +1,9 @@ { - "manufacturer": "Joe Scotto", + "manufacturer": "ScottoKeebs", "keyboard_name": "Scotto36", "maintainer": "joe-scotto", - "bootloader": "caterina", "diode_direction": "COL2ROW", + "development_board": "promicro", "features": { "bootmagic": true, "command": false, @@ -18,15 +18,15 @@ // 15, 14, 16, 10 "rows": ["B1", "B3", "B2", "B6"] }, - "processor": "atmega32u4", - "url": "", + "url": "https://scottokeebs.com", "usb": { "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" + "pid": "0x0002", + "vid": "0x534B" }, + "community_layouts": ["split_3x5_3"], "layouts": { - "LAYOUT_ortho_3x10_6": { + "LAYOUT_split_3x5_3": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, 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 0000000000..590f59aa07 --- /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/jscotto/scotto36/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c similarity index 99% rename from keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c rename to keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c index ad8451ac09..293082af66 100644 --- a/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c @@ -78,49 +78,49 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x10_6( + [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_ortho_3x10_6( + [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_ortho_3x10_6( + [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_ortho_3x10_6( + [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_ortho_3x10_6( + [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_ortho_3x10_6( + [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_ortho_3x10_6( + [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_ortho_3x10_6( + [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, 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 0000000000..a8cbe3cf41 --- /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 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto36/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scotto40/info.json b/keyboards/handwired/scottokeebs/scotto40/info.json similarity index 96% rename from keyboards/handwired/jscotto/scotto40/info.json rename to keyboards/handwired/scottokeebs/scotto40/info.json index 767ff1de54..b10f677c4d 100644 --- a/keyboards/handwired/jscotto/scotto40/info.json +++ b/keyboards/handwired/scottokeebs/scotto40/info.json @@ -1,9 +1,9 @@ { - "manufacturer": "Joe Scotto", + "manufacturer": "ScottoKeebs", "keyboard_name": "Scotto40", "maintainer": "joe-scotto", - "bootloader": "caterina", "diode_direction": "COL2ROW", + "development_board": "promicro", "features": { "bootmagic": true, "command": false, @@ -13,16 +13,19 @@ "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"] }, - "processor": "atmega32u4", - "url": "", + "url": "https://scottokeebs.com", "usb": { "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" + "pid": "0x0001", + "vid": "0x534B" }, + "community_layouts": ["ortho_4x10"], "layouts": { "LAYOUT_ortho_3x10_7": { "layout": [ 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 0000000000..63aa760843 --- /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/daishi/config.h b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h similarity index 75% rename from keyboards/handwired/daishi/config.h rename to keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h index 2e6498ab5d..1a6512052c 100644 --- a/keyboards/handwired/daishi/config.h +++ b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h @@ -1,5 +1,5 @@ /* -Copyright 2019 Crokto +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 @@ -8,7 +8,7 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License @@ -17,5 +17,7 @@ along with this program. If not, see . #pragma once -/* Set delay for tap_code on rotary encoder */ -#define TAP_CODE_DELAY 10 +// 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 0000000000..e5ddcae8d9 --- /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 0000000000..f81e639847 --- /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 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto40/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scotto9/info.json b/keyboards/handwired/scottokeebs/scotto9/info.json similarity index 84% rename from keyboards/handwired/jscotto/scotto9/info.json rename to keyboards/handwired/scottokeebs/scotto9/info.json index 8bd393bd43..a42d206300 100644 --- a/keyboards/handwired/jscotto/scotto9/info.json +++ b/keyboards/handwired/scottokeebs/scotto9/info.json @@ -1,9 +1,9 @@ { - "manufacturer": "Joe Scotto", + "manufacturer": "ScottoKeebs", "keyboard_name": "Scotto9", "maintainer": "joe-scotto", - "bootloader": "caterina", "diode_direction": "COL2ROW", + "development_board": "promicro", "features": { "bootmagic": true, "command": false, @@ -18,13 +18,13 @@ // 15, 14, 16 "rows": ["B1", "B3", "B2"] }, - "processor": "atmega32u4", - "url": "", + "url": "https://scottokeebs.com", "usb": { "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" + "pid": "0x0003", + "vid": "0x534B" }, + "community_layouts": ["ortho_3x3"], "layouts": { "LAYOUT_ortho_3x3": { "layout": [ 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 0000000000..ab87671138 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..d6262e11e6 --- /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 0000000000..1a6512052c --- /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 0000000000..88b4a4b0b4 --- /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 0000000000..1a6512052c --- /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 0000000000..dfe688267e --- /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 0000000000..e5ddcae8d9 --- /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 0000000000..07c7d889de --- /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 0000000000..6e7633bfe0 --- /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/jscotto/scottocmd/info.json b/keyboards/handwired/scottokeebs/scottocmd/info.json similarity index 92% rename from keyboards/handwired/jscotto/scottocmd/info.json rename to keyboards/handwired/scottokeebs/scottocmd/info.json index 991be93b52..d945b70ce9 100644 --- a/keyboards/handwired/jscotto/scottocmd/info.json +++ b/keyboards/handwired/scottokeebs/scottocmd/info.json @@ -1,16 +1,20 @@ { - "manufacturer": "Joe Scotto", + "manufacturer": "ScottoKeebs", "keyboard_name": "ScottoCMD", "maintainer": "joe-scotto", - "bootloader": "caterina", "diode_direction": "COL2ROW", + "development_board": "promicro", "features": { "bootmagic": true, "command": false, "console": false, "extrakey": true, "mousekey": true, - "nkro": true + "nkro": true, + "oled": true + }, + "build": { + "lto": true }, "matrix_pins": { // TX0, RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1 @@ -18,12 +22,11 @@ // A0, 15, 14, 16, 10 "rows": ["F7", "B1", "B3", "B2", "B6"] }, - "processor": "atmega32u4", - "url": "", + "url": "https://scottokeebs.com", "usb": { "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" + "pid": "0x0005", + "vid": "0x534B" }, "bootmagic": { "matrix": [1, 0] 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 0000000000..1a6512052c --- /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 0000000000..dbb5cbc4a9 --- /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 0000000000..1a6512052c --- /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/jscotto/scottocmd/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c similarity index 99% rename from keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c rename to keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c index b1c77ae944..c196c3b1e9 100644 --- a/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c @@ -151,10 +151,6 @@ 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] = { { 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 0000000000..f5c5f3306c --- /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 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottocmd/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/keebformom/config.h b/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c similarity index 50% rename from keyboards/keebformom/config.h rename to keyboards/handwired/scottokeebs/scottocmd/scottocmd.c index 315e8e0bc6..9027b50028 100644 --- a/keyboards/keebformom/config.h +++ b/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c @@ -1,4 +1,5 @@ -/* Copyright 2022 Sandipratama +/* +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 @@ -14,23 +15,25 @@ 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 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 +#ifdef OLED_ENABLE -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_90; // flips the display 180 degrees if offhand +} -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT +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 0000000000..cc4fb126b6 --- /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 0000000000..1a6512052c --- /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 0000000000..451f48a968 --- /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 0000000000..1a6512052c --- /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 0000000000..f4d0a0c7bb --- /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 0000000000..e5ddcae8d9 --- /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 0000000000..8bbf388304 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..202626b70f --- /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/eyeohdesigns/theboulevard/config.h b/keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c similarity index 57% rename from keyboards/eyeohdesigns/theboulevard/config.h rename to keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c index e2f7092f98..9a220170e4 100644 --- a/keyboards/eyeohdesigns/theboulevard/config.h +++ b/keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2021 eye oh designs +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 @@ -8,18 +8,21 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 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 -#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 +// 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 0000000000..59b7f2e828 --- /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 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/mechllama/g35/v1/config.h b/keyboards/handwired/scottokeebs/scottogame/config.h similarity index 82% rename from keyboards/mechllama/g35/v1/config.h rename to keyboards/handwired/scottokeebs/scottogame/config.h index 1aee08380c..a168f0ef21 100644 --- a/keyboards/mechllama/g35/v1/config.h +++ b/keyboards/handwired/scottokeebs/scottogame/config.h @@ -1,5 +1,5 @@ /* -Copyright 2019 Kaylyn Bogle +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 @@ -8,7 +8,7 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License @@ -17,4 +17,5 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 41 +// 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 0000000000..5c300b866e --- /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 0000000000..1a6512052c --- /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 0000000000..786587e543 --- /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 0000000000..1a6512052c --- /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 0000000000..09fdf5dd9a --- /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 0000000000..bcee933e75 --- /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 0000000000..c622df1b4e --- /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 0000000000..7ff128fa69 --- /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/mode/m75h/m75h.c b/keyboards/handwired/scottokeebs/scottogame/scottogame.c similarity index 64% rename from keyboards/mode/m75h/m75h.c rename to keyboards/handwired/scottokeebs/scottogame/scottogame.c index 2f2bfbfa4b..bea5a57a3b 100644 --- a/keyboards/mode/m75h/m75h.c +++ b/keyboards/handwired/scottokeebs/scottogame/scottogame.c @@ -1,5 +1,5 @@ /* - Copyright 2020 Álvaro "Gondolindrim" Volpato +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 @@ -8,7 +8,7 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License @@ -17,6 +17,18 @@ along with this program. If not, see . #include "quantum.h" -void board_init(void) { - setPinInput(B10); +#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 0000000000..89a4fca4b4 --- /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 0000000000..1a6512052c --- /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 0000000000..2633845d50 --- /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 0000000000..1a6512052c --- /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 0000000000..f4d0a0c7bb --- /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 0000000000..e5ddcae8d9 --- /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 0000000000..c04920498a --- /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 0000000000..6e7633bfe0 --- /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 0000000000..2907b47af8 --- /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/donutcables/budget96/config.h b/keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c similarity index 53% rename from keyboards/donutcables/budget96/config.h rename to keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c index 398b0be3c8..a4b50f7769 100644 --- a/keyboards/donutcables/budget96/config.h +++ b/keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2020 DonutCables +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 @@ -8,25 +8,22 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 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 - -#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 +// 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 0000000000..66cbff8060 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..792084b82c --- /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/manyboard/macro/config.h b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h similarity index 78% rename from keyboards/manyboard/macro/config.h rename to keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h index 3927473711..de6c83da9a 100644 --- a/keyboards/manyboard/macro/config.h +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 William Ehman +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 @@ -8,7 +8,7 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License @@ -17,5 +17,7 @@ along with this program. If not, see . #pragma once -/* RGB Pins */ -#define RGBLED_NUM 2 + +// 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 0000000000..2633845d50 --- /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 0000000000..1a6512052c --- /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 0000000000..f4d0a0c7bb --- /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 0000000000..e5ddcae8d9 --- /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 0000000000..94e73afd13 --- /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 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scottostarter/info.json b/keyboards/handwired/scottokeebs/scottostarter/info.json similarity index 96% rename from keyboards/handwired/jscotto/scottostarter/info.json rename to keyboards/handwired/scottokeebs/scottostarter/info.json index 65fe2d9310..ade3db28a0 100644 --- a/keyboards/handwired/jscotto/scottostarter/info.json +++ b/keyboards/handwired/scottokeebs/scottostarter/info.json @@ -1,9 +1,9 @@ { - "manufacturer": "Joe Scotto", + "manufacturer": "ScottoKeebs", "keyboard_name": "ScottoStarter", "maintainer": "joe-scotto", - "bootloader": "caterina", "diode_direction": "COL2ROW", + "development_board": "promicro", "features": { "bootmagic": true, "command": false, @@ -18,11 +18,10 @@ // A0, 15, 14, 16, 10 "rows": ["F7", "B1", "B3", "B2", "B6"] }, - "processor": "atmega32u4", - "url": "", + "url": "https://scottokeebs.com", "usb": { "device_version": "1.0.0", - "pid": "0x0000", + "pid": "0x0008", "vid": "0xFEED" }, "layouts": { 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 0000000000..1a6512052c --- /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 0000000000..346db2f5fd --- /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 0000000000..7ff128fa69 --- /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 a92b099328..8b13789179 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 7ee210aa84..31c0cc59f7 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 24cb90487c..b99e41bda5 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 070cbb2c75..95abaeb9c7 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 c99c2847ce..ca7f6f843f 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 a92b099328..8b13789179 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 b92456da98..f5c5ee3be2 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 e1540d99a2..ea41cb3ac1 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 020e44f02e..3d48891e7e 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 b9956ed7ab..61aff0e7ea 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 a92b099328..8b13789179 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/info.json b/keyboards/handwired/splittest/info.json index efd82d20c4..73ffb66e9b 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 7b6a4c1e74..21ba0e5b3d 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 ffd061fa17..88323300f8 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 b76753f19f..54164b5738 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 4fe6fb4428..fa4c9291e7 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 9a46cb9849..e2cad64ad8 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 7e7247c80f..fef24f402f 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 9c6098640a..ef72559a0c 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 a48f998100..12791a69dd 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 8c797e4309..1e79dbce26 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 4bff062d6c..7f9b0b12d4 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 3aed06628f..ddfb4ce1ad 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 51909d1883..efd14377bf 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 5587a8dbbc..dec78ae408 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 5fdda201e0..0000000000 --- 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 a52a0470e7..804f88503b 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 c92944a48f..a85f398cae 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 54d58d8b7f..3f8427f3c8 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 f4ecf44eab..f25b079098 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 dd0c097197..b372de027b 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 3939229475..2542c545bf 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 c1acec7001..7c77f53a82 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 a48d64f730..32198e1cf6 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 50ee7eac61..6243804dc5 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 6948b13edc..5593be8bb7 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 0a3a77c91d..9e172c8089 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 a0355469e9..af4b3c0ac0 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 e0d074c2b6..92e0baace1 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 2d05b71c92..3a7f97f8d2 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 0e0e020ddf..62fa261ac7 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 73ea40fb76..2ad18267ad 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 671e3746c6..3f0c316928 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 cd07b8d49f..b466a6234a 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 a449a126d6..5cb2a76de2 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 9f5341e973..1cf7a3fccf 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 ce8e65e924..331a5ec731 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 c65b226601..a131ac085b 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 f015683e68..0000000000 --- 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 91fe9e1cf4..ea1b3e3530 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 838776b5eb..b9449c4714 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 8f56d90947..2e2fc6c81f 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 dee2156fb5..52b64de9f6 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 351731a613..245afe30cc 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 cddbc1e33f..5838d93ad5 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 b1b6b8e616..b73afc0e44 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 d3d188ef42..e4347a75b5 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 c32734cecb..24eb51d03c 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 de1208a7ec..2a7f301a6a 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 162faca32c..171ae7bb02 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 bf9b590421..f4c4fda7cf 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 7c46269579..89515a8fef 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 445e503d0b..c6e22b8dd2 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 dd7ef6a5a9..a3a2eb1ca0 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 5ba12dc846..79818d4670 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 2eaa722497..1577cf8a77 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 b73592760e..3a333198a4 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 e233404347..b8b45e5ee1 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 a9391e9f56..aff4db8cfd 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 8e7bef8b5c..421d72570e 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 d782fba2a8..8a33a55331 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 0000000000..1f5c059c00 --- /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 0000000000..3ebcc79fde --- /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 0000000000..72c338c157 --- /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 b443c4d54c..3b382c7bc9 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 cf4e9f4ffe..f5eb4c13e1 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 1147d09f37..953cc2ea10 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 7653185198..15b3392895 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 1d71636757..212d0e1e38 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 105b05e6e3..0056ba90b1 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 25b0c3dff8..b777d35d45 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 384356bd14..4eb815ce48 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 14e3e5533b..38a91c1639 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 32b446c498..75e50968bc 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 8463365f59..dc047d3118 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 b8c1041cdc..0000000000 --- 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 2eda425a4f..1e60ed1f0f 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 9a832bbb5b..ffe1c987e2 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 e951f627c8..ee5277a7df 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 e951f627c8..ee5277a7df 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 23b73845f0..a46f9d9c59 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 bd09cc60ab..f48115663c 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 2ae80dd901..f7546b1322 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 e951f627c8..ee5277a7df 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 e951f627c8..ee5277a7df 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 23b73845f0..a46f9d9c59 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 899a134762..6c0c2a2cf6 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 2efee90deb..0a361d63ed 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/hhkb/ansi/config.h b/keyboards/hhkb/ansi/config.h index 723fe29479..7fe9f1f9db 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 9de64724b7..88b9c9b6cc 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 bfff105e90..24cd750e09 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 71ec705822..99f77d0c16 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 48ac76c74b..a033888b41 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 02b8854e36..ee43e96bdd 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 8dbb311309..e068f81a73 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 bcf040c6cb..0000000000 --- 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 a4aeccf83a..6c2f53aab8 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 81736ff175..20c4deca40 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 8b5fa112f7..7512debabd 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 2501147ea8..3c12e55b58 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 72f1a842c7..150573c165 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 19e38259d3..2159d1ca68 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 2501147ea8..3c12e55b58 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 81736ff175..20c4deca40 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 8584ee1512..63bbf3b257 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 2501147ea8..3c12e55b58 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 e275779f4c..474c1d6701 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 addd71a5a8..989e23e757 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 a4d338b500..994b108d8e 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 3069b4a4b3..59820b1797 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 ae0ecc61cf..474c1d6701 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 dba8541b99..f6fd12edaa 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 ae0ecc61cf..474c1d6701 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 a4c09e02da..63b7803617 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 e4d5a87a00..373b97179e 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 be6e28b261..b99ab32975 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 760e5fdd70..2e3e430422 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 f4a94774f4..22a04e509d 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 26b995ddd0..68b99c1a55 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 ee067e1f32..9b2eb97e7c 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 76fd4abae9..6d064455b3 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 0eb28d50c1..8099d5a0e4 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 7c78582c76..dfd7e8211c 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 ee8f76aafd..f76948d482 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 d4601cd2e3..7d0f5ecf73 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]); +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(); } - 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]); - } - 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 45d52629ae..ca92b3f4a5 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 5f1d7700f6..26a67fe7ca 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 848c217499..2e3e430422 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 191621ff47..60d86fbebb 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 98b32f8c37..2e3e430422 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 6029c4faf9..234c595d48 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 3589952afb..9f9d81bea9 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 0c002b22c4..98f8f721f3 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 61b2d4967b..0369461b67 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 aca0104810..cef3127be9 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 438fb5fe89..a6252d27b5 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 bac1c8d4bc..a5e4a91ea8 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 bac1c8d4bc..a5e4a91ea8 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 d53b92ee8f..ecd3c8a043 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 81ba8347ec..06819cffd1 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/keymap.c b/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/keymap.c index d98822de17..06819cffd1 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 b9023e8c71..167fbe4c4a 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 f8fe1f7dbb..6e7633bfe0 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 30fb0f0eee..d14278f989 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 5723984bf4..9bb6640f2f 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 + /* 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 ), /* ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ - │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│ + │Rst││MeP│VoD│VoU││Mut│Stp│Prv│Ply││Nxt│Mai│Hom│Cal│Sch││ ││ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ - │ ` │ 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 - ), - -/* - ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ - │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/keymap.c b/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/keymap.c index 5723984bf4..a39ee0f6a8 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,94 +100,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 */ [_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 + 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 ), /* @@ -215,38 +127,38 @@ 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, _______, + [_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; -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; -} +/* + ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + │Rst││MeP│VoD│VoU│Mut││Stp│Prv│Ply│Nxt││Mai│Hom│Cal│Sch││ ││ │ │ │ + └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ + │NKO│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + │ │ │ │ │ │ Fn │ │ ││ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/horrortroll/caticorn/rev1/solder/readme.md b/keyboards/horrortroll/caticorn/rev1/solder/readme.md index e25e3bd563..7fcb4cac5b 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 4f873e3738..6e7633bfe0 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 de5824e222..0000000000 --- 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 2ceb38706f..7ee7b8b3f8 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 192e9285fc..7f8a448d07 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 6bdd2ee2fc..d137a03a52 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 2d1a6e93ca..fd1825af35 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 9037487173..0000000000 --- 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 f4b4c383c9..7162e2c2c7 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 933affaa86..9ac59719d8 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 4e801399da..60d9fe6217 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 51c0465899..8184588e5d 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 007e7f2354..c66bd5eb8a 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 cb64849d06..02238ba612 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 8484902252..e852321e89 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 798d889bd7..c87ca19e3b 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 a628c11ddc..68576635a8 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 4d8161d28d..920b42feec 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 5fc99ecbf5..a72b1389ad 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 994b9405d9..92aa3605a9 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 081ea9225a..f559246b9e 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 ad5e772c74..0000000000 --- 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 b89647e524..735cf4237d 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/sck/osa/config.h b/keyboards/ibm/model_m/modelh/config.h similarity index 77% rename from keyboards/sck/osa/config.h rename to keyboards/ibm/model_m/modelh/config.h index cc6739122e..ac95ccfe66 100644 --- a/keyboards/sck/osa/config.h +++ b/keyboards/ibm/model_m/modelh/config.h @@ -1,5 +1,5 @@ /* -Copyright 2019 jrfhoutx +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 @@ -17,11 +17,16 @@ 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 */ + +/* 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 diff --git a/keyboards/ibm/model_m/modelh/info.json b/keyboards/ibm/model_m/modelh/info.json new file mode 100644 index 0000000000..6d55d5c6bd --- /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 0000000000..9098b869b3 --- /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 0000000000..5384b37338 --- /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 0000000000..bed79619ce --- /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 0000000000..e69de29bb2 diff --git a/keyboards/ibm/model_m/mschwingen/config.h b/keyboards/ibm/model_m/mschwingen/config.h index b1dc81b8c7..b34d29649a 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 1ba525de6c..ce740e4a54 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 f4a1acb0ce..4ec0a0cbc0 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 8b99267650..4e33b0af29 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 225317b367..9131708828 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 dc525a111d..ae358106eb 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 2b18d0417e..b4a4de5a74 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 0000000000..e926de7f5f --- /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 0000000000..0de9cd3aaf --- /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 0000000000..e70efa40fa --- /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 0000000000..a7845f6e23 --- /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 0000000000..4d08a5502a --- /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 0000000000..12a4fc233f --- /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 0000000000..18ef09f7bb --- /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 0000000000..36b7ba9cbc --- /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 0000000000..caaf5c705f --- /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 0000000000..6e7633bfe0 --- /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 501fd1f996..bac9dbf1bd 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 cc896ff236..b874f51806 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 57f9e520a3..cf7892ec9f 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 048e187018..32651f918f 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 55f19ba9cc..eff8333a80 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/v1/config.h b/keyboards/idobao/id75/v1/config.h index 2174e39bd2..d876570c80 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 1407d02c80..545709475d 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/keymaps/greenshadowmaker/keymap.c b/keyboards/idobao/id75/v1/keymaps/greenshadowmaker/keymap.c similarity index 98% rename from keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c rename to keyboards/idobao/id75/v1/keymaps/greenshadowmaker/keymap.c index a79b03b80f..84830e47c6 100644 --- a/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c +++ b/keyboards/idobao/id75/v1/keymaps/greenshadowmaker/keymap.c @@ -126,15 +126,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/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 5275c54dbb..4cb46c2564 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 e45c0081ae..0000000000 --- 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 26a5a7db81..4d6e0773d8 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 816e55208f..cf21d3abb1 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 9b7459de6c..0000000000 --- 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 1deaf6b270..9b84530637 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 aace4915a1..783cd04a03 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 a857f49125..23990f6ef9 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 f49337fc14..d594af5fc3 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 87ed689f66..6cbdda8572 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 666ffbdf89..2abbef46ba 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 5980cab117..31c06d0809 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 f034db3c03..74a69d60fe 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/idyllic/tinny50_rgb/info.json b/keyboards/idyllic/tinny50_rgb/info.json index fad9c3c730..f02e88f459 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 1f50a72c5f..6e0cba498b 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": [2, 0], "w": 1.75, "x": 0, "y": 2}, + {"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], "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 0000000000..2308f15c06 --- /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 4b3a067522..80a738f4cf 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 0db9d79c22..a793907148 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 1eff584a83..f698867ffb 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 8d4621a608..90fe00d167 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 92c9bedfc9..30903b5803 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 9839aa10de..15744fbbbc 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/hfdkb/keyboard_sw/k83/config.h b/keyboards/inland/kb83/config.h similarity index 98% rename from keyboards/hfdkb/keyboard_sw/k83/config.h rename to keyboards/inland/kb83/config.h index a4660c93be..d1e7d11acc 100644 --- a/keyboards/hfdkb/keyboard_sw/k83/config.h +++ b/keyboards/inland/kb83/config.h @@ -19,9 +19,6 @@ #define RGB_TRIGGER_ON_KEYDOWN -/* encoder resolution */ -#define TAP_CODE_DELAY 15 - /* DIP switch */ #define DIP_SWITCH_PINS \ { A9 } diff --git a/keyboards/inland/kb83/halconf.h b/keyboards/inland/kb83/halconf.h new file mode 100644 index 0000000000..2f64e65393 --- /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/hfdkb/keyboard_sw/k83/info.json b/keyboards/inland/kb83/info.json similarity index 73% rename from keyboards/hfdkb/keyboard_sw/k83/info.json rename to keyboards/inland/kb83/info.json index 559fa3d790..ce577fb029 100644 --- a/keyboards/hfdkb/keyboard_sw/k83/info.json +++ b/keyboards/inland/kb83/info.json @@ -9,7 +9,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "IS31FL3733" + "driver": "is31fl3733" }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", @@ -23,27 +23,30 @@ {"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": 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, 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": 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, 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": 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, 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": 15.25, "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}, @@ -59,7 +62,7 @@ {"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, 13], "x": 13, "y": 1.25, "w": 2}, {"matrix": [1, 15], "x": 15.25, "y": 1.25}, @@ -92,11 +95,11 @@ {"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, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - {"matrix": [3, 15], "x": 16.25, "y": 2.25}, + {"matrix": [3, 15], "x": 15.25, "y": 3.25}, - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.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}, @@ -109,20 +112,21 @@ {"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": [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, "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, 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": 15.25, "y": 5.25}, - {"matrix": [5, 14], "x": 16.25, "y": 5.25}, - {"matrix": [5, 15], "x": 17.25, "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 0000000000..4253f570f0 --- /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 0000000000..0d16f4f04e --- /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/hfdkb/keyboard_sw/k83/readme.md b/keyboards/inland/kb83/readme.md similarity index 79% rename from keyboards/hfdkb/keyboard_sw/k83/readme.md rename to keyboards/inland/kb83/readme.md index 871e9b8936..e6f1d45990 100644 --- a/keyboards/hfdkb/keyboard_sw/k83/readme.md +++ b/keyboards/inland/kb83/readme.md @@ -1,17 +1,18 @@ -# k83 +# kb83 A customizable 75% encoder keyboard. * Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) -* Hardware Supported: k83 +* Hardware Supported: kb83 +* Hardware Availability:[inland](https://www.microcenter.com) Make example for this keyboard (after setting up your build environment): - make hfdkb/keyboard_sw/k83:default + make inland/kb83:default Flashing example for this keyboard: - make hfdkb/keyboard_sw/k83:default:flash + make inland/kb83:default:flash **Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard. 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 0000000000..678686555a --- /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 0000000000..55bfe5c977 --- /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 0000000000..184527e0de --- /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 0000000000..f288d4e1fe --- /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 0000000000..ff5de15c47 --- /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 0000000000..1e5b99807c --- /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 0000000000..53cabcc477 --- /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 0000000000..1e5b99807c --- /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 0000000000..b80eb833d3 --- /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 0000000000..f247855944 --- /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 0000000000..55b805678b --- /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 0000000000..24d5f6f52e --- /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 6d642e5d45..7db6119a1c 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 ca6aa92b5d..d69aeb5d0c 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 a345e075d9..a49fe882ea 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 8effcea81a..33871bcc49 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; +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + 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 16586714b8..1becefbf93 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 e663c224c4..dc5d4abd67 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 790bd93290..452791b13a 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 450eb9a023..d7776bb755 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 02dd975752..cb578e99b4 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 9b9b2ed739..821041ea83 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 3ee3ed6316..656deab55a 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 000a343647..67f3457c5d 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 488d0df4b9..6f5c5c3b7e 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 0000000000..8748072f4f --- /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 0000000000..8e24170a34 --- /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 0000000000..9760080170 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..b76a966509 --- /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 0000000000..6e7633bfe0 --- /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 c432e839d0..17cd8ea9ab 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 77c0e44c0d..325bc3c6d7 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 8e1779ceea..d853b3a320 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 b166c6771f..2bd5581ac7 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 f824945aa0..50f2849e73 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 47220e8853..edbd3dd718 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 e2d6aed274..b9eeb3bf15 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 3af975eb5c..bf8455ee4b 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 316658ad6d..b9eeb3bf15 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 cc0c91dadc..e98923fb45 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 a54e1e1fd3..8e0534fa2c 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 e235e7bc41..e097b47ce5 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 94fd5ee9d1..d670d935a0 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 21f0be63fa..7ab02d2c66 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 24f0fb91d3..161ec22b16 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 0000000000..b437667b14 --- /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 0000000000..5b00f5a34c --- /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 0000000000..e6b4fb0b20 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..23efe28b51 --- /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 0000000000..7ff128fa69 --- /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 0000000000..ac4202d820 --- /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 0000000000..4a525e7bd3 --- /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 0000000000..4a525e7bd3 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..24cf49725b --- /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 0000000000..e44042b864 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..068c11a874 --- /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 0000000000..78cf4b4c44 --- /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 0000000000..78cf4b4c44 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..419567fab5 --- /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 0000000000..92291310e0 --- /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 0000000000..7ff128fa69 --- /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 6abe1d446d..1aef8d595a 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 0c6413d587..8083cb0bc1 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 35107f1518..0000000000 --- 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 1c56cc00ee..f173cc9783 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 b7349de55a..e0046073c6 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 cec546538a..4e59694818 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 1e11f466a0..ff352a2216 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/info.json b/keyboards/jels/jels60/info.json index 7f3edd4843..7194542d48 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 084f3d8275..b79cc89456 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 084f3d8275..b79cc89456 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/v1/config.h b/keyboards/jels/jels60/v1/config.h new file mode 100644 index 0000000000..92b3d36801 --- /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 0000000000..6dc88d7895 --- /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 0000000000..5566e1323f --- /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 0000000000..02d9619a30 --- /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 0000000000..1945b101cf --- /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 0000000000..e0b4f1030f --- /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 6ce24bfbde..0b1d115495 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 2dc7c2f2ac..cc8e525525 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 5bd79d3ce0..5025847259 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 955fc517de..4ea315f51e 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 11b99cc739..8f1a34c2ff 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 e7e386088a..27c5c957a6 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 0000000000..fade065e19 --- /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 147c2cf147..091605665e 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 7fecaed1f0..cfcfc8e2fa 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 0000000000..fade065e19 --- /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 ce78530cb7..0000000000 --- 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 8539b47652..8f52510ff7 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 1b66b1bb25..70ddb0cf5a 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 9624933b8d..bd929c6faa 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 0000000000..e217adcf09 --- /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 0000000000..7d1ee13a45 --- /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 619231a6ab..cb6fff1a0f 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 b7c0fb5c5d..feebedc544 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 0000000000..ac89d13902 --- /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 f81996d702..bb89340fbf 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 1b66b1bb25..70ddb0cf5a 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 6886f8f24b..76d6b445dc 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 47b3dc0faa..5dbf13f5e7 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 a80552a780..785fdc3e5e 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 6f1388f49e..545243e410 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 1d6b6e7ad9..4a7a933a7b 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 6b4dbb0884..2f8a7803d2 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 b3eb44a156..59eb499414 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 d0fec4e571..9e46cdd40a 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 3017ca2ab0..e36574e56a 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 cd0286ef6b..fdc5cbd310 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": "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": "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": "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": "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": "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": "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": "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": "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": "k85", "matrix": [8, 5], "x": 0, "y": 5}, - {"label": "k86", "matrix": [8, 6], "x": 1, "y": 5}, - - {"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 04da840a77..752c06f815 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 a66ab80904..0000000000 --- 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 3b41c40174..3f9b9faa86 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 e1d2dc0582..8dd8cb0c15 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 73e2d8219b..623aaf149c 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 f07f99e4a6..1b1f156fa5 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 9fd699ca49..4c9b3ae6ba 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 95731fde01..713d651d47 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 525a6e8dcd..715cb9060b 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 f16dbc0042..5d7e44f759 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 ae8b7dc340..4d09b121dd 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 8576def947..282bfeeceb 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 57f829e692..0000000000 --- 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 8ec6b52705..4e8ca04aa5 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 655a8af4a9..3623c508cc 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 95781f0581..ae15a51ea3 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 c8ae65099b..64013a3a7f 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 cbe83c98ee..42f0796a53 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": [1, 0], "x": 0, "y": 0}, - {"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, 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.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, 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.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": [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.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": [5, 7], "x": 15.5, "y": 0}, + {"matrix": [4, 8], "x": 17, "y": 0}, - {"matrix": [4, 0], "x": 18.5, "y": 0.5}, - {"matrix": [8, 0], "x": 19, "y": 0, "w": 0.6, "h": 0.5}, + {"matrix": [4, 0], "x": 18.5, "y": 0}, - {"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, 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.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": [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.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, 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.75}, - {"matrix": [6, 9], "x": 16.5, "y": 2.75}, - {"matrix": [6, 10], "x": 17.5, "y": 2.75}, + {"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.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, 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.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": [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.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": [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": 5}, + {"matrix": [8, 8], "x": 14.25, "y": 4.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": [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.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, 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": 6}, - {"matrix": [10, 8], "x": 14.25, "y": 6}, - {"matrix": [11, 8], "x": 15.25, "y": 6}, + {"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.75}, - {"matrix": [10, 10], "x": 17.5, "y": 5.75}, - {"matrix": [11, 10], "x": 18.5, "y": 4.75, "h": 2} + {"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 9fd34b58af..0000000000 --- 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 f730ee95b2..3dcdbf8377 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 0000000000..ee32568148 --- /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 f730ee95b2..6cb85164c0 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 1e5b99807c..f1adcab005 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 7a7b1acc03..80b82b2a5c 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 9b42731f84..aa3ac65cea 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 790db40f6d..b8e0925241 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 d75b5b6079..a5c017336a 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 96e9669046..026950e1c7 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 8198cd0017..6603e790c4 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 437be945bd..024bc9d952 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 227e0d5294..f79d812475 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 9454cc5ffd..8395cf391c 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 4f068a9a7d..4d51ac0f1a 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 93748b736c..cfa52eb172 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 4f068a9a7d..4d51ac0f1a 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 59e7152e0d..46f619462a 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 e10619259c..213576dfbd 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 ebe746b7ce..f79d812475 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 17fda49030..3270f8e4bc 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 fa42618a3b..6744c64e1b 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 ebe746b7ce..f79d812475 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 9886b2aa6c..ef09a0ac90 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 fa42618a3b..6744c64e1b 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 6a6c2678bf..617b0deeb4 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 d988e94034..ac7732e7ca 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 2e4fa2625f..f79d812475 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 b48aab8422..fb9249ab83 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 2e4fa2625f..f79d812475 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 4f5caa6c63..37215632cf 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 85df4231d5..80475ea69a 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 1fda3473f3..a2f2264457 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 72aaf72967..fb7a619d0e 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 86e33438b5..a2f2264457 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 2c414b3116..4410ad5bb1 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 80e1c06014..30b7b606c0 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 a958fd52a6..79ed132f68 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 3e556f9bb8..6905ceb38d 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 0000000000..30e120b75b --- /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 282b98a978..9422076315 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 0125b834fb..34246609e5 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 bfdeb0e3ec..73bb6b769b 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 105fd75a92..9b17187d05 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 386e4b0a0c..0000000000 --- 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 0fec9260a9..994d66417b 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 239a873384..c985581ecf 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 699cdde82d..554845840a 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 8dc6718d1a..c5c9ada22b 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 ad310fa87c..5ef44ccaaa 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 37a293fb19..0000000000 --- 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 817a8db412..c381c62f70 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 08501c982b..5c6669f675 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 8db5edb6b6..edc75f2b1f 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/kbdcraft/adam64/info.json b/keyboards/kbdcraft/adam64/info.json index cc33c26cc1..be24ef4c19 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 094c6b058e..8b13789179 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 ee3574ac9c..c989f1b121 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 5f8faf89ae..c5ed4717a5 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 ba39628688..b3b4e385f1 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 ffdf11155a..d407cb0f7b 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 8f9028305e..cc780177dc 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 29f510620b..79f79fdf50 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 444a5addae..ee6f380e4e 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 29f510620b..79f79fdf50 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 9dbb3712ce..8dd809d5c8 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 b18438ab4e..99c25201ad 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 3fb10600ee..c37e3587e2 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 d08ecf7f98..e347de7759 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 21d1428f0d..44c9daceb7 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 dfbc40e0a0..b5b661bef2 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 edbbf6638e..32ac10767d 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 cd4a32ff41..33245acc51 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 023c6ff5db..683503b4ee 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 733d68cc59..7b6795f07f 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 441c543913..e0fe90b6f3 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/v3/info.json b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json index 378ffa7845..165db96293 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 8b79d929d6..10f0bc0ec2 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 f7d5ab552f..a1ec2a1833 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 ede122f3f2..10f0bc0ec2 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 4c7d09aa8e..cb8912f9a4 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 20e3b8f0df..d876570c80 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 e34cbb87e2..9119477584 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 5c307a31b1..228f648319 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 1aa30c01cd..0000000000 --- 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 bf83ad4af3..7bd48689be 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 682f15c445..88fe681f14 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 d29b1e494a..d876570c80 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 782da6bc64..654c01c0ec 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 8f2305ed4c..a8a369a611 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 38d9bacad9..805f9ad054 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 88272e3c72..c7f05a4e94 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 ab56fc90d1..d9d149f1e1 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 11eb19b729..7cf43b93a7 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 4bc0c6dcff..6a5b35b5b6 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 fef9c5a8c2..fc2310993c 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 6d1273875d..a8b20051ec 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 231f13f412..f501965348 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 655b83f0e3..32ab8df837 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 eeda61ac35..4dc48901dd 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 74fad03a87..50001e978c 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 5c15e9e2d5..e6e2e5c168 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 8049c4ef5c..2e91933f44 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 533f52f012..99aa4a4113 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 a3a9a993df..0000000000 --- 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 3527370e4c..fbb5649a8f 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 9457b20766..50001e978c 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 dc47064fee..8c773f43e1 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 01837a1d82..8ba02f8fa1 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 68dc1d16e6..8ee6118452 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 fb154031a0..69c6b57a35 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 4ba2f38516..32ecfd33c6 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 523b6cf1a0..7f6f89589b 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 0631ceb185..8c7d3b8e0e 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 b4f75a9d1e..e4f2eb44cf 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 54794e66be..9cc883891a 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 46d9756ae9..308e9870cc 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 b7807ae418..c49a369dd0 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 b55a558628..3586d1d96a 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 acbdc574bf..9eaa340a4b 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 9e42693cb6..c3b8e77d77 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 a753f00c6a..e47ec47523 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 59d2dde7ac..7714d2407f 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 0f15f10b20..0098dc473a 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/phaseone/config.h b/keyboards/kbdfans/phaseone/config.h index a8e7f41e17..2dba9f5d35 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 0b4bf2e19f..14150a1cdd 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 5298868bcf..0000000000 --- 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 126de687b8..1d6b6eae86 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 5f542b7ade..b9449c4714 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 ca8580ad1a..ea0e7998b8 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 afca676446..ff9fa35165 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/info.json b/keyboards/keebformom/info.json index afb2058f43..8262b4bf4e 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 c8587e1efb..6fd93072f5 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 77dcc1f7dd..4fa563f0e8 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 aa0780eafc..8ff3f794a5 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 0000000000..ee32568148 --- /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 80ada5d8aa..8ff3f794a5 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 36b7ba9cbc..1189f4ad19 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 514d88831a..21df40039e 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 a28636c8b6..aac4d9d9d6 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 40128e0820..8bb320c6c9 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 64879bca49..3ed1c2ed30 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 4a346fd564..0167052f6d 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 70f785d37b..1974d81f75 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 5a33976f83..324a400041 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 de8fd9fc26..e407769147 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 48fd0aaf0c..0b8941e776 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 9900dbe951..5738ac6953 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 4af086df3a..637a7e0440 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 efb1bc9551..cc8fa692cd 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 b02881de5f..0000000000 --- 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 1a7fb72014..0000000000 --- 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 c423ca19aa..64b776e9f4 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 c6a9f2d6a3..94c94193ed 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 30154273b7..73521bc535 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 e17389cc2c..e826f34e32 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 904658ff8a..d1797c83d5 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 a9b37bda00..8631fd5841 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 73761f8e6f..56c422e572 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 1680f3d8f8..a3ee1ec898 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 f592b4f25a..0f7121b7be 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 cc4c5bf375..cf53ffd934 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 7f793333cc..c2753da2a4 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/rev1/config.h b/keyboards/keebio/iris/rev1/config.h index 7fd5c0ff95..824ba0bfe4 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 af3c7acd42..f5efce863a 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 7fd5c0ff95..824ba0bfe4 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 bc19a0cc8b..fb5db92913 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 59867e6ef9..824ba0bfe4 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 80e65aa8e2..aa41d0ebff 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 c7a7222fdc..e6ddc94df9 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 adc4b71354..39bf9dcfb5 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 eaeca3a4b9..5586f5890d 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 6ddb257d21..cc01dab3ec 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 12ff3a2a4d..63610ecac5 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 98c0d3bf2d..72b8da80d0 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 79f92b75a9..01cef3c923 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 632b5f10d8..94c30211a1 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 dd4284cb9b..73398bcaf6 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 7ed57fb873..08d6c8cd19 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 0000000000..a49b48d14b --- /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 0000000000..7d75640801 --- /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 0000000000..a6f0ac00a0 --- /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 0000000000..161ec22b16 --- /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 f02c15c4a7..e1d3f968be 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 d40c12b52d..da7fbfb40f 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 93ef4c9130..0000000000 --- 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 1899e88236..6a81a6e899 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 b1922fb9c3..2fd8b7d4d0 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 c23887a49f..0a98e032d4 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 b1922fb9c3..2fd8b7d4d0 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 aab339166e..962f555e12 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 d2e19703c1..e1c73cd56e 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 e5e479ba7a..cac1c3ac35 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 04433c41cd..4518cb326d 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 81fc2cf5fe..0000000000 --- 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 a06cde9555..8bf16240fb 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 1e3cebb145..ee32568148 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 ac270cdc50..5d284d9787 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 5d986e69a0..6d37f4f9b5 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 43061db1dd..1189f4ad19 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 ab1c967e70..6fdc15c582 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 64d613dccf..cd729aa87b 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 ab1c967e70..6fdc15c582 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 05b4ea0b7e..f6b80cb946 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 7b014e4fc5..f7bc4f8b92 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 eb17350d63..9b3cc6d15a 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 0000000000..a1dc02997f --- /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 0000000000..d18af71952 --- /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 0000000000..161ec22b16 --- /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 0000000000..82a64e39bf --- /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 0000000000..f8c887bdb8 --- /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 0000000000..42b049facd --- /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 0000000000..42b049facd --- /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 0000000000..36b7ba9cbc --- /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 0000000000..39c9a678c8 --- /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 0000000000..6e7633bfe0 --- /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 547e2686f8..1665e4fd3e 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 f855425ec0..9c6729e91e 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 83fcd1fe0a..84cfc90069 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 7fb5ca8153..0bce37ad78 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 e7774432df..60db14d5fb 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 d73c1af308..26df29e3f0 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 e7774432df..60db14d5fb 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 fb204ab910..dac80973ae 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 b27ba56d53..73521bc535 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 55fb4adda4..4eb4275f7a 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 b27ba56d53..73521bc535 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 78a44dfc80..94d77ec8dd 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 979899d547..53c95d722d 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 a0b1188a7c..55fcae8387 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 20c12a4a6e..171b7a7d05 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 f7ad1047bf..f3eaaa5bca 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 2a54d1aa5a..a1299ce112 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 c394777a8f..8894354d43 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 d9b09568bd..5ddb54ee60 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 c394777a8f..8894354d43 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 d9372d9e94..0c86727abe 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 76dfd88b3e..8ba35fd158 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/capsunlocked/cu80/v2_ansi/rgb/config.h b/keyboards/keebio/sinc/rev4/config.h similarity index 67% rename from keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h rename to keyboards/keebio/sinc/rev4/config.h index 48a12c0cdc..b6c5785f4c 100644 --- a/keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h +++ b/keyboards/keebio/sinc/rev4/config.h @@ -1,30 +1,21 @@ -/* -Copyright 2021 CapsUnlocked +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License 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 +#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 -/* 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 +// RGB Matrix #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT @@ -51,6 +42,7 @@ along with this program. If not, see . #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 @@ -71,7 +63,10 @@ along with this program. If not, see . #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 +#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 0000000000..64036dec35 --- /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 0000000000..31d402c42e --- /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 0000000000..8b26af4131 --- /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 0000000000..161ec22b16 --- /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 d36d39703b..b7df7925ab 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 d566e3df74..cc151647a0 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 54d3f668a7..436f111fcf 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 3c4951b407..9df46b0c1e 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 1dfed1a82f..18b5d426e4 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 01ec06bc51..a003331f25 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 56151a0028..010fcffc9b 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 10f36652ab..88ab2cd137 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 b6d4d64719..2fd8b7d4d0 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 c40265fc5b..3b88fcdd77 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 70343a3763..44151100a0 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 ebac7096f7..a7eb64633c 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 2d3b3feef7..0000000000 --- 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 89bb9f7690..b56a61f480 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 20493f173c..a9cd3b03b0 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 11ec69872f..11ef47d2cc 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 e353d7863f..33b9c9f159 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 532cdec9aa..4494ffd9ff 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 a9b1dec281..2b5d658f02 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 2d9f98c167..b5a1f0e3e5 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 7c067c6f99..fffbd7701b 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/kegen/gboy/config.h b/keyboards/kegen/gboy/config.h deleted file mode 100644 index 2b008e5ca7..0000000000 --- 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 f66eefd2da..0e9f0f753d 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 5146b6ee13..83fd7fcb3f 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 2d8e566a79..4ee89e9b18 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 18b77f249e..f1e31ddbdc 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 9e32a8b169..5c89632272 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 af92a14a68..7ec1979c08 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 0000000000..0fa53c2d67 --- /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 0000000000..40c8b0b5aa --- /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 0000000000..619654186d --- /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 0000000000..3285414f97 --- /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 0000000000..155b1fbc54 --- /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 0000000000..26235c9d91 --- /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 0000000000..6188f14ab9 --- /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 0000000000..d83bce1d2f --- /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 0000000000..b603193f85 --- /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 b53235f324..2e4101537f 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 75655f2bd5..ef4f0c0b43 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 0229490d44..46cb8d8a94 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 27049500bc..8e44b27ace 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 56028f3f81..e0106f4423 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 804dabbf6d..7bc78f68d6 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 0766e0a2e4..91dc056468 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 984323f63c..0000000000 --- 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 9fe02448d0..c66bd05f1b 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 9ce6e078db..dc3e29cf8b 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 e72f11863f..5ec06e9609 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 0000000000..a103d190d0 --- /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 0000000000..c6011a2837 --- /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 0000000000..636e83b527 --- /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 0000000000..2b5a1957cd --- /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 0000000000..495e8907b4 --- /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 0000000000..636e83b527 --- /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 0000000000..1e5b99807c --- /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 0000000000..04565f3b01 --- /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 0000000000..7307f9f9e7 --- /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 0000000000..dd3e1da477 --- /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 0000000000..070ed6c427 --- /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 0000000000..a829c11892 --- /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 0000000000..e17d67eb71 --- /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 0000000000..495e8907b4 --- /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 0000000000..a829c11892 --- /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 0000000000..1e5b99807c --- /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 0000000000..7307f9f9e7 --- /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 0000000000..72e9ad4db1 --- /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 0000000000..607cd958ad --- /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 0000000000..2d81490471 --- /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/mk65/config.h b/keyboards/keychron/c1_pro/halconf.h similarity index 90% rename from keyboards/mk65/config.h rename to keyboards/keychron/c1_pro/halconf.h index 7fa60c79f8..41bddcb279 100644 --- a/keyboards/mk65/config.h +++ b/keyboards/keychron/c1_pro/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2022 DeskDaily +/* 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 @@ -16,4 +16,6 @@ #pragma once -#define TAP_CODE_DELAY 10 \ No newline at end of file +#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 0000000000..9c9b4bf16f --- /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/eason/greatsword80/config.h b/keyboards/keychron/c1_pro/mcuconf.h similarity index 86% rename from keyboards/eason/greatsword80/config.h rename to keyboards/keychron/c1_pro/mcuconf.h index 9a0ee7ab72..0ca8c64850 100644 --- a/keyboards/eason/greatsword80/config.h +++ b/keyboards/keychron/c1_pro/mcuconf.h @@ -1,4 +1,4 @@ -/* Copyright 2023 Eason +/* 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 @@ -16,5 +16,7 @@ #pragma once -#define LED_CAPS_LOCK_PIN F0 -#define LED_PIN_ON_STATE 0 +#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 0000000000..7e9d0e9058 --- /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 0000000000..d62b756f5a --- /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 0000000000..e527af3371 --- /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 0000000000..07f523e30a --- /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 0000000000..9bc6b416bb --- /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 0000000000..495e8907b4 --- /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 0000000000..5120e9bacb --- /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 0000000000..1e5b99807c --- /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 0000000000..998933081f --- /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 0000000000..dab1551049 --- /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 0000000000..d2a0e27b57 --- /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 0000000000..dc58d1943b --- /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 0000000000..70934e122e --- /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 0000000000..09002c3d7a --- /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 0000000000..495e8907b4 --- /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 0000000000..547521e099 --- /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 0000000000..1e5b99807c --- /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 0000000000..dab1551049 --- /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 0000000000..963ac8755f --- /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 0000000000..2cd58ab4d7 --- /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 0000000000..6971ebd1aa --- /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/spaceman/pancake/rev1/feather/config.h b/keyboards/keychron/c2_pro/halconf.h similarity index 89% rename from keyboards/spaceman/pancake/rev1/feather/config.h rename to keyboards/keychron/c2_pro/halconf.h index 9ff72156da..41bddcb279 100644 --- a/keyboards/spaceman/pancake/rev1/feather/config.h +++ b/keyboards/keychron/c2_pro/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2019 Spaceman +/* Copyright 2020 QMK * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,6 +13,9 @@ * 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 +#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 0000000000..dd97dd7adf --- /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 0000000000..5065f97aa7 --- /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/horrortroll/caticorn/rev1/hotswap/keymaps/via/config.h b/keyboards/keychron/c2_pro/mcuconf.h similarity index 86% rename from keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/config.h rename to keyboards/keychron/c2_pro/mcuconf.h index 4a9ae9bdc2..0ca8c64850 100644 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/keymaps/via/config.h +++ b/keyboards/keychron/c2_pro/mcuconf.h @@ -1,4 +1,4 @@ -/* Copyright 2022 HorrorTroll +/* 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 @@ -16,4 +16,7 @@ #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 2 +#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 0000000000..c0715929df --- /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 bb901c4220..f6225c884a 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 4eebc33437..f6868e88e3 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 5f8d6219de..c569e498f4 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 4eebc33437..f6868e88e3 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 b48eaee03e..8ff2075747 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 f520724989..ef361257f0 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 9caf6d6183..424ed021e1 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 b97e6bfb92..5256c97dca 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 a3aba1aed3..250cd1ffb4 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 6b44fdbfdb..8a8a624154 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 5df3cbccaf..7da353fbd1 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 14910d2939..d7e1bf2885 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 5df3cbccaf..7da353fbd1 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 43029ebbc3..cd2864979d 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 eccb5473e1..bf7bab4b53 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 007c2cafea..97c1334ffd 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 9958a466f6..80a3f300bd 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 33c719f26b..cd848c86b6 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 df920055a0..9867724957 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 8683144f89..8ed601fe8f 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 bc7a0e0ff3..ede7d6fab2 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 b05c2e68d2..c9587d20ea 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 3de172c6e3..b294cf950e 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 17905eb872..e3cad79b14 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 f4aca09af8..b3de962291 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 f5a2976bd3..5030e6be42 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 33a50c67f7..aba76c0944 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 09092873eb..d0af24b29d 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 2b4a67b1ee..c37beecb9e 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 af22479aa0..e409fb63a6 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 6a772965ff..5091fe9414 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 3f18242e45..124ac1bdcc 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 566c476585..58bbb89a72 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 b536bb235e..2dd2f18bf9 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 95a153f689..77b90f2466 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 e858ee2245..c9618c5b47 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 566c476585..58bbb89a72 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 6790d8b06f..8571445087 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 95a153f689..77b90f2466 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 772b8f4c18..6f17a7cf9d 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 566c476585..58bbb89a72 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 2bb4242c1b..fd1f361f57 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 95a153f689..77b90f2466 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 4de9da9c8d..8ee286c481 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 9111c3b9bd..cad488b009 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 4de9da9c8d..8ee286c481 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 9111c3b9bd..cad488b009 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 5d675ff3b5..f8945cda61 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 9111c3b9bd..cad488b009 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 7be2a38367..55d7ae0165 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 f2dba218bf..e859eb9c34 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 a1a12f17ed..468261b1e9 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 5df3cbccaf..7da353fbd1 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 786fa4a67e..3b0b2ea1a0 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 f2dba218bf..e859eb9c34 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 650af582af..eefa6dc693 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 5df3cbccaf..7da353fbd1 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 f12809d8d0..fdec220e80 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 ce3d41a17d..ec47b77d0f 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 ce1ffbb294..df3902f44a 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 95a153f689..77b90f2466 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 77285ad1b9..dfaa20aa93 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 3388811add..6548448302 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 db795c312a..4590616831 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 d7fe88d9ca..548b0d696b 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 5c915ea1a9..95b1c4e472 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 6dcd47b1fe..46f5aef144 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 ce150f5a61..0f7679945a 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 5df3cbccaf..7da353fbd1 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 6912d48a9e..2549e329f2 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 2b4a67b1ee..c37beecb9e 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 6b5c9ec668..27262eb4f3 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 7f91e808b1..c37beecb9e 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 6ef7d5fee1..7ee5b6c21f 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 2b4a67b1ee..c37beecb9e 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 a8838ae8d1..a4c3ac77e1 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 e94a89ab85..5091fe9414 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 bf7405cce2..03a6cd1fdd 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 2b4a67b1ee..c37beecb9e 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 f55ccaf202..eb9dc22503 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 6a772965ff..5091fe9414 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 736467f42f..952d3158c8 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 2b4a67b1ee..c37beecb9e 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 95e2a1a2fb..4fd5352638 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 7caead18d7..911c497043 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 a28b47dcf0..3e9a7690c1 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 2b4a67b1ee..c37beecb9e 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 f7f1ed8529..ecf944744d 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 7caead18d7..911c497043 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 de3fdef573..3bef5f343c 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 2b4a67b1ee..c37beecb9e 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 ee09c95266..65a79726ca 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 6d4d90525c..ff0a6b69cb 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 1fa4f83a77..cb70ced917 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 50f54b6547..d8488dd6ea 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 696f434622..f4c526bfdc 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 f2dba218bf..e859eb9c34 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 6829cd7f76..9beffb9f6a 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 5df3cbccaf..7da353fbd1 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 871358a86b..5a4c74234c 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 f2dba218bf..e859eb9c34 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 bffa90acad..106b43b5e7 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 5df3cbccaf..7da353fbd1 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 173794430c..16365ccd9e 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 f2dba218bf..e859eb9c34 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 73313eb64d..702e579758 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 5df3cbccaf..7da353fbd1 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 813a076bdc..2a7dc307cb 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 5df3cbccaf..7da353fbd1 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 9cf0add090..455b375472 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 5df3cbccaf..7da353fbd1 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 7d844d0c1d..d07fba97b8 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 2b4a67b1ee..c37beecb9e 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 8de781ab9c..c733b389e6 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 6a772965ff..5091fe9414 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 45ba9503e4..0d8376f7b7 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 2b4a67b1ee..c37beecb9e 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 d517e341df..0241cdb21e 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 6a772965ff..5091fe9414 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 6a705e7f8c..f65e2b51d2 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 2b4a67b1ee..c37beecb9e 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 028432f7f7..263e403167 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 6a772965ff..5091fe9414 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 e0d7fdb63d..6572066329 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 2b4a67b1ee..c37beecb9e 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 3232da0fba..cffbc85158 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 5df3cbccaf..7da353fbd1 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 3ba7acb322..18c73a8f58 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 201148f39d..2eadfbded9 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 5cd2631c12..60c56a6b87 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 5df3cbccaf..7da353fbd1 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 4680d5e0b5..9b97707b2f 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 7f91e808b1..c37beecb9e 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 2cc5207006..585cf4519e 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 5df3cbccaf..7da353fbd1 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 e45a9c18d5..812aec53a7 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 76c2f1b006..b23029bee4 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 2f09fd42d8..50a5fd4267 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 76c2f1b006..b23029bee4 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 6dcd47b1fe..46f5aef144 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 fd9a9a81df..7d4a8eae1d 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 41fba1cda3..1569e513cf 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 a91a2ae36d..0bc8e995dc 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 41fba1cda3..1569e513cf 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 6dcd47b1fe..46f5aef144 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 7b087b7033..bc5eec2ca5 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 f2dba218bf..e859eb9c34 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 32824efe6b..8a4aec4e36 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 5df3cbccaf..7da353fbd1 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 0fac99cd38..02db87e9ac 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 f2dba218bf..e859eb9c34 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 1c650cdf50..b0be43fc50 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 5df3cbccaf..7da353fbd1 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 3c1a0eb817..3f12305f06 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 de86b770f3..980311d3f2 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 4f14dea8ca..ad0ea78318 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 9958a466f6..80a3f300bd 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 adbebecda6..0840ee9cc8 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 de86b770f3..980311d3f2 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 177c48b912..a40d4d66b6 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 df920055a0..9867724957 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 6e831d2607..26f31786b5 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 6dcd47b1fe..46f5aef144 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 d3ae4f75e5..f29d9d9a32 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 6dcd47b1fe..46f5aef144 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 38e8be2c00..02780ffcde 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 bdb97dbf1c..e506e322d5 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 c2325070aa..c3fc389780 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 d2bee999c8..e3b0d8f03f 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 585dcc979c..5f30af5b1a 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 fec3d8d15c..8edab2465b 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 a0ddfcbeea..e13261a2d6 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 d2bee999c8..e3b0d8f03f 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 d2cf17fe2b..388a273f7c 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 2d4fa5365b..9d8cbd485e 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 ab1fab73ff..388a273f7c 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 8dccdc233d..674b629577 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 c916ffc430..37867c3cd1 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 8001d6db01..1496756d9a 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 e7de4ca7bd..39eec86786 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 28461eaf85..76d1988da0 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 7113cd26e9..0000000000 --- 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 afe95e7aa7..fae716f820 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/uno/rev1/info.json b/keyboards/keyhive/uno/rev1/info.json index 69fe9afd77..61121267d7 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/info.json b/keyboards/keyhive/uno/rev2/info.json index 0af41bab77..908c254bab 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 5ab9348126..8dd82d2464 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 9755bd6569..6c3dd26eef 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/info.json b/keyboards/keyquest/enclave/info.json index 8135d7fec2..6a5ab097fe 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 6fea0e2cb6..c2f47d2d8e 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 8040b94fac..e7564bf2a5 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 adca3366f2..f3286df123 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 884bc706e4..b2d2a01f8b 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 0000000000..a5417e1ae5 --- /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 0000000000..a949c5dc4d --- /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 0000000000..a949c5dc4d --- /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 0000000000..036bd6d1c3 --- /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 0000000000..1f5097d93d --- /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 0000000000..31ac8dbd83 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..a33bb12abd --- /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 0000000000..2c9d04c6c1 --- /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 0000000000..2c9d04c6c1 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..6c3d135caf --- /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 0000000000..6e7633bfe0 --- /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 0000000000..1ab0ca8e7f --- /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 0000000000..a5f630a2cd --- /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 0000000000..a5f630a2cd --- /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 0000000000..1e5b99807c --- /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 0000000000..042d1bff95 --- /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 0000000000..a190d03047 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..47a359ec9b --- /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 0000000000..0837234be5 --- /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 0000000000..0837234be5 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..29aa667ffd --- /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 0000000000..7ff128fa69 --- /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/info.json b/keyboards/kikoslab/ellora65/info.json index 5f3646476b..0ab7f7015a 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 9987ae161e..7f9b0b12d4 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 27c445ca2f..a62bc3d00c 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 a92b099328..8b13789179 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 274ac083c5..e803125681 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 7bd56c4678..bd52bbeb98 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 bb3357ea57..82b8deca93 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 ef3509caf3..293b0168a4 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 0000000000..e9373ea214 --- /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 0000000000..c21618a1dc --- /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 e0f114902c..c9449c5408 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 c790e08945..0000000000 --- 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 a8783b978a..0000000000 --- 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 adb07adf7d..0000000000 --- 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 9ebb088cf7..f8a5b4ed4f 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 b6a4fa2d10..7dbb4b9159 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 554f6f8f58..cae763d8ec 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_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_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_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_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 ,_______, + _______,_______,_______,_______, _______,_______,_______,_______, - _______,_______, - _______, - _______,_______,_______, - - _______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______,_______,_______,_______, - 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 ,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,_______ + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ) ,[_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_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_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_INS ,_______,_______, _______,_______ ,KC_PDOT,KC_PENT, - _______,_______, - _______, - _______,_______,_______, - - _______,_______,_______ ,_______,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_P0 ) ,[_PROGM] = LAYOUT( - _______,_______,_______,DF(_QWERTY),DF(_DVORAK),_______ ,_______,_______,_______, - _______,_______,_______,_______ ,_______ ,_______ , - _______,_______,_______,_______ ,_______ ,DF(_QWERTY_GAME), // The G in Colemak - _______,_______,_______,_______ ,_______ ,DF(_QWERTY_GAME), // The G in QWERTY - _______,_______,_______,DF(_COLEMAK),_______ ,_______, - _______,_______,_______ ,_______, + _______,_______,_______,DF(_QWERTY),DF(_DVORAK),_______ ,_______,_______,_______, QK_BOOT,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______ ,_______ ,_______ , _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______ ,_______ ,DF(_QWERTY_GAME), _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______ ,_______ ,DF(_QWERTY_GAME), _______,_______,_______,_______,_______,_______, + _______,_______,_______,DF(_COLEMAK),_______ ,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______ ,_______, _______,_______,_______,_______, - _______,_______, - _______, - _______,_______,_______, - - QK_BOOT,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,_______ + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ) /* ,[_TEMPLATE] = LAYOUT( - _______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______, _______,_______,_______,_______, - _______,_______, - _______, - _______,_______,_______, - - _______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______,_______,_______, - _______,_______,_______,_______, - - _______,_______, - _______, - _______,_______,_______ + _______,_______, _______,_______, + _______, _______, + _______,_______,_______, _______,_______,_______ ) */ }; diff --git a/keyboards/kinesis/keymaps/heatxsink/keymap.c b/keyboards/kinesis/keymaps/heatxsink/keymap.c index 53b4b57cf5..e430df225a 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 04fa8d39bc..6275ed0a8d 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 fe335e68ac..c23663da92 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, + 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, - // 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 + 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 - _______, _______, - _______, - _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + 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, - // 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 - _______, _______, - _______, - _______, _______, _______ + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ ), [_KEYPAD] = LAYOUT ( - // Left Hand - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - // Left Thumb - _______, _______, - _______, - _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, 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 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_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 , + 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, - // 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_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 9bdcb6df31..22453517a9 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 7757846390..f8e7b572f1 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 6a7a6cc68e..ffcb1c3a8d 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 0a812aef35..e5fb5519dc 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 5e4f7c1e88..1dff9053a8 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, + 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, - // 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_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, + 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, - // 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_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, + 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, - // 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_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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + 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, - // 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 + _______, _______, _______, 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 74d96d59e0..ecf86658a8 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 7c48a98bfc..e69de29bb2 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 815b6cb871..969f819f80 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 7c48a98bfc..e69de29bb2 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 1901ed1d3b..eec726cf51 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 e273e8f282..825c63939f 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 da8e8f7e45..13c2f9a55c 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 a6a1eafbfc..c2a404fd1e 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 0000000000..ed67c36af3 --- /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 0000000000..0e2e7a5792 --- /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 0000000000..7f944e02bc --- /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 0000000000..3922c569c4 --- /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 f4d3af8dbd..5e21732a5c 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 803f64025f..123b42e9bf 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 3e078946e0..d6ea67da68 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 3e0a265135..59129f4320 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 3802f50c9a..4767d6a436 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. + +3. The **kintwin** directory contains the docs and configuration for using BlackPill based controller. ## Keymaps -Both hardware solutions should work with the same 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 2090c50d47..0000000000 --- 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 a3ae6615ac..c0c78135ba 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 4435edf4cc..44e2a33157 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 af9ffae03d..e43087b697 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 0de5b82bdd..c17f41dcb4 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 b3795f8101..66e6bb3a4c 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 fe391e91a1..a2c4815a20 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 c3dfe66910..314693d561 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 0f5a7a6d7f..5f36081323 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 eee9c0d533..68d3197896 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 2d715dbe51..5f36081323 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 a5bb27e397..5808d7fe58 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 62c2349150..ce84abb24d 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 a2287ae915..3eef56841c 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 3dba502238..a11ec4dfb2 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 ad77ae5608..8026d5c764 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 cb3fcd2e0d..7bbb5b4e94 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 d2f408e51f..84174ac248 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 682f1a7531..847cfcd5be 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 b10260aa0b..e6d2cee421 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 b51a90cb7e..d876570c80 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 48e4bdf85e..0a923fa44e 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/keymaps/default/keymap.c b/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c index c1af9a9f32..09c9d3a2ff 100644 --- a/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c +++ b/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #if defined(ENCODER_MAP_ENABLE) - const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + 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) } }; diff --git a/keyboards/kiwikey/borderland/config.h b/keyboards/kiwikey/borderland/config.h index 541c8b45e2..bff2f881e8 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 7ecd81e07b..2e6efabb42 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 ceaf40636e..bc1b5f6c88 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 7537e7fe8a..ca0e604951 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 223620c5fe..1a4dea1b38 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 eb41a349d0..f0e9317fe1 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 d34d066ded..dd68e9d3b0 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 719f0e14dd..a869383bd7 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 a5bcce2796..045df2b622 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 bc647193ca..dd12560fb6 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 aaffc6c987..ee27565dce 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 3c92c89423..c06925781f 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 c3a7b12a40..1f041daffc 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 bc79963cb1..7202c35869 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 0000000000..430fc66c1b --- /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 0000000000..844f338d19 --- /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 0000000000..844f338d19 --- /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 0000000000..43061db1dd --- /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 0000000000..70a382f5de --- /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 0000000000..7ff128fa69 --- /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 fddc8cdf73..f2400ced17 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 449d460607..62a2978f67 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 08baf2310b..67ef66c647 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 cc3bf2abed..65bc2097f5 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 7a903e4eff..62a2978f67 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 ca278dff70..2eefea1310 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 7a903e4eff..62a2978f67 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 a4ed217828..7ccfee941d 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 b64511a63f..2ef1d22576 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 0a909a1cd3..d761667b9d 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 0000000000..4cb041153f --- /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 0000000000..8447d40815 --- /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 0000000000..d963941d80 --- /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 0000000000..d963941d80 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..4e6db529b5 --- /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 0000000000..a92b099328 --- /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 f385599d80..5f12451e15 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 1596ed883e..882dc0521a 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 cc3bf2abed..65bc2097f5 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 8d65ee51f4..e922d0b9ee 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 fb73fedb04..5f36081323 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 262ce39fba..de0d51cc4b 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 4007cc7360..c0ba89dbab 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 e8f6fac120..ca8a4c6ab4 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 ef7cfab5fe..3d5bcade20 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 2798567b5e..980f559d71 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 5a1d366f56..eb20a1a25b 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 8cd3487567..041da2164d 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 fb800abc06..0000000000 --- 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 1cdaa64602..93821f3b53 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 eebd3381d5..6a3bee5a52 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 f73af590d3..589f4310f7 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 c2aafb9adc..82a3a14e9e 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 bb6533b823..47c0b8081a 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 869db0368a..bbc3e8db52 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 a11d579239..2f02594e15 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 3849e5a338..a18aa9d4f5 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 1cc17d6c86..b7e95393e5 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 d91f6a8531..d78ae63740 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 d4ba498987..563ac242c8 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 6e9256523f..ad67cc28c3 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 7af983c5e7..8ad699ed9a 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 6326d871df..6c577a283e 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 fb38180b4d..c4ac03e447 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 aac03cec4d..6e721bb7c0 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 5746594468..d6368610ff 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 2feead3386..2c0710bfe4 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 01d09b5946..82d1974f06 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 ee95726e16..bd976f315a 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 e2522723fc..ef410e9441 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 d88f3b8177..563d90ce32 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 2814a6609a..c916ffb2a9 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 8c3536db6b..6b8a5a8a3a 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 cef5a0939b..a3ef1df3b3 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 b3747af5b1..ac3dcdf508 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 53aabdaf94..3e74f353f9 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 b7c827e0ea..7a0cefeace 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 a9ba033fb0..c55999846e 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 d3989e3615..0feaa9a99a 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 cbad2ee816..a30886a988 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 064af02128..6f8bdc5fd9 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 7ecc626803..73c222c113 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 badd7d6458..29944ba474 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 d9727b63c7..5e90ea1c05 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 1814b50464..02551a2f46 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 d77984fc69..0000000000 --- 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 2627ffbff9..79c9d4a759 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 cc9508d7d6..9018bddfe3 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 51691e8f1f..6c8220a702 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 fce30c67b0..5fc9c49343 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 3220fd6477..0000000000 --- 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 a83d42ab6a..492d106f21 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 21f8fcbb0f..f02f27005b 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< +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 @@ -17,6 +17,5 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 1 // Number of LEDs - -#define TAPPING_TERM 200 +#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 0000000000..196e863bf5 --- /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 0000000000..48978b2a2b --- /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 0000000000..ee32568148 --- /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 0000000000..48978b2a2b --- /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 0000000000..aaf0497be1 --- /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 0000000000..b9a50a93c9 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..aefadf12de --- /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 0000000000..ca18457196 --- /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 0000000000..ee32568148 --- /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 0000000000..192bd377bd --- /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 0000000000..8111cb54a7 --- /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 0000000000..7b8a275ee4 --- /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 0000000000..7ff128fa69 --- /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 0000000000..a4d47b34f3 --- /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 0000000000..42e606c149 --- /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 0000000000..8797471b4c --- /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 0000000000..36b7ba9cbc --- /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 0000000000..179563995c --- /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 0000000000..6e7633bfe0 --- /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 7928ebcd35..5e90ea1c05 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 ddd45dae05..32a289dace 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 8e460d7b4c..d668f9b41e 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), + 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), - 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(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 31f2930ac1..0000000000 --- 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 3600de0c35..ec29a53168 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 7506090b1e..04bc8cb2d2 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 7c106b1448..5f7d444411 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 80ac84c64f..666cb49b2e 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 efb55bb989..52579e1c43 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 80ac84c64f..666cb49b2e 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 9dab738c38..98cb6bb431 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 7506090b1e..04bc8cb2d2 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 a7e73c84ae..35144cc25a 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 84d08bce54..f1dcbbcf3d 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 45958b56c9..673fda9acf 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 5fddd8102a..b0b9607f4b 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 7868308ead..e5c39fce31 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 7b6ef67bd9..37fde91599 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 4a441b7385..e811c70d5b 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 eacb0a3ce6..c91a34f55c 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 cfdb94059b..0a6437f0ef 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 8ff700ade8..92a3858433 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 797627865e..49b84b280a 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 9b11f873a1..cb76145388 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 e6fcd30ebe..8c9a5702f2 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 7d3a710bc5..05d0934b96 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 82d5e4237f..874033acc9 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 8b64704638..7908e4ceca 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 7a5a6fbb6d..9b466c216a 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 6068bc87d9..4551532bfa 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 b9a9b7eb95..64ab0bd85c 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 77af9dc3da..1c65d3584e 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 3c32ccf76b..f11f6ac3d5 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 326f4795c0..1f8c7a49a0 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 d59a5fb02c..cce49aea05 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 5fdb1567a4..6ad854a5a2 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 dd7cfc232d..0c43da36e4 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 d166baebc7..35e52a8fc4 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 3705550a60..6c54145723 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 4d41664e3c..c6959a6590 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 70575f7381..fe35f74e79 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 218631d1d5..0000000000 --- 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 a12226cf51..8319972abd 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 23284233ef..0000000000 --- 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 d01080fabf..c801c1352e 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 0dc7502eac..5a7ea57b43 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 fc23ad45c5..7328cfca79 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 1ffe78fc5c..66dea6414a 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 cdaade987f..d1917e4aa7 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 828667122d..0000000000 --- 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 0d47a51f95..35a40b60ff 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 8a326c3ba0..0000000000 --- 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 e7aab1bea3..b87fc9a29d 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 366d9d3325..5f36081323 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 f29e8dfe0d..0c76516e80 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 5d8ea732f6..61e6ee878c 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 8986fd6c3d..c384c3c520 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 19bd7fbb1f..0000000000 --- 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 7a5dce5906..6070b3a59a 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 d8b9a4fa0b..0000000000 --- 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 1361138549..4e955777a7 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/lefty/rules.mk b/keyboards/lefty/rules.mk index e0d5a4375e..bbf738e03b 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 a7b7c4843e..0b8941e776 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 3c9cea5e5e..6f00161cd5 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 a30fed6078..0b8941e776 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 d25e6de611..8c6d622732 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 3655ec19c5..dee5c458b2 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 cf716c0507..76972243dc 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 ae682e447f..221eee1bd4 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 894a009583..ca2e2c695b 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 5748d29987..89d9c4b243 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 f1836baa27..481ff1407b 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 03f975b9df..817a085f5e 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 377ea21123..0000000000 --- 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 92662bacc7..1431ce1cc6 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 78343dc888..0000000000 --- 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 830205c584..980ffafc63 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 78343dc888..0000000000 --- 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 8f9198b089..5ff7bcbbfd 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 6c0b7f6d8d..4e3f7b9256 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 3a8f16e0fd..20aba2ad6b 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 d76ee0c693..6a2d5eb796 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 ab5bc0930d..8d2c18f6dd 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 9babefffc8..ec4ce1afba 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 9a6b4ff65a..01b8506d3a 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 0e7008aa20..7baa40317a 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 457f3602ab..ad3ad7f877 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 7d18e71197..cf627facdf 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 2dc08f71f6..154e03fe77 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 5393e47b39..b9449c4714 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 d4abb0abdd..a3910b0df5 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 ad997587b2..044d9754f1 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 b60f4b532f..ec8efa88bf 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 c367ad95c3..20aba2ad6b 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 cf1cc7764b..6737c1baca 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 ad997587b2..044d9754f1 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 edd26e498d..473bcb10ae 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 ad997587b2..044d9754f1 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 edd26e498d..473bcb10ae 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 0cc9a7b76b..1f0147bd38 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 0cc9a7b76b..1f0147bd38 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 0000000000..044d9754f1 --- /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 af7f6b17b8..c758caa92c 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 f635133e9a..39df87cc23 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 57bf01d4cf..1bd6ebc6a6 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 50ce341053..9e32ac9d3f 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 63e9d0abc7..50c039b76c 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 2545747959..e372473a50 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/info.json b/keyboards/lily58/glow_enc/info.json index 79358416f5..006cf0aa21 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 d952ce457b..b3a47769bf 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 fed5b6df67..58a19ebd5f 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 19b372e569..c851d7ad0e 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 143a950ef2..830139cc03 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 10228e3677..f0442f1008 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 988e3eb6f8..f4f3140d51 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 b7129b71e0..c98ec4254b 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 8edd92cc3f..cf8b13786e 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 4b7da61a0c..401abfb4cf 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 ec0960470a..35c0f25f2c 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 5ca0b73653..b94ea9397c 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 dbd058a8b5..08ddcd4e32 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 03e56b1bd1..ae44d372c6 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 d3528d52a1..3c1f402d2a 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 4bf723eb8d..ce9aa64e35 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 7c38d43f82..004fc910f6 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 b7c57d87b9..9f00574d5d 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/keyquest/enclave/config.h b/keyboards/lily58/keymaps/pomodoro/config.h similarity index 69% rename from keyboards/keyquest/enclave/config.h rename to keyboards/lily58/keymaps/pomodoro/config.h index 012d53a36b..ce2b0e4bcd 100644 --- a/keyboards/keyquest/enclave/config.h +++ b/keyboards/lily58/keymaps/pomodoro/config.h @@ -1,26 +1,35 @@ -/* Copyright 2021 keyquest +/* +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 -/* 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 +/* Select hand configuration */ -/* RGB light animations*/ +#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 @@ -31,3 +40,17 @@ along with this program. If not, see . #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 0000000000..7689a391f2 --- /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 0000000000..1c0641978d --- /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 0000000000..a6666f7fc1 --- /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 d3528d52a1..3c1f402d2a 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 03269aa6a9..3ab9222b9d 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 8e07ec837f..55d05464bc 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 1c87661113..c8c9eea5e9 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 3d74fb45e4..9bb86a11ad 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 88cb95c243..0000000000 --- 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 7cca1288a3..1c556e429a 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 da72735e2e..955cf70161 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 e445d1d48f..c7fe3e011e 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 8e94f9f62b..0000000000 --- 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 a3e89ec3a7..6f341915bf 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/rules.mk b/keyboards/lily58/rules.mk index 76ce166170..a63bd42ad3 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 6ecfdf3034..ef4f99076d 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 215b47e103..13caf33841 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 f83c13ac8d..8ef96fa9d0 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 73e72a129f..41c1a917f3 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 af31ae9eca..d6925994b5 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 0000000000..fd70ee7c38 --- /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 0000000000..b7753c2fce --- /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 0000000000..22e9c5f782 --- /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 0000000000..22e9c5f782 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..645c5d257d --- /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 0000000000..e69de29bb2 diff --git a/keyboards/linworks/fave65h/config.h b/keyboards/linworks/fave65h/config.h index 2c8d4845b1..3f549797d8 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 c0fbdd6903..3bcfcb0116 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 96e432e5ee..01619e7bc6 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 c46332b007..0000000000 --- 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 e77af6d10d..8f551d8d39 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 ef57446100..e84a0ec929 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 4b7aff9ae3..c2008c4bb2 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 0000000000..bee089bb43 --- /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 0000000000..005d7d06d0 --- /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/nightly_boards/n40_o/keymaps/ortho_4x13_encoders/keymap.c b/keyboards/linworks/favepada/keymaps/default/keymap.c similarity index 55% rename from keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_encoders/keymap.c rename to keyboards/linworks/favepada/keymaps/default/keymap.c index f6e0dc23ee..e17d76109a 100644 --- a/keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_encoders/keymap.c +++ b/keyboards/linworks/favepada/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Neil Brian Ramirez +/* 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 @@ -15,12 +15,21 @@ */ #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 + [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/tominabox1/le_chiffre/he/he.c b/keyboards/linworks/favepada/keymaps/via/keymap.c similarity index 51% rename from keyboards/tominabox1/le_chiffre/he/he.c rename to keyboards/linworks/favepada/keymaps/via/keymap.c index 6ee8214953..e98ca5e741 100644 --- a/keyboards/tominabox1/le_chiffre/he/he.c +++ b/keyboards/linworks/favepada/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2022 tominabox1 +/* 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 @@ -13,21 +13,23 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "quantum.h" +#include QMK_KEYBOARD_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 +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 0000000000..36b7ba9cbc --- /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 0000000000..7f06ca90ca --- /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 0000000000..e69de29bb2 diff --git a/keyboards/linworks/whale75/config.h b/keyboards/linworks/whale75/config.h index e21a6d3974..629c1dcf70 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 b08d77e307..c5bd5d78b7 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 2fd78a13f1..76b31f0a0a 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/info.json b/keyboards/littlealby/mute/info.json index a6392a76e7..a4a2a5822e 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 b4d4367f1d..4ee4b5a997 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 6208b749f9..cde72e5882 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 c7f8935a08..722f12e66e 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 e40b0762d3..aea945a035 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 ed8af5bc77..6698ed9f34 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 750a12d64f..3627f4c7e6 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 a1a5e3ef06..8424f7d437 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 000ee78e21..cc9d7bb3f5 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 caafcfd8a1..0000000000 --- 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 52964256bb..f3d4203922 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 e3302cef1c..2cbecb782d 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 93c617b1a1..23e76c7854 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 bd0122a4a8..b7257c8274 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 0000000000..7ee3ce0403 --- /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 e1469cb813..1cc8e43cdb 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,7 @@ {"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}, @@ -116,7 +119,604 @@ {"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}, + {"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}, + {"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}, diff --git a/keyboards/lucid/velvet_solder/keymaps/default/keymap.c b/keyboards/lucid/velvet_solder/keymaps/default/keymap.c index dbe2f58a81..57fa9bf2bc 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 b6d8377e4c..2c7cd72db8 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 0000000000..3269c061aa --- /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 d236546c3b..bb9aceb95f 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 0c4401c32b..67c9085d92 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 ef5df5dd3d..b7ade40289 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 db42ab6247..6f3aabc44f 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 4f298a1af8..870f7003bd 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 d7e266d134..68918a38f2 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 bfe30b7981..8860bbd010 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 22cff4a718..047ea69808 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 ca8d16ba67..ab9d5c6ac2 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 64f4553f90..2977cd9d40 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 96eaf9fad6..ad6acdb100 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/info.json b/keyboards/malevolti/lyra/rev1/info.json index 2b7f8fbd71..7a9aa305ac 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 cffc2e9ff2..0000000000 --- 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 59cd50af42..989e6baaa7 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 918edbdbb0..cd3521fd65 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 ba48f72ad2..86637d4b68 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/info.json b/keyboards/manyboard/macro/info.json index 3df9a79430..10218337d9 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 59679e2753..0000000000 --- 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 b799baa28c..56531d6fa2 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 0a19667957..e675f2f932 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 3b971cb673..de89abee75 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 f1e753017f..73ddf107ec 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 c3b1e0a8b9..9fa73f2406 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 7cf73259b4..0000000000 --- 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 81c23850ec..a846dd83f5 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 c64be02975..38cf73ae1e 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 1908f56eeb..2b77267da8 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 e3b34d1bf0..b9449c4714 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 336d48af4c..9ba1355fdd 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 8f87bd4f1a..4d408c6e4b 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 44e8b9bca5..139214ad49 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 d3250461b2..bd9aeeecdb 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 fc4ee548d1..be8a846cfc 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 22435108df..0d26ca0cf0 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 878b4db2ac..4ca3d8b138 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 1f3a9ec168..fca4ba8f3d 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 00538f7e8a..7da6e2c24e 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 c3c8f23cbc..e9a8cf564a 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 f4dfc35ec1..5c13e5b15c 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 fafe992d6f..6b041a7554 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 4335ea0670..4d408c6e4b 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 6e39235dc1..59af38e55d 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 78219bface..e9a2de4c25 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 edd906deb5..8df4376806 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 51772f1fa3..c974fb9e2b 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 b74c059008..38a9de45ac 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 7fb34f5001..47955aa220 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 e6e77ba1ee..2205db43fa 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 421773affc..8d4c69bb9c 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 7d88bb81f5..972aab9d0d 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 4466ec3bea..4567f0348d 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 8ee1b57bde..0000000000 --- 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 935035317c..147fc7c5c8 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 5a74ab5206..452fef4cee 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 33dedc6bce..507c36120e 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 671d272d85..0969998fa9 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 55ea2f42b0..3b75264222 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 b6b67b1bcb..a8824e4867 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 f05898aed9..7bb3832cbe 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 0b552acfda..804d1c386e 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 2d3b6e8a4b..5502edcb9e 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 0000000000..5c5d4d6c08 --- /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 0000000000..b64c4a299f --- /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 0000000000..b64c4a299f --- /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 0000000000..036bd6d1c3 --- /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 0000000000..8dcc6390b0 --- /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 0000000000..7ff128fa69 --- /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 9388d3da68..0000000000 --- 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 5fd2c83514..4c18643161 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 603bf2a949..0000000000 --- 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 f73a11bcd7..b81ce87b21 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 8f261b69f2..a55618488c 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 422b3f6270..04012cf234 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 16e5930364..1620751fac 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 5251bc600b..73efa61268 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 a7436fb00c..41ccde9702 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 40d6710829..53dbc75dcf 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 f76d0f01e1..0000000000 --- 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 eea1d15feb..7dda26af25 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 9517f6a731..93c5aa9e24 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 53f60637f9..26d0b93000 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 782b3a7381..b5b661bef2 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 ef7658a1e1..4cc03cec3b 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 205f587238..be2e71f903 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/info.json b/keyboards/mechllama/g35/v1/info.json index c5d4c69e7b..36d542dc58 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/info.json b/keyboards/mechllama/g35/v2/info.json index 563625f428..aa6bab7525 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 816b9414c1..bdf9e7fdf5 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 1e549f9a89..d4b34ff48e 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 4ac693f894..60fff3c7a7 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 c4f801b40d..c4961c6492 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 d1775ccb83..6064967f7f 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 5664ce6844..e144301381 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 1c9b61b9df..d8e1a8fd39 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 9c6bd46a70..578584cc54 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 254d204038..0000000000 --- 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 a5ebef5b87..46907dc7a9 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 7905be1891..0000000000 --- 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 b6ee0c5b67..f0d10942ad 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 0e23efaf3a..dd04e29a7a 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 31de7de957..95aac7b0d4 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 61c495c889..0000000000 --- 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 7f775f8c36..e1b90d1191 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 7d9aa447f9..9498e8914f 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 3b9fb036e9..59127ea64f 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 cdcfe8572c..0000000000 --- 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 7132ecb953..bec0c883c5 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 5e82c00c66..3eeba2ab7e 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 81335f31be..7e9a918493 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 61ce6898c8..84524c2331 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 1686c861fb..0000000000 --- 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 ef401a6c2b..a6ae7f4a10 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 7b793c75b9..0000000000 --- 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 49eb2af5c1..af20cffd4f 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 c37c581ae6..0000000000 --- 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 43f6ab51a1..a9cfe5f66b 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 fbb878ab6a..0000000000 --- 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 d6b606913d..abeaa1e182 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 14dfffbed3..0000000000 --- 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 a22137acf7..4cfcaebcde 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 4ae471cb47..dfeb91e0ba 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 2265fff2d1..e21e5d019f 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 7b3e497cdf..0000000000 --- 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 c83cad4b06..964a7a8cb9 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 851a9f860e..39ae7c362f 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 d3b5cfc3ca..42db9894ca 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 b3fc9f63d3..347ea1b311 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 fcec3c2afa..bb249cf39b 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 40bcfcfeb9..c12d2db178 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 fdbb45a7d6..3724d8a82d 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 88c6c21dfa..0000000000 --- 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 1c49d54106..0ded6a5eee 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 bfa2908890..0000000000 --- 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 1e8dafd2d7..f8931cdff8 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 bf5e80fc75..0000000000 --- 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 698247d76b..7e1ba1fa2d 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 1fb8123364..0000000000 --- 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 fbd556217c..9a8cf1b5d2 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/olly/bb/config.h b/keyboards/mechlovin/olly/bb/config.h index e48a1c82a1..84a700e410 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 c3b55f95d8..fddb893113 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 c028a04554..35480dc83c 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 0d49cb611a..cb0ab92fb4 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 a1127f6aad..4e502b6154 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 81893874e0..3621f491d8 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 9b3e98be71..0000000000 --- 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 ad792e81af..0c0ee86c95 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 5cc93f2d91..0000000000 --- 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 84fdaefd21..bf084ba863 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 1efbadfd29..5c7dc13e4b 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 69a64066cd..780a369cb8 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 e604c6bcfa..03e3beacd0 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 ebee58857b..cdbbd6dd0e 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 f02dfd89a5..83b8c3f449 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/handwired/dactyl_manuform/4x5/config.h b/keyboards/mechlovin/zed65/910/config.h similarity index 74% rename from keyboards/handwired/dactyl_manuform/4x5/config.h rename to keyboards/mechlovin/zed65/910/config.h index 9a4e39dad2..a5902fa9c1 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/config.h +++ b/keyboards/mechlovin/zed65/910/config.h @@ -1,6 +1,5 @@ /* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert +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 @@ -18,5 +17,5 @@ along with this program. If not, see . #pragma once -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 +#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/spaceman/2_milk/config.h b/keyboards/mechlovin/zed65/910/halconf.h similarity index 89% rename from keyboards/spaceman/2_milk/config.h rename to keyboards/mechlovin/zed65/910/halconf.h index 6a3ec9c5c1..e4ef339ffb 100644 --- a/keyboards/spaceman/2_milk/config.h +++ b/keyboards/mechlovin/zed65/910/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2019 Spaceman +/* 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 @@ -13,8 +13,10 @@ * 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 +#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 0000000000..7874c09e2d --- /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 0000000000..1c530e8420 --- /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 0000000000..d41ff03472 --- /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 0000000000..36b7ba9cbc --- /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/horrortroll/caticorn/rev1/solder/keymaps/via/config.h b/keyboards/mechlovin/zed65/910/mcuconf.h similarity index 86% rename from keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/config.h rename to keyboards/mechlovin/zed65/910/mcuconf.h index 8fe93c228c..ab20db61c3 100644 --- a/keyboards/horrortroll/caticorn/rev1/solder/keymaps/via/config.h +++ b/keyboards/mechlovin/zed65/910/mcuconf.h @@ -1,4 +1,4 @@ -/* Copyright 2022 HorrorTroll +/* 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 @@ -16,4 +16,8 @@ #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 +#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 0000000000..7a207e2b44 --- /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 0000000000..7ff128fa69 --- /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 9806ec92d6..1ec1746456 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 c2133902ce..228d2c50d5 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/info.json b/keyboards/mechlovin/zed65/no_backlight/retro66/info.json index 7919090563..0709014f76 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 9f668f2c47..5cb2a00b88 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 264d20504c..5b0df671df 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 193430bfed..20f04dbe65 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,167 +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": [ - {"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": [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": [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, 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_65_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -274,7 +137,234 @@ {"matrix": [4, 14], "x": 15, "y": 4} ] }, - + "LAYOUT_65_ansi_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, 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": { + "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}, + {"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_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 7a922d6b85..1929a0084c 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 333f14ec70..a3ab29005f 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 0000000000..6af22df46c --- /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 4dea48a878..0000000000 --- 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 fe38614965..6b301e69e4 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 0000000000..658c829f04 --- /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 0000000000..e8a26fd28a --- /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 0000000000..6cdd598124 --- /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 307b1ef797..bade0749fc 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 3e6a4da7db..a521203b32 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 f9f13d9ac0..7a7d9cfd15 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 f4b1fa141a..796d22e363 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 27c445ca2f..a62bc3d00c 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 c8381bc636..219a4ec7b0 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 5401c8898f..5221238784 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 c04e6937b0..875d431168 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 7f902d0ca4..f13e1e582a 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 4ab38d9d37..05ca6775df 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 c04e6937b0..875d431168 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 000ad09768..6898c0a344 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 29247492ca..dd635fed59 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 ddfffd4c4b..df9b208bb2 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 300bb16ef5..d9eed88676 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 f529efd1e6..98c70bef08 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 1df6c97bea..53263d764e 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 b8e653be6b..503d9b4429 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/rules.mk b/keyboards/mechwild/puckbuddy/rules.mk index 4bddc4813f..980fe281cf 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 1512cc1528..75aa26956c 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 046776be49..f8439dde11 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 acf0b6f1f4..9cfa6b7797 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 21e197df4c..d9eed88676 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 1014411ba0..0d50b0f261 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 ee2a7c0d6a..0ab54aaaf7 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 e5f456306d..0000000000 --- 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 f192bb5036..9a81cba932 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 e5cc1f3e5b..0000000000 --- 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 30e4962a29..59de004989 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 3eab5dabb0..b96eff2257 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 62e10541c2..f593d408d5 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 43061db1dd..1189f4ad19 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 10b48c7b2d..0000000000 --- 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 e5cc1f3e5b..0000000000 --- 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 b8b59a487d..932dc8571e 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 9d9aa67557..b96eff2257 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 4adfaba69d..f593d408d5 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 43061db1dd..1189f4ad19 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/zoom87/config.h b/keyboards/meletrix/zoom87/config.h deleted file mode 100644 index 3cc2858e75..0000000000 --- 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 be54c6ccd3..551bdc76aa 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 3a1a27847d..1d7d87b76f 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 bb04eddd5b..da4c6b73d8 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 3a1a27847d..1d7d87b76f 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 7e578c78b5..632466376d 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 c146adef04..705023fb8e 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 330137a02a..62b2c58f15 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 c146adef04..705023fb8e 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 330137a02a..62b2c58f15 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 c146adef04..705023fb8e 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 c146adef04..705023fb8e 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 330137a02a..62b2c58f15 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 71fce4cf7a..061b4bc83e 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 dbe73b7e3d..288c8e3a3e 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 5dd66001c5..dba086e493 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 c5dcb5d410..7e160d0c59 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 cadc625adb..bea523c84e 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 7d7c6db3ff..c22c5710a5 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 31aa067323..c54f53ca61 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 697d107a4f..ae555e046b 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 9ff2e778c6..d0b23c3bf8 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 2cd54cde39..f0ecc58d80 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 b5d80286c7..a38eee886b 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 b38f37579e..50a1438ecd 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/info.json b/keyboards/merge/uc1/info.json index 95de5a2e20..b1f032417f 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 bbc2f5b5fb..04569dc989 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 84f44ba6d1..95f3bb1cea 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 de0aec2ab2..11776618e2 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 84b23cd33b..70a5d7ba59 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 2223b3d4c0..554d1997a3 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 de0aec2ab2..11776618e2 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 1fec8e4215..8bd01d2bb4 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 e89409d477..a84e55df1f 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 62aa154c0b..55b4591f1f 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 8d8aaed5c7..d23f6af9d6 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 fcfecd0fd7..6e44d33913 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 c66bba782f..952bb34397 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 0b3c4eb59a..0000000000 --- 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 9ca79d2186..fe7173e34a 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 8d0955d769..716fdf387a 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 6f6c68d8d0..9b7f3104a0 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 317e150935..0000000000 --- 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 e417a689ae..4396783673 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 1d1616ee25..52607b345c 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 c386795024..62a8d2df94 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 0000000000..b8c0007938 --- /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 0000000000..fb8ce45220 --- /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 0000000000..a5920b2617 --- /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 0000000000..b7cda6d71f --- /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 0000000000..f068c66215 --- /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 0000000000..901adcb3d2 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..7b8a66123e --- /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/handwired/jscotto/scottocmd/rules.mk b/keyboards/mino_plus/hotswap/rules.mk similarity index 51% rename from keyboards/handwired/jscotto/scottocmd/rules.mk rename to keyboards/mino_plus/hotswap/rules.mk index 9f00574d5d..76e55c05f4 100644 --- a/keyboards/handwired/jscotto/scottocmd/rules.mk +++ b/keyboards/mino_plus/hotswap/rules.mk @@ -1,2 +1,2 @@ OLED_ENABLE = yes -LTO_ENABLE = yes +WPM_ENABLE = yes diff --git a/keyboards/mino_plus/mino_plus.c b/keyboards/mino_plus/mino_plus.c index 62434016f7..cd651b6d17 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 0730e30d63..0a85b6dc58 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 0000000000..036bd6d1c3 --- /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 842350f40e..76e55c05f4 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 41c0f7e8eb..a93b381c85 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 bd51052853..4f2f658a20 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 55e57fb872..0000000000 --- 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 65087ac481..51ce82d1ba 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 de4cbe598c..e61a4270e1 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 eba5475d83..d36739d42b 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 2fc140cba6..d7bfaf11f0 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 167cffb914..7f7e117303 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 d0ecc011bf..aa196e1482 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 0f15f10b20..0098dc473a 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 bbe55dcc48..cb847450ba 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 18d66368b5..98fb591a40 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 0f15f10b20..0098dc473a 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 76fa3df3f4..b9449c4714 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 0c1c5d7c44..f9c9b5b727 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 3ce4e14575..51a0b6fefa 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 ad57ad01d6..b24301443d 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 aa31b758e9..44b1d0aad9 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/info.json b/keyboards/mk65/info.json index 0ad1476419..44a8e15f15 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 10a3d3bfb4..84467251b0 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 990b45f1ce..9831c7beb6 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 aa72a3c853..7fe790e601 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 615e36557a..a533571beb 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 36b7ba9cbc..1189f4ad19 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 303b7ae5b5..ed9619f3e5 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 4ccf9ede92..a1f42260a2 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 dc6c4c225d..ed9619f3e5 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 bbe9f86112..293041db82 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 f6f86beed1..b351e66d2c 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 6fe572fcf1..3d66633ac9 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 cfcb26edc1..bf60a6966c 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 40718aa647..1ba28e0a52 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 8a711234b5..ee48872433 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 2ed846b170..847dd11823 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 3c939ef4c2..960b9325c8 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 791b73e2f6..666d296ede 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 64df0a2ba6..8d822ae4e7 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 81f02bc411..847dd11823 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 b72b706587..4f9b866565 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 942f360688..d0475aabaf 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 d671845e62..a97c734ff8 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 bf9405e1d1..3e44c80fe0 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 99f9e80b3e..0000000000 --- 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 558d1fa0dc..504e7b1061 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 7000bb6571..7c0709f41e --- 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 7000bb6571..7c0709f41e --- 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 ae3dafb3de..50f3a3d151 --- 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 55a7a8457e..c12ca23672 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/lily58/glow_enc/config.h b/keyboards/mode/m256wh/config.h similarity index 70% rename from keyboards/lily58/glow_enc/config.h rename to keyboards/mode/m256wh/config.h index cf58b0fe45..c976b6bcc5 100644 --- a/keyboards/lily58/glow_enc/config.h +++ b/keyboards/mode/m256wh/config.h @@ -1,8 +1,5 @@ /* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2017 F_YUUCHI -Copyright 2020 Ben Roesner (keycapsss.com) +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 @@ -20,7 +17,11 @@ along with this program. If not, see . #pragma once -#define RGBLED_NUM 72 // Number of LEDs +#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 RGBLED_SPLIT { 36, 36 } -#define RGBLIGHT_SPLIT +#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 0000000000..485d48ef30 --- /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 0000000000..3e2d0eb276 --- /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 0000000000..fcf3503230 --- /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 0000000000..fcf3503230 --- /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 0000000000..1e5b99807c --- /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 0000000000..cec427f329 --- /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 0000000000..3d1d05c307 --- /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 0000000000..8b253f427e --- /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 0000000000..e69de29bb2 diff --git a/keyboards/mode/m256ws/config.h b/keyboards/mode/m256ws/config.h new file mode 100644 index 0000000000..c976b6bcc5 --- /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 0000000000..485d48ef30 --- /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 0000000000..8f837e316c --- /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 0000000000..03b49aac22 --- /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 0000000000..03b49aac22 --- /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 0000000000..1e5b99807c --- /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 0000000000..5603de7b01 --- /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 0000000000..3d1d05c307 --- /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 0000000000..dee23c9a8c --- /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 0000000000..e69de29bb2 diff --git a/keyboards/mode/m65ha_alpha/m65ha_alpha.c b/keyboards/mode/m65ha_alpha/m65ha_alpha.c index 60a9a89927..afb093058f 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 71de5b0a9f..da4b493847 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 60a9a89927..afb093058f 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 71de5b0a9f..da4b493847 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 ed3faacae0..80d31d8d75 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 06e49f7667..0a0c93f3f8 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 70aa52c461..954644310b 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 91bc99f944..5dd8d547ab 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 640cc43a5a..c6d7d037ec 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 6c53f594c7..d4831df0d7 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 1ebbb8f29f..f57aac383e 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/rules.mk b/keyboards/mode/m75h/rules.mk index ee752a964b..328eece1f9 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 b8307f4396..7fdb18d26a 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 bd7d6a84c5..760b9cb9e6 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 8c9d2aea96..5742215e0a 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 8c9d2aea96..5742215e0a 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 113eb5ade8..475d3a239c 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 113eb5ade8..475d3a239c 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 0000000000..6f22429e72 --- /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/nightly_boards/n60_s/n60_s.c b/keyboards/mokey/mokey12x2/keymaps/default/keymap.c similarity index 66% rename from keyboards/nightly_boards/n60_s/n60_s.c rename to keyboards/mokey/mokey12x2/keymaps/default/keymap.c index dd0d23425b..74fbf1e947 100644 --- a/keyboards/nightly_boards/n60_s/n60_s.c +++ b/keyboards/mokey/mokey12x2/keymaps/default/keymap.c @@ -1,4 +1,5 @@ -/* Copyright 2020 Neil Brian Ramirez +/* + * 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 @@ -14,15 +15,12 @@ * along with this program. If not, see . */ -#include "n60_s.h" +#include QMK_KEYBOARD_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; +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/nightly_boards/octopad/octopad.c b/keyboards/mokey/mokey12x2/keymaps/via/keymap.c similarity index 66% rename from keyboards/nightly_boards/octopad/octopad.c rename to keyboards/mokey/mokey12x2/keymaps/via/keymap.c index e05782677e..74fbf1e947 100644 --- a/keyboards/nightly_boards/octopad/octopad.c +++ b/keyboards/mokey/mokey12x2/keymaps/via/keymap.c @@ -1,4 +1,5 @@ -/* Copyright 2020 Neil Brian Ramirez +/* + * 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 @@ -14,15 +15,12 @@ * along with this program. If not, see . */ -#include "octopad.h" +#include QMK_KEYBOARD_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; +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 0000000000..1e5b99807c --- /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 0000000000..75a87062c9 --- /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 0000000000..6e7633bfe0 --- /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 014b1f93a5..54d60e9963 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 fa116fd1c0..d45bb124b0 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 96f600b3aa..262576b31a 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 e3f2f2965e..afc5aa2015 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 95daea5cdb..ff47a1be3e 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 a9f67ee904..76d64c3563 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 e707b2104b..5df9e560d0 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 c70f9c213b..39ad94fb8e 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 +#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 = 5, .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/monarch/keymaps/via/rules.mk b/keyboards/monarch/keymaps/via/rules.mk index 1e5b99807c..f1adcab005 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 5a2c15a821..195a2958ce 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 f7ed4b0938..39c2546bba 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 0000000000..3e44e815fa --- /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 0000000000..2f64e65393 --- /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 0000000000..5e772f81f6 --- /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 0000000000..a0929d083f --- /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 0000000000..ee32568148 --- /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 0000000000..a0929d083f --- /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 0000000000..f1adcab005 --- /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/m1.c b/keyboards/monsgeek/m1/m1.c new file mode 100644 index 0000000000..ac00bb4e2b --- /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 0000000000..e2884f3828 --- /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 0000000000..72af4c4382 --- /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 0000000000..b753f0682e --- /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 0000000000..6d43bd4f26 --- /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 0000000000..2f64e65393 --- /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 0000000000..4e504b8663 --- /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 0000000000..28c433736c --- /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 0000000000..12c2008705 --- /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 0000000000..036bd6d1c3 --- /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/m5.c b/keyboards/monsgeek/m5/m5.c new file mode 100644 index 0000000000..7dbc3111bf --- /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 0000000000..0d16f4f04e --- /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 0000000000..6574b3d663 --- /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 0000000000..24d5f6f52e --- /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 0000000000..5fcd897429 --- /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 0000000000..2f64e65393 --- /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 0000000000..d23d2f8322 --- /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 0000000000..8a03db1790 --- /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 0000000000..b7e8cecd71 --- /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 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/monsgeek/m6/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/monsgeek/m6/m6.c b/keyboards/monsgeek/m6/m6.c new file mode 100644 index 0000000000..1823d865cc --- /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 0000000000..e2884f3828 --- /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 0000000000..ca30e5da20 --- /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 0000000000..24d5f6f52e --- /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 34d301311b..770c20f019 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 ebbfa848c1..96b0319945 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 f8e73dccb8..088e09dc81 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 9a38968618..7013ce903d 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 b0b9bb6c17..274c715a93 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 9f4e89497e..565e56701f 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 67811c18a3..8e2797ebf5 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 6d43ee82c8..d811aaa780 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 fc09859f82..acbb278a33 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 f68b60379c..0e5282c511 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 0000000000..350c52c72e --- /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 0000000000..0c6923403d --- /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 0000000000..ba3f5353d9 --- /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 0000000000..1e5b99807c --- /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 0000000000..184f608c5d --- /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 0000000000..e69de29bb2 diff --git a/keyboards/ms_sculpt/info.json b/keyboards/ms_sculpt/info.json index 7afd13d96d..3536d4501f 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 d64abe822d..6e7633bfe0 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 16577a21e8..197a78a924 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 6f300fbbb2..c1850d1191 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 b61be3ea8f..28be4f1a5b 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 db328f8dad..d260a51b60 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/info.json b/keyboards/mt/mt40/info.json index 4d3cab4eba..83980bf794 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 afcb90c5d2..0d877306e3 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 58ded7742c..f2723823ee 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 1a2d49d734..67aae9a1fd 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 e7a7507d7e..74343e3583 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 eff34dc521..5f36081323 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 809474914f..b27bf8aae8 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 e98a1d71de..f0817dd33d 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 f02a2f7405..b79a30709f 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 f954d5fd95..1a2fa71644 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 dc20f93dbc..e03d528a2a 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/mtbkeys/mtb60/hotswap/config.h b/keyboards/mtbkeys/mtb60/hotswap/config.h index 8d17412313..56a9edf0aa 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 c1acbc3b86..deb6f6a0fe 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 8d17412313..56a9edf0aa 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 5cf3a327a1..9fdca32a3e 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 2e8b3f3bec..654ec7e363 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 b77bbd8bdf..75b65279d6 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 92e893d5c5..5c3ae235b1 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 541a15608a..f1adcab005 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 f987360d4a..0000000000 --- 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 baa73a6e3b..2646340658 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 c2a8a6c188..73e3c0ea24 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 8153790b14..77750b5174 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 ef5ea90b61..6179d4cdc1 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 7fadbdc39c..bd979e9c81 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 f4625bf7a7..e51a5e3ab8 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 a1b54a8411..827cd0db38 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 36b7ba9cbc..1189f4ad19 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 8c5cad9bef..87659c1f67 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 5d1edb296f..fdbd7564a7 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 0a9b073ce1..e5dd4fd03c 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 cc2e3dc408..197a58d7ab 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 ded31181aa..863a090d47 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 f86df57fe5..8f9d19e016 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 633629abc7..777a0dd6f4 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 36b7ba9cbc..1189f4ad19 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 d33ee88ce8..bfa2338678 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 7828803ae1..7b24c46717 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 7240672afe..adb2cf5d87 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 827e0fec0e..4fd9981145 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 0000000000..a6e9a6c480 --- /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 0000000000..85f1431b29 --- /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 0000000000..dab8a50c45 --- /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 0000000000..ee32568148 --- /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 0000000000..dab8a50c45 --- /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 0000000000..1189f4ad19 --- /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 0000000000..0a928205c7 --- /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 0000000000..6e7633bfe0 --- /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 9c6773547e..fe1acecf24 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 5c61b6f5fe..c499277889 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 0391f174c9..643a3b52db 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 7000bb6571..7c0709f41e 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 bd03d32227..0000000000 --- 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 ef9b518920..606ac53b7c 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 a226d236c3..fcf24c68c8 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 b81bb4b2ce..6cb972b17f 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 ca61554f78..f79051ebce 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 0aeca0dd9f..7f4f202a1b 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 e71dda2781..0000000000 --- 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 b744c334b5..707993d4a3 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 3165d58b2f..0000000000 --- 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 1ae8869ee9..526da4ba06 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 1dfb4e03ac..0000000000 --- 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 87c4d0c03f..567a56d926 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 6200d5a594..0000000000 --- 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 8a8f357c96..0a0340c06d 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 a5a5ad9120..cf31b6b72b 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 e35f0c4d0a..cf89616aa8 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 3f339ad554..12a979ab11 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 9a4c8240c0..91d96c6a4d 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 770748fa29..3f383b4f8f 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 5727ab655f..cf99404641 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 0000000000..f21b644f56 --- /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 0000000000..d481379e21 --- /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 0000000000..9de688505e --- /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 0000000000..43061db1dd --- /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 0000000000..63f08b8639 --- /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 0000000000..9b821c16d0 --- /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 0000000000..6e7633bfe0 --- /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 18c605eb62..13a3919745 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 2cbb4c117d..809d685ed1 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 0000000000..247178beec --- /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 9e42693cb6..c3b8e77d77 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/config.h b/keyboards/nightly_boards/adellein/config.h index d1703c1c80..549b82fe0d 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 522fb58d5a..0000000000 --- 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 fb22632632..0000000000 --- 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 81e21e9377..192f8005c3 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 c4c0adffe3..acfac215a4 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 43061db1dd..1189f4ad19 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 8daf6a353a..aa619121b9 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 6588633890..3223a5a19b 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 e0ea3294e9..48e8da0c9a 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 541d2e289e..3d0b7f438c 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 e318151c8c..acc375ea35 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 0fec21c752..3223a5a19b 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 f925eba577..2a068e1a2e 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 474742b6af..27a82c8acd 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 522fb58d5a..0000000000 --- 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 fb22632632..0000000000 --- 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 ec403fb647..1f341441a4 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 658b43689a..bd57f61055 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 55f22cdc49..cda2bb6050 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/via/config.h b/keyboards/nightly_boards/n40_o/keymaps/via/config.h deleted file mode 100644 index 1208e2769f..0000000000 --- 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 830d8d8782..e9ddb71401 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 43061db1dd..f1adcab005 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/rules.mk b/keyboards/nightly_boards/n40_o/rules.mk index f1189a87d2..6e7633bfe0 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 75f803f548..519ac7b82a 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 522fb58d5a..0000000000 --- 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 fb22632632..0000000000 --- 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 2e49134300..46da18996b 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 9316b20c75..0000000000 --- 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 cc25ac42e7..0000000000 --- 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 d76c734782..04078c784e 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 - ), - [2] = LAYOUT_60_ansi_split_bs_rshift_encoder( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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 ), - [3] = 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 36b7ba9cbc..1189f4ad19 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/rules.mk b/keyboards/nightly_boards/n60_s/rules.mk index a37378959e..f404ad0163 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 3ba7c40ea6..04056f7871 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 1be9d83f1c..71f78c1f3a 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 30f781e600..3223a5a19b 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 1dfd4f6fda..e3fd75c960 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 27c3d4bd02..a0ee1a92af 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 522fb58d5a..0000000000 --- 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 fb22632632..0000000000 --- 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 c78a58937d..4e7affe4dd 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 7025c89375..94d8dc34f4 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 0000000000..ee32568148 --- /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 44c2d63cc7..2f831466fc 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 43061db1dd..1189f4ad19 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/rules.mk b/keyboards/nightly_boards/octopad/rules.mk index d36fbdc860..660f934499 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 7547d5a97b..3d0b7f438c 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 533cefc3c1..7a27cef020 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 3a6cfe3f77..337c61fabe 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 0000000000..225e6ac51b --- /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 0000000000..e648cf98fb --- /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 0000000000..3afe91ac88 --- /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 0000000000..b13fd08388 --- /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 0000000000..83ac675d04 --- /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 0000000000..900a7af04b --- /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 0000000000..217eab037b --- /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 0000000000..217eab037b --- /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 0000000000..1e5b99807c --- /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 0000000000..e93fdc1d23 --- /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 0000000000..b5c9adce09 --- /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 0000000000..6e7633bfe0 --- /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 52b5d011d9..0e5dd8a043 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 5c804d7182..fdbabe4991 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 71d6d94542..64848c0552 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 c4cc79e624..1bcd22e6e5 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 b72492a6aa..480bc968c2 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 23b8d2915a..55d8b53e83 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 2befadb5d0..3ad31f8a33 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 131bc94a44..9470fce1ba 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 0e6fe08b5c..2c325e453a 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 a22f9b1685..e236351344 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 93700e6851..eb6565aea6 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 131bc94a44..9470fce1ba --- 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 c90ba02ea4..c75fff450b 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 49d3104c45..a0bbb315d4 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 965c2f8b04..269db89ed3 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 131bc94a44..9470fce1ba 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 6444b82d37..f6fad60b01 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 b5697a731d..358ea8b18b 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 9e877b9804..0d29c5da82 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 a68122281a..928a45cfae 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 413efb67b0..5c82c9a7ca 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 e98746ab29..1e5f6b4f73 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 5380de9648..79a3e2fdbf 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 dac8e6c0dd..860d17177c 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 571396f21d..9023c6f81f 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 410883dd54..76462bf7fe 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 2502667d30..3527cf7ccc 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 b96500aa31..a652276c6d 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 051782f146..7d8bba5f4b 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 d1f57bc5fc..f742581e0f 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 3c9c278b51..93e50cd795 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 3c9c278b51..93e50cd795 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 0f7486408c..98d8ea885e 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 1bfcf109f4..cd94a8cdd5 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 5ef3783b87..d521e647cd 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 7f24d36813..159e501218 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 d34d066ded..dd68e9d3b0 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 db6a98385a..1909c7ef9a 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 0e39ada47b..d665c5ec5a 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 d34d066ded..dd68e9d3b0 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 bb0ee7d785..0000000000 --- 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 77a00d91f4..5a9aeef64b 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 945a4da9de..419a028c9f 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 5255c32205..2a89a1063b 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 24e9340c0e..d9fe16e285 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 560389a11f..f235fce511 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 31e58c24a6..4474497023 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 7e580bfd74..5706b9bf2a 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 d0a184e961..506f77c16d 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 3a48e90134..07145ed6de 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 d0a184e961..506f77c16d 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 50e164f408..231c9d8545 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 151e44f4aa..16bd6085c0 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 346a8fb8a8..48eecde3f6 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 0ed0a5e7b8..b8eaf60d89 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": [0, 3], "x": 1, "y": 0}, + {"matrix": [0, 4], "x": 2, "y": 0}, + {"matrix": [0, 5], "x": 3, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, + {"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": [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, 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": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, + {"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": [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": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "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": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "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, 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 6cd9f48c94..8f552d30c1 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 0000000000..ee32568148 --- /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 2555026534..642870640e 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 ef531564fc..ba3a7b1701 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 32306ef9d6..d14723df03 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 1b72fd006a..605f034e1d 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 895b02c292..642870640e 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 036bd6d1c3..f1adcab005 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 eea5a5d54c..15bc0f6a7a 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 774687565a..46a94d10c0 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 54f5bde1bd..bdf4a574c6 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 068a231f43..1b6189b42e 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 d978080a2f..464cd01be8 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 e2392b1293..7d311cd405 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 c2e9c2b6bb..963f3ea313 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 d6586a09e8..b5299b1f3e 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 c6739d7f66..0000000000 --- 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 4a5b96b8ad..6c3feea0e0 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 92535947de..9c0eb3b7a9 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 2a1bbbdcd6..7da3bb487a 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 f11b35919e..74f7ff5181 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 a999639739..a8a345824c 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 16957f9a0a..e5c8d9426a 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 7efa8097d6..df718e7fa0 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 c66f9ef044..26543ebb9d 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 0c62ef58fd..4e4a13e93a 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 03eea39fd6..26543ebb9d 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 1ec059bd82..b3ebe4648e 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 d2cd91cbc5..c0a755e251 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 c197f04207..f2a169d228 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 b8c601b564..c0a755e251 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 458fab653c..e4b36983e7 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 3a273e8bb9..c0a755e251 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 33fcc3228f..e001332796 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 3a273e8bb9..c0a755e251 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 2e6eda2a2e..6568a9e845 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 f6b5dcf145..c0a755e251 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 af1a4375d6..88f3bdd18d 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 9a53d19688..c0a755e251 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 88dc1455ce..1ee1d482c9 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 52626f1de3..c0a755e251 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 08c4950b80..28fddf1873 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 33f41e5289..99e7de0d87 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 8b1b7054a5..ed687ddb3d 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 7b60494fcb..c0a755e251 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 0c0c8670f2..10a833a839 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 55d8ae5c97..c0a755e251 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 41e95e583a..8b2ca0142c 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 e2491c8ef1..2d72d9d0b4 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 c79fc918d0..d6b585145d 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 e2b275251d..4e59694818 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 7ceeef8312..2e45997524 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 38098991fe..3cc80db376 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 6b283da6cf..b7fe9dab47 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 b40244be73..0000000000 --- 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 c30c06fb67..0cf09660ca 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 b40244be73..0000000000 --- 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 4c66855d6b..4337922ee0 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 0000000000..95c5ca6048 --- /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 0000000000..ec25908b60 --- /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 0000000000..27e63d44fc --- /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 0000000000..27e63d44fc --- /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 0000000000..43061db1dd --- /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 0000000000..9bbd09d2cd --- /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 0000000000..dfd7b8e208 --- /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 0000000000..dc62266add --- /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 0000000000..1cf53b1fe5 --- /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 0000000000..1cf53b1fe5 --- /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 0000000000..43061db1dd --- /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 0000000000..31615a8486 --- /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 0000000000..dfd7b8e208 --- /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 0000000000..999bcca477 --- /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 0000000000..a40e12668a --- /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 0000000000..1c31904ecf --- /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 0000000000..b45d40340a --- /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 0000000000..b45d40340a --- /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 0000000000..43061db1dd --- /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 0000000000..89843dac2d --- /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 0000000000..dfd7b8e208 --- /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 15d1e18d0b..461903ea2e 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 cdf5143061..d5813e78c8 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 8088fb03c2..13280ff9b3 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 17222658f3..04bd741d77 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 57a216f30a..65c0ee7eed 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/info.json b/keyboards/owlab/voice65/hotswap/info.json index 6b6474ab68..7b1ff47794 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 055f93e188..5d640c162b 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 0000000000..ee32568148 --- /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 68801ff2f8..5d640c162b 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 36b7ba9cbc..1189f4ad19 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 6f41edccd0..66e412effb 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 3b38b45da4..8e96d68928 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 055f93e188..5d640c162b 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 0000000000..ee32568148 --- /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 055f93e188..5d640c162b 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 36b7ba9cbc..1189f4ad19 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 cfdaaad4ae..1444b05864 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/p3d/glitch/config.h b/keyboards/p3d/glitch/config.h index a754828053..0fc3805ff7 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 4f323df447..e7858124e2 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 1c07ca71f2..8876586f4b 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 edc623d08f..5f36081323 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 89c9639139..c5f50057b6 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 d324ea3f81..0000000000 --- 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 077949cd09..1a967727ce 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/pangorin/tan67/config.h b/keyboards/pangorin/tan67/config.h new file mode 100644 index 0000000000..62ccc4f273 --- /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 0000000000..5b36fd7a40 --- /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 0000000000..2b46433eef --- /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 0000000000..2b46433eef --- /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 0000000000..16d33cd89f --- /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 0000000000..6fdb4effbd --- /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 0000000000..6e7633bfe0 --- /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 0000000000..574624c157 --- /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 8d62d0a247..5fad6237fa 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/pearl/config.h b/keyboards/pearl/config.h deleted file mode 100644 index 2a51abdab2..0000000000 --- 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 8ac8ef0a7e..cf090b9587 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 c800dc98f8..900468e149 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 009f810b0c..6fbdda292b 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 6c944ff329..5433eb3c75 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 15d4f79cde..1dd174f436 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 02fc30db97..beaeec353d 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 39f271d1b5..e0a28788eb 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 361c315929..e0ed66359a 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 c14c6685b3..43dd3ad871 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 707e9c9312..83d6c3a33f 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 102c43e168..ae2ca44ab5 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 0fbfc75c21..3128b8c1d8 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 eeb36fee4e..5cb2d9b649 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 205cad6e32..c012875d68 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 9bd5a1a99a..9d43e932bf 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 c6e9db406a..a560cb2ea2 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 b938ef9b9a..e9833e2464 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 b1bdf10f82..98d854e489 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 9916d317f2..c9f31f4679 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 c97fab915a..bbe3b73627 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 5a19b72ffe..67e08be688 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 c97fab915a..bbe3b73627 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 5a19b72ffe..67e08be688 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 d0537fd5d7..0000000000 --- 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 ba8be4a603..5718cb81c4 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 b7aa6ca2e9..0000000000 --- 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 fcbdf6bac8..a1fc705561 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 e9c56ed1b1..cccfd448a0 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 df0c309266..0cdb8f9819 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 6907429c39..0000000000 --- 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 19e7f81603..4ba43d6c04 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 75b78de22d..0000000000 --- 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 4133d5c81b..ed75e8ae2b 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 522cd9c548..c7157bc573 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 05f967d7a8..cd96ec2c2c 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 5a4961d3bb..b9449c4714 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 bf858eaf06..0d52fb38d0 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 380c0c271a..a455235168 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 707adf67c4..5fb302d01f 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 2e3ef9fb84..e69de29bb2 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 7506090b1e..04bc8cb2d2 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 c9d61fc434..260b2db1e9 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 7506090b1e..04bc8cb2d2 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 09c1cfa5b3..ed3c8163d1 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 1bd318c9ad..916ca10b46 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 91aadda6ff..bd73d2b77f 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 c4b29301c3..0000000000 --- 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 4e35191761..8baff8f78e 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 c6dd26a46a..0000000000 --- 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 b2ac8f8528..d38155349b 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 3b10a2b753..7cfc65d509 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 370a19357f..6848239279 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 6366a19f65..6d0b4392fb 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 0000000000..27166091d2 --- /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 0000000000..159558d235 --- /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 0000000000..b0ed6ad922 --- /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 0000000000..4fcdb0fc7a --- /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 0000000000..94353e3248 --- /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 0000000000..7aa6b2130f --- /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 5871fe4bfe..065750434f 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 7e3b8af367..a8ff2dd8d9 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 ca0f90b6e9..d6f42b33ad 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 6366a19f65..6d0b4392fb 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 64d9fdcd85..b6f3df8fe6 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 748c251478..797774dc0a 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 1d029dae69..c0c8dc2c55 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 c1e4e527ce..59e7ba6635 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 b16b915152..028e39338c 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 diff --git a/keyboards/planck/rev6_drop/info.json b/keyboards/planck/rev6_drop/info.json index 00f1fab14e..d04bb0d6aa 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/matrix.c b/keyboards/planck/rev6_drop/matrix.c index 6f7d6725a1..e31e473ae2 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; +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_init_user(void) {} +static matrix_row_t matrix_inverted[MATRIX_COLS]; -__attribute__((weak)) void matrix_scan_user(void) {} +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_init_kb(void) { - matrix_init_user(); + // rows + for (int i = 0; i < MATRIX_ROWS; i++) { + setPinInputLow(matrix_row_pins[i]); + } } -__attribute__((weak)) void matrix_scan_kb(void) { - matrix_scan_user(); -} +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool changed = false; -void matrix_init(void) { - dprintf("matrix init\n"); - // debug_matrix = true; - - // 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; - } - - if (matrix_debouncing[col] != data) { - matrix_debouncing[col] = data; - debouncing = true; - debouncing_time = timer_read(); - } - } - - if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { + // read row data 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); - } + data |= (readPin(matrix_row_pins[row]) << row); + } + + // unstrobe col + writePinLow(matrix_col_pins[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 e20d33831d..3eb3eac7eb 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/owlab/voice65/hotswap/hotswap.h b/keyboards/planck/rev7/chconf.h similarity index 71% rename from keyboards/owlab/voice65/hotswap/hotswap.h rename to keyboards/planck/rev7/chconf.h index 6536af4c49..e1243f23ec 100644 --- a/keyboards/owlab/voice65/hotswap/hotswap.h +++ b/keyboards/planck/rev7/chconf.h @@ -1,4 +1,4 @@ -/* Copyright 2021 kb-elmo +/* 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 @@ -14,17 +14,16 @@ * 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 -#include "quantum.h" +#define CH_CFG_ST_RESOLUTION 16 -typedef union { - uint32_t raw; - struct { - uint8_t encoder_mode_index :8; - }; -} keyboard_config_t; +#define CH_CFG_ST_FREQUENCY 10000 -extern keyboard_config_t keyboard_config; +#include_next -#define VOLUME_ANIMATION_TIMER 580 diff --git a/keyboards/exent/config.h b/keyboards/planck/rev7/config.h similarity index 68% rename from keyboards/exent/config.h rename to keyboards/planck/rev7/config.h index b062e20b68..3da5a4e6b9 100644 --- a/keyboards/exent/config.h +++ b/keyboards/planck/rev7/config.h @@ -1,4 +1,5 @@ -/* Copyright 2019 mechmerlin +/* + * 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 @@ -16,19 +17,23 @@ #pragma once -#define RGBLED_NUM 18 +#define DIP_SWITCH_PINS \ + { B14, A15, A0, B9 } -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE +#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 @@ -45,3 +50,4 @@ //#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 0000000000..6da795fada --- /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 0000000000..1d57732b4f --- /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/wuque/creek70/config.h b/keyboards/planck/rev7/keymaps/default/config.h similarity index 56% rename from keyboards/wuque/creek70/config.h rename to keyboards/planck/rev7/keymaps/default/config.h index d33ee006aa..fbbab996e1 100644 --- a/keyboards/wuque/creek70/config.h +++ b/keyboards/planck/rev7/keymaps/default/config.h @@ -1,4 +1,4 @@ -/* Copyright 2023 wuque +/* 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 @@ -16,18 +16,28 @@ #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 +#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 0000000000..4ac4c0de4f --- /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 0000000000..13fc199bb6 --- /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 0000000000..c3de26365b --- /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 0000000000..140149c472 --- /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/mechllama/g35/v2/config.h b/keyboards/planck/rev7/keymaps/peterfalken/readme.md similarity index 89% rename from keyboards/mechllama/g35/v2/config.h rename to keyboards/planck/rev7/keymaps/peterfalken/readme.md index 7c15560a1a..f64d682a51 100644 --- a/keyboards/mechllama/g35/v2/config.h +++ b/keyboards/planck/rev7/keymaps/peterfalken/readme.md @@ -1,5 +1,4 @@ -/* -Copyright 2019 Kaylyn Bogle +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 @@ -13,8 +12,3 @@ GNU General Public License for 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/planck/rev7/keymaps/peterfalken/rules.mk b/keyboards/planck/rev7/keymaps/peterfalken/rules.mk new file mode 100644 index 0000000000..4db223543d --- /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 0000000000..c89c399a40 --- /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 0000000000..fa3d3be885 --- /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 0000000000..6a4df37704 --- /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 0000000000..bb9d0ee1e8 --- /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 0000000000..38710bc00b --- /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 832fb0789c..cfb88aa0eb 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 e7321ba697..f62e074e68 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 9bcb20ae88..5f36081323 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 828d5337b2..5711f0e742 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 9b441a8892..8ef6c0499d 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 57840935b6..0000000000 --- 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 7e568e6ed8..95cbde6010 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 8471167fcd..5f36081323 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 89b414d08f..e42854308e 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 65d3996a85..cc0276673a 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 3b2087c5b8..bb28749d94 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 522cd248b3..727b9c0a5c 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 62ed32840b..94bd6ef6af 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 b89f82a363..5dc53392ff 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 e59c0a3e85..014d67f9c1 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 c7506f2d84..4ec61dc7eb 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 ba11813e4e..4183c7db05 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 3f38c555e1..a149784fd7 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 67d2105ef7..0000000000 --- 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 9ae1bcca07..97c448f3a7 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 0b4c26369d..a906ebd24e 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 0804c27c1c..46c789054d 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 0000000000..2180b9887f --- /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 0000000000..e215e323c5 --- /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 0000000000..7c0717ade0 --- /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 0000000000..4ca5b29581 --- /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 0000000000..e357a16d89 --- /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 0000000000..1e5b99807c --- /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 0000000000..aceb2e3dfc --- /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 0000000000..91b49344e5 --- /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 0000000000..6e7633bfe0 --- /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 ee3792928a..9dbdc01050 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 39674dc1ba..618d46b9c8 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 b91aa11bd7..0000000000 --- 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 f987bb5b05..b0c8befc23 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 35d54817f7..0000000000 --- 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 98cb25d91c..8eec789089 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 61969b945f..fcff1b29cf 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 aeb5427589..0905f9240a 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 4c85d73c7a..14f8d92d5d 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 02f8ac7927..7e055181bd 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/alfredslab/swift65/solder/config.h b/keyboards/preonic/keymaps/dothtm60/config.h similarity index 53% rename from keyboards/alfredslab/swift65/solder/config.h rename to keyboards/preonic/keymaps/dothtm60/config.h index 9ee0233356..718b2d4b65 100644 --- a/keyboards/alfredslab/swift65/solder/config.h +++ b/keyboards/preonic/keymaps/dothtm60/config.h @@ -1,5 +1,4 @@ - -/* Copyright 2021 Steven Phillips (Spooknik) +/* 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 @@ -17,18 +16,32 @@ #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 +#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 0000000000..fbcdb9b797 --- /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 0000000000..4745e5384a --- /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 6ad1c7bed3..ae5f44e713 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 2f55894ae6..3d64a4a34a 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 d6d494e005..75688a33b2 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 ac584dfbfe..3d64a4a34a 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 a3eac4eaf4..fed4acb01f 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 0633f8948e..3bb4f22006 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 e28306587d..3da9ff72c4 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 3a330b7306..a9a9362ec9 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 8b14acaf19..6d34cadbf7 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 0633f8948e..3bb4f22006 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 9870232117..4299d367c2 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 6e481d7778..6685719914 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 c967c15811..767a70b6f3 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 08067b3132..e5e47cffc2 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 cdd1b56430..a45a841285 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 f3228ec0d5..998046c6d7 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 2d1d003d51..09a42b0d16 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/rgb/config.h b/keyboards/primekb/prime_e/rgb/config.h deleted file mode 100644 index 6610d03f04..0000000000 --- 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 189e448ed9..998331ad89 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 20f34ce60b..2f0290dc03 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 dfb6f078ae..dcf558fdf7 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 ef5492bd52..e9d5fd3e80 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 1b028593e3..c20e2c9fc7 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 0000000000..312a72979f --- /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 0000000000..64a184eb92 --- /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 0000000000..0c8b9585bb --- /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 0000000000..e7a34d3467 --- /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 0000000000..035c038b74 --- /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 0000000000..1e5b99807c --- /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 0000000000..e4b8d1f973 --- /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 0000000000..6027128a96 --- /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 0000000000..56e7e4d559 --- /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 0000000000..24d5f6f52e --- /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 bcb9ffbb09..2692965fbf 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 4ed9926907..1157fb13ae 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 ab88066b0a..f689205b38 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 95f845c931..8bb661f90b 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 57113b1e3c..be97136ccd 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 ab88066b0a..f689205b38 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 707adf67c4..5fb302d01f 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 06b7b460e3..a09b9d3bdf 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 07ce0fe6c5..e18a6cecee 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 f57d28aa84..8018350e6f 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 2461696475..9a2688e4c1 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 a25cd2fae9..b1e8987b65 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 d710399a81..53e82bcd45 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 0000000000..8401f90158 --- /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 a9c47072a3..cb58643e3f 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 5c5776b271..5905a8d05f 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 d4d974464a..0f851bcd5c 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 0529547ba7..c3fe205bc0 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 0000000000..e4fa03655e --- /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 7000bb6571..7c0709f41e 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 46f96e7934..fd58bda912 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 94089a3b78..f414d6d71a 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 a9e8e0f92e..adb0000e01 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 d661f794cc..1148463200 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 bb5a8ee1eb..418ca0f6b8 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 b1e0556b61..76cbe67eee 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/leeku/finger65/config.h b/keyboards/pw88/config.h similarity index 79% rename from keyboards/leeku/finger65/config.h rename to keyboards/pw88/config.h index 0626eb5d0e..f655b92527 100644 --- a/keyboards/leeku/finger65/config.h +++ b/keyboards/pw88/config.h @@ -1,5 +1,5 @@ /* -Copyright 2018 Rasmus Schults +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 @@ -15,7 +15,7 @@ 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 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 0000000000..bd24071e70 --- /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 0000000000..9e5ffd3f24 --- /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 0000000000..9e5ffd3f24 --- /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 0000000000..1e5b99807c --- /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 0000000000..facee8bac8 --- /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 0000000000..c628fc7d0f --- /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 6603c0e153..02bd670f71 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 635c66db99..45cdb5870a 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 9457b20766..50001e978c 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 786439186f..99453aae4c 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 ece3e61136..84b3e5c03e 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 cf4729fdd2..a045a9831a 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 e54316ec29..8a08e47153 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 f235747a70..fe596b98ff 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 d3428dd206..b1f2bb42be 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 f02635a639..d531fe5c4c 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 1db45e4f7b..d10065bbd5 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 588044ec30..bb314ae315 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 75316622d1..55e4ca33d9 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 f662eb9480..d531fe5c4c 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 43a9f465f7..8c452ea391 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 e65139c5ff..9e4269c6d7 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 2a19958302..e37ef9a4cb 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 e266f72ad5..5bb89db2d3 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 fa8b71b5d6..1a2091dc97 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 0000000000..7b9d3ce306 --- /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 0000000000..02b6198bcd --- /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 0000000000..22286170f1 --- /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 0000000000..a40474b4d5 --- /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 0000000000..ead8ab40a6 --- /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 0000000000..a40474b4d5 --- /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 0000000000..ff86cdc7fa --- /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 0000000000..6ccd6d9194 --- /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 0000000000..878ee6e2f7 --- /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 0000000000..c374b617c3 --- /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 0000000000..c25bdff0cf --- /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 8bc386dcab..8e59e903ac 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 fcc14084b0..5f1eb80da8 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 0000000000..1f083ec616 --- /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 0000000000..738e1719ea --- /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 0000000000..a13614f751 --- /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 0000000000..8456863bb0 --- /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 0000000000..b08984c9aa --- /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 0000000000..2741cfafa7 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/rainkeebs/delilah/config.h b/keyboards/rainkeebs/delilah/config.h index 3f9d574f77..30e2a8bf27 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 891c484778..714308d416 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 ed4adffba9..866521b428 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 0000000000..7b3cfdfcdd --- /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 0000000000..77418f9cd6 --- /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 0000000000..ee32568148 --- /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 0000000000..2b2b6437e6 --- /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 0000000000..6e7633bfe0 --- /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 0000000000..105d988dad --- /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 5033c1ceac..30e2a8bf27 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 c1c874c77b..5e7ea06deb 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 76ffbba1cf..42556799eb 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 3cd5710ddf..aa822b8f5c 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 21a2aba522..42556799eb 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 d12df10ae1..a6722f4432 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 9d9090d7ea..5a309870d3 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 26adeb96a7..3715a98a6d 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 80b09b6357..148dfba385 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 6d03cffdfe..5277f7c480 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 4c08a231aa..3715a98a6d 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 5b9f768c74..e2093e5029 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 b9cc25d86e..7b55e77aee 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 06d9ea1b91..5e5e0f090d 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 b242e63013..9673097c38 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 b1046227cc..d800165b53 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 49179d2fb9..b3f4fc8b8a 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 bf87b3204d..42556799eb 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 01929e0176..8c921931a8 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 0000000000..7de5b4f75d --- /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 0000000000..fce96e6a05 --- /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 0000000000..7b3324b99c --- /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 0000000000..12d9548433 --- /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 0000000000..6962acb70b --- /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 0000000000..a65df70573 --- /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 0000000000..121f6277f2 --- /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 0000000000..3d5135b332 --- /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 0000000000..e2f75d3989 --- /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 0000000000..6e7633bfe0 --- /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 cf7e2cdfb0..cad548df8e 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 a50ae8b991..2bec0c52af 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 5ac0b8fbfa..8b5dcbc9f4 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 a1ea3be3cb..9f0c169b87 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 25aac817da..eaa46500a1 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 07943e5ca3..a37b55b6ab 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 86f88d9143..e73abd09eb 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 f459a76970..5e4dc36887 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 036bd6d1c3..f1adcab005 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 5a543ef11c..a757bcce32 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 b5b8e3c440..30156f0898 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 36b7ba9cbc..1189f4ad19 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 df27be46be..7d8b50ef3f 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 17ec1a2bab..0000000000 --- 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 c9fb81dad8..e53227ce7f 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 c3f781ab7c..0000000000 --- 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 a35fb50972..0ef2225102 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 2a9f3d4187..0000000000 --- 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 450cf1c3b0..0456937cc5 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/info.json b/keyboards/rect44/info.json index bf985f6202..2a127db831 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 5b44f7541f..fdda27552d 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 908404466a..c0c5ce6e1a 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 0000000000..e17865a403 --- /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 0000000000..f1dae7232e --- /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 0000000000..80d6195312 --- /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 0000000000..81aeef4494 --- /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 0000000000..48fab8614b --- /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 0000000000..9187c76aad --- /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 0000000000..71e5349ff6 --- /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 0000000000..7ff128fa69 --- /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 a5d547936b..1464cc5f23 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 1b15ca5e80..2a3e249d47 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 a730f35d8c..69c6b57a35 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 3b56eb8c53..18ea68a935 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 269d01a9ee..a071151101 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 d5dfa7061a..d292748b2f 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 0269cf131b..a071151101 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 6344a3e53e..f4a434db77 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 98dda7fe19..a4279821cc 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 d955973b25..4977d4b587 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 59ca122b11..d3503be13e 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 5d55e83d35..321f116f92 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 d79d31ae9e..6f0549d374 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 5b411a8c52..fd2e366614 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 a1b9dcfe46..aa8ba1eba0 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 0000000000..ee32568148 --- /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 8767edbb57..4d62b95b96 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 0000000000..ee32568148 --- /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 a1b9dcfe46..aa8ba1eba0 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 40bded3991..74b4513b04 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 960cc9266d..eefb59e676 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 a087f669da..e6b71e56d1 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 36b1ab0003..5d380de5c7 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 564ce4dfb9..986916b4a9 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 0862bde4e5..18dfc8edf7 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 b89b6b4f65..58b047c2b3 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 5c3ed6f610..fdf3519bb6 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 775fa48e12..3f1097a7e8 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 5c327fd760..9a05fa04e3 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 c476f4c2df..194ec4de2f 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<. /* 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 940df081c9..81370b916d 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 394fd1630b..1578432cf8 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 eed39e5628..8d486e53b8 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 4c308264d6..c36a32c161 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 4be3dd61d3..4cd4c876f0 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 0000000000..43fb63ce47 --- /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 0000000000..7b13e4a0df --- /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 0000000000..a4d58d9097 --- /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 0000000000..a4d58d9097 --- /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 0000000000..1e5b99807c --- /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 0000000000..c70b944717 --- /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 0000000000..6e7633bfe0 --- /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 cb202f5b9b..13002485f8 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 ef1d823536..48f4373c26 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 8651a3dee7..6ebf4eb7c0 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 1e5b99807c..f1adcab005 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 e02c428ab8..bbef69f28a 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 dbf282b68f..9df8143fb7 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 1e5b99807c..f1adcab005 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 db45e4f61c..890f20de86 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 b4efbc241c..4b007cf387 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 35aeac5706..1af28e861c 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 4eaa5819ac..31f4f7acad 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 1433de8106..f36369d6c7 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 f6ab10f5d9..a19d0bde7d 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 5c31520ab4..d612de6c5f 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 1433de8106..f36369d6c7 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 b49d72c829..64b13752d9 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, 0], "x": 0, "y": 0}, - {"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": [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.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": [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.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, 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.5}, + {"matrix": [2, 4], "x": 14, "y": 0}, - {"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": [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.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": [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.75}, - {"matrix": [4, 21], "x": 16.25, "y": 1.75}, - {"matrix": [4, 22], "x": 17.25, "y": 1.75}, + {"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.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": [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.75}, - {"matrix": [5, 21], "x": 16.25, "y": 2.75}, - {"matrix": [5, 22], "x": 17.25, "y": 2.75}, + {"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.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": [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.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": [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.75}, + {"matrix": [6, 24], "x": 16.25, "y": 4.25}, - {"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": [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.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": [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 2c33b4869c..ea11eadd08 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 1e5b99807c..f1adcab005 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 ae292c0a5a..a84e51ab51 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 b5d023489a..6159ac1bd0 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 a7617b5f30..72a3406af3 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 c4d0637afe..b3b42c6c3e 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 c3ae142d31..47a6befec3 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 e81a5dd98e..108db79ad0 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 3c46afada5..121c9046e0 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 f1e87a6e28..45ae1b5708 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 05df87fc94..8d4f3c88eb 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 +#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(_______, _______) } }; - -keyevent_t encoder_cw = { - .key = (keypos_t){.row = 12, .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 #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 1e5b99807c..f1adcab005 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 0000000000..4b02137ad3 --- /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 0000000000..c94cc2e526 --- /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 0000000000..ee32568148 --- /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 0000000000..5158d447c6 --- /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 0000000000..7ff128fa69 --- /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 64c493ace8..5e04a24ba5 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 00006749d8..5e3ee7b0e8 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 dd493f5f18..dcc3d4516b 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 6c1b144b58..13f0a19cbd 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 02bd23a9b4..ca2be62a19 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 a65a5260b5..7850d38c90 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 6fa09146ed..615de932f8 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 0de481d0de..8e3d35a7be 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 99fb7f54ea..b4da5d530f 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 3cebdcb4a8..6c90980e7c 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 e2279a08a6..e481073044 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 2f307f633f..0000000000 --- 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 98354c2900..cf55a4093f 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 8afe563b68..e9a1ae4089 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 e312323c4d..efab211fca 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 0f2fb66a80..1c7bdc0c3c 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 835872aed5..9024fa25d5 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 2ee0967486..f03a29dfb1 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 5614dfa100..2e802ba363 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 0b514a46f6..8f132e6f5f 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 5c4c3485df..fb4b9a4d21 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 ca1f8284c5..9024fa25d5 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 8741408aaa..cade6f1293 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 90b739b7d1..1e7bf80828 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 9ed41827d0..592d0be42a 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 cded8206f4..2df9f04cc7 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 c471da92cc..ba8cd96aec 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 013f4c89dc..0000000000 --- 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 a35c054900..9809230260 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 b42ece99a6..7fedf4dce1 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 54451c1077..98880e4834 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 573efb81c7..644ce27575 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 12f0b6f424..89e675db52 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 82eec4a306..3a82c91526 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 524ecc34ea..35b3d7ec17 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 dcbdb0f537..e373d2a88b 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 1665fce7e8..3b4df22363 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 d34d066ded..dd68e9d3b0 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 cdc803a98c..a8fd75dc9d 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 de9fe887e7..e2148f9302 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 51b6d454e5..144d743b32 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 63feabb939..e3d884bdb1 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 94d44bfce8..fb94963ca0 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 ea2645cf23..b42cfeb6b4 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 c7246fad76..84dbacba54 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 a378952d25..a2d7b0c849 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 33ee2b5030..a8fd75dc9d 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 a58acf807b..a95f8d60fe 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 9f39d06f61..5bc9c2c789 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 f0f45f077a..fad22122f6 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 65091cadc0..5bc9c2c789 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 5713ad9084..7bafe46d9a 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 e117d26eee..b7cde4d4e0 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 69864a3166..ad721c13de 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 eb9e0b5b1d..fb94963ca0 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 642bde6298..d510c2c3b2 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 4c3d6ae504..0000000000 --- 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 73794ba3eb..3949a2680a 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 b999af6eec..0000000000 --- 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 baa1cec9a7..ca06c38aa4 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 ec09badedf..df8b91a338 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 758fc4c1dc..e9910e0141 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 687d594ecb..fe692cc5c3 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 0aeca0dd9f..7f4f202a1b 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 eed469b44e..ca4d384584 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 b47e1efd74..0000000000 --- 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 9fe412c3cd..f6c458a9b7 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 9cdc6354ec..0000000000 --- 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 2cdecaaeb4..7aeb5ad38a 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 380a50edbe..0000000000 --- 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 96fcc9a614..0000000000 --- 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 fb22632632..0000000000 --- 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/info.json b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json index 4cec48d86e..5f8036cd3a 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 13883d07e4..8487c555ba 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 d55eb74fb0..7d239cc523 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 a9739430b9..1189f4ad19 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 c5b074931d..0000000000 --- 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 bd84e19a0e..853f95b45e 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 b7b3436051..d649c698ab 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 642f813a67..5d92db728a 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 70b7f6921f..3d821b064a 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 4fd203480c..0000000000 --- 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 47b141ad4e..a7c3975ccf 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 c95d84b30d..5f36081323 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 422fb0c0f1..7925b109ec 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/info.json b/keyboards/sck/osa/info.json index ae63add062..823b94f477 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 cd48b57291..87544b7375 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 528e45329b..367e084443 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 3c64300667..92f156321c 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 0000000000..72a1801bea --- /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 0000000000..9e99bf0205 --- /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 0000000000..a06722184a --- /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 0000000000..9e99bf0205 --- /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 0000000000..b1720f4302 --- /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 0000000000..e5ddcae8d9 --- /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 0000000000..546a20b08a --- /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 0000000000..6e7633bfe0 --- /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 071064c8bc..d6dfea8506 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 c1ca4137cc..9701dffb15 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 a6fe4b81c4..83231e1022 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 0e27424dac..f05d94c9de 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 9aad2f69c3..7c029a283d 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 75bff408c6..129c487e19 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 907e7dea5d..cef01cf341 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 eb59447c39..c834b8152f 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 d1cb9939bd..0000000000 --- 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 61b085d86f..7852587d39 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 1fa22a6e9d..c265dc1ef1 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 6337639143..f1c8c29128 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 da4d3257a6..5f36081323 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 c311c6a513..108eb42b3f 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 900ea0aa40..675b4c58fa 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 f9287f2507..bac1729ce4 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 7b388614f4..675b4c58fa 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 d87a6873ca..416baa89df 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 d7b29ad732..c19b74dc53 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 f59f186bf4..2efdb4dafe 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 14779f1d75..8f57181330 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 0000000000..663823d915 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..b84d77e0b7 --- /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 0000000000..7ff128fa69 --- /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 cfa8edf57a..a939e4e73a 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 90fb1d9c94..4691985d29 100644 --- a/keyboards/signum/3_0/keymaps/default/layout.py +++ b/keyboards/signum/3_0/keymaps/default/layout.py @@ -396,7 +396,7 @@ qmk_dict = { # 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 5485a99f59..e8f1cca7eb 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 5fc8686de2..a761288fb4 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 75b78de22d..0000000000 --- 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 4c582df858..0987506b36 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/sirius/unigo66/keymaps/danielhklein/keymap.c b/keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c index f63da310fd..5b55d1ba24 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 26ec63afd4..0000000000 --- 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 6eccddef6b..c7eac83fc3 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 26ec63afd4..0000000000 --- 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 fefb5073bb..304fa00dc4 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 0000000000..eaf7a31fb6 --- /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 0000000000..4bfd3fa28f --- /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 0000000000..742daf8d57 --- /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 0000000000..3d0d6dc794 --- /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 0000000000..16d734b83f --- /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 0000000000..1e5b99807c --- /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 0000000000..4864fd1a19 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/skeletonkbd/skeletonnumpad/config.h b/keyboards/skeletonkbd/skeletonnumpad/config.h index 829b08ea52..1636a977cf 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 7ed7ee3949..7f4c72248d 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 5932113c94..afdacdd080 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 ca86bae4b9..11a50e87b1 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 f787da4012..0000000000 --- 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 0bf27a69dc..c44fcd1541 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 9d7338ccce..6e0360ec7b 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 38215ef661..0f33362092 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 0000000000..e67b7ae0a9 --- /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/nightly_boards/octopad/octopad.h b/keyboards/skyloong/dt40/dt40.c similarity index 81% rename from keyboards/nightly_boards/octopad/octopad.h rename to keyboards/skyloong/dt40/dt40.c index 33cf8e0b68..359e425b8d 100644 --- a/keyboards/nightly_boards/octopad/octopad.h +++ b/keyboards/skyloong/dt40/dt40.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Neil Brian Ramirez +/* 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 @@ -14,7 +14,11 @@ * along with this program. If not, see . */ -#pragma once + #include "quantum.h" -#include "encoder_action.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 0000000000..f9301ae83b --- /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 0000000000..b6172465e6 --- /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 0000000000..c8f828156a --- /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 0000000000..40721123cd --- /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 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/skyloong/dt40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keyhive/uno/rev1/config.h b/keyboards/skyloong/dt40/mcuconf.h similarity index 83% rename from keyboards/keyhive/uno/rev1/config.h rename to keyboards/skyloong/dt40/mcuconf.h index 414590f643..a40226eaaa 100644 --- a/keyboards/keyhive/uno/rev1/config.h +++ b/keyboards/skyloong/dt40/mcuconf.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Snipeye +/* 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 @@ -14,10 +14,11 @@ * along with this program. If not, see . */ + + #pragma once -#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#include_next -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 1 -#endif +#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 0000000000..bbb97d3932 --- /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 0000000000..6e7633bfe0 --- /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 a19bf29597..9fb889d28e 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 5bef685237..ae65246d26 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], "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, "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], "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 b39e8d72eb..b8dc909c94 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 5a700c2ee8..653a3dcd32 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 4c6ba89ef9..c889da168d 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 f5d80be178..91c66a3d4f 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], "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": "|", "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], "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 1cc3dea2f6..a8efb9749d 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 f8790cc600..0bbaa7e845 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 0000000000..3b4d9bc578 --- /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 b7824fcbdf..2c863bbe31 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 9f86b9e55c..e53468c2a7 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 8ced3df775..209266ad10 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 8b584c9a42..b524e61f4b 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 fa904fdabb..8ed73d3ff4 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 7fd45874f2..c499958255 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 5d4fe45457..e38a7a71b3 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 7406c0029c..6f1606f89d 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 837bececdc..bfb4a63764 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 9cc3f8601e..0000000000 --- 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 f80f3f260b..535dab6741 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 ceccc0915b..0000000000 --- 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 e16645e735..ecf420a10c 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 a97d34f7f2..0000000000 --- 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 693794e031..78be99ce6c 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 9d07bd0dce..f608132b5a 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 71ee91e660..1284c79ce4 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 4e0fe55873..a8af2d4ebc 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 0000000000..6e9f18cd5d --- /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 0000000000..9de040efba --- /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 0000000000..7497c87514 --- /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 0000000000..059598a680 --- /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 0000000000..1e5b99807c --- /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 0000000000..1a1eb6bccc --- /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 0000000000..7ff128fa69 --- /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 2387f9a000..ce02ad5d68 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 cef1aec57b..9ae9f1b0de 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 27092ddbc6..24a8c52e48 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 9e36e1588e..1e90cbab48 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 7a453b675e..1f7ae8b209 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 bb1a7f3dc2..00719ebea0 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 c21a769a2e..ab79c07969 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 92a293196f..0d18161a0d 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 a7505f5386..abfcc01d94 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 b905bd94fc..8cba530959 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 7775cb7b86..0000000000 --- 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 032c834f44..8af870c574 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 2875254096..c7fce92a4f 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 38d6114506..95b415488c 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 8088d744cd..06a046f073 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 6685b8492c..5881392622 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 860c2122da..0d18161a0d 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 439ad2c0c6..e53881987d 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 b57a417092..c8ca49919c 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 be64549748..0000000000 --- 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 23d411602e..5ab71ff1e3 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 46ec39ee48..5ec06e9609 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 04b1fced2b..0836a67e88 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 3b4525e9f8..641ed0aa06 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 b7807ae418..c49a369dd0 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 08c01e662d..4b1538b645 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 221c591738..39cc57a8f3 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 b7807ae418..c49a369dd0 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 9d044bb4c5..3853ebcff6 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 aa5dbc1873..6638498e0c 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 9cbfcd1f86..f7ba574efc 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 f053847822..43dc7b0d86 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 2e1165a810..dfc61b3a2d 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 89ee727172..8523662976 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/info.json b/keyboards/spaceman/2_milk/info.json index 333bad3b87..a703c8f890 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 8859573ce5..26ac20ad5c 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/pancake/rev1/feather/info.json b/keyboards/spaceman/pancake/rev1/feather/info.json index 2d8072e7f1..85f95a011b 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 822ab9971b..35ad61d4a1 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 c085de5a4a..a7cc2bfee4 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 fd91fafbd2..5aaab87814 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 3ecef1c1d8..0000000000 --- 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 d34d066ded..dd68e9d3b0 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 7b87c2b713..e507a668b1 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 e77cf060be..edddf67abc 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 10cd0e35b8..e03faa7c3e 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 117c55fd8b..271c920da8 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 b6f05cfbcb..7d82577b00 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 57a420d49c..1356c62ea1 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 76b0edc116..2d251b96b2 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 0000000000..7b00c71645 --- /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/crkbd/keymaps/rpbaptist/glcdfont.c b/keyboards/splitkb/aurora/sofle_v2/glcdfont.c similarity index 53% rename from keyboards/crkbd/keymaps/rpbaptist/glcdfont.c rename to keyboards/splitkb/aurora/sofle_v2/glcdfont.c index ac1f11dbbe..e75b1b4df6 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/glcdfont.c +++ b/keyboards/splitkb/aurora/sofle_v2/glcdfont.c @@ -1,7 +1,26 @@ +/* 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" -// Helidox 8x6 font with QMK Firmware Logo -// Online editor: http://teripom.x0.com/ +// 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, @@ -133,99 +152,99 @@ const unsigned char font[] PROGMEM = { 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, 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 0000000000..4782d0da8f --- /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/sawnsprojects/krush/krush65/hotswap/hotswap.h b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h similarity index 88% rename from keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h rename to keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h index 5f25d9c5c3..a15def3fb9 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h @@ -1,4 +1,4 @@ -/* Copyright 2021 SawnsProjects +/* 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 @@ -16,5 +16,4 @@ #pragma once -#include "quantum.h" -#include "encoder_actions.h" +#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 0000000000..b9383db325 --- /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 0000000000..c429b0246d --- /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 0000000000..9c9df9b126 --- /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 0000000000..353c0ee349 --- /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 0000000000..226952964b --- /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 0000000000..6ff79a4f99 --- /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 0000000000..13f1d84bbb --- /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/keyhive/uno/rev2/config.h b/keyboards/splitkb/aurora/sofle_v2/rev1/config.h similarity index 80% rename from keyboards/keyhive/uno/rev2/config.h rename to keyboards/splitkb/aurora/sofle_v2/rev1/config.h index 414590f643..1896af3cb5 100644 --- a/keyboards/keyhive/uno/rev2/config.h +++ b/keyboards/splitkb/aurora/sofle_v2/rev1/config.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Snipeye +/* 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 @@ -16,8 +16,9 @@ #pragma once -#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define SPLIT_HAND_PIN F4 -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 1 -#endif +#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 0000000000..b9b8b9da6b --- /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 0000000000..b0de2b93f2 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/splitkb/aurora/sofle_v2/rules.mk b/keyboards/splitkb/aurora/sofle_v2/rules.mk new file mode 100644 index 0000000000..4a50c4dbb1 --- /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 0000000000..f5cb0573ce --- /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 0000000000..f87f20d8b6 --- /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 c147d5e67f..f14e2b17e1 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 d6bd3818b4..d5bf9f0223 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 US_EACU: + case US_CCED: + case US_AE: + case US_OE: - 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: - // -- - 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 true; - } - - return get_custom_auto_shifted_key(keycode, record); + 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; + + 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_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; + + 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) { + switch (keycode) { + case KC_BSPC: + unregister_code16((!shifted) ? KC_BSPC : KC_DEL); + break; - 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); - } + 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 c382eedddc..de0436b361 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, + LEADER, + BOOTLOADER, - LAYER_ADJUST, - LAYER_FN, - LAYER_LEFT_HAND, + LAYER_ADJ, + LAYER_FN, + LAYER_LEFT_HAND, + LAYER_MOUSE, + LAYER_MOUSE_BACK, - /* French */ - E_ACUTE, - C_CEDILLA, - E_A, - E_O, + /* French */ + C_CEDILLA, + E_A, + E_O, - A_GRAVE, - E_GRAVE, - I_GRAVE, - O_GRAVE, - U_GRAVE, + A_GRAVE, + E_GRAVE, + U_GRAVE, - A_CIRCUMFLEX, - E_CIRCUMFLEX, - I_CIRCUMFLEX, - O_CIRCUMFLEX, - U_CIRCUMFLEX, + A_CIRCUMFLEX, + E_CIRCUMFLEX, + I_CIRCUMFLEX, + O_CIRCUMFLEX, + U_CIRCUMFLEX, - A_DIAERESIS, - E_DIAERESIS, - I_DIAERESIS, - O_DIAERESIS, - U_DIAERESIS, - Y_DIAERESIS, + 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, + /* -- */ + 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, + ANGLE_BRACKET_LEFT, + ANGLE_BRACKET_RIGHT, - BRACKET_LEFT, - BRACKET_RIGHT, - CURLY_BRACKET_LEFT, - CURLY_BRACKET_RIGHT, - PARENTHESIS_LEFT, - PARENTHESIS_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, + /* Non qwerty */ + EURO, - /* One hand special */ - CONTROL_RIGHT, - CONTROL_SHIFT_RIGHT, + /* One hand special */ + CONTROL_RIGHT, + CONTROL_SHIFT_RIGHT, - // DEL_LEFT, - SHIFT_LEFT, - ALTGR_LEFT, - CONTROL_SHIFT_LEFT, + 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_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_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_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_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_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_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_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_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_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}; -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_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}; +/* 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), + [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), - [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_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), + [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), + [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), + [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_LABK), - [ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RABK), + [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), + [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 7cfd30af6d..1964fb428f 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 +#include "keycodes.h" +#include -LEADER_EXTERNS(); +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"); -void matrix_scan_user(void) { - LEADER_DICTIONARY() { - leading = false; - leader_end(); + } 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"); - // SEQ_ONE_KEY(KC_F) { - // // Anything you can do in a macro. - // SEND_STRING("QMK is awesome."); } + } 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"); - 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"); } + /* 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); - SEQ_THREE_KEYS(KC_T, KC_E, KC_S) { - SEND_STRING("test01234"); } - SEQ_THREE_KEYS(KC_A, KC_D, KC_M) { - SEND_STRING("admin01234"); } + } 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); - SEQ_ONE_KEY(KC_C) { - SEND_STRING(" | xclip -r -selection clipboard"); } + } 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); - /* Degree */ - SEQ_THREE_KEYS(KC_D, KC_E, KC_G) { - send_unicode_string("°"); } + /* ----- */ + } 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("Π"); } + } 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("Π"); - 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_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("⚠️"); } + } 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("⚙️"); - 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("🎁"); } + } 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("✅"); - 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("🧰"); } + } else if (leader_sequence_one_key(KC_X)) { + send_unicode_string("✗"); + } else if (leader_sequence_two_keys(KC_X, KC_B)) { + 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_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 b90b28fda4..4439f958b7 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 +#include "keymap_us_extended.h" -enum layers { - _BASE, - _NUMERIC, - _ARROWS, - _MOUSE, - _ADJUST, - _FN, - _LEFT_HAND, +enum custom_layers { + _BASE, + _NUMERIC, + _ARROWS, + _MOUSE, + _ADJ, + _FN, + _LEFT_HAND, }; enum custom_keys { - UNICODE = SAFE_RANGE, // Shortcut to write unicodes, see numeric layer + UNICODE = QK_KB_0, // Replace SAFE_RANGE, see pr #19909 - /* See auto-shift */ - CS_E_ACUTE, + /* See auto-shift */ + CS_A_GRAVE, + CS_E_GRAVE, + CS_U_GRAVE, - CS_A_GRAVE, - CS_E_GRAVE, - CS_I_GRAVE, - CS_O_GRAVE, - CS_U_GRAVE, + CS_A_CIRCUMFLEX, + CS_E_CIRCUMFLEX, + CS_I_CIRCUMFLEX, + CS_O_CIRCUMFLEX, + CS_U_CIRCUMFLEX, - 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, + 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 50fb7909f3..f024859e7c 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 ad4448993f..8ca414fdd0 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 5b177acc7c..2d00ef4e3a 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; -} -void leader_end(void) { - is_leader_active = false; -} +/* 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 oled_display(void) { - /* Layers */ - switch (get_highest_layer(layer_state)) { + /* 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)); + 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; + } 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 - }; + 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; + 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 - }; + 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; + 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 - }; + 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; + 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 - }; + 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_adjust, sizeof(qmk_adjust)); - break; + 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 - }; + 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; + 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 - }; + 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; + 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(); } - /* Leader */ - if (is_leader_active) { + if (get_mods() & MOD_MASK_CTRL) { - 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_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_raw_P(qmk_leader, sizeof(qmk_leader)); + 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(); } - /* Modifier keys */ - if (get_mods()) { + if (get_mods() & MOD_BIT(KC_LALT)) { - if (get_mods() & MOD_MASK_CTRL) { + 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(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); - } + 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(); } + + 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 3873ca45cf..b70b3655da 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 + 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 + 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 d854cbb16b..585c589d3a 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 aa5bd24fde..a3b2cc893e 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 ec85447084..7d7fec921f 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 65b44a2982..a64a9f4e15 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 35f8ec90c6..7b3d230350 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 e7146a1640..c58bda2c50 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 71feb286da..968012ece1 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 59e2da986b..2ed0ad91c7 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 3a5aa429d5..e93857f4cc 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 e2e6a32689..442170ccd6 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 8301073511..36a9c31373 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 d5d64865bb..d1f3f0f9f4 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 be3789ce9b..eff9494ff1 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 453d19ab3b..7bcef000f3 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 a987a4ded2..21b26a04a4 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 35f8ec90c6..7b3d230350 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 87026b8756..802e7a0f8a 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 329b41e4e5..61577a39a5 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 1ff1f54d05..8cc29c8463 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 41156dd41c..36553b7b25 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 f37eabe3d5..2f8de3561e 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 9d1a91831e..2a9ca4aff9 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 1931861caf..9d1a8a631e 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 4d148481ca..f35aee8683 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 be7bfe4c7a..59b18de418 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 3483410525..ecc70055b2 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 35f8ec90c6..7b3d230350 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/rect44/config.h b/keyboards/splitkb/kyria/keymaps/squigglybob/config.h old mode 100644 new mode 100755 similarity index 78% rename from keyboards/rect44/config.h rename to keyboards/splitkb/kyria/keymaps/squigglybob/config.h index 6fb0d430fb..5ed5c84793 --- a/keyboards/rect44/config.h +++ b/keyboards/splitkb/kyria/keymaps/squigglybob/config.h @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 koshinoya +/* 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 @@ -16,7 +16,7 @@ #pragma once -#define RGBLED_NUM 12 +#ifdef RGBLIGHT_ENABLE # define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -26,4 +26,10 @@ # define RGBLIGHT_EFFECT_STATIC_GRADIENT # define RGBLIGHT_EFFECT_RGB_TEST # define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE +# 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 0000000000..2b5df2a8f5 --- /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/keebio/chocopad/keymaps/khord/rules.mk b/keyboards/splitkb/kyria/keymaps/squigglybob/rules.mk old mode 100644 new mode 100755 similarity index 52% rename from keyboards/keebio/chocopad/keymaps/khord/rules.mk rename to keyboards/splitkb/kyria/keymaps/squigglybob/rules.mk index a81250cdf6..7de296873a --- a/keyboards/keebio/chocopad/keymaps/khord/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/squigglybob/rules.mk @@ -1,2 +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 6720a6b35c..87f51c4cd3 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 e79a5604e0..7fe734fb72 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 3ed7dbee6e..14ce1b1a6e 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 65b44a2982..a64a9f4e15 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 a1564cfe4b..398b5debfa 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 9d3d6d1f66..398b167e72 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 0f12ae88e1..351b074027 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 47a3988e6e..c09579035c 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 3f7655d431..6c21b12a84 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 2e380145a0..aa38a7dd0c 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 1e8dd02727..198688772b 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 9b745dc906..6e362d9548 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 3c620d9019..5168e8678e 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 97b953534d..29bea95323 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 fca70ae030..ec6e8f3171 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 6cb53f372f..0c6a104c52 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 fb9a585656..3bcfccdd7b 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 980009fe0b..056ee84a8f 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 c6368ca568..b42341ad30 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 fa19135814..0000000000 --- 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 0eee3caad3..9236d322b9 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 0e8233e5da..131aa72aeb 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 88bc32e8ae..81fc04139c 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 5b426cfa09..cccaf7ccee 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 88bc32e8ae..81fc04139c 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 36ae919171..e89c5a5bdf 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 0dfaee1d90..0000000000 --- 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 c44e46a1f9..e4f6c808fd 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 0000000000..4c88e411ac --- /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 0000000000..f7b071d1a9 --- /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 0000000000..4249ff468e --- /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 0000000000..0aa1ff58d8 --- /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 0000000000..c3435b1f5d --- /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 0000000000..793a2495c7 --- /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 0000000000..e96512f93f --- /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 0000000000..a1e1311713 --- /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 0000000000..b93bf64716 --- /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 0000000000..11cb89c48e --- /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 0000000000..f8f93b7c9e --- /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 0000000000..beaf344b66 --- /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 0000000000..8c71dad835 --- /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 0000000000..46c5a48c9a --- /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 0000000000..793a2495c7 --- /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 0000000000..47ee67119d --- /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 0000000000..fedac72e2e --- /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 0000000000..38fad1c0fd --- /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 0000000000..f03a7835a6 --- /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 0000000000..ed0c74797d --- /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 0000000000..46c5a48c9a --- /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 0000000000..cac55d0eea --- /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 0000000000..8019b0b418 --- /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 0000000000..8bf8234829 --- /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 0000000000..67cc52e142 --- /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 0000000000..8b0c1f3f83 --- /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 0000000000..47ee67119d --- /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 0000000000..26ddf77803 --- /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 0000000000..d8d6f4d70b --- /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 0000000000..22b36793f4 --- /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 0000000000..57b093d500 --- /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 0000000000..f4f0698321 --- /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 0000000000..671f6cccd2 --- /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 0000000000..f35384aa28 --- /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 0000000000..1da6f0bdd1 --- /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 0000000000..940a592d11 --- /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 0000000000..dc1f588c9b --- /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 0000000000..9ca618a6fb --- /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 04f426d913..91e152a098 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 835b0e60a8..e14cfc9fc4 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 12337a485d..91e152a098 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 3f48e07c1f..823eebad6e 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 df0bf3307b..70ff15e35c 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 af0e340783..c0b05dec46 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 580815fa63..d336855bc2 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 7199179a4d..0000000000 --- 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 a050f88d7d..5c1363f750 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/rev3/info.json b/keyboards/studiokestra/galatea/rev3/info.json new file mode 100644 index 0000000000..1669e3a183 --- /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 0000000000..32db99b386 --- /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 0000000000..c0d0933349 --- /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 0000000000..1e5b99807c --- /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 0000000000..6e7633bfe0 --- /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 e7b278b4b2..5a44d1732f 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 b7c57d87b9..9f00574d5d 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 b737022959..092f2ba0e9 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 57ce8bd79e..8d6431fdde 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 790d70d9c8..8fe96fc5dd 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 245b3ab02a..19d08ee61a 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 0000000000..5ef0678f5e --- /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 0000000000..3cdc7a5870 --- /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 0000000000..bf8f26984b --- /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 0000000000..32ce47a013 --- /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 0000000000..7ff128fa69 --- /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 1870286c81..4a475316ed 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 1953af10e7..b816b18027 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 71170a12ce..779b85a7c3 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 168d2d06dc..613ace7265 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 fa54111fe8..2d7313b77e 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 f450769b43..7bafe6b191 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 84f99df9ab..8f107f8a10 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 1e5b99807c..f1adcab005 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 aca82c9ea3..0000000000 --- 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 21a8c1fbd9..eba3a115b8 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 02de10ed50..f29183dde0 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 6301659072..1b7955e19b 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 0000000000..7d4f26b73e --- /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 0000000000..e231834882 --- /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 0000000000..b99d3a3592 --- /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 0000000000..7ea01cbd5d --- /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 0000000000..1017b9cb4b --- /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 0000000000..1e4624ca88 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..adc3f2e006 --- /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 0000000000..7ff128fa69 --- /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 83952009e5..7b4e38bd96 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 3521b24218..77c9410723 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 07287712f3..7b4e38bd96 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 2e7ef2f7a6..ba90f9fdd7 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 0ca5f7c3e8..0000000000 --- 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 6827375d84..d65092ecca 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 865e6a2290..8eb6b433b3 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 0000000000..ee32568148 --- /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 865e6a2290..969aec92a5 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 36b7ba9cbc..1189f4ad19 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 ccd72051a7..7b4e38bd96 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 8eb5b4dd57..8e6f6c29e4 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 f8fbdec9bd..e6ed3b4b03 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 df15f55f72..c7f1d860ee 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 1afa2b1280..a13f15cb4a 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 0000000000..2234cd9b39 --- /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 0000000000..38b954f38d --- /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 0000000000..f357dce303 --- /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 0000000000..38b954f38d --- /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 0000000000..036bd6d1c3 --- /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 0000000000..abdb91fc47 --- /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 0000000000..de49c2892b --- /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 0000000000..7ff128fa69 --- /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 2c494ea329..5665732b04 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 806a255bcb..911b924cfc 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 60c7bb59b5..e6ed3b4b03 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 83952009e5..7b4e38bd96 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 c9aacaabc2..d4068189b3 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 34ab4a1239..7b4e38bd96 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 d6852033b1..e334d2c16c 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 1ab624ebcd..da5a95b895 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 f0ac6aa00b..fb74b6ee30 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 9587fd7b6b..b0e0cc3ee7 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 c0d4a0003d..cf031394f1 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(); -} - -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 036bd6d1c3..f1adcab005 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 ac6c077f6b..1c14611b2b 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 19a1f05760..a7b470ce88 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 fb61d8ed62..df1b1195bc 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 a60408366d..4b35b08418 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 c4a349580c..8ecec41e2a 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 28781bcd0a..aaab760be3 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 f90b4e073c..8ecec41e2a 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 51fe26c555..edef6a31b4 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 b62209abaa..6b1277af2c 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 229894fa9d..7ebd8707b7 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 305eacfd35..4b007cf387 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 8a858cf4f0..e7bb9aa898 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 f27ee2a28e..0001ae06b8 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 84559bb7bd..6ff56589b3 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 408b7dc8a6..04baad7d00 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 5a99e2955d..e31939eb7a 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 36f864fafc..030a35cd8f 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 7b72ccbf61..a86498753d 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 99f4d6ce2c..effb62971c 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 2509fcdd8e..d329c6de29 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 fb143fc76a..f608132b5a 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 31c0ab96b4..1b99728481 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 98fc7315de..4d4628146a 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 9b27514e7d..7aec5f77ed 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 fd3d5d7e56..dd68e9d3b0 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 d3ac2585b9..ab9d5c6ac2 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 2b7b6435ec..5f36081323 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 8acbd24f8b..10e5a88d1c 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 6e099c6e46..279c0f3324 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 3f0378e73c..bc2273d547 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 c7d90ef148..16e9369996 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 20a2c414b3..b5b661bef2 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 a3e464a110..6931f3565f 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 2021d94bb4..0000000000 --- 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 ae6ffb5a24..28ea383f0d 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 44fff35e61..0000000000 --- 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 c58438887a..63bb727570 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 cf8aa33045..0000000000 --- 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 7d6a0fbc14..21932cebc6 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 f517c91d19..0000000000 --- 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 f628405bcb..f7577757d9 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 02c222b2b8..fa9a83d08e 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 c62699df84..046d535e4a 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 8cfda8f8e5..fa9a83d08e 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 df765f747c..5a0c4e50e5 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 3c3b68d782..0000000000 --- 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 e769b23f12..3ea2515e64 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 3c3b68d782..0000000000 --- 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 e605034697..5f21cbbc75 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 d9dc5a8401..c2949ab3a7 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 37f5dec719..36fcc06af2 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 abdb791c6f..2d65ae102b 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 1472f88212..5146c8f4f3 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 e8aca5e862..950d17c813 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 80281fef1f..fc04a4c013 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 44b61b7458..5070f05156 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 c20ad5427e..cff65e6fed 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 a1d82e9923..145da6b2a5 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 f4416ca797..ddd37c89e3 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/tkc/candybar/lefty/rules.mk b/keyboards/tkc/candybar/lefty/rules.mk index 36101d2f8e..51c822797a 100644 --- a/keyboards/tkc/candybar/lefty/rules.mk +++ b/keyboards/tkc/candybar/lefty/rules.mk @@ -13,5 +13,3 @@ AUDIO_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/tkc/candybar/righty/rules.mk b/keyboards/tkc/candybar/righty/rules.mk index 36101d2f8e..51c822797a 100644 --- a/keyboards/tkc/candybar/righty/rules.mk +++ b/keyboards/tkc/candybar/righty/rules.mk @@ -13,5 +13,3 @@ AUDIO_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/tkc/godspeed75/config.h b/keyboards/tkc/godspeed75/config.h deleted file mode 100644 index e995bb1c7c..0000000000 --- a/keyboards/tkc/godspeed75/config.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2018 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 - -/* - * 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 4e45459bb9..4776a9bab8 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 0f15f10b20..0098dc473a 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 bad0f51bde..b9449c4714 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 37a8c19bf8..462bc0f27b 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 f07afe6ed4..6d915f6d41 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 f2a7de800b..0000000000 --- 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 78cad2daf2..cc878e14f4 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 f4f2e15e84..6eb15efb73 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 b37f02ecc9..7a11cb6172 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 4380caba4f..5a90036972 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 befb3b8829..03e96a2706 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 dd6631f545..b9449c4714 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 5cf8f83c80..b99d4ca60f 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 f9f3b206d0..fc74989daf 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 95ce321679..5a3bda67c2 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 c0a178595b..0d464a2db9 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 4837c2fda6..a963fbfb51 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 1b16db1bf8..de4fa5cd49 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 2565f116a1..86483ba920 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 b168318aa0..0000000000 --- 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 334ace4d3a..9d7a60a4b9 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 3e5d5a452a..bf68edcfae 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 e0cc720365..b1232f6816 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 29151c2a22..8964ad6d2f 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 f4cb7b1aa8..ff3f95b223 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 07a4bae2be..f15e82696a 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 6acd8f4a58..3f94299b78 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 fad2d49c93..1ca9b6c46d 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 d71fb56f0b..7b2f198e59 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 2c7a275847..5d6d78ae10 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 dd58e34f08..5f36081323 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 aae81a4a6b..e0f756121c 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/info.json b/keyboards/tominabox1/bigboy/info.json index 87f8473bb8..8d8e26dc55 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 fb3860b0eb..9b01cb3da4 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/info.json b/keyboards/tominabox1/le_chiffre/he/info.json index bab0d5242c..e7eb527602 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 53d9b0d47b..6e7633bfe0 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 25f19145a9..8ebc0778e6 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 e9205d94b3..7008550f2b 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; -} - -#ifdef COMBO_ENABLE -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}; - -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), - +#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 OLED_ENABLE //Special thanks to Sickbabies for this great OLED widget! +#ifdef COMBO_ENABLE +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}; + +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) +}; +#endif + +#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 -}; + // '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)); + 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 ab1e438182..cbd8b4aa81 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 c626cba1cc..2592ee5dc1 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 -}; + // '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)); + 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 1e5b99807c..f1adcab005 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 9ac3d6c81c..23f1a96768 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 5222f4ea51..44982ecdf5 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 66b0eb2f08..0000000000 --- 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 7d791dd396..6e7633bfe0 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 f6773fb9bd..155b264ce2 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 66b0eb2f08..0000000000 --- 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 7d791dd396..6e7633bfe0 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 a9b9df6815..fa9a83d08e 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 99ae387af7..1ddb07e621 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 eac1807676..333d0a100e 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 2b93047d41..b9c8b87b50 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 7d7b301589..d2ec5cf6d4 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 a6dfefb6b9..5f36081323 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 62e5fae73b..ba0ce45233 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 0f391f70ba..48893f953b 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 21f3bb7ec3..a674acb275 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 d04509a30d..ec16cc36b1 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 21c69b1eb0..492ae6516f 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 5ab6f8a347..0000000000 --- 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 afca170abd..213907999a 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/tzarc/djinn/info.json b/keyboards/tzarc/djinn/info.json index 2a50e5762d..f0904b8578 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 5ced700323..5dffc00141 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 02224e4fc6..12a6372405 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 c027b77565..932ea8eb50 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 fe6de66470..bf07f122c3 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 10630d80cf..9590c52217 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 fd3c59f509..0000000000 --- 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 4180f6f5ec..87afc573d5 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 ab971a55ad..822b37da7f 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 f166936a9a..af41223de2 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 2fa09f7d6d..e4bdf90508 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 97b1853aae..01220a775e 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 9c6459abbd..f3431bd412 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 97f3d10407..5474bc5279 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 5b696a9b07..9354144466 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 225317b367..9131708828 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 225317b367..9131708828 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 225317b367..9131708828 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 225317b367..9131708828 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 225317b367..9131708828 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 4c3789155e..0000000000 --- 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 02202bef07..35c749b292 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 d80dc827f6..1273f36fbd 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 481c07f7a9..7b182df251 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 5d33e9e99c..4a4d65e62f 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 5a7bde1da1..a62bb41df6 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 d0bba6d598..0000000000 --- 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 02d1b17be2..1354c6d93e 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 8eafa8d7b5..4354cb32c3 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 f219dd1727..6332071994 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 ab1fbd70d9..419c9ad5a7 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 0000000000..ee32568148 --- /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 0000000000..becb812071 --- /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 0000000000..ee32568148 --- /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 0000000000..4c43532108 --- /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 0000000000..ee32568148 --- /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 0000000000..b1f1b0c9a4 --- /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 0000000000..ee32568148 --- /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 0000000000..7324f62877 --- /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 0000000000..ee32568148 --- /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 0000000000..20e942e455 --- /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 0000000000..f1adcab005 --- /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 0000000000..fbaaa77d64 --- /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 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/varanidae/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/vertex/angle65/config.h b/keyboards/vertex/angle65/config.h index 4db0deb111..b3cf8b2507 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 03649ab072..096e89555a 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 87d5036041..330f6ff76b 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 79cb6d6aae..0000000000 --- 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 705af3fb09..bf3d28bc45 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 791368b5b2..38b830e3df 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 8aa5a709d5..7f9f5fdb3c 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 5a90b0d7fe..0c92de1918 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 e4cb045353..38b830e3df 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 831190a516..6a7a39cd16 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 8e6bc896a6..e86dfab327 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 825ceabbd3..0538906ecc 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 301b5cc756..17449f406c 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 dfa900c792..da10e34d1c 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 692c30ac61..d05e549d21 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/omnikey_bh/keymaps/default/keymap.c b/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c index 96976ba2a3..e5fb6bf902 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 eba02a4137..b528bac281 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 d347631ccc..941d65f367 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 ce8a1d2774..ac99f1d8c7 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 ce8a1d2774..ac99f1d8c7 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 0000000000..e4f59c3b6b --- /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/tominabox1/bigboy/config.h b/keyboards/viktus/osav2_numpad_topre/ec.h old mode 100755 new mode 100644 similarity index 55% rename from keyboards/tominabox1/bigboy/config.h rename to keyboards/viktus/osav2_numpad_topre/ec.h index 77d49adbec..33bdb2d5ef --- a/keyboards/tominabox1/bigboy/config.h +++ b/keyboards/viktus/osav2_numpad_topre/ec.h @@ -1,4 +1,4 @@ -/* Copyright 2022 tominabox1 +/* 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 @@ -14,20 +14,18 @@ * along with this program. If not, see . */ -#pragma once +#include +#include - #define RGBLED_NUM 5 +#include "matrix.h" - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 +typedef struct { + uint16_t reset_pt; + uint16_t actuation_pt; +} ec_config_t; - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_TWINKLE +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 0000000000..55ca939e3f --- /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/nightly_boards/adellein/adellein.c b/keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c similarity index 64% rename from keyboards/nightly_boards/adellein/adellein.c rename to keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c index 8ae826d49e..7545c946c3 100644 --- a/keyboards/nightly_boards/adellein/adellein.c +++ b/keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Neil Brian Ramirez +/* 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 @@ -14,15 +14,14 @@ * along with this program. If not, see . */ -#include "adellein.h" +#include QMK_KEYBOARD_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; +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/nightly_boards/n40_o/n40_o.c b/keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c similarity index 64% rename from keyboards/nightly_boards/n40_o/n40_o.c rename to keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c index 643803f903..7545c946c3 100644 --- a/keyboards/nightly_boards/n40_o/n40_o.c +++ b/keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Neil Brian Ramirez +/* 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 @@ -14,16 +14,14 @@ * along with this program. If not, see . */ -#include "quantum.h" -#include "encoder_action.h" +#include QMK_KEYBOARD_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; +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 0000000000..1e5b99807c --- /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 0000000000..2337fc55f3 --- /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 0000000000..990bfe04fe --- /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 0000000000..037e26c530 --- /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 0000000000..fd2e8fa0ec --- /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 0000000000..76da647dc8 --- /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 0000000000..1f2120ed57 --- /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 0000000000..b9561c9b32 --- /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 0000000000..b9561c9b32 --- /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 0000000000..1e5b99807c --- /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 0000000000..96b04090cf --- /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 0000000000..6379644cd6 --- /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 0000000000..037e26c530 --- /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 bc80a8ebca..6c7ecf8515 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 19bba8fea6..6deb64c63c 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 0000000000..c9980461af --- /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 0000000000..ace8d092b5 --- /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 0000000000..f6d3560985 --- /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 0000000000..5c3f8fa031 --- /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 0000000000..5c3f8fa031 --- /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 0000000000..1e5b99807c --- /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 0000000000..20c9aedb5c --- /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 0000000000..037e26c530 --- /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 0000000000..96b04090cf --- /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 81dd72ca9e..027686726d 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 f9fd3d018e..ff1504a5aa 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 ce07676fee..519af227a4 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 9170f80a7d..ed8596538d 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 7000bb6571..7c0709f41e 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 a0d7763711..b9449c4714 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 0959861ca9..f6aa8a8190 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 6d33342cf8..af1fe3ab43 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 36b6647465..5578ba3d8c 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 2dae864ddb..5f36081323 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 fb6b3e96f8..fc9aad49e2 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 40d9a4b8da..2ddc7228d4 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 4f359b9ee8..0eed9cdd8f 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 09d5a7bf8a..4376386c3e 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 ea0adf2ee5..b5e8793b8f 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 e6b401aa75..e01f469285 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 fa04ce7850..7205b50366 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 948bd0c7f1..5e0e8b40a9 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 e8bda126ea..722d1d3bfe 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 0a446abeba..5c0ed9cf61 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 89053ba9cc..12188f6f30 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 d2b9299c8f..5c0ed9cf61 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 f386d40b66..0dadf9d32c 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 2c31247277..2c7e4c037b 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 0f91be1b83..63e6297f7d 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 0a3df009ab..5c0ed9cf61 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 730c17c61f..931f81db1f 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 782833a3af..5c0ed9cf61 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 5162849225..3824802e02 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 4d9d3e7cfa..661799f750 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 7805f1f3c6..3b6a1809db 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 a2d6575d8e..30127708e0 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 87a53676e6..0000000000 --- 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 1a7fb72014..0000000000 --- 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 7fa45a13ab..4d4081faf0 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 741b25e3e7..cd2d215d2c 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 0000000000..ee32568148 --- /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 741b25e3e7..cd2d215d2c 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 36b7ba9cbc..1189f4ad19 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 c76f29ff75..1c5cc136ca 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 9f2b85d95f..03ec6f5512 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 9a29563ec7..c024f9d8d9 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 9dd3fcb2a4..9524eaea12 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 94d134d7c9..40f8c98344 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 eed5e664a8..9763abe369 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 ed68bff9d4..cd1f84bc1f 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 d3f57b6e67..b72f7173e4 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 1d3680aec1..14d4af4e14 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 db711fcfd9..0000000000 --- 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 70c31e162b..4cecee049d 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 db711fcfd9..0000000000 --- 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 50711496d3..0edcf115ed 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 17de75167c..9492e7f6ca 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 5986e5c1c8..5561baa5a9 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 17de75167c..9492e7f6ca 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 faebf5d443..66fe8159f5 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 00ce09e1a6..e522c52560 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 2b64827856..4e85b2e402 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 30e82dfad6..6c2a87df22 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 914d9b2763..9b6b3c7955 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 d750e86d90..e02cb61509 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 c79fc02cd9..28ee5fae81 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 1cd00ae41f..6c57416622 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 0000000000..dc517ccc16 --- /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 0000000000..c16729bd6c --- /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 0000000000..0d233e59e6 --- /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 0000000000..863ce79d37 --- /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 0000000000..6e7633bfe0 --- /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 b585802fb8..0000000000 --- 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 10b20c41c0..8a5f6fdbea 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 b7529e4311..0000000000 --- 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 2d716a89c7..6e8369272f 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 ddc21dae30..0000000000 --- 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 2a18caeed4..05c6fbe9b8 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 116c09d6ac..0000000000 --- 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 03a8e408b5..fbd0f9b024 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 73844a7bc7..0000000000 --- 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 7828dba468..21cfdc6a2b 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 98c540c876..0000000000 --- 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 40768171e4..a5d3b71a26 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 0000000000..f175f36b91 --- /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 0000000000..4271bff43f --- /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 09724a2c00..4a3c8c3e27 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 cfd52d368a..98bb376ba2 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 d24d13bb26..0000000000 --- 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 2484af52ae..0000000000 --- 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 67598ac337..0641fbfd03 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 6098ef3ad8..1189f4ad19 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 87ec3f8900..2c3b4a3b0d 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 0000000000..d5f391bcdd --- /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 0000000000..ff83a95164 --- /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 0000000000..893ea2eb90 --- /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 0000000000..893ea2eb90 --- /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 0000000000..43061db1dd --- /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 0000000000..c07471dca0 --- /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 0000000000..3437a35bdf --- /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 0000000000..5535036f37 --- /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 0000000000..3e1350a75e --- /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 0000000000..3e1350a75e --- /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 0000000000..036bd6d1c3 --- /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 0000000000..52865bfb11 --- /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 0000000000..3437a35bdf --- /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 0000000000..fa52666b2a --- /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 0000000000..9a5e5b24d7 --- /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 0000000000..9a5e5b24d7 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..920de93c41 --- /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 0000000000..e69de29bb2 diff --git a/keyboards/wolf/ts60/config.h b/keyboards/wolf/ts60/config.h index 5064157a52..81e0b787cb 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 d1337177b4..5e883d2bf1 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 0000000000..2e8d39dacb --- /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 0000000000..e26689efa7 --- /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 0000000000..e26689efa7 --- /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 0000000000..036bd6d1c3 --- /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 0000000000..d7aa00c077 --- /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 0000000000..6e7633bfe0 --- /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 8df536bf54..4b007cf387 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 099327f417..04b8ae3b11 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 a712747048..512ef119fd 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 d81dd8611b..c726e10075 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 1dd1e6fa0c..43d7b0f536 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 500fddd53f..b72b1a0d9a 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 d87471b007..4cc698b1df 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 650554e020..dbdd5a8e3c 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 ecb5649419..c726e10075 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 a488fc1515..98cbeab77d 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 a225c19d3a..c726e10075 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 0152a2ce04..8c24efb09d 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 d1410ecf1e..d97c057c6f 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 02ed67b9cb..c726e10075 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 e228efd54c..789eb9ecbb 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 d5bdf9540c..4b3491cfa1 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 0000000000..2ce28918df --- /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 01f1af1ae8..174947ff39 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 e39df58323..5905c00d2d 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 90c490e836..1dd4c39f25 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 365c9d18e5..b85da25a28 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 604f378461..638ebffb8c 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 aa9730b88f..8057bcf2b4 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/keymap.c b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c index ddd695461e..8e3c41c332 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 0000000000..5d85581c6e --- /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 20802b3179..63586244c0 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 3854dc8659..89ebddeb6e 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 d74555a178..b3197a7c1b 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 cf25b4b5b7..28c506d867 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 966f0a6b02..eacbbbccbd 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 1bc02d08a6..0000000000 --- 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 90ac25f360..3caea9b338 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 5451d4466e..0000000000 --- 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 b377cdff00..603bca5c6a 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 234b1de602..98f2b86973 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 6b14ecfbe7..d76e7aa049 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 593304a053..22c6f7b1bd 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 adc32d10a6..ab064bd019 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 4fa9c1442c..0fa2bf2565 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 56615c8e49..de91d98de9 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 067a2b292e..1946b8bcf4 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 1747ab638e..2c20225742 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 b7d85d490d..0000000000 --- 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 90ac25f360..9884ca6e48 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 8e3cd8bce8..0000000000 --- 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 b377cdff00..63e757dfe2 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 defc0a92dc..af1fe3ab43 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 0b15863059..5b9a309460 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 a14f9dbde2..af1fe3ab43 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 e9c24279f3..a6ecaccb05 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 541e19bece..55edc22470 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 8cc0971879..2dd4ae8296 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 b6ee3e9cc8..5f36081323 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 06ee936ce7..0912ade63f 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 da4d3257a6..5f36081323 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 b5d0f9459b..a195014595 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 edc623d08f..5f36081323 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 f542c999a1..813bde3d02 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 d33de62b5f..af1fe3ab43 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 09f5f98814..262e0fb9bb 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 2dae864ddb..5f36081323 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 1046556051..0dcbab7d72 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/info.json b/keyboards/wuque/creek70/info.json index 5e54c694ed..f0951430db 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, "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, 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": [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, 15], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "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, 0], "x": 0, "y": 1}, - {"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, 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, 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": [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}, + {"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, "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, 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, 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.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, 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_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 4a06785254..167aebeaf9 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 9c0a99a986..10c12d41ba 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 0000000000..45585b71bb --- /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 80ecfb420d..f0510424ff 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 e450f95dbf..86d1de3d4a 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 c5726c333e..db5a8d534e 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 2e93f0efc7..872509ed42 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 c35fac65d6..db5a8d534e 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 3c0c0e29b8..f7917ae26d 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 e19b3bc172..5f444bbff3 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 e5fe34fd7b..e48b8b50d1 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 36b7ba9cbc..1189f4ad19 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 eeaea79c71..0000000000 --- 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 6b0d17be5c..db5a8d534e 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 ef48587375..9b9bc1abb6 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 b0273298dc..0ed2bdfebe 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 13d5d4fa7a..57f7a13cbd 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 36b7ba9cbc..1189f4ad19 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 3b2d995b7e..0000000000 --- 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/jels/jels60/config.h b/keyboards/wuque/nemui65/config.h similarity index 87% rename from keyboards/jels/jels60/config.h rename to keyboards/wuque/nemui65/config.h index d78952f261..489059d8ab 100644 --- a/keyboards/jels/jels60/config.h +++ b/keyboards/wuque/nemui65/config.h @@ -1,8 +1,8 @@ - /* Copyright 2022 Joah Nelson (Jels) +/* 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 + * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -18,6 +18,7 @@ /* 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 0000000000..65cfebf9b4 --- /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 0000000000..24801db75e --- /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 0000000000..da09d31c61 --- /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 0000000000..36b7ba9cbc --- /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 0000000000..4225139ab0 --- /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 0000000000..6e7633bfe0 --- /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 b0e79e97c7..0000000000 --- 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 d49b4aaa79..e7e0a0b46e 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 b0e79e97c7..0000000000 --- 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 7e0d7cfdcb..29809d2a15 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 134605fcab..0000000000 --- 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 9ebc9af843..f27073b285 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 2acca2f0c0..23ddfced88 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 8e820022fe..05abb620da 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 43061db1dd..1189f4ad19 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 58e0663467..0000000000 --- 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 3d507b38a9..7684ca6b39 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 7aa1fe74f5..695ef03672 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 0287c13ee4..892dda8878 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 34744625d8..2f5f5f4cd8 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 ec3fcb0fb3..edbb5fc504 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 7e4e25357f..8212f31034 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 9757bde9c9..fa0ba7f768 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 ae0e692191..5df8b9c56b 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 320ad9824b..b5b082a37a 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 d84773e5fb..ad399bd962 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 f153c9ef9d..7b77807326 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 805e07ebc2..a6006b7150 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 c7c6f5f163..613adf3a22 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 82ada2e6da..6e3a51166e 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 24f84a7d80..be1fa11584 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 a922b89dbf..9db59dcc66 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 242362ab7e..ae31595623 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 ead22f6c15..e59fc84570 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 c02eb841df..d3ca7b060e 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 856cdc1302..156c5228da 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 da5bb96a75..d7c74730f8 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 62377018b6..fd2358d68d 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, 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": [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": [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": [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": 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, 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": 18.5, "y": 5.25, "w": 2}, - {"matrix": [10, 10], "x": 20.5, "y": 5.25} + {"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 8441c649b2..612c1d666a 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 9b8f0410fa..69f8d6e5b0 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 e81b538301..965f4edaef 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 b8cda1a22a..118a671547 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 6329d2c31d..9eeaa8553b 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 120a444ec8..ef90964f9b 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 c431ddad87..fe18ba5b71 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 2545fb24b0..324a57d180 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 cc63e70bb4..e5acad6f9c 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 d3f134fdf8..a8068eff89 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 35173d663a..efbd7d0e9b 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 4ecf72dea7..8ee0c3e8fe 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 4ecf72dea7..8ee0c3e8fe 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 a204d485fa..5ed7b869ae 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 242560c067..d1138c735d 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 4d6888f707..81cf86498b 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 cbbdc49b12..4b7be4d441 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 6e540617c2..20de0ef837 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 d442ee5762..0d0cd3712a 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 cce509be79..1e0b22f96b 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 597c5dc818..531283c78a 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 823ba86358..0000000000 --- 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 21efad0d81..4e59694818 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 c45ef7af64..2f994ac2e4 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 f8845d411f..61a74eb88a 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 68c97c0a9e..89a0983bf4 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 e62b98a12d..139fb91322 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 0522a66e57..d55a8535c6 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 8acfb92cf5..9bbab0cdf0 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 bc2e724214..58af00e972 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 30b9f79606..d8301194f8 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<. + */ + +#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 0000000000..56c4130708 --- /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 d3ff7557be..535c870ff7 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 ae27ba0292..4fe70b9cca 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/rgbkb/sol/keymaps/xyverz/config.h b/keyboards/xiudi/xd75/keymaps/zigotica/config.h similarity index 68% rename from keyboards/rgbkb/sol/keymaps/xyverz/config.h rename to keyboards/xiudi/xd75/keymaps/zigotica/config.h index 334eee608c..23e276cf6e 100644 --- a/keyboards/rgbkb/sol/keymaps/xyverz/config.h +++ b/keyboards/xiudi/xd75/keymaps/zigotica/config.h @@ -1,8 +1,4 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert +/* 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 @@ -20,7 +16,12 @@ 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 -// place overrides here +// needed to get same layers as split keyboards +// see users/zigotica/zigotica.h +#define ORTHOLINEAR_KEYBOARD -/* #define SSD1306OLED */ diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c b/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c new file mode 100644 index 0000000000..4133b57e72 --- /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 0000000000..c41232e8f9 --- /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 42cce6f1c0..0ad3910060 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 f7bfaeaebd..b97efe9cf8 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 ed84a2ad6f..1e378e8f47 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 e905ff3e7e..bcdc0d2cf1 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 d89929e9c8..95110fa590 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 5aa56a60e9..3c30f69ba9 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 5329d51483..059b57a0c6 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 5a04310130..98ebfcb483 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 460d3ced43..710fb4ca88 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 6327578ebf..0000000000 --- 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 54c363b28b..bf9841492d 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 9f1bf19863..498bf77b97 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 677e41a00d..9d3f3e44c0 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 69d4903bd6..9fe09cd95b 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 663aac2420..421ae9fce1 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 dcf74a160b..6985b4b8bb 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 e2700ea0cb..a1b5a0e9cf 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 c6760befde..98480b2687 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 32d0e29263..2bf8cd36b3 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 5e4cdaaea0..4aa37c5f20 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 6c054018d1..1ac32fe9a4 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 860ee45381..dba2f77395 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 6149c998f7..3cd784934a 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 7ed06c9ec5..f1069c37db 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 56a083d444..52e0d15c8e 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 373b5bcbf9..3386838c74 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 925d6c1d94..a82f58300b 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 baac6f4f9b..7f9364a18f 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 d9f51ce6f8..8d3ab5e327 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 0000000000..f8430dd3a5 --- /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 0000000000..d4125b6cee --- /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 0000000000..6543ab1e54 --- /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 0000000000..4392795b14 --- /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 0be5c0a46e..b971c88fe1 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 0000000000..77392f1fb5 --- /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 74c8f4adce..592953720f 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 3ec826052c..0ea82bd3ad 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 0e8602dee9..a0841c469c 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 7faaa482ef..ce9f4bc379 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 8a4ce9ec49..99d38fe44a 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 52a703d219..26d54c2c82 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 651d6bedf3..014f5d4d42 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 dd6631f545..b9449c4714 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 998f3073e1..0b6b8cfebc 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 0d488de5d4..c0bea85aba 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 17d2f88773..32c9914bdb 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 9914803853..0000000000 --- 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 b552f9e2cf..f805369f8d 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 273fd9fca8..0000000000 --- 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 1bcda0bcda..fce2104582 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 08303c4b13..0000000000 --- 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 09441c5dbd..f6646db920 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 17b50e8e46..692ef7e8b7 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/nightly_boards/n60_s/n60_s.h b/keyboards/ymdk/id75/keymaps/dothtm75/config.h similarity index 88% rename from keyboards/nightly_boards/n60_s/n60_s.h rename to keyboards/ymdk/id75/keymaps/dothtm75/config.h index 33cf8e0b68..155d4562d5 100644 --- a/keyboards/nightly_boards/n60_s/n60_s.h +++ b/keyboards/ymdk/id75/keymaps/dothtm75/config.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Neil Brian Ramirez +/* 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 @@ -16,5 +16,6 @@ #pragma once -#include "quantum.h" -#include "encoder_action.h" +#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 0000000000..f8267aff64 --- /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 0000000000..56c4130708 --- /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 47220e8853..edbd3dd718 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 a62c64fb37..5f36081323 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 83c45eaa6b..37b3ba9cff 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 6ad2d4bdf0..6c187131d4 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 62fdf7e20c..f420023dee 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 0f6e31d199..0000000000 --- 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 285baacdac..b804473300 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 35e9f6b5a6..ae956e4207 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 dff795f0b9..a0091c8f3d 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 c8cfa14161..0000000000 --- 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 6a136f90d3..1e0a1995b6 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 fe80a59fe5..0000000000 --- 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 4c536e7ead..4843e2d4c0 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 edea795f78..0000000000 --- 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 90ac25f360..faa8ae570e 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 00d3fcfc8c..0000000000 --- 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 e557e4d307..47a3dbb0b5 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 135548b4ff..6f34d5132a 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 b35b9d3142..0000000000 --- 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 3daab4072a..132d431adb 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 d9cb9f5086..11552ae5b2 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/ymd21/v2/config.h b/keyboards/ymdk/ymd21/v2/config.h deleted file mode 100644 index 955f702a8d..0000000000 --- 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 18b0ef9e7b..9bd8d6e370 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 cfa103de9a..daf104ebfe 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 1a061e530b..0000000000 --- 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 ab9648ff46..6686030166 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 8a3612b8a5..6f34d5132a 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 39801fe04e..65da379035 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 32bdab2478..0000000000 --- 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 930139be90..0000000000 --- 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/readme.md b/keyboards/ymdk/ymd75/readme.md index 78b4d089af..3a66b428db 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 0f280a2eca..5f35c77bc2 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/keymaps/default_iso/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/default_iso/keymap.c similarity index 92% rename from keyboards/ymdk/ymd75/keymaps/default_iso/keymap.c rename to keyboards/ymdk/ymd75/rev1/keymaps/default_iso/keymap.c index 5041b72b9f..6e14c7ceb0 100644 --- a/keyboards/ymdk/ymd75/keymaps/default_iso/keymap.c +++ b/keyboards/ymdk/ymd75/rev1/keymaps/default_iso/keymap.c @@ -1,3 +1,21 @@ +/* +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] = { diff --git a/keyboards/ymdk/ymd75/keymaps/default_iso_rwkl/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/default_iso_rwkl/keymap.c similarity index 92% rename from keyboards/ymdk/ymd75/keymaps/default_iso_rwkl/keymap.c rename to keyboards/ymdk/ymd75/rev1/keymaps/default_iso_rwkl/keymap.c index 0db1c8d288..ba3fde9cbe 100644 --- a/keyboards/ymdk/ymd75/keymaps/default_iso_rwkl/keymap.c +++ b/keyboards/ymdk/ymd75/rev1/keymaps/default_iso_rwkl/keymap.c @@ -1,3 +1,21 @@ +/* +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] = { diff --git a/keyboards/ymdk/ymd75/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c similarity index 74% rename from keyboards/ymdk/ymd75/keymaps/via/keymap.c rename to keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c index e1b91490c3..0d39958db6 100644 --- a/keyboards/ymdk/ymd75/keymaps/via/keymap.c +++ b/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c @@ -1,18 +1,18 @@ - /* 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 . - */ +/* 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 @@ -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/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 0000000000..e4784d4eb9 --- /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 f51a7ed330..f20a19ee97 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 0000000000..e51f88bb43 --- /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 0000000000..6e14c7ceb0 --- /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 0000000000..ba3fde9cbe --- /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 0000000000..0d39958db6 --- /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 0000000000..152460f304 --- /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 0000000000..7d70ed3a50 --- /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 968045a7c9..1b2bbb1da0 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 23922b1f68..45968ab5fb 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 0000000000..e51f88bb43 --- /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 0000000000..6e14c7ceb0 --- /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 0000000000..ba3fde9cbe --- /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 0000000000..0d39958db6 --- /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 0000000000..152460f304 --- /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 0000000000..0e705d40ff --- /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 e3b96df9c2..58ad1837e0 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 ec66e0734a..0000000000 --- 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 ecb03b5917..0000000000 --- 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 f603439d39..d947050f3d 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 ec57403a66..4ec1dc045f 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 ec059fd01e..4c3ced2c42 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 f892a9db7f..46b7ca26f4 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 8040e082a3..079dd3e3d7 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 1347f73cb0..aa00e7e69e 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 cf819293be..a95edc0358 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 2b477e726c..bf4b2a2510 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 45ee46f7ce..512c0ec4b1 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 730c82faa4..c0dc03831f 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 a51a58c5ea..2fcc81da0f 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 bb842334be..23285a342d 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 81b2740f32..ef0cdf5cbe 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 d4a4e48d77..0000000000 --- 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 bd20c0d0b4..a35dc4d5e9 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 95c70244a4..028791d717 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 f086173867..1f01ffde5f 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 00018d319c..8fb9e393ee 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 1889a00643..58374a7de7 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 0a35045845..1c87648794 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 79458d1564..54d365d077 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 e94b19675f..eb679ebba0 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 9a2417f039..a4f3800f88 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 167e29e106..33512faa67 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 f50a2c72c3..eb679ebba0 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 4165c966bf..e9bc92dea3 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 65ce7f2dea..102b2e62a3 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 eecce57fe6..e4aebce30c 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 02c40f6125..9f19a030d1 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 eff7fc2d49..f97ce7b0f8 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 6d0df4a0c5..e2916ce4e2 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 8471167fcd..5f36081323 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 9f01b09518..7fba339db1 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 310b4f5756..eafc776bef 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 ee3c3dfe47..6478e67a80 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 34d5f258fc..fe3c88063d 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 3cb23cdcc5..4173935642 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 f657556db9..377ec44f97 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 25caa13057..e503f07b80 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 942a089b64..e58651499a 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 92fdcaa586..0f24dfe7e3 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 5ac93424db..874114bfca 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 3af6af5091..37e459893c 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 d9d7383c3d..890bdb4c56 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 c2d3c6b075..5c9eb2a26d 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 5f8080d471..81ee2bf3a7 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 5c2f6a150b..4e251b41db 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 ae5bdcc5b8..d9e3c9fa61 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 f67a6d6da0..3de64f4994 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 5b279073cc..079a92a97e 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 c191a034f2..1c68a68b0f 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 7c25fed016..e7f427127e 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 7361de1a03..04c83de9e9 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 8443ff054f..7db0afa40f 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 475ccc5c3a..cdf41fc5dc 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 0000000000..fcba0f483b --- /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 0000000000..b0d4d9a038 --- /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 29e52b92db..e0ce760a79 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 92065e8f31..cfed26931b 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 8e5743136c..9b425c477a 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 a5a8f61cb6..712931016a 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 0000000000..caaa82d38a --- /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 0000000000..56972148bd --- /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 0000000000..a93cc2bbfd --- /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 0000000000..236abdfa07 --- /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 fdbb44117f..ede754b2ca 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 1dfcdd3eb7..a28e652024 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 0000000000..068bd5024b --- /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 0000000000..8acd5f2fe3 --- /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 0000000000..e8caad8878 --- /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 0000000000..9385325157 --- /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 a728d93d1a..439613911a 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 0000000000..ec5c35cb54 --- /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 0000000000..97f5bd3880 --- /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 0000000000..8b20546b74 --- /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 0000000000..cc49ffd830 --- /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 0000000000..c60165afcb --- /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 0000000000..513852193a --- /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 0000000000..c7a6833b75 --- /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 0000000000..59505a1966 --- /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 a224be155a..da78eb3759 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 7dd464bd34..08d23cf5ba 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 fa4036e39a..b9e89032b9 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 3b69b17ed1..ed8b6827bd 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 02cc6051ec..e662407474 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 52c1cae4c2..ddd946a32b 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 @@ all: {keyboard_safe}_{keymap_name}_binary 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 b1eac13957..660b2ff72e 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -9,7 +9,7 @@ from pathlib import Path 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 8a13029a8a..97bd84aa23 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py @@ -14,7 +14,7 @@ QMK_FIRMWARE_UPSTREAM = 'qmk/qmk_firmware' 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 @@ MCU2BOOTLOADER = { "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 @@ BOOTLOADER_VIDS_PIDS = { }, '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 @@ ROW_LETTERS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnop' # 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 f83665d9ac..9ecb5e4b9c 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 dbd26153d8..9c8521a2a3 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 0c980faf2b..235b62640c 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 48310c8961..381a996443 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 2fc448ea58..6799cf2fdd 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/quantum/backlight/backlight_avr.c b/platforms/avr/drivers/backlight_pwm.c similarity index 63% rename from quantum/backlight/backlight_avr.c rename to platforms/avr/drivers/backlight_pwm.c index 474e0a86f5..74d25753a4 100644 --- a/quantum/backlight/backlight_avr.c +++ b/platforms/avr/drivers/backlight_pwm.c @@ -1,23 +1,15 @@ -#include "quantum.h" #include "backlight.h" -#include "backlight_driver_common.h" -#include "debug.h" +#include "gpio.h" +#include "progmem.h" +#include +#include // 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 @@ -39,7 +31,6 @@ # 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 @@ -69,7 +60,6 @@ # 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 @@ -91,7 +81,6 @@ # 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 @@ -109,7 +98,6 @@ # 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 @@ -126,112 +114,34 @@ # 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 +#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 +#if BACKLIGHT_ON_STATE == 1 TCCRxA |= _BV(COMxx1); -# else +#else TCCRxA |= _BV(COMxx1) | _BV(COMxx0); -# endif +#endif } static inline void disable_pwm(void) { -# if BACKLIGHT_ON_STATE == 1 +#if BACKLIGHT_ON_STATE == 1 TCCRxA &= ~(_BV(COMxx1)); -# else +#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 @@ -264,26 +174,11 @@ 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))); @@ -292,7 +187,6 @@ void backlight_set(uint8_t level) { void backlight_task(void) {} #ifdef BACKLIGHT_BREATHING - # define BREATHING_NO_HALT 0 # define BREATHING_HALT_OFF 1 # define BREATHING_HALT_ON 2 @@ -303,39 +197,20 @@ 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 +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) -# endif +# define breathing_interrupt_enable() \ + do { \ + TIMSKx |= _BV(TOIEx); \ + } while (0) +# define breathing_interrupt_disable() \ + do { \ + TIMSKx &= ~_BV(TOIEx); \ + } while (0) # define breathing_min() \ do { \ @@ -384,20 +259,14 @@ 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 -{ - +ISR(TIMERx_OVF_vect) { // Only run this ISR at ~120 Hz - if (breath_scale_counter++ == breathing_freq_scale_factor) { + if (breath_scale_counter++ == BREATHING_SCALE_FACTOR) { breath_scale_counter = 1; } else { return; @@ -422,19 +291,17 @@ ISR(TIMERx_OVF_vect) #endif // BACKLIGHT_BREATHING void backlight_init_ports(void) { - // Setup backlight pin as output and output to on state. - backlight_pins_init(); + 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 -#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.) @@ -448,23 +315,10 @@ void backlight_init_ports(void) { */ 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 + ICRx = BACKLIGHT_RESOLUTION; backlight_init(); + #ifdef BACKLIGHT_BREATHING if (is_backlight_breathing()) { breathing_enable(); diff --git a/platforms/avr/drivers/backlight_timer.c b/platforms/avr/drivers/backlight_timer.c new file mode 100644 index 0000000000..e1f4286557 --- /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 39a11b28e4..09028d80af 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 060ad88c57..c6490169d8 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 b05431633b..ad6253be93 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 ab293c0b40..8621807cbb 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 b91d762419..902f9b5005 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 0000000000..3511f752a9 --- /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 0000000000..fce0b4abad --- /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 0000000000..f43df29b54 --- /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 0000000000..0239ec5273 --- /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 424e0c975b..189d90952d 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 eb51e25171..0c2ef592d6 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 f19f08e93c..493dcf6434 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 bedc00f32e..524d13e636 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 f845bf21e9..fba3086e7a 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 52632a051e..1f8a7842fe 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 0000000000..006415a5dc --- /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 d29147ca3b..22e4fa2608 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 4ea23a2158..9a3f3fea1f 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 54dac46605..40d891326f 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 e01f86ea52..663a9eca16 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/quantum/backlight/backlight_chibios.c b/platforms/chibios/drivers/backlight_pwm.c similarity index 98% rename from quantum/backlight/backlight_chibios.c rename to platforms/chibios/drivers/backlight_pwm.c index 30e95bd5c8..01e6f71307 100644 --- a/quantum/backlight/backlight_chibios.c +++ b/platforms/chibios/drivers/backlight_pwm.c @@ -1,7 +1,7 @@ -#include "quantum.h" #include "backlight.h" +#include "gpio.h" +#include "wait.h" #include -#include "debug.h" // Maximum duty cycle limit #ifndef BACKLIGHT_LIMIT_VAL @@ -13,7 +13,7 @@ # define BACKLIGHT_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL # else // GPIOV2 && GPIOV3 -# define BACKLIGHT_PAL_MODE 5 +# define BACKLIGHT_PAL_MODE 2 # endif #endif diff --git a/quantum/backlight/backlight_timer.c b/platforms/chibios/drivers/backlight_timer.c similarity index 99% rename from quantum/backlight/backlight_timer.c rename to platforms/chibios/drivers/backlight_timer.c index 82fb6a6a83..0fabee93b1 100644 --- a/quantum/backlight/backlight_timer.c +++ b/platforms/chibios/drivers/backlight_timer.c @@ -1,7 +1,6 @@ -#include "quantum.h" #include "backlight.h" #include "backlight_driver_common.h" -#include "debug.h" +#include "wait.h" #ifndef BACKLIGHT_GPT_DRIVER # define BACKLIGHT_GPT_DRIVER GPTD15 diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c index 4c7a5daa17..7c49f9d005 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 0dd8e71ae8..f087d0c2ed 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 ccaf73282d..e0f583ccde 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 6ebbf7c8ca..767ef8726f 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 fa062cd736..dec8a292e9 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 34f77232b6..39a59dd445 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 e9e3b0855b..d1917bfc80 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 0096f22f07..21b8f6db95 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 937fa5de6f..d775ec29d5 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 dd4723a086..3aa8e1165f 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 99a6cfaba9..8d59e13bb2 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 d05deb1a50..c55e0f654c 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 04c8279a97..cfee547a82 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 c28f5007f1..f188576e04 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 56b81493de..5122ed4634 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 6304b42d87..081b001e6d 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 a777d60468..a35514bf2e 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 239155c086..caab400531 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 88cb5e6d54..7fe6d477b8 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 da0697e3b0..bbbe71ea12 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 0000000000..9a3fa88cec --- /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 0000000000..336e4f5844 --- /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 27d1994d54..62016b9d03 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 ff783bb3e7..a2410d49a5 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 3c68e680bb..2c3118340d 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 02f6e9e6df..831caf3c0a 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 2570ad9cd1..28c8267517 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 75016a1100..a4a908b43c 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 01b95671fd..4c23cd7348 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 ad2f96e43a..7b289cac6c 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 01f257f4d4..4f511c93ba 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 52ec086bb0..9d9f944f5d 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_driver_common.c b/quantum/backlight/backlight_driver_common.c index 1eb8969084..8c3fe461d7 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/bootmagic/bootmagic_lite.c b/quantum/bootmagic/bootmagic_lite.c index f63c71fc6b..efce6bfd12 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 a8629654c2..cea1f2b526 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 4745c6f465..954d43536c 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 4cff5e05e2..1b8b1dc13a 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 d04310a761..25e18890af 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 7b59b5e100..156535a373 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 452c4599d0..d6222af5b2 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 f736d1645c..b359e79287 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 aad5ca351b..ccc5d20fa2 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 bd98e32955..b11378b286 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 b7becb3782..7319abfbf3 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 1c465367e6..ffc160e8b9 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -14,18 +14,21 @@ * 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 +#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" #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 +275,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 1046fe6cc3..7ab194ed52 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 7644853b30..1cbac98cb5 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 02264067f4..0ab7bfc2a7 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 c151547fca..5a700dca38 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 71d95cc61b..5bd1a71916 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 f82266eb1c..71eb6b8380 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 bf1890d10b..5ea57815a7 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 9dd7097c86..864488a65c 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 a067e1aa36..0000000000 --- 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 804807f28e..07f7cc75a1 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 69bba7293e..c22191dd4e 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 1e2f833db1..e0e8e52c9c 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 34ca9514c8..f33d6272e8 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 0f0d5a2111..1d24728ab6 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 b52ce4958a..ca908353ab 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 92b588c82e..63bca96de9 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 3aef96b24a..1514620cb6 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 bf51c81a88..e43b54713d 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 54c3317418..083a723403 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 6923063ce2..573e4afae2 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 25e1d31423..d31a33ba51 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 2f4f281794..f1c3fa04cc 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 f19bb6f4b2..372ee5726b 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 9ea2ab3f8f..903ec3cab3 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 197836ba83..f797f34e0a 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 a37a5d314b..0e585ec093 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 1408634a26..55b90b3204 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 1033c3991f..9a17007898 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 69c7dd996e..79357d71e4 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 8345dbaaa1..711ba7d05b 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 9169ba2557..d96a8fcd04 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 b25a4e76e7..8515c6cccf 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 dad4902d34..322da2ac1b 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 97b5164e23..2961316de6 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 d82e8bbddf..25eb2549bd 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 13628d7023..043446acbf 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 bd73a01e48..9323c603cc 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 a886411143..92d2570022 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 69cb94de71..676930e9d3 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 21dbbdd705..b9b175c822 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 28813da51f..ce362b76db 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 37db5f97aa..951da2397c 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 5d43c66279..cda5541a50 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 9b5bee4a13..16d9137102 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 7e19a62595..5e3df75a95 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 c94cca1379..a908773969 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 117af7e76d..1b863aa6e9 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 680e99ef4e..374ceaddfe 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 ccf9458247..279b6f736a 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 d451342992..6dd81ac95d 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 f6aa19210c..b352ab0b37 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 7d04cc539a..1559b5efa4 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 cabd5c5dc5..6d3e70bf81 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 986f022333..077612737c 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 bbd30769b0..2a79507f20 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 d1694ff0f0..9b13a2fcf7 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 04f8e3908a..d22104fc5a 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 e7605d7cce..791268fdeb 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 42144566fd..8d86374a6f 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 b9ad7ed9ae..b9fad670ae 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 828d61641a..1676a60aa3 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 c7d360f366..c2533ca49c 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 2c09ba82b1..13c8935d11 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 0000000000..b6770b9ee1 --- /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 97d41caedd..f087a215d4 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 3173351888..d02c527caa 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 f6a5d92281..6b8831fb58 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 735a6e45ba..85de2b9525 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 6b41dd56be..814d348e31 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 660ffb6100..280aeaf91f 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 aea9381b60..f27bb7892a 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 bcc6de8f2e..63667783e1 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 25517d91c5..7f5a7ddfcd 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 3988aaedf8..aa5fa4aa76 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 5c7abd7a7d..e912a3e91f 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 9f86b29f8b..fb17a05a1b 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 a70caac6f4..ff6fc01d11 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 b008d18db5..fc3106e37e 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 7db63bc6b8..1343855e00 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 c189dd02b7..a8464e1b83 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 42cfab4af2..69e201e447 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 b88c9f3237..80784594f4 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 "process_auto_shift.h" +#include "quantum.h" +#include "action_util.h" +#include "timer.h" +#include "keycodes.h" +#include "qmk_settings.h" -# 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 +#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 66a4b3138a..885a47b533 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 1376788266..edc47718f3 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 c7596107e5..ea77d6f56f 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 7fe887ae67..e926833e79 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 d4382680bf..1088c8f76c 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 f215bbc3a3..f5eb140d32 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 b662a3f2f4..0ee58282e6 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 67b6463c5d..dfdba14131 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 01fa3d692a..d320778bb9 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 bba5d5ee63..f1d534236e 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 bf6af566e2..30a51503db 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 ab70726897..2f10733cae 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 146b9fccd7..cf52626e42 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 85e83ee73b..fee29e18df 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 1eade3de6c..70ea6a2fbe 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 bbf4483763..358ff3c4e7 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 6dbb0f014d..7e61f6c0d6 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 1fb8757708..aa1a443271 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 5159b0ba02..858945a8e4 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 17e490e67a..264e2562b8 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 fd76f297a8..3e37c7e63a 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 a9823b6285..ca017a577d 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 eb0f721f60..b78fbb94df 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 5fafe8550f..3b35884d68 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 1eb39f1455..aa65a43bae 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 ce62559849..377fcb69e2 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 e528c6ec0c..64ccc610f9 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 7c572079a7..f047668504 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 83726a05ba..ed39d3cda5 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 47c6ce5614..ef818af4ca 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 f819aa226e..73f4ddedcf 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 eddc50f254..c3b200c632 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 dae129786e..4e63bf3ca8 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 26aca46896..b1069d4bb6 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 2814264b92..78d793f0f6 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 2b85f24299..3a9bdc2b24 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 3109ea1711..f948ad6238 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 fcb70f3b43..6d10051532 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 d5ad61ba85..af26d4ca86 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 68d6097b9b..0dd2103218 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 f419ed37ec..237fa71cd3 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 5cb6d9202c..2b114dabd3 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 9c4e3df1c2..5e6e4ff94d 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 3aa09d5948..91a038bab1 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" - -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) { - 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]); - } -} +#include "ucis.h" +#include "keycodes.h" 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 (symbol_found) { - ucis_success(i); - } else { - ucis_symbol_fallback(); - } - - ucis_state.in_progress = false; + 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; + } - default: - return true; + 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; + } + } } + + return true; } diff --git a/quantum/process_keycode/process_ucis.h b/quantum/process_keycode/process_ucis.h index 54eb9413d4..6282df7893 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 1ec76245a3..8ee6fcd7fc 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 341bc8d861..9a51ffaf7c 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 a0b9010027..f43770977a 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 fd09a41818..0465830079 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 195c093e6e..a85568521c 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 5a3aeb0000..f07082e9ef 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 1549d7b5fc..96449220e2 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 cd80e8db8e..f07c9154b1 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 7e7e4ab09a..7f4a3b61ed 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" -#endif - -#ifdef UCIS_ENABLE -# include "process_ucis.h" -#endif - -#ifdef UNICODEMAP_ENABLE -# include "process_unicodemap.h" #endif #ifdef UNICODE_COMMON_ENABLE # include "unicode.h" -# include "process_unicode_common.h" +#endif + +#ifdef UCIS_ENABLE +# include "ucis.h" +#endif + +#ifdef UNICODEMAP_ENABLE +# 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 f931b7e4c7..d3249bd455 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 120c98bc62..260ac1c8a4 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 6d60ab2bff..16830833cc 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 0689c6d454..4567428723 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 06e8364529..8084be24ad 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 33a3c67759..4d1a82de8a 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 9d92d585ee..fb7afea6e1 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 388da8c139..6637d9e2d1 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 0000000000..7162c8679b --- /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 1f3912cf7e..96be615162 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 46c5335f05..74919a1185 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 d66fc801dd..695ecc78a4 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 ea28801a40..158112f31d 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 a431383454..5d044c4ea0 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 5c9a260a14..f83b05b6a6 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 b3c80f1194..2b9423cd63 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 e38ec79ce9..af3e68a15f 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 a3d6f1dfe9..2e2b918d45 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 0000000000..32be785206 --- /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 0000000000..5a4fa26784 --- /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 35cb62e700..78a4cad585 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 06505d87c0..90a54c8b18 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); -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); +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); + +/** + * \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 0000000000..acc176cb6f --- /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 0000000000..2f618056a2 --- /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 0000000000..00d2aec8fa --- /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 dc426ba44a..d74f0be88d 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 6fcc777549..0b68732ee0 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 0000000000..d0c4ddadbd --- /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 0000000000..a2c71d9587 --- /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 0000000000..ef34748b06 --- /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 01cdfd6408..21e5493526 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 af74388209..13086bbb4b 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 2622af6b2f..6118188dd1 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 6dabc45513..7858dab92b 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 4b38f2644b..cc9f162477 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 0000000000..10d675a3b1 --- /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 f1c52cb7b6..0495da8205 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 0000000000..16f95f7f8d --- /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 0000000000..1afc79be55 --- /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 0000000000..a8500e3ba1 --- /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 0000000000..16f95f7f8d --- /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 0000000000..f53051dce6 --- /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 0000000000..598b57277f --- /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 0000000000..0d86922f0d --- /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 0000000000..e6d0034799 --- /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 0000000000..cacd8f3c75 --- /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 0000000000..0d86922f0d --- /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 0000000000..d7ac651758 --- /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 0000000000..acc6329f85 --- /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 d3f15c4588..d159dacc55 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 1ccfbfb54a..30817c17b6 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 52fe86d297..0f316b256c 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 f27da028a0..bb3312e8e7 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 58fc4efd9c..476b605297 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 26c55128be..80678a5707 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 10a976608a..4d97f1cd82 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 20bfc8fb3c..f04ca79a0c 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 5755098c60..1ba3be4604 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 5ab9e3ff4f..e215c90900 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 49aadedc2a..3b3be4a767 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 13db9fbfbd..6f0e406378 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 b3eeff9e01..d74f375f66 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 6fc84937c4..fb500b3b3b 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 89112af121..2defcbd80e 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 b8d519feca..34156744fe 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 5d71599687..a5bd637ece 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 cad6db8f3d..b8ccbb028c 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 f2c4f0f394..211fe4ab3e 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 fd9e19c809..fcc2e2b847 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 82caea7c9a..472f48a942 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 9ff523baad..340b4cf94b 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 543586e009..a17e4178ff 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 afb1c75df1..9e8e7cfc97 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 5f6b7c5f09..2a151939b8 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 85cdcc91f0..96f0765825 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 0000000000..4123caa5bc --- /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 0000000000..3c47a72462 --- /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 0000000000..4032215a1d --- /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 0000000000..5c60ddf100 --- /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 0000000000..17737490a1 --- /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 0000000000..619a84ec2e --- /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 0000000000..bbd3e4131e --- /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 0000000000..5fcf66062b --- /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 0000000000..8135bac269 --- /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 0000000000..7d955f4172 --- /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 de8d1593b4..08b6f4fb8d 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 c3ba96d5b6..63c355415e 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 7d59f28eec..e16dd3b8a0 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 f99e6d0832..56b4509813 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/keyboards/dumbpad/config.h b/users/scotto/config.h similarity index 64% rename from keyboards/dumbpad/config.h rename to users/scotto/config.h index 879046ea07..34fe069d6e 100644 --- a/keyboards/dumbpad/config.h +++ b/users/scotto/config.h @@ -1,20 +1,25 @@ /* -Copyright 2020 imchipwood - +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 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 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 +// 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 0000000000..f7fdeb24c4 --- /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 0000000000..50a0196675 --- /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/keyboards/mechlovin/zed65/no_backlight/retro66/config.h b/users/scotto/scotto.c similarity index 81% rename from keyboards/mechlovin/zed65/no_backlight/retro66/config.h rename to users/scotto/scotto.c index 6786e3b953..41520973c6 100644 --- a/keyboards/mechlovin/zed65/no_backlight/retro66/config.h +++ b/users/scotto/scotto.c @@ -1,20 +1,15 @@ /* -Copyright 2022 Mechlovin' - +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 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 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 +#include "scotto.h" diff --git a/users/scotto/scotto.h b/users/scotto/scotto.h new file mode 100644 index 0000000000..023906852e --- /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 0000000000..e618384334 --- /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/keyboards/arabica37/rev1/config.h b/users/scotto/tap_dance.h similarity index 52% rename from keyboards/arabica37/rev1/config.h rename to users/scotto/tap_dance.h index 07d567be65..4082d2b9fb 100644 --- a/keyboards/arabica37/rev1/config.h +++ b/users/scotto/tap_dance.h @@ -1,37 +1,39 @@ /* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - +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 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 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" -#define RGBLED_NUM 50 // Number of LEDs -#define RGBLED_SPLIT {25, 25} -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ +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; -/* disable debug print */ -// #define NO_DEBUG +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT +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 688afc8998..fd6de1bca7 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 cff20898cd..be76788d21 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 0f3c08fca6..b177f9f652 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 ee8e00056c..4a3657fdfd 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 1df5634640..f1ee5c0485 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 3671d27ab4..70d3d065c4 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 de4decf78a..cb447a1792 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 fd03033ad6..c6341fa3d7 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 9ff523baad..340b4cf94b 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 cd21032a4e..776da0c77e 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 78433b4c20..5e192f037a 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 18f08ccb0b..575b32186e 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 019e6f6dda..93b0b5704d 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 e85a04edbe..e7ac83e0dc 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 870b4bec94..8890c5a3f0 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 578b2b4977..84271cee4f 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 c2140fe351..778af4421f 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 +]